Class SimpleDpllSolver

  • All Implemented Interfaces:
    net.sf.tweety.logics.commons.analysis.BeliefSetConsistencyTester<PlFormula>, net.sf.tweety.logics.commons.analysis.ConsistencyTester<net.sf.tweety.commons.BeliefSet<PlFormula,​?>>, net.sf.tweety.logics.commons.analysis.ConsistencyWitnessProvider<PlBeliefSet,​PlFormula>

    public class SimpleDpllSolver
    extends SatSolver
    This class provides a simple reference implementation of the DPLL (Davis–Putnam–Logemann–Loveland) algorithm for satisfiability testing, see e.g https://en.wikipedia.org/wiki/DPLL_algorithm. The order of the variables is simply taken by the standard iterator of the induced signature. Only unit propagation is used for satisfiability testing.
    Author:
    Matthias Thimm
    • Constructor Detail

      • SimpleDpllSolver

        public SimpleDpllSolver()
    • Method Detail

      • getWitness

        public net.sf.tweety.commons.Interpretation<PlBeliefSet,​PlFormula> getWitness​(Collection<PlFormula> formulas)
        Description copied from class: SatSolver
        If the collection of formulas is consistent this method returns some model of it or, if it is inconsistent, null.
        Specified by:
        getWitness in interface net.sf.tweety.logics.commons.analysis.ConsistencyWitnessProvider<PlBeliefSet,​PlFormula>
        Specified by:
        getWitness in class SatSolver
        Returns:
        some model of the formulas or null.
      • isSatisfiable

        public boolean isSatisfiable​(Collection<PlFormula> formulas)
        Description copied from class: SatSolver
        Checks whether the given set of formulas is satisfiable.
        Specified by:
        isSatisfiable in class SatSolver
        Parameters:
        formulas - a set of formulas.
        Returns:
        "true" if the set is consistent.