Machine Learning/Agent-based modeling: Learning a person's behavioral patterns. Title: Modelling a Learning System based on Pattern Recognition Objective: The objective of my project is to develop an abstract piece of software which acts as a messaging agent between any two other pieces of software. My goal is to create a software that can learn from the data that flows through it and hopefully be able to interpret incomming data and execute its own created actions. This software, while primarily producing rational output, should also generate some amount of irrational output. Justification: The reason for this work is to ease the average person's life: when an AI can learn and execute based on a persons preference, the possibilities are endless, for example: a vacuum can automatically vacuum a whole house, first by learning from it's owner, then from its own mistakes. Another example: a refrigerator that automatically orders food when things run out, based on previous knowledge and other factors (such as weight of food, daily consumption, etc.). Description: The idea is to create something which sits on top of a regular system: this program will accept inputs and redirect them to the appropriate outputs, while at the same time processing these messages. The program will have two phases: sleep and wake, during the wake phase data is not wholly processed, it is only stored, the sleep phase reorganizes data, extrapolates and interpolates as necessary and creates its own "modules." A "module" is this program's own scripting language: this allows any user (like the vacuum) to plug in a general module for the program to follow; however, it also allows the program to create its own modules to handle information: how does the program know which module to use? This has to do with the proposed message structure: the message is tagged with a unique ID code (which is not random, each digit will represent source, destination, purpose, intensity, urgency), the input source, the output source, the data, and other extraneous information that the program will not look at. How general will the program be? The goal is to have the program have a general iostream class/method that any other programs (including windows!) can create a personalized version off - that is someone will be able to purchase my program create one simple method (or modify a class) create one or two modules and execute! Limitations: The limitations for this project are mainly its expansive nature: the project hopes to be able to cover a lot of material and cases, but is at such an abstract level it rivals windows, a project of this magnititude is limited by how much time I have to put into this, however I hope to beginning work ing on the project over summer and at least have the iostreams and scripting language complete. Also, the system power required to execute this program may be a problem, however I dont know how much power will be required yet.