Issue252

Title landmark heuristic: problem with zero-cost operators and preferred operators
Priority bug Status resolved
Superseder Nosy List erez, malte, silvia
Assigned To erez Keywords
Optional summary

Created on 2011-08-04.17:48:19 by malte, last changed by erez.

Files
File name Uploaded Type Edit Remove
issue252-opt.html erez, 2011-08-10.16:08:05 text/html
issue252-sat.html erez, 2011-08-10.16:09:01 text/html
Messages
msg1543 (view) Author: malte Date: 2011-08-10.16:29:39
That is a bit strange in so far as LAMA shouldn't be affected -- it never used
0-cost operators in the heuristics. But in any case, looks good to me. Feel free
to close this if you're also happy with it.
msg1541 (view) Author: erez Date: 2011-08-10.16:09:01
Here is the evaluation data.
BJOLP is not different at all.
LAMA has some differences, most notably in parcprinter.
msg1513 (view) Author: malte Date: 2011-08-08.21:48:33
(Doesn't have to be a huge problem suite, but I'd like a large selection of
domains -- say, the first five instances of all IPC-2008 domains with
seq-opt-bjolp and with seq-sat-lama-2011.)
msg1512 (view) Author: malte Date: 2011-08-08.21:46:49
Merged. I'd prefer if this were given a proper test on a larger set of
benchmarks to verify that it doesn't misbehave. Can you do that?
msg1499 (view) Author: erez Date: 2011-08-08.09:52:58
Fix is in downward-fixes, branch issue252
msg1462 (view) Author: malte Date: 2011-08-05.10:58:11
Thanks, Erez!

For what it's worth, maybe the whole LM code needs a good check that 0-cost
landmarks are handled properly. I found another thing in the same file:

    // BUG/TODO/FIXME: This first test likely does the wrong thing in
    // the presence of zero-cost landmarks.
msg1460 (view) Author: erez Date: 2011-08-05.10:13:14
I can take care of this
msg1452 (view) Author: malte Date: 2011-08-04.17:48:19
The following code in LandmarkCountHeuristic::compute_heuristic is wrong:

    if (!use_preferred_operators || h == 0) { // no (need for) helpful actions,
return
        return h;
    }

The intent of the "h == 0" test is to skip computing preferred operators if
we're already at the goal, but in domains with zero-cost operators, h == 0
doesn't imply that we're at the goal.

One way to fix this would be to test if we're at the goal; maybe a cleaner way
would be to adapt the following code so that it works whether or not h == 0.

Any takers?
History
Date User Action Args
2011-08-10 16:31:28erezsetstatus: testing -> resolved
2011-08-10 16:29:39maltesetmessages: + msg1543
2011-08-10 16:09:01erezsetfiles: + issue252-sat.html
messages: + msg1541
2011-08-10 16:08:05erezsetfiles: + issue252-opt.html
2011-08-08 21:48:33maltesetmessages: + msg1513
2011-08-08 21:46:49maltesetstatus: reviewing -> testing
messages: + msg1512
2011-08-08 09:52:58erezsetstatus: chatting -> reviewing
messages: + msg1499
2011-08-05 10:58:11maltesetassignedto: erez
messages: + msg1462
2011-08-05 10:13:15erezsetmessages: + msg1460
2011-08-04 17:48:19maltecreate