Class SyntacticRandomSampler

  • All Implemented Interfaces:
    Iterator<PlBeliefSet>, net.sf.tweety.commons.BeliefSetIterator<PlFormula,​PlBeliefSet>

    public class SyntacticRandomSampler
    extends net.sf.tweety.commons.BeliefSetSampler<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 | A

    with 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 net.sf.tweety.commons.BeliefSetSampler

        DEFAULT_MAXIMUM_BELIEFBASE_LENGTH, DEFAULT_MINIMUM_BELIEFBASE_LENGTH
    • Constructor Summary

      Constructors 
      Constructor Description
      SyntacticRandomSampler​(net.sf.tweety.commons.Signature signature, net.sf.tweety.math.probability.Probability probneg, net.sf.tweety.math.probability.Probability probconj, net.sf.tweety.math.probability.Probability probdisj, double recDecrease)
      Creates a new sampler.
      SyntacticRandomSampler​(net.sf.tweety.commons.Signature signature, net.sf.tweety.math.probability.Probability probneg, net.sf.tweety.math.probability.Probability probconj, net.sf.tweety.math.probability.Probability probdisj, double recDecrease, int minLength, int maxLength)
      Creates a new sampler.
    • Constructor Detail

      • SyntacticRandomSampler

        public SyntacticRandomSampler​(net.sf.tweety.commons.Signature signature,
                                      net.sf.tweety.math.probability.Probability probneg,
                                      net.sf.tweety.math.probability.Probability probconj,
                                      net.sf.tweety.math.probability.Probability probdisj,
                                      double recDecrease)
        Creates a new sampler.
        Parameters:
        signature - some set of propositions
        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.
      • SyntacticRandomSampler

        public SyntacticRandomSampler​(net.sf.tweety.commons.Signature signature,
                                      net.sf.tweety.math.probability.Probability probneg,
                                      net.sf.tweety.math.probability.Probability probconj,
                                      net.sf.tweety.math.probability.Probability probdisj,
                                      double recDecrease,
                                      int minLength,
                                      int maxLength)
        Creates a new sampler.
        Parameters:
        signature - some set of propositions
        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.
        minLength - the minimum length of knowledge bases
        maxLength - the maximum length of knowledge bases
    • Method Detail

      • sampleFormula

        public PlFormula sampleFormula​(net.sf.tweety.math.probability.ProbabilityFunction<Byte> prob)
        Samples a single formula.
        Parameters:
        prob - a probability function
        Returns:
        a single formula.