Class SyntacticRandomSampler

  • All Implemented Interfaces:
    java.util.Iterator<PlBeliefSet>, BeliefSetIterator<PlFormula,​PlBeliefSet>

    public class SyntacticRandomSampler
    extends 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
    • Constructor Detail

      • SyntacticRandomSampler

        public SyntacticRandomSampler​(Signature signature,
                                      Probability probneg,
                                      Probability probconj,
                                      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​(Signature signature,
                                      Probability probneg,
                                      Probability probconj,
                                      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