1#ifndef OPERATOR_COUNTING_STATE_EQUATION_CONSTRAINTS_H
2#define OPERATOR_COUNTING_STATE_EQUATION_CONSTRAINTS_H
4#include "downward/operator_counting/constraint_generator.h"
6#include "downward/utils/logging.h"
16namespace operator_counting {
21 std::set<int> always_produced_by;
22 std::set<int> sometimes_produced_by;
23 std::set<int> always_consumed_by;
26 : constraint_index(-1)
29 ~Proposition() =
default;
32class StateEquationConstraints :
public ConstraintGenerator {
33 mutable utils::LogProxy log;
34 std::vector<std::vector<Proposition>> propositions;
36 std::vector<int> goal_state;
38 void build_propositions(
const TaskProxy& task_proxy);
40 named_vector::NamedVector<lp::LPConstraint>& constraints,
44 explicit StateEquationConstraints(utils::Verbosity verbosity);
45 virtual void initialize_constraints(
46 const std::shared_ptr<AbstractTask>& task,
47 lp::LinearProgram& lp)
override;
49 update_constraints(
const State& state, lp::LPSolver& lp_solver)
override;