KCL-Planning / SMTPlan

PDDL+ planning through compilation to SMT
44 stars 19 forks source link

Piranha error #1

Closed francos3 closed 7 years ago

francos3 commented 7 years ago

Hi,

Calling SMTPLan results in piranha error no matter which problem we try. Note there was a fix for exactly this problem https://github.com/KCL-

Planning/SMTPlan/commit/04e310a7179ef1d154a51c500de9e46afd9d06e4 but unfortunately, it does not seem to have done it for me.


My system is: Ubuntu 16.10 g++ (6.2) cmake version 3.5.2


To compile I tried both the regular g++ compiler for Ubuntu 16.10 and CC=/usr/bin/gcc-4.8 CXX=g++-4.8 cmake .. just in case this was the problem. The error is exactly the same in both cases.

**build/SMTPlan ../benchmarks/car_nodrag/car_domain_nodrag.pddl ../benchmarks/car_nodrag/car_prob01.pddl

terminate called after throwing an instance of 'std::invalid_argument' what():
function: dispatch_binary_div where: /usr/local/include/piranha/series.hpp, 844 what: divisor in series division does not consist of a single coefficient**

Aborted (core dumped)

Thanks!!!

phonpr commented 7 years ago

We're also seeing the same issue.

m312z commented 7 years ago

I've managed to recreate the issue on my machine. The error comes from a division that strips out the "#t" term from an operator's effects. for example, The division "hasht / hasht" is throwing the error.

I've posted an issue onto the piranha github (bluescari/pirnaha #106). Hopefully someone there can explain if there is a new way in which to declare the expressions.

Otherwise, I will have to swap in a different library to perform the integration, which will take a bit longer.

regards, Michael

phonpr commented 7 years ago

Hello Michael,

Can you share what Piranha version have you used for this project? Seems the README asks to 'git clone' the latest Piranha, and that maybe why it stopped working with Piranha's change?

Can you share what version (in tags, 0.1, 0.2, ..) or commit# the time you've cloned the project?

m312z commented 7 years ago

Hello all,

The developer of Piranha replied very quickly with a workaround! In particular:

The current Piranha version can still deal with Laurent polynomials, so the snippet you quoted can be written in another form as: pexpr y = x * math::pow(x,-1);

I've pushed the change already, and it seems to work.

Regards, Michael