1#ifndef OPERATOR_COUNTING_PHO_CONSTRAINTS_H
2#define OPERATOR_COUNTING_PHO_CONSTRAINTS_H
4#include "downward/operator_counting/constraint_generator.h"
6#include "downward/algorithms/named_vector.h"
8#include "downward/pdbs/types.h"
13class PatternCollectionGenerator;
16namespace operator_counting {
17class PhOConstraints :
public ConstraintGenerator {
18 std::shared_ptr<pdbs::PatternCollectionGenerator> pattern_generator;
20 int constraint_offset;
21 std::shared_ptr<pdbs::PDBCollection> pdbs;
24 explicit PhOConstraints(
25 const std::shared_ptr<pdbs::PatternCollectionGenerator>& patterns);
27 virtual void initialize_constraints(
28 const std::shared_ptr<AbstractTask>& task,
29 lp::LinearProgram& lp)
override;
31 update_constraints(
const State& state, lp::LPSolver& lp_solver)
override;