![]() |
|
|
Intelligent Agent for Search and Rescue- Completed ![]() This is a project I worked on with two friends for an artificial intelligence class. Each group in the class wrote an intelligent agent to rescue virtual victims from a virtual disaster zone. The front-end and simulation environment was written by our AI instructor, Eric Eaton. At the end of the semester we pitted our agents against eachother in a tournament to see who could rescue the most victims. Four agents came out on top (four-way tie!) and my group's happened to be one of them. Our agent has a few neat features. We preprocess the building layout to create "rooms" using our own version of binary space partitioning. While the agent is exploring, it searches paths from the current room to goal rooms using an A* algorithm. Once the agent has found victims, it retrieves the closest one using a breadth -first search. Then the agent drops the victim off to the nearest exit using another A* algorithm. All the while, our agent observes the surrounding areas so it can remember victim and object locations that it can't physically see with its sensors. As soon as the agent is done dropping a victim off to an exit, it will immediately search a path to any victims it remembers seeing. One caveat of this is that victims can move, so the agent has to update it's memory whenever it revisits an area. My role in the project was to implement the agent's states, searching algorithms, and memory. I also helped design the room partitioning which really made our agent unique. Development was extremely rapid because we wrote the entire project in Lisp. Our design relied heavily upon manipulating and searching through data structures, so Lisp was perfectly suited to do the job. The project description can be found at: http://maple.cs.umbc.edu/~ericeaton/teaching/471/project/description.html Language(s): Common Lisp Development Time: Two weeks Download: none |