Package aima.core.logic.propositional.parsing.ast

Examples of aima.core.logic.propositional.parsing.ast.Symbol


  }

  private Symbol getSymbolWhoseFlipMaximisesSatisfiedClauses(
      Set<Sentence> clauses, List<Symbol> symbols, Model model) {
    if (symbols.size() > 0) {
      Symbol retVal = symbols.get(0);
      int maxClausesSatisfied = 0;
      for (int i = 0; i < symbols.size(); i++) {
        Symbol sym = symbols.get(i);
        if (getNumberOfClausesSatisfiedIn(clauses, model.flip(sym)) > maxClausesSatisfied) {
          retVal = sym;
          maxClausesSatisfied = getNumberOfClausesSatisfiedIn(
              clauses, model.flip(sym));
        }
View Full Code Here


  @SuppressWarnings("unchecked")
  @Override
  public Object visitSymbol(Symbol s, Object arg) {
    Set<Symbol> symbolsCollectedSoFar = (Set<Symbol>) arg;
    symbolsCollectedSoFar.add(new Symbol(s.getValue()));
    return symbolsCollectedSoFar;
  }
View Full Code Here

*/
public class AbstractPLVisitor implements PLVisitor {
  private PEParser parser = new PEParser();

  public Object visitSymbol(Symbol s, Object arg) {
    return new Symbol(s.getValue());
  }
View Full Code Here

  }

  private Symbol parseSymbol() {
    String sym = lookAhead(1).getText();
    consume();
    return new Symbol(sym);
  }
View Full Code Here

  }

  @Test
  public void testDPLLReturnsTrueWhenAllClausesTrueInModel() {
    Model model = new Model();
    model = model.extend(new Symbol("A"), true).extend(new Symbol("B"),
        true);
    Sentence sentence = (Sentence) parser.parse("((A AND B) AND (A OR B))");
    boolean satisfiable = dpll.dpllSatisfiable(sentence, model);
    Assert.assertEquals(true, satisfiable);
  }
View Full Code Here

  }

  @Test
  public void testDPLLReturnsFalseWhenOneClauseFalseInModel() {
    Model model = new Model();
    model = model.extend(new Symbol("A"), true).extend(new Symbol("B"),
        false);
    Sentence sentence = (Sentence) parser.parse("((A OR B) AND (A => B))");
    boolean satisfiable = dpll.dpllSatisfiable(sentence, model);
    Assert.assertEquals(false, satisfiable);
  }
View Full Code Here

  }

  @Test
  public void testDPLLFiltersClausesTheStatusOfWhichAreKnown() {
    Model model = new Model();
    model = model.extend(new Symbol("A"), true).extend(new Symbol("B"),
        true);
    Sentence sentence = (Sentence) parser
        .parse("((A AND B) AND (B AND C))");
    List<Sentence> clauseList = new Converter<Sentence>()
        .setToList(new CNFClauseGatherer()
View Full Code Here

  }

  @Test
  public void testDPLLFilteringNonTrueClausesGivesNullWhenAllClausesAreKnown() {
    Model model = new Model();
    model = model.extend(new Symbol("A"), true)
        .extend(new Symbol("B"), true).extend(new Symbol("C"), true);
    Sentence sentence = (Sentence) parser
        .parse("((A AND B) AND (B AND C))");
    List<Sentence> clauseList = new Converter<Sentence>()
        .setToList(new CNFClauseGatherer()
            .getClausesFrom(new CNFTransformer()
View Full Code Here

  }

  @Test
  public void testDPLLFindsPurePositiveSymbolsWhenTheyExist() {
    Model model = new Model();
    model = model.extend(new Symbol("A"), true).extend(new Symbol("B"),
        true);
    Sentence sentence = (Sentence) parser
        .parse("((A AND B) AND (B AND C))");
    List<Sentence> clauseList = new Converter<Sentence>()
        .setToList(new CNFClauseGatherer()
            .getClausesFrom(new CNFTransformer()
                .transform(sentence)));
    List<Symbol> symbolList = new Converter<Symbol>()
        .setToList(new SymbolCollector().getSymbolsIn(sentence));

    DPLL.SymbolValuePair sv = dpll.findPureSymbolValuePair(clauseList,
        model, symbolList);
    Assert.assertNotNull(sv);
    Assert.assertEquals(new Symbol("C"), sv.symbol);
    Assert.assertEquals(new Boolean(true), sv.value);
  }
View Full Code Here

  }

  @Test
  public void testDPLLFindsPureNegativeSymbolsWhenTheyExist() {
    Model model = new Model();
    model = model.extend(new Symbol("A"), true).extend(new Symbol("B"),
        true);
    Sentence sentence = (Sentence) parser
        .parse("((A AND B) AND ( B  AND (NOT C) ))");
    List<Sentence> clauseList = new Converter<Sentence>()
        .setToList(new CNFClauseGatherer()
            .getClausesFrom(new CNFTransformer()
                .transform(sentence)));
    List<Symbol> symbolList = new Converter<Symbol>()
        .setToList(new SymbolCollector().getSymbolsIn(sentence));

    DPLL.SymbolValuePair sv = dpll.findPureSymbolValuePair(clauseList,
        model, symbolList);
    Assert.assertNotNull(sv);
    Assert.assertEquals(new Symbol("C"), sv.symbol);
    Assert.assertEquals(new Boolean(false), sv.value);
  }
View Full Code Here

TOP

Related Classes of aima.core.logic.propositional.parsing.ast.Symbol

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.