CSCI323/MCS9323: Artificial Intelligence
SITACS, University of Wollongong
PROJECT GUIDELINES
- The project is worth 30% of your final mark. The project is meant to be
an exercise for you to do something creative with the techniques
and technologies we are discussing in CSCI323.
The project must involve practical
applications of artificial intelligence, or theoretical insights/advances in
the area.
Your project should be designed to fit one of the following three
categories:
- Category One: You come up with an idea that makes an
interesting and
(at least somewhat) original contribution to the
state-of-the-art. For instance, this could be a new variant of an existing
knowledge representation language, a new variant of an existing search
technique, a new
agent programming language, or a new technique to support agent
negotiation.
You describe your ideas in a
concise report of 10-15 pages (content matters, not size). If your idea is
interesting/original enough, you don't need to write and
experiment with code to prove validate your idea.
- Category Two: You come up with a novel/original application of
a technique that we have discussed in class. You describe
your idea in the report, possibly including a system design for the
proposed application domain. You write some code by way of a
(at least partial) proof-of-concept implementation. Your implementation
will not be expected to be as detailed and as comprehensive
as in a Category Three project (described below). You include an
explanation of
the code in your report and attach the documented
source code.
- Category Three: You write code to implement and test some
technique that we have studied in class (or is related to the
course content) in a realistic/practical application. The code you write
should be substantive (justifying 10 weeks of work). Your
report will describe the implementation and explain why it is interesting.
You will attach the documented source code to your
report.
Note that these categories are not presented in any specific order of
importance
. You may do well with a project in any category.
- The following are some interesting ideas for possible projects. Note
that th
is list is not meant to be complete.
- Novel techniques for knowledge representation; Consider for
instance the latest extension to logic programming that has lots of AI
researchers excited - answer set programming (this page
has some good initial pointers). Can you extend the knowledge
representation language, can you develop better ways of computing answer
sets, or can you think of novel applications of the technology>
- Agent technology applications: The UMBC AgentWeb is a good collection of
resources on these topics. Botspot
lists all kinds of agent applications.
- Look at how agent building tools (such as those listed here) and agent programming
languages (such as AgentSpeak) work. Are there interesting applications for
these tools and languages ? Can you suggest improvements to any of these ?
Can y
ou invent new ones ?
- Look at how agent technology is applied in e-commerce (see this page
for a
good collection of introductory papers). Can you
think of new ways of building agents for e-commerce applications ? Can you
think
of new e-commerce related application domains for
agent technology ? Can you build or improve upon an agent-based
marketplace such
as Kasbah ?
- Look at how agent technology is being used to solve resource
allocation prob
lems (this page introduces market-oriented
programming. Can you think of new applications for such
techniques ?
- Look at agent trading applications, such as those listed in the Trading Agent
Competition webpage.
- Look at applications of multi-agent systems, such as the fun Robocup competition (or our
very own Robocup team - Gongeroos'99
) or the more serious Robocup Rescue
competition.
- Look at commercial ventures such as Agentis and Agent Oriented
Software. Can you think of new and innovative
applications along these lines ?
- Constraint programming and intelligent search technology: Can
you think of better ways of representing and solving constraint satisfaction
problems, or real-life optimization problems?
This page is a good
collection of resources on constraint programming
Begin by looking at this page
for introductory material. This webpage is specially useful.
-
Image compression using AAN (auto-associative neural network): Propose a
mean to simulate an AAN by using MLP with a single hidden layer. Use the
MLP as a tool to learn the compressing and uncompressing of images. Note
that the first layer in the network which connects the input with the
hidden neurons can be seen as a compressor of data presented to the
network, while the second layer which connects hidden neurons with the
output neurons can be seen as an un-compressor.
Run some experiments by using the dataset of images from
http://www.uow.edu.au/~markus/teaching/CSCI323.
What is the MLP configuration (ie. what is the number of hidden layer
neurons, and what parameters did you try?) that allows for a reasonable
compression of all images, while producing a performance with acceptable
error? Sources with introductory material to MLP and AAN are plentiful.
For example, introductory material on MLP can be found
http://hebb.mit.edu/courses/9.641/2002/lectures/lecture04.pdf
-
Identification of appropriate training parameters in SOM (Self Organizing
Maps): Current approaches to identify a suitable training parameters (eg.
learning rate, neighbourhood radius, training iteration and weights) in
SOM largely rely on trial-and-error. Propose an approach to identify
appropriate parameters for training that avoids trial-and-error. Explain
and show how your approach works, then represent your training result on a
map. Some introductory material on SOM can be found in scholarpedia or in
parts 1 & 2 from The Peltarion blog, or by looking at a book by T.Kohonen
(in library). A good implementation (binary and source code) of the SOM
can be found at
http://www.cis.hut.fi/research/som_pak/
the software is explained in the following document
http://www.cis.hut.fi/research/papers/som_tr96.ps.Z
you may modify the above sources, use other sources, or implement a SOM
simulator yourself.
-
SOM (Self Organizing Maps) for cyclic graphs: SOM has a limitation on
dealing with cyclic graphs, and as a result, some pre-processing before
training is usually required for such graphs. Read up on what has been
done in the past (eg. CSOM-SD), then propose a novel approach that allows
the processing of cyclic graphs by a SOM. Show that the computational
complexity of your approach has been taken into account.