Vacuum cleaner
Contents
Introduction
Goal of this Netlogo simulation is to imitate AI of self-moving vacuum cleaner. It's aim is to clean whole room from dust by moving around it and sucking mess out of carpet or ground in general. Nowadays AI in these vacuum cleaners differs. Easiest one is just to randomly move around the room and in enough time room will be cleaned. I'm trying out to figure out few algorithms to make vacuuming faster and therefore more effective.
Problem definition
At first I created few rooms, each with different distribuition of furniture and items in it. Making it either harder to go through or make some cleaners to get stuck. Rooms also have different amount of dust in it, which can make vacuuming longer. Algorithms should optimize time needed for getting rid of dust in room. Measure will be ticks in Netlogo.
Software
Simulation was created in Netlogo 6.0.4.
Agents
Turtles
In this simulation there is only one type of turtle agent - vacuum cleaner. It has one variable (not used in all of used algorithms) called "next-to-wall" Vacuum cleaner is always sprouted somewhere in the room - not inside of a piece of furniture, heading north.
Patches
Patch agents are either brown - furniture and items on ground, black - floor tiles with dust on them, or white - cleared floor tiles.
Model Settings
World of this simulation doesn't wrap - rooms are closed. It's 32x32 patches big and it's origin corner is bottom left one.
Interface controls
Setup
Prepares world. At first it clears previous world. After that sets up new world. It creates chosen room and furniture. Then it creates cleaner/s somewhere on the ground. It also resets tick counter.
Go
This makes cleaner to vacuum dust underneath it. Then it moves it by chosen algorithmic path and vacuums again - making it as usefull as it can be. In the end it ticks once, for ticks to be counted as measurement of effectivity of cleaning algorithm.