The following will produce an assertion fail:
$ ./translate/translate.py ../benchmarks/parcprinter-08-strips/p27.pddl
$ ./preprocess/preprocess < output.sas
$ ./search/downward-1-debug --search
'astar(mas(max_states=200000,merge_strategy=5,shrink_strategy=SHRINK_DFP_ENABLE_GREEDY_BISIMULATION))'
< output
[...]
next variable: #64
shrink by 183334 nodes (from 200000 to 16666)
Size of collapsed groups =25524
Simplification was not f-preserving -- must recompute distances.
size of abstraction after shrink: 25524, Threshold: 16666
downward-1-debug: raz_abstraction.cc:1993: void Abstraction::shrink(int,
ShrinkStrategy, bool): Assertion `size() <= threshold || threshold == 1' failed.
Peak memory: 521876 KB
caught signal 6 -- exiting
When not running in debug mode, a segfault will occur.
The reason for this failure:
See the first lines of the method
compute_abstraction_dfp_action_cost_support(...) in raz_abstraction.cc.
num_groups is at least as big as num_used_h. But num_used_h may be greater than
the target size already. So especially if max_states is small, this
implementation will fail on many tasks.
|