STRIPS and simulated SHAKEY
===========================

1.) cubes

Please, look into cubes.txt. There is a definition of an initial state of cubes:
    
A  BC

(two cube towers, one with single cube A, the other with cube B on the top and 
cube C at the bottom)

There is also a goal definition:

ABC

(all the three cubes in one tower, A on the top, B in the middle, C at the bottom)

There is also an operator definition, which moves a cube from one spot to another.
The operator has a header, preconditions, and postconditions.

Let us launch the STRIPS solver to solve this problem (by run.bat)

We see the STRIPS has selected a subgoal On(A,B)
which could be achieved by actions:
Move(A,X,B) where X could be any known constant (this causes the frame problem)

STRIP tries and quickly find a solution and reach the stated goal.
(Please read the output of the solver carefully, there is the calculated plan 
at the bottom)

Please, look into plan1.txt where we verify that this plan works.
Yes, it works; it is a straightforward plan.

Now modify the initial state to be changed from state 1 to state 2
(double slash // in this format means remark).

It is a more complicated problem, and the solver provides a little
more extended plan. Please, create plan2.txt and verify the plan.

Carefully change debug from True to False in the strips.py
For state 3 it would print out too much info, and the process of solving the plan
would be significantly slowed down by these printings.
Modify cubes.txt to state 3, which corresponds to the Susman anomaly.
What plan would you like to get? Please type it into plan3.txt on top of the text
file. However, when you launch the solver, it generates a much longer plan.
Anyway, this plan works; it is proved in the original content of plan3.txt!
How could we improve the output of STRIPS?

Specify other initial conditions and another goal and let STRIPS solve it.

2.) SHAKEY

The SHAKEY robot has a model of its world, which is one room with one door.
The robot can be at three spots: inside the room, outside of the room, and 
at the door. When the robot goes from outside to inside, it has to cross 
the door.

Complete the problem definition in the shakey.txt

Modify the .bat file and solve the problem shakey.txt 

3.) 

Go into the subdirectory simulator. Use run-simulator.bat (at home, adjust 
java version in the .bat file) to start a simulator already known to us. 
Study the main.py and run the run-main.bat. Check that the robot cannot 
perform the command "go outside" directly and let the robot return to its 
initial "inside" position. Then, find the STRIPS description inside the program.
See the output plan and notice the robot understood that going outside has to go 
into doors at first.

Modify the main.py program in the following way. Remove the part that specifies 
the goal. Then implement a loop in which the system gets the goal from the input 
in natural language: "go outside" or "go inside." Employ the regex-example.py

4.) monkeys

At home, please, try to understand what problem we have specified in monkeys.txt
