aig-upf / fs-private

This is the private version of the FS planner repository
GNU General Public License v3.0
5 stars 1 forks source link

Stressing Lifted Planning driver #3

Closed miquelramirez closed 7 years ago

miquelramirez commented 7 years ago

Hello,

I tried to run FS with the lifted driver on the first instance of this very interesting benchmark:

http://www.cs.ryerson.ca/~mes/publications/organicChemistrySynthesisBenchmarkPDDL.zip

published on this site. See the publications mentioned on this second link for details on the origins of the model.

FS is crashing with the following exception

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Loading problem data
Number of objects: 121
Number of state variables: 42483
Number of action schemata: 52
Number of (perhaps partially) ground actions: 0
Number of state constraints: 0
Number of goal conditions: 66
Starting search...
terminate called after throwing an instance of 'Gecode::Int::VariableEmptyDomain'
  what():  IntVar::IntVar: Attempt to create variable with empty domain

and the following stack trace

#0  0x00007ffff52ab428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff52ad02a in __GI_abort () at abort.c:89
#2  0x00007ffff58e484d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff58e26b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff58e2701 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff58e2919 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff5c38fc9 in Gecode::IntVar::IntVar (this=0x7fffffffd2a0, home=..., ds=...) at gecode/int/var/int.cpp:55
#7  0x00007ffff79c8f12 in fs0::gecode::Helper::createVariable (csp=..., typeId=23) at build/debug/src/constraints/gecode/helper.cxx:45
#8  0x00007ffff79c8cc0 in fs0::gecode::Helper::createTemporaryVariable (csp=..., typeId=23) at build/debug/src/constraints/gecode/helper.cxx:20
#9  0x00007ffff79cc38e in fs0::gecode::CSPTranslator::registerExistentialVariable (this=0x2b21fd0, variable=0x2b2b3e0) at build/debug/src/constraints/gecode/csp_translator.cxx:51
#10 0x00007ffff79d5a90 in fs0::gecode::BoundVariableTermTranslator::registerVariables (this=0x2830d60, term=0x2b2b3e0, translator=...) at build/debug/src/constraints/gecode/translators/component_translator.cxx:44
#11 0x00007ffff79de98a in fs0::gecode::BaseCSP::registerTermVariables (term=0x2b2b3e0, translator=...) at build/debug/src/constraints/gecode/handlers/base_csp.cxx:22
#12 0x00007ffff79dedba in fs0::gecode::BaseCSP::register_csp_variables (this=0x2b21e60) at build/debug/src/constraints/gecode/handlers/base_csp.cxx:96
#13 0x00007ffff79df0fb in fs0::gecode::BaseCSP::createCSPVariables (this=0x2b21e60, use_novelty_constraint=false) at build/debug/src/constraints/gecode/handlers/base_csp.cxx:136
#14 0x00007ffff79f6548 in fs0::gecode::BaseActionCSP::init (this=0x2b21e60, use_novelty_constraint=false) at build/debug/src/constraints/gecode/handlers/base_action_csp.cxx:35
#15 0x00007ffff79f4123 in fs0::gecode::LiftedActionCSP::init (this=0x2b21e60, use_novelty_constraint=false) at build/debug/src/constraints/gecode/handlers/lifted_action_csp.cxx:41
#16 0x00007ffff79f3e77 in fs0::gecode::LiftedActionCSP::create_derived (schemata=std::vector of length 52, capacity 64 = {...}, tuple_index=..., approximate=false, novelty=false)
    at build/debug/src/constraints/gecode/handlers/lifted_action_csp.cxx:27
#17 0x00007ffff79ae3e8 in fs0::drivers::FullyLiftedDriver::setup (this=0x7fffffffd6af, config=..., problem=...) at build/debug/src/search/drivers/fully_lifted_driver.cxx:47
#18 0x00007ffff7968cfa in fs0::drivers::SearchUtils::instantiate_seach_engine_and_run (problem=..., config=..., driver_tag="lifted", out_dir=".", start_time=0.0199999996) at build/debug/src/search/search.cxx:84
#19 0x00007ffff7967377 in fs0::drivers::Runner::run (this=0x7fffffffd9a0) at build/debug/src/search/runner.cxx:33
#20 0x0000000000403e78 in main (argc=3, argv=0x7fffffffdb88) at main.cxx:13

Looks like my assumption that STRIPS is a subset of FSTRIPS holds, but there is some implementation detail when the state variables are boolean? Note that the domains could be easily recoded with functions replacing the predicates (bond ) and (doublebond). But anyways, I think it will be healthy to get to the bottom of this.

miquelramirez commented 7 years ago

Have you ever seen a problem with 40,000 state variables? :8ball:

gfrances commented 7 years ago

These benchmarks are working quite well now in the latest beta, so I'll close thi, but feel free to reopen if there's still something unclear!