Package org.tweetyproject.logics.pl.util
Class SyntacticRandomSampler
java.lang.Object
org.tweetyproject.commons.BeliefSetSampler<PlFormula,PlBeliefSet>
org.tweetyproject.logics.pl.util.SyntacticRandomSampler
- All Implemented Interfaces:
Iterator<PlBeliefSet>
,BeliefSetIterator<PlFormula,
PlBeliefSet>
This sampler implements a random generation algorithm for generating formulas, based on the syntax tree of propositional formulas. Consider the following BNF for a propositional logic formula:
F ::== !F | F >> F | F || F | Awith propositions A. The algorithm for constructing formulas takes four parameters:
- probneg: the probability to generate a negation
- probconj: the probability to generate a conjunction
- probdisj: the probability to generate a disjunction
- recDecrease: a value in (0,1) by which the above probabilities are multiplied in each recursive step to increase likelihood of termination.
From these parameters the probability to generate a proposition "probprop" is computed via probprop=1-probneg-probconj-probdisj (the actual proposition is selected with a uniform distribution). Then a formula is generated by randomly selecting which rule in the above BNF is followed wrt. these probabilities. Note that the algorithm is not guaranteed to terminate.
- Author:
- Matthias Thimm
-
Field Summary
Fields inherited from class org.tweetyproject.commons.BeliefSetSampler
DEFAULT_MAXIMUM_BELIEFBASE_LENGTH, DEFAULT_MINIMUM_BELIEFBASE_LENGTH
-
Constructor Summary
ConstructorDescriptionSyntacticRandomSampler
(Signature signature, Probability probneg, Probability probconj, Probability probdisj, double recDecrease) Creates a new sampler.SyntacticRandomSampler
(Signature signature, Probability probneg, Probability probconj, Probability probdisj, double recDecrease, int minLength, int maxLength) Creates a new sampler. -
Method Summary
Modifier and TypeMethodDescriptionnext()
Returns the next belief setsampleFormula
(ProbabilityFunction<Byte> prob) Samples a single formula.Methods inherited from class org.tweetyproject.commons.BeliefSetSampler
getMaxLength, getMinLength, getSamplerSignature, hasNext
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Iterator
forEachRemaining, remove
-
Constructor Details
-
SyntacticRandomSampler
public SyntacticRandomSampler(Signature signature, Probability probneg, Probability probconj, Probability probdisj, double recDecrease) Creates a new sampler.- Parameters:
signature
- some set of propositionsprobneg
- the probability to generate a negationprobconj
- the probability to generate a conjunctionprobdisj
- the probability to generate a disjunctionrecDecrease
- a value in (0,1) by which the above probabilities are multiplied in each recursive step to increase likelihood of termination.
-
SyntacticRandomSampler
public SyntacticRandomSampler(Signature signature, Probability probneg, Probability probconj, Probability probdisj, double recDecrease, int minLength, int maxLength) Creates a new sampler.- Parameters:
signature
- some set of propositionsprobneg
- the probability to generate a negationprobconj
- the probability to generate a conjunctionprobdisj
- the probability to generate a disjunctionrecDecrease
- a value in (0,1) by which the above probabilities are multiplied in each recursive step to increase likelihood of termination.minLength
- the minimum length of knowledge basesmaxLength
- the maximum length of knowledge bases
-
-
Method Details
-
sampleFormula
Samples a single formula.- Parameters:
prob
- a probability function- Returns:
- a single formula.
-
next
Returns the next belief set- Specified by:
next
in interfaceBeliefSetIterator<PlFormula,
PlBeliefSet> - Specified by:
next
in interfaceIterator<PlBeliefSet>
- Specified by:
next
in classBeliefSetSampler<PlFormula,
PlBeliefSet> - Returns:
- the next belief set
-