Package aima.core.logic.propositional.visitors

Examples of aima.core.logic.propositional.visitors.SymbolCollector


   * @return <code>true</code> if the specified sentence is satisfiable.
   */
  public boolean dpllSatisfiable(Sentence s, Model m) {
    Set<Sentence> clauses = new CNFClauseGatherer()
        .getClausesFrom(new CNFTransformer().transform(s));
    List<Symbol> symbols = SYMBOL_CONVERTER.setToList(new SymbolCollector()
        .getSymbolsIn(s));
    // System.out.println(" numberOfSymbols = " + symbols.size());
    return dpll(clauses, symbols, m);
  }
View Full Code Here


      } else {
        BinarySentence bs = (BinarySentence) sentence;
        head = (Symbol) bs.getSecond();
        inferred.put(head, Boolean.FALSE);
        Set<Symbol> symbolsInPremise = new SymbolCollector()
            .getSymbolsIn(bs.getFirst());
        Iterator<Symbol> iter = symbolsInPremise.iterator();
        while (iter.hasNext()) {
          inferred.put(iter.next(), Boolean.FALSE);
        }
View Full Code Here

      double probabilityOfRandomWalk) {
    myModel = new Model();
    Sentence s = (Sentence) new PEParser().parse(logicalSentence);
    CNFTransformer transformer = new CNFTransformer();
    CNFClauseGatherer clauseGatherer = new CNFClauseGatherer();
    SymbolCollector sc = new SymbolCollector();

    List<Symbol> symbols = new Converter<Symbol>().setToList(sc
        .getSymbolsIn(s));
    for (int i = 0; i < symbols.size(); i++) {
      Symbol sym = (Symbol) symbols.get(i);
      myModel = myModel.extend(sym, Util.randomBoolean());
    }
    List<Sentence> clauses = new Converter<Sentence>()
        .setToList(clauseGatherer.getClausesFrom(transformer
            .transform(s)));

    for (int i = 0; i < numberOfFlips; i++) {
      if (getNumberOfClausesSatisfiedIn(
          new Converter<Sentence>().listToSet(clauses), myModel) == clauses
          .size()) {
        return myModel;
      }
      Sentence clause = clauses.get(random.nextInt(clauses.size()));

      List<Symbol> symbolsInClause = new Converter<Symbol>().setToList(sc
          .getSymbolsIn(clause));
      if (random.nextDouble() >= probabilityOfRandomWalk) {
        Symbol randomSymbol = symbolsInClause.get(random
            .nextInt(symbolsInClause.size()));
        myModel = myModel.flip(randomSymbol);
View Full Code Here

  }

  public boolean dpllSatisfiable(Sentence s, Model m) {
    Set<Sentence> clauses = new CNFClauseGatherer()
        .getClausesFrom(new CNFTransformer().transform(s));
    List<Symbol> symbols = SYMBOL_CONVERTER.setToList(new SymbolCollector()
        .getSymbolsIn(s));
    // System.out.println(" numberOfSymbols = " + symbols.size());
    return dpll(clauses, symbols, m);
  }
View Full Code Here

      } else {
        BinarySentence bs = (BinarySentence) sentence;
        head = (Symbol) bs.getSecond();
        inferred.put(head, Boolean.FALSE);
        Set<Symbol> symbolsInPremise = new SymbolCollector()
            .getSymbolsIn(bs.getFirst());
        Iterator<Symbol> iter = symbolsInPremise.iterator();
        while (iter.hasNext()) {
          inferred.put(iter.next(), Boolean.FALSE);
        }
View Full Code Here

   *         algorithm.
   */
  public boolean ttEntails(KnowledgeBase kb, String alpha) {
    Sentence kbSentence = kb.asSentence();
    Sentence querySentence = (Sentence) new PEParser().parse(alpha);
    SymbolCollector collector = new SymbolCollector();
    Set<Symbol> kbSymbols = collector.getSymbolsIn(kbSentence);
    Set<Symbol> querySymbols = collector.getSymbolsIn(querySentence);
    Set<Symbol> symbols = SetOps.union(kbSymbols, querySymbols);
    List<Symbol> symbolList = new Converter<Symbol>().setToList(symbols);
    return ttCheckAll(kbSentence, querySentence, symbolList, new Model());
  }
View Full Code Here

      double probabilityOfRandomWalk) {
    myModel = new Model();
    Sentence s = (Sentence) new PEParser().parse(logicalSentence);
    CNFTransformer transformer = new CNFTransformer();
    CNFClauseGatherer clauseGatherer = new CNFClauseGatherer();
    SymbolCollector sc = new SymbolCollector();

    List<Symbol> symbols = new Converter<Symbol>().setToList(sc.getSymbolsIn(s));
    for (int i = 0; i < symbols.size(); i++) {
      Symbol sym = (Symbol) symbols.get(i);
      myModel = myModel.extend(sym, Util.randomBoolean());
    }
    List<Sentence> clauses = new Converter<Sentence>()
        .setToList(clauseGatherer.getClausesFrom(transformer
            .transform(s)));

    for (int i = 0; i < numberOfFlips; i++) {
      if (getNumberOfClausesSatisfiedIn(
          new Converter<Sentence>().listToSet(clauses), myModel) == clauses
          .size()) {
        return myModel;
      }
      Sentence clause = clauses.get(random.nextInt(clauses.size()));

      List<Symbol> symbolsInClause = new Converter<Symbol>().setToList(sc
          .getSymbolsIn(clause));
      if (random.nextDouble() >= probabilityOfRandomWalk) {
        Symbol randomSymbol = symbolsInClause.get(random
            .nextInt(symbolsInClause.size()));
        myModel = myModel.flip(randomSymbol);
View Full Code Here

    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);
View Full Code Here

    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);
View Full Code Here

  private SymbolCollector collector;

  @Before
  public void setUp() {
    parser = new PEParser();
    collector = new SymbolCollector();
  }
View Full Code Here

TOP

Related Classes of aima.core.logic.propositional.visitors.SymbolCollector

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.