Index: src/search/lazy_search.cc |
=================================================================== |
--- a/src/search/lazy_search.cc |
+++ b/src/search/lazy_search.cc |
@@ -203,13 +203,14 @@ |
} |
static SearchEngine *_parse(OptionParser &parser) { |
+ parser.document_synopsis("Lazy best first search", ""); |
Plugin<OpenList<OpenListEntryLazy > >::register_open_lists(); |
- parser.add_option<OpenList<OpenListEntryLazy> *>("open"); |
- parser.add_option<bool>("reopen_closed", false, |
- "reopen closed nodes"); |
+ parser.add_option<OpenList<OpenListEntryLazy> *>("open", "open list"); |
+ parser.add_option<bool>("reopen_closed", |
+ "reopen closed nodes", "false"); |
parser.add_list_option<Heuristic *>( |
- "preferred", vector<Heuristic *>(), |
- "use preferred operators of these heuristics"); |
+ "preferred", |
+ "use preferred operators of these heuristics", "[]"); |
SearchEngine::add_options_to_parser(parser); |
Options opts = parser.parse(); |
@@ -226,14 +227,28 @@ |
static SearchEngine *_parse_greedy(OptionParser &parser) { |
- parser.add_list_option<ScalarEvaluator *>("evals"); |
+ parser.document_synopsis("Greedy search (lazy)", ""); |
+ parser.document_note( |
+ "Open lists", |
+ "In most cases, lazy greedy best first search uses " |
+ "an alternation open list with one queue for each evaluator. " |
+ "If preferred operator heuristics are used, it adds an " |
+ "extra queue for each of these evaluators that includes " |
+ "only the nodes that are generated with a preferred operator. " |
+ "If only one evaluator and no preferred operator heuristic is used, " |
+ "the search does not use an alternation open list " |
+ "but a standard open list with only one queue."); |
+ parser.add_list_option<ScalarEvaluator *>("evals", "scalar evaluators"); |
parser.add_list_option<Heuristic *>( |
- "preferred", vector<Heuristic *>(), |
- "use preferred operators of these heuristics"); |
- parser.add_option<bool>("reopen_closed", false, |
- "reopen closed nodes"); |
- parser.add_option<int>("boost", DEFAULT_LAZY_BOOST, |
- "boost value for preferred operator open lists"); |
+ "preferred", |
+ "use preferred operators of these heuristics", "[]"); |
+ parser.add_option<bool>("reopen_closed", |
+ "reopen closed nodes", "false"); |
+ parser.add_option<int>( |
+ "boost", |
+ "boost value for alternation queues that are restricted " |
+ "to preferred operator nodes", |
+ OptionParser::to_str(DEFAULT_LAZY_BOOST)); |
SearchEngine::add_options_to_parser(parser); |
Options opts = parser.parse(); |
@@ -270,14 +285,28 @@ |
} |
static SearchEngine *_parse_weighted_astar(OptionParser &parser) { |
+ parser.document_synopsis( |
+ "(Weighted) A* search (lazy)", |
+ "Weighted A* is a special case of lazy best first search."); |
+ parser.document_note( |
+ "Open lists", |
+ "In the general case, it uses an alternation open list " |
+ "with one queue for each evaluator h that ranks the nodes " |
+ "by g + w * h. If preferred operator heuristics are used, " |
+ "it adds for each of the evaluators another such queue that " |
+ "only inserts nodes that are generated by preferred operators. " |
+ "In the special case with only one evaluator and no preferred " |
+ "operator heuristics, it uses a single queue that " |
+ "is ranked by g + w * h. "); |
parser.add_list_option<ScalarEvaluator *>("evals"); |
karpase
2012/10/24 13:49:19
Shouldn't there be a second parameter saying "Scal
malte.helmert
2012/10/24 16:50:12
Yes, I think so. Added.
|
parser.add_list_option<Heuristic *>( |
- "preferred", vector<Heuristic *>(), |
- "use preferred operators of these heuristics"); |
- parser.add_option<bool>("reopen_closed", true, "reopen closed nodes"); |
- parser.add_option<int>("boost", DEFAULT_LAZY_BOOST, |
- "boost value for preferred operator open lists"); |
- parser.add_option<int>("w", 1, "heuristic weight"); |
+ "preferred", |
+ "use preferred operators of these heuristics", "[]"); |
+ parser.add_option<bool>("reopen_closed", "reopen closed nodes", "true"); |
+ parser.add_option<int>("boost", |
+ "boost value for preferred operator open lists", |
+ OptionParser::to_str(DEFAULT_LAZY_BOOST)); |
+ parser.add_option<int>("w", "heuristic weight", "1"); |
SearchEngine::add_options_to_parser(parser); |
Options opts = parser.parse(); |