For this project we were given the task of solving the simplified problem of the Vacuum cleaning robot that was introduced in the book “An introduction to MultiAgent Systems” by Michael Wooldridge. We were given a few tasks to complete using the model checking tool Uppaal. Uppaal allows us to create models of our problems with data types and function calls. That way we can validate and verify various queries and solve complex tasks with minimum effort.
2. Problem Description:
Wooldridge describes an example of a small robot agent that will vacuum clean a room. The problem is simplified a bit because we are supposed to have the robot check for any dirt in the squares we visit, our simplified problem does not. The room is a …show more content…
We will examine Wooldridges proposal and draw conclusions using the Uppaal modelling tool.
3. The tasks and their solutions
3.1 Task 1:
Wooldridge claimed that the robot could go from position (0,0) to position (2,2) and back, visiting every square on the grid (mentioned in the problem description).
These rules are given by Wooldridge as a starting point:
If In(0,0) and Facing(north) then Do(forward).
If In(0,1) and Facing(north) then Do(forward).
If In(0,2) and Facing(north) then Do(turn).
If In(0,2) and Facing(east) then Do(forward).
We were first tasked with creating a model of the above scenario and then to use Uppaal to check whether Wooldridge’s claim was …show more content…
Then we reset the wait variable and the time variable measures the overall process. That is the time from starting position to the end position.
Using Uppaal we were again able to plot the course of the robot and with using the Wooldridge’s first condition we got the following path:
The robot is less concerned with making turns this time around and more concerned with making as few forward moves as possible. As a result the robot makes 16 turns and 10 forward moves while finishing the task. After finishing the course the clock variable time was at 61 units. Since the first move is hardcoded and we do not check time in the move branch of the model the time is off by five time units, so the actual time was 66 units.
We ran the check again, but this time with no preset conditions and the results were very similar:
The path is almost identical to the previous one. This time however, the robot only makes 14 turns while making the same amount of forward moves. The robot finished the course in 64 time units, which is two time units less than the course with one