Issue91

Title h_add, h_max and possibly other heuristics don't respect costs
Priority bug Status resolved
Superseder Nosy List erez, malte, patrik
Assigned To malte Keywords 1.0
Optional summary

Created on 2010-06-25.16:07:30 by malte, last changed by malte.

Files
File name Uploaded Type Edit Remove
domain.pddl malte, 2010-06-25.16:07:30 application/octet-stream
problem.pddl malte, 2010-06-25.16:08:53 application/octet-stream
Messages
msg1206 (view) Author: malte Date: 2011-01-20.03:13:05
This is done apart from the incomplete action cost support for merge-and-shrink
that is tracked in issue193 and issue211 and the suggested
capable()/admissible()/consistent() methods. I'm closing this. If someone is
interested in these methods, please open a separate "wish" issue.
msg876 (view) Author: malte Date: 2010-12-16.21:19:27
> I will document what I know, and leave question marks where I'm not sure

I've filled in the blanks. Patrik,
   http://www.fast-downward.org/HeuristicSpecification
should now contain the info you're interested in. We're hoping to add action
cost support to more heuristics very soon (within a few days).
msg873 (view) Author: erez Date: 2010-12-16.16:37:18
I will document what I know, and leave question marks where I'm not sure
msg872 (view) Author: malte Date: 2010-12-16.16:27:06
Makes sense to me (but let's maybe wait until after the IPC deadline?). A
"consistent" method would be useful too -- we have one or two places in the code
that say something like "TODO: If the heuristic is consistent, we should assert
here that this node is not closed" or something along those lines.

In the meantime, I'm really sorry I haven't yet dealt with Patrik's very small
original request: to document current language support properly in the user
documentation. Erez, do you have time for that? I could do it too, but there are
some work-intensive things I'd have to do first (not related to the planner).
msg870 (view) Author: erez Date: 2010-12-16.15:20:10
The heuristics that look at action costs:
h^m, landmarks, exploration (landmark's FF), LM-CUT

I suggest we add two methods:

bool Heuristic::capable()
bool Heuristic::admissible()

where capable would return whether this heuristic can work on the current 
problem, and admissible would return whether this heuristic is admissible for 
the current problem.
This would allow us (for example) to use selective-max between LM-CUT and 
landmarks where LM-CUT works, and landmarks alone otherwise.
msg533 (view) Author: patrik Date: 2010-10-02.05:49:36
Suggestion: as an interim measure, it would be really great if the documentation
(HeuristicSpecification page) simply listed for each heuristic if it respects
action costs or not. Also other restrictions (e.g., works/doesn't work with
conditional effects, axioms, etc) would be very nice to have listed there.
msg359 (view) Author: malte Date: 2010-07-24.16:00:06
Agreed.
msg358 (view) Author: erez Date: 2010-07-24.15:55:44
I think (following Holger's philosophy) that there should be a parameter of 
whether we ignore action costs or not (for the inadmissible heuristics at least)
msg340 (view) Author: malte Date: 2010-06-25.16:07:30
After adding action costs, h_max and h_add have not been extended to properly
support them. In particular, the "poor man's h_add" is not suitable for problems
with widely varying costs, such as the attached problem by Moritz.

So, we need to
 * properly support action costs, and
 * test that this does not (much) negatively affect performance in the
   unit-cost case.

Also make sure that costs are taken into account when removing dominating
transitions.

For 1.0, if we don't get this implemented in time, the least we should do is to
properly complain if e.g. h_max is called on a non-unit-cost problem (since one
would expect admissibility here), and to warn strongly when h_add is called on
such a problem.
History
Date User Action Args
2011-01-20 03:13:05maltesetstatus: chatting -> resolved
messages: + msg1206
2010-12-16 21:19:27maltesetmessages: + msg876
2010-12-16 16:37:18erezsetmessages: + msg873
2010-12-16 16:27:06maltesetmessages: + msg872
2010-12-16 15:20:10erezsetmessages: + msg870
2010-10-02 05:49:36patriksetnosy: + patrik
messages: + msg533
2010-07-24 16:00:06maltesetmessages: + msg359
2010-07-24 15:55:45erezsetnosy: + erez
messages: + msg358
2010-06-25 16:08:53maltesetfiles: + problem.pddl
2010-06-25 16:07:30maltecreate