예제 #1
0
void DecisionEngine::init()
{
  Assert(d_engineState == 0);
  d_engineState = 1;

  Trace("decision-init") << "DecisionEngine::init()" << std::endl;
  Trace("decision-init") << " * options->decisionMode: " 
                         << options::decisionMode() << std:: endl;
  Trace("decision-init") << " * options->decisionStopOnly: "
                         << options::decisionStopOnly() << std::endl;

  if(options::decisionMode() == decision::DECISION_STRATEGY_INTERNAL) { }
  if(options::decisionMode() == decision::DECISION_STRATEGY_JUSTIFICATION) {
    ITEDecisionStrategy* ds = 
      new decision::JustificationHeuristic(this, d_userContext, d_satContext);
    enableStrategy(ds);
    d_needIteSkolemMap.push_back(ds);
  }
  if(options::decisionMode() == decision::DECISION_STRATEGY_RELEVANCY) {
    if(options::incrementalSolving()) {
      Warning() << "Relevancy decision heuristic and incremental not supported together"
                << std::endl;
      return; // Currently not supported with incremental
    }
    RelevancyStrategy* ds = 
      new decision::Relevancy(this, d_satContext);
    enableStrategy(ds);
    d_needIteSkolemMap.push_back(ds);
    d_relevancyStrategy = ds;
  }
}
예제 #2
0
void ConvComlibManager::tableReady() {
  for (int i=1; i<strategyTable.size(); ++i) {
    if (strategyTable[i].isInSync) {
      ComlibPrintf("[%d] ConvComlibManager::tableReady Enabling strategy %d\n",CmiMyPe(),i);
      strategyTable[i].isInSync = 0;
      enableStrategy(i);
    }
  }
}
예제 #3
0
void DecisionEngine::init()
{
    Assert(d_engineState == 0);
    d_engineState = 1;

    Trace("decision-init") << "DecisionEngine::init()" << std::endl;
    Trace("decision-init") << " * options->decisionMode: "
                           << options::decisionMode() << std:: endl;
    Trace("decision-init") << " * options->decisionStopOnly: "
                           << options::decisionStopOnly() << std::endl;

    if(options::decisionMode() == decision::DECISION_STRATEGY_INTERNAL) { }
    if(options::decisionMode() == decision::DECISION_STRATEGY_JUSTIFICATION) {
        ITEDecisionStrategy* ds =
            new decision::JustificationHeuristic(this, d_userContext, d_satContext);
        enableStrategy(ds);
        d_needIteSkolemMap.push_back(ds);
    }
}