AI Project Examples
In theory, algorithms are evaluated by performance measures such as time and space complexity. In AI these concerns are secondary to how the algorithm performs relative to people. You should consider how you will evaluate your program from the outset. You should also pay a lot of attention to the user-interface. Problems or confusing aspects of your interface are most easily found by those not involved with the project. The suggestions below only provide some examples. You might look through any AI text for more ideas. It's best to choose a topic that you are very interested in.
All code will be done in Java. Each object should be documented with who wrote the code. Moreover and very important, each method should be documented with time and space complexity when it is not constant. Usually this is not difficult, but occasionally it is very hard. If you can't do it, say so or discuss it with me or the class.
In the first lectures I describe some possible projects. You may do your own project, but it needs to be well-defined, demonstratably doable within one quarter, involves some AI method, and approved by me.
Note: Weka is a freely available, open source Java program for Machine Learning.
- Decision Trees. (Possible research result). Extend Weka to handle another version of DT algorithms that better deals with continuous values.
- Clustering. (Possible research result). MOP. Extend Weka to handle co-occurrence evaluation of clustering. Currently no program properly guesses the number of clusters.
- Function Hierarchical Clustering (Possible research result). MOP. Extend hierarchial clustering to use functional information, such as the Gene Ontology (GO)
- Kernel Perceptron: (Possible research result) MOP. Combine perceptron training with Kernel method as developed within the Support vector context.
- FingerPrint Identification: (Possible research result) POP. Choose a representation and apply Machine Learning methods. High visibility problem. Web site for data sets and algorithms.
- Face Recognition. (Possible research result). POP. Similar to fingerprint recognition. Will become increasingly important. Web site for data sets and algorithms.
- Visualization. Code various alignment algorithms (local, global, multiple) and display results in a user friendly way.
- BiMotif finding: (Possible Research results). POP. Reimplement and improve upon the BioProspector approach for finding pairs of short patterns
- Motif finding: (possible Research result). POP. Reimplement Gibbs sampling and evaluate various alternatives for finding motifs.
- Perfect Information two person game. Implement alpha-beta for, say, the Othello game.
- Multiple person game (e.g. hearts/ scrabble) or incomplete information game (e.g. backgammon, poker) Implement simulation-based decision making algorithm
- Bridge Bidder. Adopt an expert system approach to bidding. This needs to support explanation.
Natural Language Processing
- Form the most likely function from several text descriptions. Blast returns several similar genes with different functions. Using Gene Ontology, form a summary description.
- Take a simple child story and try to make common sense inferences about the story. This might best be done in Prolog.
Projects from Russell and Norvig
- CAI: Illustrate the various search algorithms, i.e. provide a graphical demonstration of how the dfs, bfs, iterative deepening, A* work.
- Hidden Markov Models: Develop the algorithm and provide illustrative examples of how it would works. Also allow users to select their own data for analysis by the HMM.
- Neural Nets: Similar to above. Some illustrate examples (data sets to illustrate certain problems) plus ability to enter own data sets.
- Planners: Choose an example planner from R&N and build several problem domains that the planner would work on.
- Template idea: take any chapter or two from Russell and Norvig an build a system to illustrate the basic algorithm, whether it be in logical reasoning, constraint satisfaction, image processing, etc.