1#ifndef PROBFD_CARTESIAN_ABSTRACT_STATE_H
2#define PROBFD_CARTESIAN_ABSTRACT_STATE_H
4#include "probfd/cartesian_abstractions/types.h"
6#include "downward/cartesian_abstractions/cartesian_set.h"
18class ProbabilisticOperatorProxy;
19class ProbabilisticEffectsProxy;
22namespace probfd::cartesian_abstractions {
34 CartesianSet cartesian_set_;
37 AbstractState(
int state_id, NodeID node_id, CartesianSet&& cartesian_set);
39 AbstractState(
const AbstractState&) =
delete;
40 AbstractState& operator=(
const AbstractState&) =
delete;
43 bool domain_subsets_intersect(
const AbstractState& other,
int var)
const;
47 int count(
int var)
const;
50 bool contains(
int var,
int value)
const;
56 const ProbabilisticOperatorProxy& op,
57 const ProbabilisticEffectsProxy& effects)
const;
64 std::pair<CartesianSet, CartesianSet>
65 split_domain(
int var,
const std::vector<int>& wanted)
const;
68 bool includes(
const AbstractState& other)
const;
71 bool includes(
const State& concrete_state)
const;
74 bool includes(
const std::vector<FactPair>& facts)
const;
81 NodeID get_node_id()
const;
84 operator<<(std::ostream& os,
const AbstractState& state);
87 static std::unique_ptr<AbstractState>
88 get_trivial_abstract_state(
const std::vector<int>& domain_sizes);
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8