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>

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 Details

    • 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
  • Method Details