I reviewed the individual commits. Apart from the last round of minor comments,
this looks mergeable to me :-) Should somebody else have a look, Malte?
I'm generally not a fan of retyping the namespaces all the time in
implementation files. (Header files are a different story because they inject
dependencies etc.)
Link to pull request:
https://bitbucket.org/danielkillenberger/fast-downward/pull-requests/5
I added some minor comments. Maybe we should add "using namespace
domain_transition_graph" to cea_heuristic.cc and cg_heuristic.cc to avoid
repeating the namespace so often. We usually explicitly type the namespaces, but
maybe we should make an exception here since the files are tightly coupled. What
do the others think about this?
We need to keep in mind Gabi's and Malte's comments:
> The domain transition graph implementation has been designed to meet the
> specific needs of the causal graph and context-enhanced additive
> heuristic and should in my opinion not be used for general purposes.
> So it should rather be moved to the heuristics directory.
That's true. It would be good to add a comment to
domain_transition_graph.h that explains that (at least in its current
form) the DTG implementation is only useful for CG and CEA.
I guess in terms of plug-ins, this means we need a separate
(dependency-only) plug-in for domain_transition_graph and make CG and
CEA depend on it.
Move the following files from search/ to search/task_utils/ and give them plugins and
namespaces:
causal_graph
domain_transition_graph
sampling
successor_generator
task_tools -> task_properties
variable_order_finder