CSC 481 -
Artificial
Intelligence
Spring
2004
Programming Project
Due 4/19
Each student will implement an artificial intelligence algorithm. You will be
expected to turn in a proposal on or before February 16.
You will also provide progress reports on specified dates. The
final project will be due on April 19, and a demo of the project
will be done for the class or for Dr. DiPippo.
Project Choices:
Throughout the semester we will be covering many algorithms that provide a level of
artificial intelligence to computer programs. You can choose any algorithm that you wish
to implement. The environment in which you implement your algorithm will likely be a
crucial part of your choice of project. You have the option of building your own AI
environment, or using one of several previously built environments. Here are some
suggestions for building your implementation:
-
AIMA Environments. The authors of our textbook have developed an extensive
set of programs in the various programming languages. This software is
provided at
http://aima.cs.berkeley.edu/code.html. The installation
procedures are all included. The code provides several useful environments,
discussed
in the text, in which
interesting AI algorithms can be implemented.
Using this code may require
an initial learning curve, but the code is relatively well-tested and once you
learn
how to use it, the job of implementing the algorithm will be somewhat straightforward.
-
Wumpus World. Various version of Wumpus World simulators are
available on the web. You can use one of these simulators to provide you
with the foundation for the environment. Then you can implement one or
more AI algorithms within the environment.
-
Other AI environment. You can do some searching of your own for interesting,
previously built AI environments that you can use for your implementation. For example,
there is a large group of AI researchers that have worked on a project called
RoboCup.
This is an ongoing project to use a soccer environment to test and implement new AI
and agent-based algorithms. There may be some useful environments available for you
to use for your project.
-
Your own environment. Implement your own environment, either a toy environment
or a more real-world environment (with certain restrictions). This choice gives you
the freedom to do your own programming, but it puts more burden on you to build the
environment as well as the algorithm implementation.
Remember that the algorithm that you choose to implement is the most important part of this
project. Do not get bogged down with details of the user interface, although it should
provide a clear demonstration of what you have implemented, and how it works.
Suggested Algorithms:
You may choose any artificial intelligence algorithm that interests you. Use your
textbook as a starting point, but if you find something interesting outside the text,
you are welcome to use it.
Below is a short
list of possible algorithms to choose from.
|
-
AI game playing algorithms
|
-
Multi-agent communication algorithms
|
|
|
-
Natural language processing algorithms
|
If you are looking for some ideas, there are many exercises in the textbook that require
implementing an algorithm in one of the toy worlds described in the book. Look for the
computer icon next to the exercises in the textbook.
Proposal:
You will turn in a proposal of what you plan to implement by 2/16.
Your proposal should include at least the following information:
-
Objective: Two or three sentences describing the objective
of your proposed project.
-
Methodology: This will include a description of how you will
go about reaching your objective. An outline of the
algorithm and a description of the environment in which you plan to build it
will be expected here.
-
References: Include in your proposal at least 2 references
or sources of material you will use for your project. These can
include your
textbook, but you should also include at least one other source from which you
have or plan to get information for this project.
Please submit your proposal to
Dr. DiPippo on the due date (2/16). I will give you feedback
on your proposal within a few days to give you direction on how to start
your project.
Progress Reports:
On March 15, and April 5, you will provide a progress report of your
work. This report should indicate how much of the proposed work you have
completed up to that time. The progress report should include at least:
- A discussion of the envirnoment in which you are working - how much
have
you learned from it? What issues are you encountering with it?
- A dicussion of how far you have gotten in the implementation of the
algorithm - How difficult/easy is it to implement within the chosen
environment? What issues have you encountered in the implementation?
Also include any updates that you have made to the problem that you are
solving. For example, if you have found that the work that you originally
proposed to do is either too ambitious, or not appropriate, indicate any
changes of direction that you have chosen to take.
**NEW** - Additional Information
about April 5 Progress Report
For the second progress report, due 4/5, along with the above, you will
be expected to report on what you have left to do to finish the project.
That is, list the specific tasks that are remaining, and describe how you
will go about completing them. By this time in the project, you should be
far enough along to know exactly what needs to be done to finish.
Final
Project:
For your final project, you should turn in, in hard copy as well as email submission
to Dr. DiPippo:
-
Written Report. This should include a full description of the algorithm
(pseudocode might be
helpful here), and a description of the environment that you chose to use for
your implementation and exactly what the algorithm does in the environment. Also include
any assumptions or restrictions you had to make for your implementation. For instance,
if you had to make any simplifying assumptions about the kind of data your algorithm
could handle.
-
Source Code. This should include full source code of your implementation and
any changes that you may have
made to an existing environment that you used.
-
Lessons Learned. For example, having done it, what would you do
differently if you had to do it again. Also, did you learn anything interesting about the
AI environment in which your implemented your code?
-
List of references. This should include any outside sources you used to
do this project. You should include the text book if you
used an algorithm from there, as well as any papers, or web sites that you found helpful
in doing your implementation.
You will also be expected to provide a demonstration of the code to Dr. DiPippo after the
due date of the project and before the last day of classes. A sign-up sheet for
demonstratoins will be made available when the projects are due.
Please also see the AI
Links and Other
Interesting Links provided on the CSC 481 web site for possible sources
of information for this project.