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
ConstructorsConstructorDescriptionSyntacticRandomSampler(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, hasNextMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:
nextin interfaceBeliefSetIterator<PlFormula,PlBeliefSet>- Specified by:
nextin interfaceIterator<PlBeliefSet>- Specified by:
nextin classBeliefSetSampler<PlFormula,PlBeliefSet>- Returns:
- the next belief set
-