Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
en:dydaktyka:planning:pddl2 [2017/04/23 15:48] msl [Zadania obowiązkowe] |
en:dydaktyka:planning:pddl2 [2020/04/14 11:32] msl |
====== - Extending Planning Domains with Fluents ====== | ====== - Extending Planning Domains with Fluents ====== |
| |
This class covers usage of the PDDL 2.1 main feature --- so called ''fluents''. Student is expected to understand it's notion and use it to solve some popular logical puzzles. | This class covers usage of the PDDL 2.1 main feature --- so called ''fluents''. Student is expected to understand the new construct and use it to solve some popular logical puzzles. |
| |
| <WRAP center round important 60%> |
| Due to the COVID-19 outbreak, all files related to this class are stored in the [[https://gitlab.com/agh-krr/2019-2020/labs-planning|Gitlab repository]]. This class uses files stored in the ''02_fluents'' folder. Please refer to the ''Readme.md'' on how to submit the solutions. |
| </WRAP> |
| |
===== - Preliminaries ===== | ===== - Preliminaries ===== |
| |
===== - Tools ===== | ===== - Tools ===== |
Please download {{:en:dydaktyka:planning:metric-ff-lab.zip|source code of PDDL 2.1 solver}}. The package includes also some examples we will refer to during the class. Please run to terminal and switch to the root folder of the package and then try: | Please clone [[https://gitlab.com/agh-krr/2019-2020/labs-planning |repository with the PDDL 2.1 solver]]. The package includes also ''pddl'' files in the ''02_fluents'' directory, related to this class. Please run to terminal and switch to the root folder of the package and then try: |
| |
<code bash> | <code bash> |
./ff -o ./examples/hanoi/problem.pddl -f ./examples/hanoi/instance.pddl | ./ff -o ./02_fluents/01_hanoi/domain.pddl -f ./02_fluents/01_hanoi/problem.pddl |
</code> | </code> |
If command fails, try to recompile the solver (you can refer to [[pddl#automated_solving_of_problems_written_in_pddl|the analogical section of the previous class]]). | |
| Replace ''ff'' with appropriate one, e.g. ''ff-macos'' on macOS. In case, none of the binaries works for you, you can build the planner according to the instruction in the repo's ''README.md''. |
| |
===== - Example: Hanoi ===== | ===== - Example: Hanoi ===== |
| |
The new solver supports some new statements. Please check the files: ''./examples/hanoi/problem.pddl'' i ''./examples/hanoi/instance.pddl''. The new things include: | The new solver supports some new statements. Please check the files: ''./lab2/hanoi/domain.pddl'' i ''./lab2/hanoi/problem.pddl''. The new things include: |
| |
* ''(:requirements :fluents)'' --- informs solver that we want to use fluents | * ''(:requirements :fluents)'' --- informs solver that we want to use fluents |
| |
<code bash> | <code bash> |
./ff -o ./examples/hanoi/problem.pddl -f ./examples/hanoi/instance.pddl -s 0 | ./ff -o ./02_fluents/01_hanoi/domain.pddl -f ./02_fluents/01_hanoi/problem.pddl -s 0 |
</code> | </code> |
| |
===== - First Puzzle: Bruce Willis Has a Problem ===== | ===== - First Puzzle: Bruce Willis Has a Problem ===== |
| |
{{ :en:dydaktyka:planning:die-hard-3.jpg?200|}} | {{ youtube>BVtQNK_ZUJg }} |
Please watch [[https://www.youtube.com/watch?v=BVtQNK_ZUJg|fragment of the Die Hard 3 movie]]. The puzzle depicted there belongs to a quite popular family of "water pouring'" puzzles. The ''./examples/jugs'' folder contains a model of a [[http://www.riddleministry.com/riddles/water-puzzle-19-13-7/1246/|very similar problem]]. | |
| |
==== Assignments ==== | \\ |
| Please watch fragment of the Die Hard 3 movie above. The puzzle depicted there belongs to a quite popular family of "water pouring'" puzzles. The ''./02_fluents/02_jugs'' folder contains a model of a [[http://www.riddleministry.com/riddles/water-puzzle-19-13-7/1246/|very similar problem]]. |
| |
Fill missing lines of the ''problem.pddl'', so you can solve ''instance.pddl'' in 16 steps. | ==== Assignments ==== |
| |
==== Zadania na plus ==== | - Fill missing lines of the ''domain.pddl'', so you can solve ''problem.pddl'' in 16 steps. |
| - Remodel the problem so it would use only one action |
| - Modify the problem to include the fountain and help Bruce Willis! |
| |
<WRAP center round tip 60%> | <WRAP center round tip 60%> |
W PDDL 2.1 można formułować efekty warunkowe: | In PDDL 2.1 you can formulate conditional effect (the action will have this effect only if the additional condition is fulfilled): |
<code lisp> | <code lisp> |
(when (warunek) | (when (additional_condition) |
(efekt) | (effect) |
) | ) |
</code> | </code> |
Oznacza to, że dana akcja będzie miała określony efekt jedynie, gdy spełniony jest zadany warunek. | |
| |
</WRAP> | </WRAP> |
| |
- Czy jesteś w stanie zamodelować problem używając tylko jednej akcji? | ===== - Second Puzzle: Zombies on the Loose! ===== |
- Czy jesteś w stanie zmodyfikować problem tak, żeby uwzględniał on fontannę? Jeżeli tak, rozwiąż Problem Bruce'a Willisa. | |
- Czy jesteś w stanie zamodelować ten problem w MiniZincu? | |
| |
===== - Zagadka Druga: Ucieczka Przed Zombie ===== | {{ youtube>7yDmGnA8Hw0 }} |
| |
Proszę obejrzeć pierwsze dwie minuty filmu ze [[http://interestingengineering.com/can-solve-impossible-bridge-riddle/|strony o interesujących problemach]]. Katalog ''./examples/zombie-escape'' zawiera pliki związane z przedstawioną tam zagadką. | \\ |
| Watch two first minutes of the movie above. ''./02_fluents/03_zombie-escape'' folder contains files related to this puzzle. Then check the assignments and save yourself! |
| |
==== Zadania obowiązkowe ==== | |
| |
Proszę uzupełnić pliki ''problem.pddl'' i ''instance.pddl'' tak, aby solver rozwiązał zagadkę z filmiku. | |
| |
==== Zadania na plus ==== | ==== Assignments ==== |
| |
- Czy jesteś w stanie zamodelować problem używając tylko jednej akcji? | |
- Czy jesteś w stanie w podobny sposób zamodelować [[http://www.learn4good.com/games/puzzle/boat.htm|problem misjonarzy i kanibali]]? | |
- Czy jesteś w stanie zamodelować ten problem w MiniZincu? | |
| |
| - Fill missing lines of the ''domain.pddl'', so you can solve ''problem.pddl'' |
| - Remodel the problem so it would use only one action |
| - Solve the similar [[http://www.learn4good.com/games/puzzle/boat.htm|problem of missionaries and cannibals]] |