Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class AdditiveCartesianHeuristicFeature
"abstraction refinement (CEGAR) for classical planning:" +
utils::format_conference_reference(
{"Jendrik Seipp", "Malte Helmert"},
"Counterexample-guided Cartesian Abstraction Refinement",
"Counterexample-Guided Cartesian Abstraction Refinement",
"https://ai.dmi.unibas.ch/papers/seipp-helmert-icaps2013.pdf",
"Proceedings of the 23rd International Conference on Automated "
"Planning and Scheduling (ICAPS 2013)",
Expand All @@ -82,7 +82,7 @@ class AdditiveCartesianHeuristicFeature
"Automated Planning and Scheduling (ICAPS 2014)",
"289-297", "AAAI Press", "2014") +
"For more details on Cartesian CEGAR and saturated cost partitioning, "
"see the journal paper" +
"see the article" +
utils::format_journal_reference(
{"Jendrik Seipp", "Malte Helmert"},
"Counterexample-Guided Cartesian Abstraction Refinement for "
Expand Down
33 changes: 30 additions & 3 deletions src/search/cartesian_abstractions/subtask_generators.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "../tasks/modified_goals_task.h"
#include "../utils/hash.h"
#include "../utils/logging.h"
#include "../utils/markup.h"
#include "../utils/rng.h"
#include "../utils/rng_options.h"

Expand Down Expand Up @@ -189,13 +190,32 @@ static tuple<FactOrder, int> get_fact_order_arguments_from_options(
utils::get_rng_arguments_from_options(opts));
}

static string get_references() {
return utils::format_conference_reference(
{"Jendrik Seipp", "Malte Helmert"},
"Diverse and Additive Cartesian Abstraction Heuristics",
"https://ai.dmi.unibas.ch/papers/seipp-helmert-icaps2014.pdf",
"Proceedings of the 24th International Conference on "
"Automated Planning and Scheduling (ICAPS 2014)",
"289-297", "AAAI Press", "2014") +
utils::format_journal_reference(
{"Jendrik Seipp", "Malte Helmert"},
"Counterexample-Guided Cartesian Abstraction Refinement for "
"Classical Planning",
"https://ai.dmi.unibas.ch/papers/seipp-helmert-jair2018.pdf",
"Journal of Artificial Intelligence Research", "62", "535-577",
"2018");
}

class TaskDuplicatorFeature
: public plugins::TypedFeature<TaskIndependentSubtaskGenerator> {
public:
TaskDuplicatorFeature() : TypedFeature("original") {
document_title("No abstraction");
document_synopsis(
"Copies of the original task are used as subproblems.");
"Copies of the original task are used as subproblems. For "
"details, see the following publications:" +
get_references());
add_option<int>(
"copies", "number of task copies", "1",
plugins::Bounds("1", "infinity"));
Expand All @@ -216,7 +236,10 @@ class GoalDecompositionFeature
GoalDecompositionFeature() : TypedFeature("goals") {
document_title("Abstraction by goals");
document_synopsis(
"For each goal atom of the original task one subproblem is generated having only the atom as its goal.");
"For each goal atom of the original task one subproblem is "
"generated having only the atom as its goal. For details, see the "
"following publications:" +
get_references());
add_fact_order_option(*this);
}

