Differences between revisions 17 and 18
Revision 17 as of 2010-12-06 09:33:34
Size: 4533
Editor: ErezKarpas
Comment:
Revision 18 as of 2010-12-07 02:14:58
Size: 4449
Comment:
Deletions are marked like this. Additions are marked like this.
Line 88: Line 88:
If you would like to have another translation from an old-style configuration to the new call-syntax,
please add it here as a TODO.
Line 91: Line 89:
TODO: I would like to see an example that uses the Lama-FF Synergy feature. I'd be most interested in a configuration that is as close to LAMA as currently possible (i.e., using the LAMA and FF heuristics with synergy in a lazy alternation search with preferred operators for both heuristics, using iterated search with the appropriate set of options). Q: I would like to see an example that uses the Lama-FF Synergy feature. I'd be most interested in a configuration that is as close to LAMA as currently possible (i.e., using the LAMA and FF heuristics with synergy in a lazy alternation search with preferred operators for both heuristics, using iterated search with the appropriate set of options).
Line 93: Line 91:
I don't know what iterated search LAMA is performing, but if you describe it in words, I can probably formulate it as a fast downward call. The following would be the call to the old lazy greedy alternation search with LAMA and FF heuristics with synergy, using both heuristics for preferred operators. A: The following would be the call to the lazy greedy alternation search with LAMA and FF heuristics with synergy, using both heuristics for preferred operators (but not using iterated search).
Line 97: Line 95:
            --search "old_greedy(hlm, hff, preferred=(hlm, hff))"             --search "lazy_greedy(hlm, hff, preferred=(hlm, hff))"
Line 101: Line 99:
This is as close to LAMA as we have right now (same search and heuristics, no caching and no +1 to operator cost): And this is as close to LAMA as we have right now (same search and heuristics, iterated search, but no caching and no +1 to operator cost):
Line 113: Line 111:

If you would like to have another translation from an old-style configuration to the new call-syntax,
please add it here as a TODO.

Back to HomePage.

Usage

Running the planner is a three-step process as explained in Section 3 (pp. 202-203) of the JAIR paper on Fast Downward. The following instructions show how to run these three steps, in sequence, assuming that the preprocessor and search component have been compiled and that you are currently located in the src directory.

Translator

translate/translate.py [DOMAIN] PROBLEM
  • DOMAIN (filename): PDDL domain file

  • PROBLEM (filename): PDDL problem file

If the domain file is not given, the planner will try to infer a likely name from the problem file name, using the conventions used at the various IPCs. (If in doubt if this will work for you, just try it out.)

Note: Creates a file called output.sas (as well as test.groups, all.groups, ...)

Preprocessor

preprocess/preprocess < OUTPUT.SAS
  • OUTPUT.SAS (filename): translator output

Note: Creates a file called output

Search component

search/downward [OPTIONS] --search SEARCH < OUTPUT
  • SEARCH (SearchEngine): configuration of the search algorithm

  • OUTPUT (filename): preprocessor output

Options:

  • --heuristic HEURISTIC_PREDEFINITION

    • Predefines a heuristic that can afterwards be referenced by the name that is specified in the definition.
  • --random-seed SEED

    • Use random seed SEED

Examples

A* search:

   1 # landmark-cut heuristic (previously configuration "ou")
   2  ./downward --search "astar(lmcut())" < output
   3 
   4 # merge-and-shrink heuristic with default settings (previously configuration "oa50000")
   5  ./downward --search "astar(mas())" < output
   6 
   7 # blind heuristic (previously configuarion "ob")
   8  ./downward --search "astar(blind())" < output

Lazy greedy best first search with preferred operators and the queue alternation method:

   1 ## using FF heuristic and context-enhanced additive heuristic (previously: "fFyY")
   2  ./downward --heuristic "hff=ff()" --heuristic "hcea=cea()" \
   3             --search "lazy_greedy(hff, hcea, preferred=(hff, hcea))" \
   4             < output
   5 
   6 ## using FF heuristic (previously: "fF")
   7  ./downward --heuristic "hff=ff()" \
   8             --search "lazy_greedy(hff, preferred=(hff))" \
   9             < output
  10 
  11 ## using context-enhanced additive heuristic (previously: "yY")
  12  ./downward --heuristic "hcea=cea()" \
  13             --search "lazy_greedy(hcea, preferred=(hcea))" \
  14             < output

The above examples use the new best-first search implementation. For comparison, the old best-first search implementation is still available:

 ./downward --heuristic "hff=ff()" --heuristic "hcea=cea()" \
            --search "old_greedy(hff, hcea, preferred=(hff, hcea))" \
            < output

Q: I would like to see an example that uses the Lama-FF Synergy feature. I'd be most interested in a configuration that is as close to LAMA as currently possible (i.e., using the LAMA and FF heuristics with synergy in a lazy alternation search with preferred operators for both heuristics, using iterated search with the appropriate set of options).

A: The following would be the call to the lazy greedy alternation search with LAMA and FF heuristics with synergy, using both heuristics for preferred operators (but not using iterated search).

 ./downward --heuristic "hlm,hff=lm_ff_syn()" 
            --search "lazy_greedy(hlm, hff, preferred=(hlm, hff))" 
            < output

And this is as close to LAMA as we have right now (same search and heuristics, iterated search, but no caching and no +1 to operator cost):

./downward --heuristic "hlm,hff=lm_ff_syn()"
           --search "iterated(
                              lazy_greedy(hff,hlm,preferred=(hff,hlm)),
                              lazy_wastar(hff,hlm,preferred=(hff,hlm),w=5),
                              lazy_wastar(hff,hlm,preferred=(hff,hlm),w=3),
                              lazy_wastar(hff,hlm,preferred=(hff,hlm),w=2),
                              lazy_wastar(hff,hlm,preferred=(hff,hlm),w=1),
                              repeat_last=true)" < output

If you would like to have another translation from an old-style configuration to the new call-syntax, please add it here as a TODO.

FastDownward: PlannerUsage (last edited 2023-10-12 12:14:59 by GabiRoeger)