Fix committed to the emil branch and to trunk in r3629.
I reran the preprocessor on the ALL_PLUS suite (which is a superset of the ALL
suite) and found that the fix affected the following domains:
* miconic-fulladl
* miconic-simpleadl
* movie
* psr-large
* psr-middle
* satellite
* schedule
* storage
In the first six of these, the only difference is that the preprocessor now
omits some redundant arc conditions on certain DTG arcs stemming from
conditional effects. Specifically, in the DTG for var x, transitions starting at
value foo could sometimes have "x = foo" as an arc condition. This is of course
clearly redundant, and such arc conditions are now no longer generated.
This change may lead to some small performance improvements for the h_cea
heuristic, but I don't think any experiments desperately need to be re-run
because of that. Wouldn't hurt though. I don't think this should affect LAMA's
landmark generation because I don't think it looks at the conditions of the DTG
arcs. Silvia, correct me if I'm wrong. I don't think this should affect h_CG
because it only considers arc conditions on lower-level variables.
Altogether, 363900 redundant arc conditions were removed in these domains.
In Schedule and Storage, changes were more significant. In Schedule, there were
26466 bogus DTG transitions with unsatisfiable conditions like "x = a AND x = b"
for the same variable x and different values a, b. These conditions were wrong,
and have now been replaced with the correct (satisfiable) arc conditions.
In Storage, there were 588253 bogus DTG transitions included in the output which
shouldn't have been there. These were all transitions for var x from value foo
that included a condition "x = bar" for some bar != foo, which is of course not
satisfiable. The corrected preprocessor no longer includes these transitions.
I'd recommend rerunning all experiments involving h_CG and h_cea on Schedule and
all experiments involving h_cea on Storage. I don't know how these changes
affect LAMA's landmark generation method, so maybe rerun those too to be on the
safe side. (Of course, first update, make and rerun the preprocessor. Be sure
not to rerun the preprocessor while any experiments are running.)
|