From e642ab702e5f87eb458de519aa18fbe67c740fb3 Mon Sep 17 00:00:00 2001 From: Erwin Lejeune Date: Thu, 21 Jan 2021 11:57:02 +0100 Subject: [PATCH] add warning --- example-run.txt | 42 ------------------------------------ jupyddl/automated_planner.py | 1 + jupyddl/heuristics.py | 1 + 3 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 example-run.txt diff --git a/example-run.txt b/example-run.txt deleted file mode 100644 index 64dc90b..0000000 --- a/example-run.txt +++ /dev/null @@ -1,42 +0,0 @@ -A* - Delete Relaxation - H_Max - ======PLAN (Nodes)======= -['Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), connected(Boston, Pittsburgh), connected(Albany, NewYork), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), at(Boston), connected(Toronto, NewYork), total-cost = 3 | g = 3.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), connected(Boston, Pittsburgh), connected(Albany, NewYork), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), at(NewYork), visited(NewYork), total-cost = 6 | g = 6.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), at(Albany), connected(NewYork, Boston), connected(Boston, Pittsburgh), connected(Albany, NewYork), visited(Albany), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), visited(NewYork), total-cost = 9 | g = 9.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), at(Toronto), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), connected(Boston, Pittsburgh), visited(Toronto), connected(Albany, NewYork), visited(Albany), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), visited(NewYork), total-cost = 12 | g = 12.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), visited(Pittsburgh), connected(Boston, Pittsburgh), at(Pittsburgh), visited(Toronto), connected(Albany, NewYork), visited(Albany), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), visited(NewYork), total-cost = 15 | g = 15.00 | h = 15.00 | open = True | closed = False }'] - ======PLAN (Actions)======= -('move(Pittsburgh, Boston)>', 'total-cost = 3') -('move(Boston, NewYork)>', 'total-cost = 6') -('move(NewYork, Albany)>', 'total-cost = 9') -('move(Albany, Toronto)>', 'total-cost = 12') -('move(Toronto, Pittsburgh)>', 'total-cost = 15') - - ======METRICS======= -Expanded 17 state(s). -Opened 27 state(s). -Reopened 0 state(s). -Evaluated 21 state(s). -Generated 28 state(s). -Dead ends: 3 state(s). -Runtime: 1.46s. -Total heuristic runtime: 2.37s -Computational weight of heuristic in the search: 162.00% - - A* - Delete Relaxation - H_Add - ======PLAN (Nodes)======= -['Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), connected(Boston, Pittsburgh), connected(Albany, NewYork), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), at(Boston), connected(Toronto, NewYork), total-cost = 3 | g = 3.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), connected(Boston, Pittsburgh), connected(Albany, NewYork), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), at(NewYork), visited(NewYork), total-cost = 6 | g = 6.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), at(Albany), connected(NewYork, Boston), connected(Boston, Pittsburgh), connected(Albany, NewYork), visited(Albany), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), visited(NewYork), total-cost = 9 | g = 9.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), at(Toronto), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), connected(Boston, Pittsburgh), visited(Toronto), connected(Albany, NewYork), visited(Albany), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), visited(NewYork), total-cost = 12 | g = 12.00 | h = inf | open = False | closed = True }', 'Node { object(NewYork), object(Pittsburgh), object(Toronto), object(Boston), object(Albany), connected(Pittsburgh, Boston), connected(Toronto, Albany), visited(Boston), connected(NewYork, Albany), connected(NewYork, Toronto), connected(Toronto, Pittsburgh), connected(NewYork, Boston), visited(Pittsburgh), connected(Boston, Pittsburgh), at(Pittsburgh), visited(Toronto), connected(Albany, NewYork), visited(Albany), connected(NewYork, Pittsburgh), connected(Albany, Toronto), connected(Boston, NewYork), connected(Pittsburgh, NewYork), connected(Toronto, NewYork), visited(NewYork), total-cost = 15 | g = 15.00 | h = 15.00 | open = True | closed = False }'] - ======PLAN (Actions)======= -('move(Pittsburgh, Boston)>', 'total-cost = 3') -('move(Boston, NewYork)>', 'total-cost = 6') -('move(NewYork, Albany)>', 'total-cost = 9') -('move(Albany, Toronto)>', 'total-cost = 12') -('move(Toronto, Pittsburgh)>', 'total-cost = 15') - - ======METRICS======= -Expanded 17 state(s). -Opened 27 state(s). -Reopened 0 state(s). -Evaluated 21 state(s). -Generated 28 state(s). -Dead ends: 3 state(s). -Runtime: 1.31s. -Total heuristic runtime: 1.22s -Computational weight of heuristic in the search: 93.45% - diff --git a/jupyddl/automated_planner.py b/jupyddl/automated_planner.py index 5b3d39e..71f7b5c 100644 --- a/jupyddl/automated_planner.py +++ b/jupyddl/automated_planner.py @@ -199,6 +199,7 @@ def greedy_best_first_search( elif "delete_relaxation" in heuristic_key: heuristic = DeleteRelaxationHeuristic(self, heuristic_key) elif "relaxed_critical_path" in heuristic_key: + logging.warning("Relaxed Critical Path is deficient for H^2 and H^3") heuristic = RelaxedCriticalPathHeuristic(self, int(heuristic_key[-1])) elif "critical_path" in heuristic_key: heuristic = CriticalPathHeuristic(self, int(heuristic_key[-1])) diff --git a/jupyddl/heuristics.py b/jupyddl/heuristics.py index c0b0da2..e819aac 100644 --- a/jupyddl/heuristics.py +++ b/jupyddl/heuristics.py @@ -172,6 +172,7 @@ def compute(self, state): if self.automated_planner.satisfies(goals, state): costs = [] fact_costs_str = dict([(str(k), val) for k, val in fact_costs.items()]) + print(fact_costs_str) if self.critical_path_level == 1: for g in goals: if str(g) in fact_costs_str: