aibasel / pyperplan

A lightweight STRIPS planner written in Python.
GNU General Public License v3.0
91 stars 41 forks source link

Enforced Hill-Climbing returns unsolvable for airport-16 #3

Closed jendrikseipp closed 6 years ago

jendrikseipp commented 8 years ago

Original report by Martin Goth (Bitbucket: mgoth, ).


Enforced hill climbing with hadd returns unsolvable on airport/task16.pddl while other planner configurations return a solution:

python3 target_algorithms/planning/pyperplan/algorithm/pyperplan.py -s ehs -H hadd instances/planning/data/pyper-benchmark-airport/task16.pddl
2016-02-01 11:06:35,300 INFO     Found domain /home/gothm/thesis/aclib_repo/working/instances/planning/data/pyper-benchmark-airport/domain16.pddl
2016-02-01 11:06:35,300 INFO     using search: enforced_hillclimbing_search
2016-02-01 11:06:35,300 INFO     using heuristic: hAddHeuristic
2016-02-01 11:06:35,300 INFO     Parsing Domain /home/gothm/thesis/aclib_repo/working/instances/planning/data/pyper-benchmark-airport/domain16.pddl
2016-02-01 11:06:35,350 INFO     Parsing Problem /home/gothm/thesis/aclib_repo/working/instances/planning/data/pyper-benchmark-airport/task16.pddl
2016-02-01 11:06:35,355 INFO     12 Predicates parsed
2016-02-01 11:06:35,355 INFO     145 Actions parsed
2016-02-01 11:06:35,355 INFO     0 Objects parsed
2016-02-01 11:06:35,355 INFO     53 Constants parsed
2016-02-01 11:06:35,355 INFO     Grounding start: problem_x
2016-02-01 11:06:35,384 INFO     Relevance analysis removed 236 facts
2016-02-01 11:06:35,384 INFO     Grounding end: problem_x
2016-02-01 11:06:35,384 INFO     618 Variables created
2016-02-01 11:06:35,384 INFO     580 Operators created
2016-02-01 11:06:35,386 INFO     Search start: problem_x
2016-02-01 11:06:35,389 INFO     Initial h value: 244.000000
2016-02-01 11:06:53,964 INFO     No operators left. Task unsolvable.
2016-02-01 11:06:53,964 INFO     280 Nodes expanded
2016-02-01 11:06:53,965 INFO     Search end: problem_x
2016-02-01 11:06:53,965 INFO     Wall-clock search time: 1.9e+01
2016-02-01 11:06:53,966 WARNING  No solution could be found
python3 target_algorithms/planning/pyperplan/algorithm/pyperplan.py -s wastar -H hff instances/planning/data/pyper-benchmark-airport/task16.pddl
2016-02-01 11:07:13,727 INFO     Found domain /home/gothm/thesis/aclib_repo/working/instances/planning/data/pyper-benchmark-airport/domain16.pddl
2016-02-01 11:07:13,727 INFO     using search: weighted_astar_search
2016-02-01 11:07:13,727 INFO     using heuristic: hFFHeuristic
2016-02-01 11:07:13,728 INFO     Parsing Domain /home/gothm/thesis/aclib_repo/working/instances/planning/data/pyper-benchmark-airport/domain16.pddl
2016-02-01 11:07:13,782 INFO     Parsing Problem /home/gothm/thesis/aclib_repo/working/instances/planning/data/pyper-benchmark-airport/task16.pddl
2016-02-01 11:07:13,786 INFO     12 Predicates parsed
2016-02-01 11:07:13,786 INFO     145 Actions parsed
2016-02-01 11:07:13,787 INFO     0 Objects parsed
2016-02-01 11:07:13,787 INFO     53 Constants parsed
2016-02-01 11:07:13,787 INFO     Grounding start: problem_x
2016-02-01 11:07:13,815 INFO     Relevance analysis removed 236 facts
2016-02-01 11:07:13,815 INFO     Grounding end: problem_x
2016-02-01 11:07:13,815 INFO     618 Variables created
2016-02-01 11:07:13,815 INFO     580 Operators created
2016-02-01 11:07:13,817 INFO     Search start: problem_x
2016-02-01 11:07:13,821 INFO     Initial h value: 79.000000
2016-02-01 11:08:07,439 INFO     Goal reached. Start extraction of solution.
2016-02-01 11:08:07,439 INFO     5522 Nodes expanded
2016-02-01 11:08:07,449 INFO     Search end: problem_x
2016-02-01 11:08:07,449 INFO     Wall-clock search time: 5.4e+01
2016-02-01 11:08:07,451 INFO     Plan length: 83
2016-02-01 11:08:07,464 INFO     validate could not be found on the PATH so the plan can not be validated.

Expected behaviour: Enforced hill-climbing only returns unsolvable if there exists no solution for the task.

jendrikseipp commented 8 years ago

Original comment by Malte Helmert (Bitbucket: malte, GitHub: maltehelmert).


This is not a bug as such. Enforced hill-climbing is an incomplete algorithm. The output could be amended to make this clearer; it shouldn't say "unsolvable".

jendrikseipp commented 8 years ago

Original comment by Martin Goth (Bitbucket: mgoth, ).


Yes it would be better if incomplete algorithms do not output "Task unsolvable." The warning that no solution was found is enough. This way algorithm configurators such as SMAC can distinguish between unsolvable and no solution.

jendrikseipp commented 6 years ago

Original comment by Malte Helmert (Bitbucket: malte, GitHub: maltehelmert).


Make clear that EHC is incomplete. Fixes issue #3.

→ <<cset b014fe50dbbf (bb)>>

jendrikseipp commented 8 years ago

Original changes by Malte Helmert (Bitbucket: malte, GitHub: maltehelmert).


changed priority from "major" to "minor"

jendrikseipp commented 6 years ago

Original changes by Malte Helmert (Bitbucket: malte, GitHub: maltehelmert).


changed state from "new" to "resolved"