package aima.gui.demo.logic;
import aima.core.logic.propositional.inference.WalkSAT;
import aima.core.logic.propositional.kb.KnowledgeBase;
import aima.core.logic.propositional.kb.data.Model;
import aima.core.logic.propositional.visitors.ConvertToConjunctionOfClauses;
/**
* @author Ravi Mohan
*
*/
public class WalkSatDemo {
public static void main(String[] args) {
System.out.println("\nWalkSatDemo\n");
KnowledgeBase kb = new KnowledgeBase();
kb.tell("P => Q");
kb.tell("L & M => P");
kb.tell("B & L => M");
kb.tell("A & P => L");
kb.tell("A & B => L");
kb.tell("A");
kb.tell("B");
System.out.println("Example from page 220 of AIMA 2nd Edition");
System.out.println("KnowledgeBsse consists of sentences");
System.out.println(kb.toString());
WalkSAT walkSAT = new WalkSAT();
Model m = walkSAT.walkSAT(ConvertToConjunctionOfClauses.convert(kb.asSentence()).getClauses(), 0.5, 1000);
if (m == null) {
System.out.println("failure");
} else {
m.print();
}
}
}