Example #1
0
        /// <summary>
        ///<code>
        /// procedure OTTER(sos, usable) 
        ///  inputs: sos, a set of support-clauses defining the problem (a global variable) 
        ///  usable, background knowledge potentially relevant to the problem
        ///</code>
        /// </summary>
        /// <param name="ansHandler"></param>
        /// <param name="idxdClauses"></param>
        /// <param name="sos"></param>
        /// <param name="usable"></param>
        /// <returns></returns>
        private IInferenceResult Otter(OTTERAnswerHandler ansHandler,
                IndexedClauses idxdClauses, ISet<Clause> sos, ISet<Clause> usable) 
        {

            LightestClauseHeuristic.InitialSOS(sos);

            // * repeat
            do {
                // * clause <- the lightest member of sos
                Clause clause = LightestClauseHeuristic.GetLightestClause();
                if (null != clause) 
                {
                    // * move clause from sos to usable
                    sos.Remove(clause);
                    LightestClauseHeuristic.RemovedClauseFromSOS(clause);
                    usable.Add(clause);
                    // * PROCESS(INFER(clause, usable), sos)
                    this.Process(ansHandler, idxdClauses, this.Infer(clause, usable), sos, usable);
                }

                // * until sos = [] or a refutation has been found
            } 
            while (sos.Count != 0 && !ansHandler.IsComplete());

            return ansHandler;
        }
 public IndexedClauses(LightestClauseHeuristic lightestClauseHeuristic,
                       List <Clause> sos, List <Clause> usable)
 {
     this.lightestClauseHeuristic = lightestClauseHeuristic;
     foreach (Clause c in sos)
     {
         indexClause(c);
     }
     foreach (Clause c in usable)
     {
         indexClause(c);
     }
 }
 public void setLightestClauseHeuristic(
     LightestClauseHeuristic lightestClauseHeuristic)
 {
     this.lightestClauseHeuristic = lightestClauseHeuristic;
 }
 public IndexedClauses(LightestClauseHeuristic lightestClauseHeuristic,
         List<Clause> sos, List<Clause> usable)
 {
     this.lightestClauseHeuristic = lightestClauseHeuristic;
     foreach (Clause c in sos)
     {
         indexClause(c);
     }
     foreach (Clause c in usable)
     {
         indexClause(c);
     }
 }
 public void setLightestClauseHeuristic(
         LightestClauseHeuristic lightestClauseHeuristic)
 {
     this.lightestClauseHeuristic = lightestClauseHeuristic;
 }