Expand All @@ -236,7 +259,11 @@ class LandmarkDecompositionFeature
LandmarkDecompositionFeature() : TypedFeature("landmarks") {
document_title("Abstraction by landmarks");
document_synopsis(
"For each fact landmark of the delete relaxation of the original task one subproblem is generated having only the landmark as goal. This is a generalization of abstractions by goals.");
"For each fact landmark of the delete relaxation of the original "
"task one subproblem is generated having only the landmark as "
"goal. This is a generalization of abstractions by goals. For "
"details, see the following publications:" +
get_references());
add_fact_order_option(*this);
add_option<bool>(
"combine_facts", "combine landmark facts with domain abstraction",
Expand Down
13 changes: 12 additions & 1 deletion src/search/evaluators/pref_evaluator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include "../evaluation_result.h"

#include "../plugins/plugin.h"
#include "../utils/markup.h"

using namespace std;

Expand All @@ -30,7 +31,17 @@ class PrefEvaluatorFeature
PrefEvaluatorFeature() : TypedFeature("pref") {
document_subcategory("evaluators_basic");
document_title("Preference evaluator");
document_synopsis("Returns 0 if preferred is true and 1 otherwise.");
document_synopsis(
"Returns 0 if preferred is true and 1 otherwise. For the use of "
"preferred operators in search, see the following paper:" +
utils::format_conference_reference(
{"Silvia Richter", "Malte Helmert"},
"Preferred Operators and Deferred Evaluation in "
"Satisficing Planning",
"https://doi.org/10.1609/icaps.v19i1.13345",
"Proceedings of the 19th International Conference on "
"Automated Planning and Scheduling (ICAPS 2009)",
"273-280", "AAAI Press", "2009"));

add_evaluator_options_to_feature(*this, "pref");
}
Expand Down
17 changes: 17 additions & 0 deletions src/search/heuristics/additive_heuristic.cc
Comment thread
grucla marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "../plugins/plugin.h"
#include "../task_utils/task_properties.h"
#include "../utils/logging.h"
#include "../utils/markup.h"

#include <cassert>
#include <vector>
Expand Down Expand Up @@ -150,6 +151,22 @@ class AdditiveHeuristicFeature
public:
AdditiveHeuristicFeature() : TypedFeature("add") {
document_title("Additive heuristic");
document_synopsis(
"The additive heuristic is described in the following article:" +
utils::format_journal_reference(
{"Blai Bonet", "Hector Geffner"},
"Planning as heuristic search",
"https://doi.org/10.1016/S0004-3702%2801%2900108-4",
"Artificial Intelligence", "129(1-2)", "5-33", "2001") +
"For a discussion of the heuristic in the context of planning "
"with action costs, see the following paper:" +
utils::format_conference_reference(
{"Emil Keyder", "Hector Geffner"},
"Heuristics for Planning with Action Costs Revisited",
"https://doi.org/10.3233/978-1-58603-891-5-588",
"Proceedings of the 18th European Conference on "
"Artificial Intelligence (ECAI 2008)",
"588-592", "IOS Press", "2008"));

relaxation_heuristic::add_relaxation_heuristic_options_to_feature(
*this, "add");
Expand Down
11 changes: 11 additions & 0 deletions src/search/heuristics/cea_heuristic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "../plugins/plugin.h"
#include "../task_utils/task_properties.h"
#include "../utils/logging.h"
#include "../utils/markup.h"

#include <cassert>
#include <limits>
Expand Down Expand Up @@ -455,6 +456,16 @@ class ContextEnhancedAdditiveHeuristicFeature
public:
ContextEnhancedAdditiveHeuristicFeature() : TypedFeature("cea") {
document_title("Context-enhanced additive heuristic");
document_synopsis(
"The context-enhanced additive heuristic is described in the "
"following paper:" +
utils::format_conference_reference(
{"Malte Helmert", "Hector Geffner"},
"Unifying the Causal Graph and Additive Heuristics",
"https://cdn.aaai.org/ICAPS/2008/ICAPS08-018.pdf",
"Proceedings of the 18th International Conference on "
"Automated Planning and Scheduling (ICAPS 2008)",
"140-147", "AAAI Press", "2008"));

tasks::add_axioms_option_to_feature(*this);
add_heuristic_options_to_feature(*this, "cea");
Expand Down
10 changes: 10 additions & 0 deletions src/search/heuristics/cg_heuristic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "../plugins/plugin.h"
#include "../task_utils/task_properties.h"
#include "../utils/logging.h"
#include "../utils/markup.h"

#include <algorithm>
#include <cassert>
Expand Down Expand Up @@ -291,6 +292,15 @@ class CGHeuristicFeature
public:
CGHeuristicFeature() : TypedFeature("cg") {
document_title("Causal graph heuristic");
document_synopsis(
"The causal graph heuristic is described in the following paper:" +
utils::format_conference_reference(
{"Malte Helmert"},
"A Planning Heuristic Based on Causal Graph Analysis",
"https://cdn.aaai.org/ICAPS/2004/ICAPS04-021.pdf",
"Proceedings of the 14th International Conference on Automated "
"Planning and Scheduling (ICAPS 2004)",
"161-170", "AAAI Press", "2004"));

add_option<int>(
"max_cache_size",
Expand Down
20 changes: 20 additions & 0 deletions src/search/heuristics/ff_heuristic.cc
Comment thread
grucla marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "../plugins/plugin.h"
#include "../task_utils/task_properties.h"
#include "../utils/logging.h"
#include "../utils/markup.h"

#include <cassert>

Expand Down Expand Up @@ -74,6 +75,25 @@ class FFHeuristicFeature
public:
FFHeuristicFeature() : TypedFeature("ff") {
document_title("FF heuristic");
document_synopsis(
"The FF heuristic was introduced in the following article:" +
utils::format_journal_reference(
{"Jörg Hoffmann", "Bernhard Nebel"},
"The FF Planning System: Fast Plan Generation Through "
"Heuristic Search",
"https://doi.org/10.1613/jair.855",
"Journal of Artificial Intelligence Research", "14", "253-302",
"2001") +
"This implementation extracts the relaxed plan from the best "
"supporters of the additive heuristic, which takes action costs "
"into account. This variant is described in the following paper:" +
utils::format_conference_reference(
{"Emil Keyder", "Hector Geffner"},
"Heuristics for Planning with Action Costs Revisited",
"https://doi.org/10.3233/978-1-58603-891-5-588",
"Proceedings of the 18th European Conference on "
"Artificial Intelligence (ECAI 2008)",
"588-592", "IOS Press", "2008"));

relaxation_heuristic::add_relaxation_heuristic_options_to_feature(
*this, "ff");
Expand Down
11 changes: 11 additions & 0 deletions src/search/heuristics/goal_count_heuristic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include "../plugins/plugin.h"
#include "../utils/logging.h"
#include "../utils/markup.h"

#include <iostream>
using namespace std;
Expand Down Expand Up @@ -34,6 +35,16 @@ class GoalCountHeuristicFeature
public:
GoalCountHeuristicFeature() : TypedFeature("goalcount") {
document_title("Goal count heuristic");
document_synopsis(
"Counts the goal facts that are not true in the current state. "
"An early use of the number of remaining goals to guide planning "
"search is described in the following article:" +
utils::format_journal_reference(
{"Richard E. Fikes", "Nils J. Nilsson"},
"STRIPS: A New Approach to the Application of Theorem Proving "
"to Problem Solving",
"https://doi.org/10.1016/0004-3702%2871%2990010-5",
"Artificial Intelligence", "2(3-4)", "189-208", "1971"));

add_heuristic_options_to_feature(*this, "goalcount");

Expand Down
14 changes: 14 additions & 0 deletions src/search/heuristics/hm_heuristic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "../plugins/plugin.h"
#include "../task_utils/task_properties.h"
#include "../utils/logging.h"
#include "../utils/markup.h"

#include <cassert>
#include <limits>
Expand Down Expand Up @@ -257,6 +258,19 @@ class HMHeuristicFeature
public:
HMHeuristicFeature() : TypedFeature("hm") {
document_title("h^m heuristic");
document_synopsis(
"The h^m family of heuristics is described in the following paper:" +
utils::format_conference_reference(
{"Patrik Haslum", "Hector Geffner"},
"Admissible Heuristics for Optimal Planning",
"https://www.ida.liu.se/divisions/aiics/publications/"
"AIPS-2000-Admissible-Heuristics-Optimal.pdf",
"Proceedings of the Fifth International Conference on "
"Artificial Intelligence Planning Systems (AIPS 2000)",
"140-149", "AAAI Press", "2000") +
"Note that the implementation of the h^m heuristic is "
"preliminary and very inefficient. Please do not use it for "
"comparisons.");

add_option<int>(
"m", "subset size", "2", plugins::Bounds("1", "infinity"));
Expand Down
2 changes: 1 addition & 1 deletion src/search/heuristics/lm_cut_heuristic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class LandmarkCutHeuristicFeature
"https://ai.dmi.unibas.ch/papers/helmert-domshlak-icaps2009.pdf",
"Proceedings of the 19th International Conference on Automated "
"Planning and Scheduling (ICAPS 2009)",
"162-169", "", "2009") +
"162-169", "AAAI Press", "2009") +
"\n" +
"The tie-breaking strategies for the precondition choice function "
"(options {{{goal_zone_detection}}} and {{{border_detection}}}) "
Expand Down
17 changes: 17 additions & 0 deletions src/search/heuristics/max_heuristic.cc
Comment thread
grucla marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include "../plugins/plugin.h"
#include "../utils/logging.h"
#include "../utils/markup.h"

#include <cassert>
#include <vector>
Expand Down Expand Up @@ -106,6 +107,22 @@ class HSPMaxHeuristicFeature
public:
HSPMaxHeuristicFeature() : TypedFeature("hmax") {
document_title("Max heuristic");
document_synopsis(
"The h^max heuristic is described in the following article:" +
utils::format_journal_reference(
{"Blai Bonet", "Hector Geffner"},
"Planning as heuristic search",
"https://doi.org/10.1016/S0004-3702%2801%2900108-4",
"Artificial Intelligence", "129(1-2)", "5-33", "2001") +
"For a discussion of the heuristic in the context of planning "
"with action costs, see the following paper:" +
utils::format_conference_reference(
{"Emil Keyder", "Hector Geffner"},
"Heuristics for Planning with Action Costs Revisited",
"https://doi.org/10.3233/978-1-58603-891-5-588",
"Proceedings of the 18th European Conference on "
"Artificial Intelligence (ECAI 2008)",
"588-592", "IOS Press", "2008"));

relaxation_heuristic::add_relaxation_heuristic_options_to_feature(
*this, "hmax");
Expand Down
22 changes: 12 additions & 10 deletions src/search/landmarks/landmark_cost_partitioning_heuristic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -109,22 +109,24 @@ class LandmarkCostPartitioningHeuristicFeature
document_note(
"History Note",
"Formerly known as the admissible landmark heuristic.\n"
"See the papers" +
"The original landmark heuristic is described in the following "
"article:" +
utils::format_journal_reference(
{"Silvia Richter", "Matthias Westphal"},
"The LAMA Planner: Guiding Cost-Based Anytime Planning "
"with Landmarks",
"https://doi.org/10.1613/jair.2972",
"Journal of Artificial Intelligence Research", "39",
"127-177", "2010") +
"Admissible landmark heuristics based on cost partitioning are "
"described in the following paper:" +
utils::format_conference_reference(
{"Erez Karpas", "Carmel Domshlak"},
"Cost-Optimal Planning with Landmarks",
"https://www.ijcai.org/Proceedings/09/Papers/288.pdf",
"Proceedings of the 21st International Joint Conference on "
"Artificial Intelligence (IJCAI 2009)",
"1728-1733", "AAAI Press", "2009") +
"and" +
utils::format_conference_reference(
{"Emil Keyder and Silvia Richter and Malte Helmert"},
"Sound and Complete Landmarks for And/Or Graphs",
"https://ai.dmi.unibas.ch/papers/keyder-et-al-ecai2010.pdf",
"Proceedings of the 19th European Conference on Artificial "
"Intelligence (ECAI 2010)",
"335-340", "IOS Press", "2010"));
"1728-1733", "AAAI Press", "2009"));
document_note(
"Usage with A*",
"We recommend to add this heuristic as lazy_evaluator when using "
Expand Down
2 changes: 1 addition & 1 deletion src/search/landmarks/landmark_factory_hm.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1050,7 +1050,7 @@ class LandmarkFactoryHMFeature
document_title("h^m landmarks");
document_synopsis(
"The landmark generation method introduced in the "
"following paper" +
"following paper:" +
utils::format_conference_reference(
{"Emil Keyder", "Silvia Richter", "Malte Helmert"},
"Sound and Complete Landmarks for And/Or Graphs",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -385,11 +385,11 @@ class LandmarkFactoryReasonableOrdersHPSFeature
: TypedFeature("lm_reasonable_orders_hps") {
document_title("HPS orders");
document_synopsis(
"Adds reasonable orders described in the following paper" +
"Adds reasonable orders described in the following article:" +
utils::format_journal_reference(
{"Jörg Hoffmann", "Julie Porteous", "Laura Sebastia"},
"Ordered Landmarks in Planning",
"https://jair.org/index.php/jair/article/view/10390/24882",
"https://doi.org/10.1613/jair.1492",
"Journal of Artificial Intelligence Research", "22", "215-278",
"2004"));

Expand Down
Loading
Loading