In this project, we created a vaccuum cleaning agent that finds its path in a room and tries to clean the room in the least number of steps while minimizing energy consumption and maximizing performance. Three classes of agents with variable visibility were developed and their performance was evaluated regarding the number of steps needed, energy consumption and performance.
We also worked on implementing a Multi-Agent Adversarial Vacuum Cleaner Agent, where the environment includes one ore many vacuum cleaners, as well as one or many “dirt producer” agents which dump dirt on the floor. The goal is for both types of agents to operate in the most efficient way, i.e. perform the least number of steps while minimizing energy consumption and maximizing performance. Also, “dirt producers” must maximize the number of dirt in the room while vacuum cleaner will try to minimize it.
- Fully Observable
- Partially Observable
- Non Observable
- Breadth First Search (BFS)
- Simulated Annealing for solving the Travelling Salesman Problem
- Weight Driven BFS
- Depth First Search for room discovery.
- Adversarial BFS
- and other variations depending on the environment.
This project opens the path for further regarding efficient algorithms for path finding that can be applied to many real life scenarios not only vaccum cleaning agents, but also for data routing in communication systems, VLSI, scheduling...
- Java 8
- Processing 3
- G4P
Runnable jars with exe and bat files are available in the runnable folder.
- Oracle JDK 8 is required for running the app and can be downloaded from here.
- Be sure to have the path set to jdk 8.
- This can be checked by calling
java -version
This Application is built by Georgio Yammine, Anis Ismail, and Rami Naffah.