dlvhex  2.5.0
src/EvalHeuristicASP.cpp File Reference

Implementation of an evaluation heuristic that uses ASP to plan hex evaluation. More...

#include "dlvhex2/EvalHeuristicASP.h"
#include "dlvhex2/EvalHeuristicShared.h"
#include "dlvhex2/Logger.h"
#include "dlvhex2/Registry.h"
#include "dlvhex2/ASPSolver.h"
#include "dlvhex2/Printer.h"
#include <boost/lexical_cast.hpp>
#include <fstream>
#include <sstream>
Include dependency graph for EvalHeuristicASP.cpp:

Go to the source code of this file.


Detailed Description

Implementation of an evaluation heuristic that uses ASP to plan hex evaluation.

Author:
Peter Schller

The facts given to the evaluation heuristic program describe the component graph:

Components: C is a constant term designating a unique component component(C) is fact for each component if innerRules is nonempty, rules(C) is fact if innerConstraints is nonempty, constraints(C) is fact if outerEatoms is nonempty, outerext(C) is fact if innerEatoms is nonempty, innerext(C) is fact if disjunctiveHeads is true, disjheads(C) is fact if negativeDependencyBetweenRules is true, negcycles(C) is fact if innerEatomsNonmonotonic is true, innerextnonmon(C) is fact if outerEatomsNonmonotonic is true, outerextnonmon(C) is fact

Dependencies (component C1 depends on component C2): dep(C1,C2) is fact for each dependency if positiveRegularRule is true, posrule(C1,C2) is a fact if positiveConstraint is true, posconstraint(C1,C2) is a fact if negativeRule is true, neg(C1,C2) is a fact unifyingHead cannot occur across components disjunctive cannot occur across components if positiveExternal is true, posext(C1,C2) is a fact if negativeExternal is true, negext(C1,C2) is a fact if externalConstantInput is true, extconst(C1,C2) is a fact if externalPredicateInput is true, extpred(C1,C2) is a fact

The following predicates in the answer set of the eval heuristic program are used to create the evaluation graph: unit(U) creates an evaluation unit with id U use(U,C) uses C exclusively in evaluation unit U share(U,C) uses C shared in evaluation unit U

Definition in file EvalHeuristicASP.cpp.