use of at.ac.tuwien.kr.alpha.grounder.parser.ParsedProgram in project Alpha by alpha-asp.
the class SolverTests method guessingProgramConstraint.
@Test
public void guessingProgramConstraint() throws IOException {
String testProgram = "eq(1,1).\n" + "eq(2,2).\n" + "eq(3,3).\n" + "var(1).\n" + "var(2).\n" + "var(3).\n" + "val(VAR,1):-var(VAR),not val(VAR,2),not val(VAR,3).\n" + "val(VAR,2):-var(VAR),not val(VAR,1),not val(VAR,3).\n" + "val(VAR,3):-var(VAR),not val(VAR,1),not val(VAR,2).\n" + "%:- val(VAR1,VAL1), val(VAR2,VAL2), eq(VAL1,VAL2), not eq(VAR1,VAR2).\n" + ":- eq(VAL1,VAL2), not eq(VAR1,VAR2), val(VAR1,VAL1), val(VAR2,VAL2).";
ParsedProgram parsedProgram = parseVisit(testProgram);
NaiveGrounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
final BasicAnswerSet.Builder base = new BasicAnswerSet.Builder().predicate("eq").instance("1", "1").instance("2", "2").instance("3", "3").predicate("var").instance("1").instance("2").instance("3");
Set<AnswerSet> expected = new HashSet<>(Arrays.asList(new BasicAnswerSet.Builder(base).predicate("val").instance("1", "1").instance("2", "2").instance("3", "3").build(), new BasicAnswerSet.Builder(base).predicate("val").instance("1", "1").instance("3", "2").instance("2", "3").build(), new BasicAnswerSet.Builder(base).predicate("val").instance("2", "1").instance("1", "2").instance("3", "3").build(), new BasicAnswerSet.Builder(base).predicate("val").instance("2", "1").instance("3", "2").instance("1", "3").build(), new BasicAnswerSet.Builder(base).predicate("val").instance("3", "1").instance("1", "2").instance("2", "3").build(), new BasicAnswerSet.Builder(base).predicate("val").instance("3", "1").instance("2", "2").instance("1", "3").build()));
Set<AnswerSet> answerSets = solver.collectSet();
assertEquals(expected, answerSets);
}
use of at.ac.tuwien.kr.alpha.grounder.parser.ParsedProgram in project Alpha by alpha-asp.
the class SolverTests method testSimpleRuleWithGroundPart.
@Test
public void testSimpleRuleWithGroundPart() throws Exception {
String testProgram = "p(1)." + "p(2)." + "q(X) :- p(X), p(1).";
ParsedProgram parsedProgram = parseVisit(testProgram);
Grounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
List<AnswerSet> answerSets = solver.collectList();
assertEquals(1, answerSets.size());
AnswerSet expected = new BasicAnswerSet.Builder().predicate("q").instance("1").instance("2").predicate("p").instance("1").instance("2").build();
assertEquals(expected, answerSets.get(0));
}
use of at.ac.tuwien.kr.alpha.grounder.parser.ParsedProgram in project Alpha by alpha-asp.
the class SolverTests method noPositiveCycleSelfFoundingGuess.
@Test
public void noPositiveCycleSelfFoundingGuess() throws IOException {
String program = "c :- not d.\n" + "d :- not c." + "a :- b, not c.\n" + "b:- a.\n" + ":- not b.";
ParsedProgram parsedProgram = parseVisit(program);
NaiveGrounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
Set<AnswerSet> answerSets = solver.collectSet();
assertTrue(answerSets.isEmpty());
}
use of at.ac.tuwien.kr.alpha.grounder.parser.ParsedProgram in project Alpha by alpha-asp.
the class AlphaHeuristicTestAssumptions method setUp.
@Before
public void setUp() throws IOException {
String testProgram = "h :- b1, b2, not b3, not b4.";
ParsedProgram parsedProgram = parseVisit(testProgram);
this.grounder = new NaiveGrounder(parsedProgram);
this.assignment = new ArrayAssignment();
this.choiceManager = new TestableChoiceManager(assignment);
}
use of at.ac.tuwien.kr.alpha.grounder.parser.ParsedProgram in project Alpha by alpha-asp.
the class SolverTests method guessingAndPropagationAfterwards.
@Test
public void guessingAndPropagationAfterwards() throws IOException {
String testProgram = "node(a).\n" + "node(b).\n" + "in(X) :- not out(X), node(X).\n" + "out(X) :- not in(X), node(X).\n" + "pair(X,Y) :- in(X), in(Y).";
ParsedProgram parsedProgram = parseVisit(testProgram);
NaiveGrounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
final BasicAnswerSet.Builder base = new BasicAnswerSet.Builder().predicate("node").instance("a").instance("b");
Set<AnswerSet> expected = new HashSet<>(Arrays.asList(new BasicAnswerSet.Builder(base).predicate("in").instance("a").instance("b").predicate("pair").instance("a", "a").instance("a", "b").instance("b", "a").instance("b", "b").build(), new BasicAnswerSet.Builder(base).predicate("in").instance("b").predicate("out").instance("a").predicate("pair").instance("b", "b").build(), new BasicAnswerSet.Builder(base).predicate("in").instance("a").predicate("out").instance("b").predicate("pair").instance("a", "a").build(), new BasicAnswerSet.Builder(base).predicate("out").instance("a").instance("b").build()));
Set<AnswerSet> answerSets = solver.collectSet();
assertEquals(expected, answerSets);
}
Aggregations