From 1fb987992535ba04c959adf17b9b3db461b6f3e1 Mon Sep 17 00:00:00 2001 From: Silvan Sievers Date: Thu, 27 Jul 2023 11:17:36 +0200 Subject: [PATCH] [issue1098] Rename cegar directory to cartesian_abstractions. For developers: the cegar directory is now called cartesian_abstractions to better reflect what it actually contains and to avoid confusion with CEGAR-based code in the pdbs directory. This changes includes renaming the namespace as well as some minor changes in the documentation. --- src/search/DownwardFiles.cmake | 36 +++++++++---------- .../abstract_search.cc | 2 +- .../abstract_search.h | 2 +- .../abstract_state.cc | 2 +- .../abstract_state.h | 2 +- .../abstraction.cc | 2 +- .../abstraction.h | 2 +- .../additive_cartesian_heuristic.cc | 8 ++--- .../additive_cartesian_heuristic.h | 2 +- .../cartesian_heuristic_function.cc | 2 +- .../cartesian_heuristic_function.h | 2 +- .../cartesian_set.cc | 2 +- .../cartesian_set.h | 2 +- .../cegar.cc | 2 +- .../{cegar => cartesian_abstractions}/cegar.h | 2 +- .../cost_saturation.cc | 2 +- .../cost_saturation.h | 2 +- .../refinement_hierarchy.cc | 2 +- .../refinement_hierarchy.h | 2 +- .../split_selector.cc | 2 +- .../split_selector.h | 2 +- .../subtask_generators.cc | 2 +- .../subtask_generators.h | 2 +- .../transition.h | 2 +- .../transition_system.cc | 2 +- .../transition_system.h | 2 +- .../{cegar => cartesian_abstractions}/types.h | 2 +- .../utils.cc | 2 +- .../{cegar => cartesian_abstractions}/utils.h | 2 +- .../utils_landmarks.cc | 2 +- .../utils_landmarks.h | 2 +- 31 files changed, 51 insertions(+), 51 deletions(-) rename src/search/{cegar => cartesian_abstractions}/abstract_search.cc (99%) rename src/search/{cegar => cartesian_abstractions}/abstract_search.h (98%) rename src/search/{cegar => cartesian_abstractions}/abstract_state.cc (98%) rename src/search/{cegar => cartesian_abstractions}/abstract_state.h (98%) rename src/search/{cegar => cartesian_abstractions}/abstraction.cc (99%) rename src/search/{cegar => cartesian_abstractions}/abstraction.h (98%) rename src/search/{cegar => cartesian_abstractions}/additive_cartesian_heuristic.cc (96%) rename src/search/{cegar => cartesian_abstractions}/additive_cartesian_heuristic.h (94%) rename src/search/{cegar => cartesian_abstractions}/cartesian_heuristic_function.cc (94%) rename src/search/{cegar => cartesian_abstractions}/cartesian_heuristic_function.h (95%) rename src/search/{cegar => cartesian_abstractions}/cartesian_set.cc (98%) rename src/search/{cegar => cartesian_abstractions}/cartesian_set.h (96%) rename src/search/{cegar => cartesian_abstractions}/cegar.cc (99%) rename src/search/{cegar => cartesian_abstractions}/cegar.h (98%) rename src/search/{cegar => cartesian_abstractions}/cost_saturation.cc (99%) rename src/search/{cegar => cartesian_abstractions}/cost_saturation.h (98%) rename src/search/{cegar => cartesian_abstractions}/refinement_hierarchy.cc (98%) rename src/search/{cegar => cartesian_abstractions}/refinement_hierarchy.h (98%) rename src/search/{cegar => cartesian_abstractions}/split_selector.cc (99%) rename src/search/{cegar => cartesian_abstractions}/split_selector.h (98%) rename src/search/{cegar => cartesian_abstractions}/subtask_generators.cc (99%) rename src/search/{cegar => cartesian_abstractions}/subtask_generators.h (98%) rename src/search/{cegar => cartesian_abstractions}/transition.h (93%) rename src/search/{cegar => cartesian_abstractions}/transition_system.cc (99%) rename src/search/{cegar => cartesian_abstractions}/transition_system.h (98%) rename src/search/{cegar => cartesian_abstractions}/types.h (93%) rename src/search/{cegar => cartesian_abstractions}/utils.cc (98%) rename src/search/{cegar => cartesian_abstractions}/utils.h (96%) rename src/search/{cegar => cartesian_abstractions}/utils_landmarks.cc (98%) rename src/search/{cegar => cartesian_abstractions}/utils_landmarks.h (96%) diff --git a/src/search/DownwardFiles.cmake b/src/search/DownwardFiles.cmake index 7a4bf14904..4fdcd2905b 100644 --- a/src/search/DownwardFiles.cmake +++ b/src/search/DownwardFiles.cmake @@ -642,24 +642,24 @@ fast_downward_plugin( fast_downward_plugin( NAME CEGAR - HELP "Plugin containing the code for CEGAR heuristics" - SOURCES - cegar/abstraction - cegar/abstract_search - cegar/abstract_state - cegar/additive_cartesian_heuristic - cegar/cartesian_heuristic_function - cegar/cartesian_set - cegar/cegar - cegar/cost_saturation - cegar/refinement_hierarchy - cegar/split_selector - cegar/subtask_generators - cegar/transition - cegar/transition_system - cegar/types - cegar/utils - cegar/utils_landmarks + HELP "Plugin containing the code for Cartesian CEGAR heuristics" + SOURCES + cartesian_abstractions/abstraction + cartesian_abstractions/abstract_search + cartesian_abstractions/abstract_state + cartesian_abstractions/additive_cartesian_heuristic + cartesian_abstractions/cartesian_heuristic_function + cartesian_abstractions/cartesian_set + cartesian_abstractions/cegar + cartesian_abstractions/cost_saturation + cartesian_abstractions/refinement_hierarchy + cartesian_abstractions/split_selector + cartesian_abstractions/subtask_generators + cartesian_abstractions/transition + cartesian_abstractions/transition_system + cartesian_abstractions/types + cartesian_abstractions/utils + cartesian_abstractions/utils_landmarks DEPENDS ADDITIVE_HEURISTIC DYNAMIC_BITSET EXTRA_TASKS LANDMARKS PRIORITY_QUEUES TASK_PROPERTIES ) diff --git a/src/search/cegar/abstract_search.cc b/src/search/cartesian_abstractions/abstract_search.cc similarity index 99% rename from src/search/cegar/abstract_search.cc rename to src/search/cartesian_abstractions/abstract_search.cc index aa70f46acd..e9e9b9fd68 100644 --- a/src/search/cegar/abstract_search.cc +++ b/src/search/cartesian_abstractions/abstract_search.cc @@ -10,7 +10,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { AbstractSearch::AbstractSearch( const vector &operator_costs) : operator_costs(operator_costs), diff --git a/src/search/cegar/abstract_search.h b/src/search/cartesian_abstractions/abstract_search.h similarity index 98% rename from src/search/cegar/abstract_search.h rename to src/search/cartesian_abstractions/abstract_search.h index 63c8483672..f7476e2c47 100644 --- a/src/search/cegar/abstract_search.h +++ b/src/search/cartesian_abstractions/abstract_search.h @@ -10,7 +10,7 @@ #include #include -namespace cegar { +namespace cartesian_abstractions { using Solution = std::deque; /* diff --git a/src/search/cegar/abstract_state.cc b/src/search/cartesian_abstractions/abstract_state.cc similarity index 98% rename from src/search/cegar/abstract_state.cc rename to src/search/cartesian_abstractions/abstract_state.cc index 7e99c08d51..97d882d913 100644 --- a/src/search/cegar/abstract_state.cc +++ b/src/search/cartesian_abstractions/abstract_state.cc @@ -11,7 +11,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { AbstractState::AbstractState( int state_id, NodeID node_id, CartesianSet &&cartesian_set) : state_id(state_id), diff --git a/src/search/cegar/abstract_state.h b/src/search/cartesian_abstractions/abstract_state.h similarity index 98% rename from src/search/cegar/abstract_state.h rename to src/search/cartesian_abstractions/abstract_state.h index b03d1ed929..f7dc661825 100644 --- a/src/search/cegar/abstract_state.h +++ b/src/search/cartesian_abstractions/abstract_state.h @@ -12,7 +12,7 @@ class OperatorProxy; class State; class TaskProxy; -namespace cegar { +namespace cartesian_abstractions { class Node; /* diff --git a/src/search/cegar/abstraction.cc b/src/search/cartesian_abstractions/abstraction.cc similarity index 99% rename from src/search/cegar/abstraction.cc rename to src/search/cartesian_abstractions/abstraction.cc index 73954f3bf4..2510f5fc59 100644 --- a/src/search/cegar/abstraction.cc +++ b/src/search/cartesian_abstractions/abstraction.cc @@ -18,7 +18,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { Abstraction::Abstraction(const shared_ptr &task, utils::LogProxy &log) : transition_system(utils::make_unique_ptr(TaskProxy(*task).get_operators())), concrete_initial_state(TaskProxy(*task).get_initial_state()), diff --git a/src/search/cegar/abstraction.h b/src/search/cartesian_abstractions/abstraction.h similarity index 98% rename from src/search/cegar/abstraction.h rename to src/search/cartesian_abstractions/abstraction.h index 1cd397848e..6e7c07b95f 100644 --- a/src/search/cegar/abstraction.h +++ b/src/search/cartesian_abstractions/abstraction.h @@ -14,7 +14,7 @@ namespace utils { class LogProxy; } -namespace cegar { +namespace cartesian_abstractions { class AbstractState; class RefinementHierarchy; class TransitionSystem; diff --git a/src/search/cegar/additive_cartesian_heuristic.cc b/src/search/cartesian_abstractions/additive_cartesian_heuristic.cc similarity index 96% rename from src/search/cegar/additive_cartesian_heuristic.cc rename to src/search/cartesian_abstractions/additive_cartesian_heuristic.cc index e7f906bc78..00a53b311c 100644 --- a/src/search/cegar/additive_cartesian_heuristic.cc +++ b/src/search/cartesian_abstractions/additive_cartesian_heuristic.cc @@ -15,7 +15,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { static vector generate_heuristic_functions( const plugins::Options &opts, utils::LogProxy &log) { if (log.is_at_least_normal()) { @@ -62,10 +62,10 @@ class AdditiveCartesianHeuristicFeature : public plugins::TypedFeature { public: AdditiveCartesianHeuristicFeature() : TypedFeature("cegar") { - document_title("Additive CEGAR heuristic"); + document_title("Additive Cartesian CEGAR heuristic"); document_synopsis( - "See the paper introducing Counterexample-guided Abstraction " - "Refinement (CEGAR) for classical planning:" + + "See the paper introducing counterexample-guided Cartesian " + "abstraction refinement (CEGAR) for classical planning:" + utils::format_conference_reference( {"Jendrik Seipp", "Malte Helmert"}, "Counterexample-guided Cartesian Abstraction Refinement", diff --git a/src/search/cegar/additive_cartesian_heuristic.h b/src/search/cartesian_abstractions/additive_cartesian_heuristic.h similarity index 94% rename from src/search/cegar/additive_cartesian_heuristic.h rename to src/search/cartesian_abstractions/additive_cartesian_heuristic.h index 43aa6e9928..3b31eb170b 100644 --- a/src/search/cegar/additive_cartesian_heuristic.h +++ b/src/search/cartesian_abstractions/additive_cartesian_heuristic.h @@ -5,7 +5,7 @@ #include -namespace cegar { +namespace cartesian_abstractions { class CartesianHeuristicFunction; /* diff --git a/src/search/cegar/cartesian_heuristic_function.cc b/src/search/cartesian_abstractions/cartesian_heuristic_function.cc similarity index 94% rename from src/search/cegar/cartesian_heuristic_function.cc rename to src/search/cartesian_abstractions/cartesian_heuristic_function.cc index 868cba656b..86477183ec 100644 --- a/src/search/cegar/cartesian_heuristic_function.cc +++ b/src/search/cartesian_abstractions/cartesian_heuristic_function.cc @@ -6,7 +6,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { CartesianHeuristicFunction::CartesianHeuristicFunction( unique_ptr &&hierarchy, vector &&h_values) diff --git a/src/search/cegar/cartesian_heuristic_function.h b/src/search/cartesian_abstractions/cartesian_heuristic_function.h similarity index 95% rename from src/search/cegar/cartesian_heuristic_function.h rename to src/search/cartesian_abstractions/cartesian_heuristic_function.h index a19983c2c2..435c649673 100644 --- a/src/search/cegar/cartesian_heuristic_function.h +++ b/src/search/cartesian_abstractions/cartesian_heuristic_function.h @@ -6,7 +6,7 @@ class State; -namespace cegar { +namespace cartesian_abstractions { class RefinementHierarchy; /* Store RefinementHierarchy and heuristic values for looking up abstract state diff --git a/src/search/cegar/cartesian_set.cc b/src/search/cartesian_abstractions/cartesian_set.cc similarity index 98% rename from src/search/cegar/cartesian_set.cc rename to src/search/cartesian_abstractions/cartesian_set.cc index 6012bae1fb..04e702a141 100644 --- a/src/search/cegar/cartesian_set.cc +++ b/src/search/cartesian_abstractions/cartesian_set.cc @@ -4,7 +4,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { CartesianSet::CartesianSet(const vector &domain_sizes) { domain_subsets.reserve(domain_sizes.size()); for (int domain_size : domain_sizes) { diff --git a/src/search/cegar/cartesian_set.h b/src/search/cartesian_abstractions/cartesian_set.h similarity index 96% rename from src/search/cegar/cartesian_set.h rename to src/search/cartesian_abstractions/cartesian_set.h index 3f183eb95c..d3f1cf7f63 100644 --- a/src/search/cegar/cartesian_set.h +++ b/src/search/cartesian_abstractions/cartesian_set.h @@ -6,7 +6,7 @@ #include #include -namespace cegar { +namespace cartesian_abstractions { using Bitset = dynamic_bitset::DynamicBitset; /* diff --git a/src/search/cegar/cegar.cc b/src/search/cartesian_abstractions/cegar.cc similarity index 99% rename from src/search/cegar/cegar.cc rename to src/search/cartesian_abstractions/cegar.cc index d305e9d4af..d5d57949e5 100644 --- a/src/search/cegar/cegar.cc +++ b/src/search/cartesian_abstractions/cegar.cc @@ -19,7 +19,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { // Create the Cartesian set that corresponds to the given preconditions or goals. static CartesianSet get_cartesian_set( const vector &domain_sizes, const ConditionsProxy &conditions) { diff --git a/src/search/cegar/cegar.h b/src/search/cartesian_abstractions/cegar.h similarity index 98% rename from src/search/cegar/cegar.h rename to src/search/cartesian_abstractions/cegar.h index 0b603e1fec..4ee7828fff 100644 --- a/src/search/cegar/cegar.h +++ b/src/search/cartesian_abstractions/cegar.h @@ -15,7 +15,7 @@ class RandomNumberGenerator; class LogProxy; } -namespace cegar { +namespace cartesian_abstractions { class Abstraction; struct Flaw; diff --git a/src/search/cegar/cost_saturation.cc b/src/search/cartesian_abstractions/cost_saturation.cc similarity index 99% rename from src/search/cegar/cost_saturation.cc rename to src/search/cartesian_abstractions/cost_saturation.cc index 360ca2c8c6..fda6279544 100644 --- a/src/search/cegar/cost_saturation.cc +++ b/src/search/cartesian_abstractions/cost_saturation.cc @@ -20,7 +20,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { /* We reserve some memory to be able to recover from out-of-memory situations gracefully. When the memory runs out, we stop refining and diff --git a/src/search/cegar/cost_saturation.h b/src/search/cartesian_abstractions/cost_saturation.h similarity index 98% rename from src/search/cegar/cost_saturation.h rename to src/search/cartesian_abstractions/cost_saturation.h index 97aaec520d..cf8945321e 100644 --- a/src/search/cegar/cost_saturation.h +++ b/src/search/cartesian_abstractions/cost_saturation.h @@ -14,7 +14,7 @@ class RandomNumberGenerator; class LogProxy; } -namespace cegar { +namespace cartesian_abstractions { class CartesianHeuristicFunction; class SubtaskGenerator; diff --git a/src/search/cegar/refinement_hierarchy.cc b/src/search/cartesian_abstractions/refinement_hierarchy.cc similarity index 98% rename from src/search/cegar/refinement_hierarchy.cc rename to src/search/cartesian_abstractions/refinement_hierarchy.cc index ae0bcc57f5..7431b118ef 100644 --- a/src/search/cegar/refinement_hierarchy.cc +++ b/src/search/cartesian_abstractions/refinement_hierarchy.cc @@ -4,7 +4,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { Node::Node(int state_id) : left_child(UNDEFINED), right_child(UNDEFINED), diff --git a/src/search/cegar/refinement_hierarchy.h b/src/search/cartesian_abstractions/refinement_hierarchy.h similarity index 98% rename from src/search/cegar/refinement_hierarchy.h rename to src/search/cartesian_abstractions/refinement_hierarchy.h index 1b4b752329..de52e40e7d 100644 --- a/src/search/cegar/refinement_hierarchy.h +++ b/src/search/cartesian_abstractions/refinement_hierarchy.h @@ -12,7 +12,7 @@ class AbstractTask; class State; -namespace cegar { +namespace cartesian_abstractions { class Node; /* diff --git a/src/search/cegar/split_selector.cc b/src/search/cartesian_abstractions/split_selector.cc similarity index 99% rename from src/search/cegar/split_selector.cc rename to src/search/cartesian_abstractions/split_selector.cc index 3ae7ce7a9a..69fe4f519a 100644 --- a/src/search/cegar/split_selector.cc +++ b/src/search/cartesian_abstractions/split_selector.cc @@ -14,7 +14,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { SplitSelector::SplitSelector( const shared_ptr &task, PickSplit pick) diff --git a/src/search/cegar/split_selector.h b/src/search/cartesian_abstractions/split_selector.h similarity index 98% rename from src/search/cegar/split_selector.h rename to src/search/cartesian_abstractions/split_selector.h index 3249aea171..20c8f472b3 100644 --- a/src/search/cegar/split_selector.h +++ b/src/search/cartesian_abstractions/split_selector.h @@ -14,7 +14,7 @@ namespace utils { class RandomNumberGenerator; } -namespace cegar { +namespace cartesian_abstractions { class AbstractState; // Strategies for selecting a split in case there are multiple possibilities. diff --git a/src/search/cegar/subtask_generators.cc b/src/search/cartesian_abstractions/subtask_generators.cc similarity index 99% rename from src/search/cegar/subtask_generators.cc rename to src/search/cartesian_abstractions/subtask_generators.cc index a684870c54..2a852392f5 100644 --- a/src/search/cegar/subtask_generators.cc +++ b/src/search/cartesian_abstractions/subtask_generators.cc @@ -22,7 +22,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { class SortFactsByIncreasingHaddValues { // Can't store as unique_ptr since the class needs copy-constructor. shared_ptr hadd; diff --git a/src/search/cegar/subtask_generators.h b/src/search/cartesian_abstractions/subtask_generators.h similarity index 98% rename from src/search/cegar/subtask_generators.h rename to src/search/cartesian_abstractions/subtask_generators.h index 1ec8ed45f5..552d66a315 100644 --- a/src/search/cegar/subtask_generators.h +++ b/src/search/cartesian_abstractions/subtask_generators.h @@ -20,7 +20,7 @@ class RandomNumberGenerator; class LogProxy; } -namespace cegar { +namespace cartesian_abstractions { using Facts = std::vector; using SharedTasks = std::vector>; diff --git a/src/search/cegar/transition.h b/src/search/cartesian_abstractions/transition.h similarity index 93% rename from src/search/cegar/transition.h rename to src/search/cartesian_abstractions/transition.h index 2f9690773e..cc019e1cd1 100644 --- a/src/search/cegar/transition.h +++ b/src/search/cartesian_abstractions/transition.h @@ -3,7 +3,7 @@ #include -namespace cegar { +namespace cartesian_abstractions { struct Transition { int op_id; int target_id; diff --git a/src/search/cegar/transition_system.cc b/src/search/cartesian_abstractions/transition_system.cc similarity index 99% rename from src/search/cegar/transition_system.cc rename to src/search/cartesian_abstractions/transition_system.cc index 7cfee65133..7b6770cf89 100644 --- a/src/search/cegar/transition_system.cc +++ b/src/search/cartesian_abstractions/transition_system.cc @@ -14,7 +14,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { static vector> get_preconditions_by_operator( const OperatorsProxy &ops) { vector> preconditions_by_operator; diff --git a/src/search/cegar/transition_system.h b/src/search/cartesian_abstractions/transition_system.h similarity index 98% rename from src/search/cegar/transition_system.h rename to src/search/cartesian_abstractions/transition_system.h index 583d84017b..7e827a4362 100644 --- a/src/search/cegar/transition_system.h +++ b/src/search/cartesian_abstractions/transition_system.h @@ -12,7 +12,7 @@ namespace utils { class LogProxy; } -namespace cegar { +namespace cartesian_abstractions { /* Rewire transitions after each split. */ diff --git a/src/search/cegar/types.h b/src/search/cartesian_abstractions/types.h similarity index 93% rename from src/search/cegar/types.h rename to src/search/cartesian_abstractions/types.h index 9f040cc7f8..ee4bdbd466 100644 --- a/src/search/cegar/types.h +++ b/src/search/cartesian_abstractions/types.h @@ -6,7 +6,7 @@ #include #include -namespace cegar { +namespace cartesian_abstractions { class AbstractState; struct Transition; diff --git a/src/search/cegar/utils.cc b/src/search/cartesian_abstractions/utils.cc similarity index 98% rename from src/search/cegar/utils.cc rename to src/search/cartesian_abstractions/utils.cc index c2ed31b77f..4fa9c0a4ab 100644 --- a/src/search/cegar/utils.cc +++ b/src/search/cartesian_abstractions/utils.cc @@ -12,7 +12,7 @@ using namespace std; -namespace cegar { +namespace cartesian_abstractions { unique_ptr create_additive_heuristic( const shared_ptr &task) { plugins::Options opts; diff --git a/src/search/cegar/utils.h b/src/search/cartesian_abstractions/utils.h similarity index 96% rename from src/search/cegar/utils.h rename to src/search/cartesian_abstractions/utils.h index 6db8d88f8f..a24b437856 100644 --- a/src/search/cegar/utils.h +++ b/src/search/cartesian_abstractions/utils.h @@ -16,7 +16,7 @@ namespace additive_heuristic { class AdditiveHeuristic; } -namespace cegar { +namespace cartesian_abstractions { extern std::unique_ptr create_additive_heuristic(const std::shared_ptr &task); diff --git a/src/search/cegar/utils_landmarks.cc b/src/search/cartesian_abstractions/utils_landmarks.cc similarity index 98% rename from src/search/cegar/utils_landmarks.cc rename to src/search/cartesian_abstractions/utils_landmarks.cc index b9c50c3d0a..c14fa8e94b 100644 --- a/src/search/cegar/utils_landmarks.cc +++ b/src/search/cartesian_abstractions/utils_landmarks.cc @@ -12,7 +12,7 @@ using namespace std; using namespace landmarks; -namespace cegar { +namespace cartesian_abstractions { static FactPair get_fact(const Landmark &landmark) { // We assume that the given Landmarks are from an h^m landmark graph with m=1. assert(landmark.facts.size() == 1); diff --git a/src/search/cegar/utils_landmarks.h b/src/search/cartesian_abstractions/utils_landmarks.h similarity index 96% rename from src/search/cegar/utils_landmarks.h rename to src/search/cartesian_abstractions/utils_landmarks.h index 2537356ff6..06c17a54bd 100644 --- a/src/search/cegar/utils_landmarks.h +++ b/src/search/cartesian_abstractions/utils_landmarks.h @@ -12,7 +12,7 @@ namespace landmarks { class LandmarkGraph; } -namespace cegar { +namespace cartesian_abstractions { using VarToValues = std::unordered_map>; extern std::shared_ptr get_landmark_graph(