Keywords: Multiagent Systems, Genetic Algorithms
This project was done in a team of 4, as a part of the Intelligent Agents course at NTU Singapore.
In this project, we were asked to implement a multiagent system, consisting of two agents which work together to achieve a high score in a dynamically changing environment, called TileWorld. Initially, we implemented a simple reactive agent. Then, we implemented a practical reasoning agent, which was later given some reactive capabilities, thus creating a Hybrid architecture. The Hybrid architecture was parameterized, such that the constants and thresholds used by utility functions were encoded into a separate data structure, called the “genome” of the agent. Modifying parameters or “genes” of the agent’s genome, in turn modifies the agent’s thoughts, due to changes in the utilities. Communication abilities and special features like a novel exploratory strategy were also added. Finally, the agent’s parameters or “genes” were optimized using a Genetic Algorithm. It was found that the practical reasoning architecture performs 52.8% better than the reactive one, and the Hybrid architecture performs 17.6% better than the practical reasoning one. Overall, the Hybrid architecture has a 61.1% better performance than the reactive baseline. Adding exploration strategies and communication capabilities to the Hybrid architecture did not increase the performance much. But adding exploration strategies and communication capabilities, and using Genetic Algorithms to modify parameters of utility functions, further increased the performance by 7.2%.
Technologies used include Java and MASON (a multiagent simulation library). I substantially contributed to conceptualizing the design of the system, and implementing genetic algorithms to optimize the parameters of utility functions.
Technical Report: http://prernac.com/reports/ga.pdf