4#include "downward/per_task_information.h"
5#include "downward/task_proxy.h"
13 std::vector<AxiomRule*> condition_of;
17 int unsatisfied_conditions;
20 AxiomLiteral* effect_literal;
25 AxiomLiteral* eff_literal)
26 : condition_count(cond_count)
27 , unsatisfied_conditions(cond_count)
30 , effect_literal(eff_literal)
34 struct NegationByFailureInfo {
36 AxiomLiteral* literal;
37 NegationByFailureInfo(
int var, AxiomLiteral* lit)
46 std::vector<std::vector<AxiomLiteral>> axiom_literals;
47 std::vector<AxiomRule> rules;
48 std::vector<std::vector<NegationByFailureInfo>> nbf_info_by_layer;
60 std::vector<int> default_values;
66 std::vector<const AxiomLiteral*> queue;
68 template <
typename Values,
typename Accessor>
69 void evaluate_aux(Values& values,
const Accessor& accessor);
72 explicit AxiomEvaluator(
const PlanningTaskProxy& task_proxy);
74 void evaluate(std::vector<int>& state);
77extern PerTaskInformation<AxiomEvaluator> g_axiom_evaluators;