CS580, Jana Kosecka,  Spring 20001

Project Ideas.

Here are some ideas for you to select a topic for a project. It is possible
to suggest/pick a larger project which will involve up to 3 people.  More
will be expected then from one person project. Start thinking about the
project early so you can gather the necessary information.  In case you
project will involve some programming, you can choose a programming
language of your choice. For some projects certain choices are better then
others, since some of the code is available. The main idea of the project
is for you to get more familiar with particular AI area as well as gain some
bigger project experience.

Prepare a written up to half page description of your project by April 4th.

1. Game playing.

Develop a game playing program for a game of your choice
(tic-tac-toe, 3D tic-tac-toe, othello) and implement
min-max and alpha-beta pruning as well as try different
heuristics and evaluate them by playing against the
program (in case you opt to do this in lisp some starting
code can be provided)
 

Formulate the problem of pursuit and evasion between multiple mobile
agents (start with two agents) in a game-theoretic framework, suggest state
representation, set of operators and implement min-max and alpha-beta
pruning to devise an optimal strategies for the evader agent.  Each has a
starting position and evader has a particular goal and pursuer is trying to
catch the evader. Try to devise conditions on the set of initial relative
configurations, which are safe from the perspective the evador (i.e. it is
impossible for the pursuer to capture the evador).

2. Search

Formulate the problem of navigation of mobile agents in the known
environment as a search problem. Implemet A* algorithm for navigation from
point A to B of a mobile agent in a grid world in the presence of the
obstacles. Suggest evaluate different heuristic functions.
 

3. Knowledge representation and planning.

Develop a rule based production systems planner, for a simple toy problem
(Monkey and bananas, blocks world, Shakey's world) and evaluate the
effectiveness of the planner exploring different heuristics of firing the
rules. For this topic you would have to read bit more about planning
(chapter 11) you can look at some of the excercise there.
 

4. Machine Learning

Implement an reinforcement learning agent which learns how to balance a
pendulum, or navigate the corridors.

Approach the elevator scheduling problem as a reinforcement learning
problem.

The project in the following two cathegories also include some elements of
machine learning.
 

5. Vision

Here are some ideas you can try:

Develop a face recognition program, which takes as an input some sample
images of fronto-parallel faces.  When a new face arrives it decides
whether the face is in the database.

Develop color based segmentation algorithm, which given an image detects
regions with the uniform color. You can tune this algorithm to detect human
faces or hands in images.

Suggest a simple gesture based interface for VCR control. Taking an
image of a human hand and detecting it in the image, this can be done
as a classification problem.
 

6. Robotics

The topics mentioned here deal with issues of representation, planning and
control for robotic agents.  Implement an goal reaching and obstacle
avoidance behavior for mobile robot equipped with ultrasound sensors.

Write a map building program for a mobile robot which allows the robot to
start with no knowledge about the environment and gradually build a map using
readings from the ultrasounds sensors and finds its position in the map.

Additional project will can involve building a Lego robot(s) exhibiting
variety of 'interesting' behaviors and/or engaged in some simple tasks.
(Vehicles that follow a line on the floor or vehicles that seek each other
out, communicating with light or infrared signals etc.)
 
 

7. Neural Networks

Using one of the neural network packages available on the net, develop
a small project using neural networks to recognize simple objects such
as hand-drawn letters or numbers.
 

8. Genetic Algorithms

Using one of the genetic algorithms packages available on the net,
develop a small project using genetic algorithms as a heuristic
search mechanism for solving an NP-hard problem like TSP or SAT.