For this first project, you will implement a simple stimulus-response agent that attempts to ‘follow its nose’ in the MÆDEN environment. Do not wait until the last minute to start on the project; you may suffer in many ways if you do. This is an individual project. As always, I encourage you to talk to your peers about ideas or to me and to ask questions. But the code you submit must be your own code.
A stimulus-response agent behaves entirely in reaction to the environmental situation in which it finds itself. More generally, a reactive agent acts according to its situated control rules. The key restriction that we are imposing here is the lack of internal state information. That is, the ‘cognitive’ state of the agent consists of the information available to it through its sensory channels, only.
Write an agent that attempts to solve problems in the MÆDEN environment. Your agent will only be asked to solve problems known to have solutions and that involve only wall obstacles. The following sub-tasks are intended to provide a reasonable suggested development path of increasing complexity and capability.
That's almost it! You only need submit your final best agent -- not a progression of increasingly sophisticated agents. Your code should be documented thoroughly. You may use a language of your choice as long as it supports standard sockets; however, I must be able to run your system without an IDE or installing any specialized libraries. FYI, I have Racket, Common Lisp, Ruby, Python, Java, and C++ on my machine. If you want to use something else, talk to me before investing effort on the above tasks. If you need assistance connecting to MÆDEN via the socket layer, ask me for help.
You should write a one-page report of your activities and findings associated with this assignment. Your report should serve as a stand-alone document; thus, it should describe the problem or focus, the approach that you employed, and an indication of how well it performed. You are welcome to include figures if you think they contribute to the report; however, make sure your picture really is worth a thousand words.
I am providing a modified template file that you should use to format your one-page report; this template works with LibreOffice. (If you would rather use LaTeX, you may use the style file from the ACM.) Your affiliation should be just “Westmont”; Whether you use LaTeX or Word, you should use the template with only the following modifications:
Submit a gzipped tar file that when extracted will create a folder named with your Westmont email user-name (no spaces) followed by "SRAgent". For example, someone named Eva Bailey might create a folder called "ebaileyP1A". Make sure that inside that folder you have both your code and the required README file. Submit the archive for project 1 on Eureka.