Issue384

Title Use variables instead of predicate names for disjunctive landmarks classes
Priority feature Status chatting
Superseder Nosy List gabi, jendrik, malte, salome, silvan
Assigned To Keywords
Optional summary

Created on 2013-06-24.12:09:41 by gabi, last changed by salome.

Files
File name Uploaded Type Edit Remove
issue384_optimal_landmarks.png salome, 2013-06-25.15:42:11 image/png
issue384_optimal_searchtime.png salome, 2013-06-25.15:42:57 image/png
Messages
msg11535 (view) Author: salome Date: 2024-01-24.12:55:27
After ten long years, the satisficing results are finally here! :)

Jokes aside, I reimplemented the suggested change and tested it:
https://ai.dmi.unibas.ch/_experiments/ai/downward/issue384/data/issue384-v1-opt-eval/issue384-v1-opt-issue384-base-issue384-v1-compare.html
https://ai.dmi.unibas.ch/_experiments/ai/downward/issue384/data/issue384-v1-sat-eval/issue384-v1-sat-issue384-base-issue384-v1-compare.html

Unfortunately the results are fairly terrible, we lose coverage in all configurations, and in some quite significantly (for example -11 in lama). Most prominently we often find fewer landmarks. For most domains it is a rather small loss, but for example in pathways we only find about half as many landmarks as before. There are a few domains however where we find more, for example in sokoban. The relative loss/gain in landmarks does however not always correspond to faster/slower search time: For example in barman-sat14 we only lose 2 landmarks per task (out of ~70 to ~90 depending on the task), but lm_rhw-v1 cannot solve a single instance  while the base version solved all instances within 110 seconds.

My next step would be to try and look into some domains where the differences are significant (like barman) and try to figure out what "types" of landmarks we lose/gain. Maybe this can give us an idea for a better disjunction class?

Since the results are not good I did not create a pull request but you can see the code changes here, there are very small:
https://github.com/salome-eriksson/downward/compare/main...salome-eriksson:downward:issue384
(If we want to go with variable id as equivalence relation we could probably also remove all the code regarding disjunction classes and directly use the variable id where relevant; but I wanted to keep the code change small and keep the possibility of defining different equivalence relations.)
msg8907 (view) Author: jendrik Date: 2019-06-14.15:52:40
I removed the "superseder" value (issue289) since the issue at hand is not
superseded.
msg2515 (view) Author: salome Date: 2013-06-25.15:45:12
I implemented this change and tested it on the suite optimal_with_ipc11(). I
added the scatterplots for number of landmarks and search time. Interestingly
enough there are in most cases less disjunctive landmarks over finite domain
variables found then over PDDL predicates.
The results for satsificing will follow...
msg2500 (view) Author: gabi Date: 2013-06-24.12:09:41
This is a follow up to issue289.

There Malte wrote:
"After we fix this, I suggest that we also look at different ways of restricting
which disjunctive landmarks to allow rather than looking at predicate names.
Using predicate names always looked like a bit of a hack to me, since the search
component of the planner is otherwise based on the finite-domain representation
of the planner, which has no such thing. I'd like to see what happens if we look
at other criteria instead, e.g. only allowing disjunctive landmarks where all
facts refer to the same finite-domain variable."
History
Date User Action Args
2024-01-24 12:55:27salomesetmessages: + msg11535
2019-06-14 15:52:40jendriksetsuperseder: - Disjunctive landmarks creation is buggy
messages: + msg8907
nosy: + jendrik
2013-06-25 15:45:20salomesetmessages: - msg2514
2013-06-25 15:45:12salomesetmessages: + msg2515
2013-06-25 15:42:57salomesetfiles: + issue384_optimal_searchtime.png
status: unread -> chatting
messages: + msg2514
2013-06-25 15:42:11salomesetfiles: + issue384_optimal_landmarks.png
2013-06-24 12:09:41gabicreate