package aima.test.core.experiment.logic.propositional.algorithms; import org.junit.Test; import aima.core.logic.propositional.algorithms.KnowledgeBase; import aima.core.logic.propositional.algorithms.Model; import aima.core.logic.propositional.algorithms.WalkSAT; /** * @author Ravi Mohan * */ public class WalkSATTest { // NOT REALLY A JUNIT TESTCASE BUT written as one to allow easy execution @Test public void testWalkSat() { WalkSAT walkSAT = new WalkSAT(); Model m = walkSAT.findModelFor("( A AND B )", 1000, 0.5); if (m == null) { System.out.println("failure"); } else { m.print(); } } @Test public void testWalkSat2() { WalkSAT walkSAT = new WalkSAT(); Model m = walkSAT.findModelFor("( A AND (NOT B) )", 1000, 0.5); if (m == null) { System.out.println("failure"); } else { m.print(); } } @Test public void testAIMAExample() { KnowledgeBase kb = new KnowledgeBase(); kb.tell(" (P => Q)"); kb.tell("((L AND M) => P)"); kb.tell("((B AND L) => M)"); kb.tell("( (A AND P) => L)"); kb.tell("((A AND B) => L)"); kb.tell("(A)"); kb.tell("(B)"); WalkSAT walkSAT = new WalkSAT(); Model m = walkSAT.findModelFor(kb.asSentence().toString(), 1000, 0.5); if (m == null) { System.out.println("failure"); } else { m.print(); } } }