1#ifndef TASK_UTILS_CAUSAL_GRAPH_H
2#define TASK_UTILS_CAUSAL_GRAPH_H
54typedef std::vector<std::vector<int>> IntRelation;
59namespace causal_graph {
62 IntRelation pre_to_eff;
63 IntRelation eff_to_pre;
64 IntRelation eff_to_eff;
66 IntRelation successors;
67 IntRelation predecessors;
72 void dump(
const TaskProxy& task_proxy)
const;
80 explicit CausalGraph(
const TaskProxy& task_proxy);
102 const std::vector<int>& get_pre_to_eff(
int var)
const
104 return pre_to_eff[var];
107 const std::vector<int>& get_eff_to_pre(
int var)
const
109 return eff_to_pre[var];
112 const std::vector<int>& get_eff_to_eff(
int var)
const
114 return eff_to_eff[var];
117 const std::vector<int>& get_successors(
int var)
const
119 return successors[var];
122 const std::vector<int>& get_predecessors(
int var)
const
124 return predecessors[var];
127 const std::vector<std::vector<int>>& get_arcs()
const {
return successors; }
129 const std::vector<std::vector<int>>& get_inverse_arcs()
const
137extern const CausalGraph& get_causal_graph(
const AbstractTask* task);