2005 MSc Projects
Last updated: 3 March 2005
E-mail: J.J.Bryson // bath.ac.uk
General Interests: Artificial Intelligence, Natural
Intelligence, Artificial Life, AI Development Methodologies.
Samples of Specific Interests: Modular models
of animal
intelligence, the evolution of social behaviour, intelligent
environments,
tutoring systems, VR characters, autonomous robots, multi-agent models
of
political systems.
These are hacked from a number of sources, sorry the formatting
isn't uniform. For more about me, see my home page (above).
- Improving the Usability of an Emotional Face
- Expressing Text with a VR Face
The face described above can also
talk! But it takes time to mark up the text it will read in order
to say what emotions it should express. What we would like
is to combine Emmanuel's system with an automatic text tagger written
by
Elzware. Elzware is a
local company that makes intelligent FAQ / Chatbots for the web.
We would like to use their technology to let us know when our agent
should be getting angry, happy or excited, based on what it is saying,
or what is being said to it.
You will be working with
Emmanuel
Tanguy, one of my PhD students, as well as myself, because it's his
face. You will also be working with Elzware's software & be
demoing for their president, Phil Hall. However, unlike the
previous project, for this one you can treat both the face and the
tagging software as a black
box. The I/O will all be marked up text, mostly XML. You
may also write some surrounding GUI to make your project usable.
This is a good project for a student interested in an industry job in
applications or web applications.
For some details about the system see also:
The Role of Emotions in Modular Intelligent Control, with
Emmanuel Tanguy, and
Phil Willis. Cover
article (well, blurb!) for the 2004 Summer
AISB Quarterly.
Emmanuel Tanguy,
Phil Willis and I,
A Layered
Dynamic Emotion Representation for the Creation of Complex Facial
Expressions. In
the proceedings of
Intelligent
Virtual
Agents.
- Cultural Evolution and Prestige
This project examines memetics, the
process by which knowledge can be built not through careful reasoning
by an individual, but by a process of natural selection of ideas as
they are transmitted through implicit or explicit mechanisms from one
individual to a next. This simulation will not model the
development
of new knowledge, but rather how randomly distributed knowledge
propagates through communities.
This project will be done using agent-based modelling (ABM). It
requires doing some literature research until you understand the field,
designing a set of experiments, programming (fairly simple) agent
behaviours, then running and analysing the experiments. The
experimental conditions include:
- There will be a variety of knowable things with varying costs and
benefits to knowing them.
- An agent's fitness on any turn will be dependent on what it knows
(which we assume influences its behaviour, but we won't show that.)
- An agent's prestige will be related to its fitness over time.
- Information will be automatically (but stochastically)
transferred between
neighbouring
agents.
- In some conditions, agents will be more likely to learn from
agents with more prestige.
- In some conditions, new naive agents will be born, learn &
eventually die, while in others all the agents will live forever.
The experiments will look at whether
& how useful knowledge
spreads, and harmful knowledge dies out.
This is a good project for a student interested in going into research
and/or the social sciences.
For related work done here at Bath, see:
Why
Information Can Be
Free.
For more on ABM, see:
- Monkeys vs. Leopards
Macaque troops (a type of monkey) tend
to spend their days in large groups with the dominant animals towards
the middle of the group and the less popular animals around the
fringe. It has been suggested that this arrangement allows for
the survival of the fittest, because predators will most likely capture
the animals on the edge, who have already proven less fit in dominance
contests in the troop.
Charlotte
Hemelrijk has shown that, in fact, this arrangement can `emerge'
from the dominance interaction itself --- the animals that typically
lose fights will wind up running to the fringes, the animals that
typically win will wind up towards the middle. She has argued
that this makes the old predator suggestion obsolete. But in
fact, it may be that she has just described the
mechanism by which a good
evolutionary strategy has been implemented. If this is true, then
predation may actually account for the evolution of dominance
interactions.
This project will be done using agent-based modelling (ABM). It
requires doing some literature research so that you can appropriately
characterize the macaque's predators and their evasion techniques, and
so that you can understand ABM and Hemelrijk-like models. We
already have replications of her work, so you will be starting from
existing software in either NetLogo or MASON and creating some
additional agents. You will need to
design a set of experiments, program the agents, then
running and analyse the experiments. You will have a PhD student
and, for part of the year, an RA working on related projects. But
you will have to be a decent programmer with good organizational skills
to get this done.
For related work done here at Bath, see our
macaque
social behaviour blurb. We also have some past MSc
dissertations you can read.
This is a good project for students interested in going into research.
For more on ABM, see:
- Different Machine Learning Techniques for
Social Learning of Action Selection
I'm not entirely sure about this
project, but if you are good at mathematics and interested in machine
learning, come talk to me. The idea is that you will be getting a
stream of data from observing people & AI agents behaving in Unreal
Tournament, and you will be using different `off-the-shelf' pattern
matching techniques to compare different ways of recognizing what
perceptual contexts are leading to what behaviours. This work
will be done with my PhD student,
Mark Wood.
This is a good project for either doing research or industry, as there
are many opportunities to apply machine learning.
For other related work, see the
pyPOSH
page.
- Monkeys in a MUD (using BOD)
- Behavior-Oriented
Design
(BOD) is a way of making artificial
intelligence based on combining object oriented design and POSH
reactive plans. The goal of this project is to create entertaining
characters in a Multi-User Dungeon. We have a particular
dungeon in mind which we have already connected to with python
(it's this one). But you
should realize that that one has some fairly rude inhabitants who make
many jokes about sex and such things, so don't go there if you might be
offended. We chose it because:
- It is set up to be inhabited by AI characters as well as people.
- It has a regular population of people who actually use it, so
you will have people to test out your characters when they become good
enough to show off.
- The idea there was to build monkeys to run
around
the MUD, so there's no reason to tackle natural language (much.)
You would need to spend your first few weeks connecting pyPOSH to
the MUD. (Last year's student skipped this part & barely
passed. This year, if you skip it, you don't pass!) Then
you will need to create a monkey character who moves around and
interacts with people. It should ideally be unobtrusive most of
the time unless someone comes over and treats it well or badly.
- After you have one monkey, you should build
some more. The idea is that a troop of monkeys will be spread out
in the dungeon, mostly sitting quietly by themselves or grooming each
other if they happen to be in the same room. But if someone is
mean to a monkey (e.g. kicks it or hits it with a stick) it should go
find the rest of the troop then come back & find the mean character
and tease him as a group.
This is a good project for practising
programming skills for going into industry.
- This project requires representing building
representations of time & location. It is more difficult
conceptually than in terms of programming. For examples of
similar BOD agents, see these papers:
- The Behavior-Oriented Design of an Unreal
Capture-the-Flag Team
- Behavior-Oriented
Design (BOD) is a way of making artificial
intelligence based on combining object oriented design and POSH
reactive plans. The goal of this project is to extend some existing BOD
UT characters to test theories of teamwork & communication.
This would involve doing research on teamwork theory, then programming
demonstrations of various strategies, then letting the teams fight each
other!
- This will require a lot of programming,
though don't worry if you haven't programmed much before. Many of
the basic behaviours are already coded, so you will be able to learn by
looking at examples. But you do need to be able to handle the
complexity of getting a system with a number of components running at
the same time, and then thinking about what an entire team of agents is
doing. In other words, you need to be ready to work a lot all
summer, after having done a lot of reading this term.
This is a good project for learning
about artificial intelligence and developing programming skills, either
for industry or as preparation for further (probably taught) graduate
degrees.
- The code for this project will be in python,
which is kind of like Java or C but simpler (it's a dynamic scripting
language.) Here are the instructions
for getting the BOD UT stuff running (it uses pyPOSH.)
- How to
Make a Monkey Do
Something Smart A brief, `fun' unpublished document about
Behavior
Oriented Design (BOD).
- Andy Kwong's
quite
excellent MSc Dissertation.
- There will also be a more recent
undergraduate dissertation available in about May by Sam Partington,
and you will have access to his code before that.
The below projects might be available. You must talk to
me in person before proposing to do them!
Title: A GUI Development Environment for Reactive Plans
Description:
Reactive plans are an excellent way to organise the behaviour of
complex artificial agents, such as VR characters or simulated animals.
A developer provides a concise, robust plan which the agent can then
apply in a large number of diverse, dynamic situations. However,
visualising, coding and debugging reactive plans can be tricky.
This project extends existing work on Behavior Oriented
Design.
Two MSc projects over the summer have already created a GUI for
editing plan elements and a new version of the POSH reactive planning
system, both written in Python. Python is a scripting language
that is extremely simple to learn for Java or C programmers; it
sacrifices a little speed for coding simplicity, e.g. it is not
strictly typed. Writing GUIs in python is very quick and intuitive.
The project will require creating an improved view of the
complete plan, connecting the plan execution software, connecting the
plan execution software to the planner so that execution can be
observed
in real time. Additional features should include some of the
following: connecting to an editor (preferably emacs) for editing
source code for plan primitives, building demonstration AI characters
in a graphical environment, user testing,a well specified API, logging
facilities so that behaviour can be re-run out of real-time for
debugging
and analysis, evaluations and possibly improvements on the POSH plan
representation. The final writeup may be directed toward either
industrial or academic standards, depending on the student's career
interests.
The
POSH planning system, though developed by Dr. Bryson, is being used and
evaluated at several other universities. It is expected that the
outcome of this project will be made publicly available from the Bath
AI web pages, and will be used by many students and researchers.
Pre-requisite knowledge:
Strong competence in at least one GUI development
language, knowledge of HCI, willingness to learn new languages,
interest in AI, willingness to read academic papers.
Indicative reading:
Title: Passing the Turing Test in a Games Environment:
Language and Action in UnReal Tournament.
Description:
The Turing test is a functionalist solution to the
question "How will we know when we have achieved AI?" Alan Turing, (the
English mathematician who funded AI and computer science) suggested the
answer was simple: you've achieved it when people can't tell
whether they are interacting with a computer or a person.
Obviously this test is harder to pass in some circumstances than
others. This project will look at the domain of language in
multi-user gaming.
In a gaming environment, there are many distractions.
Further language is often stereotyped. Also, most of the
things the language will be referring to are specified in the semantics
of the game, either objects or actions. The goal of this project
is to create a simple reactive AI agent which gamers have trouble
distinguishing from at least some classes (e.g. novices) of other
gamers.
The first task will be to collect a large corpus of gaming
conversations, possibly including chat-room dialogue. The next
task
will to be attempt to categorise sentences into ones that can be
responded to simply (e.g. "How are you doing?") and ones that require
actions or observations (e.g. "Is there anything over there? " "Go
right!") The third will be to build an agent which can respond
appropriately to at least some of the things that are said, or to some
events in a gaming environment.
Existing work includes an MSc project this summer which produced
an AI agent which operates in Unreal Tournament. This agent is
written in Python which is a good language for doing prototypes and has
good regular expression libraries.
Writeup would probably be
aimed toward an industrial standard, documenting design decisions,
usability and extendibility, it must include experimental evidence of
the extent to which it passed Turing equivalence.
Pre-requisite knowledge:
Should be a very strong student, happy with both statistics and
parsing, not afraid of reading or programming.
Indicative reading:
Daniel Jurafsky and James H. Martin's Speech and Language Processing: An
Introduction to Natural Language Processing, Computational Linguistics,
and Speech Recognition, Prentice Hall, 2000
Joseph Weizenbaum's ELIZA: Communications of the ACM
Try also typing M-x doctor in any full version of emacs.
The
Behavior-Oriented Design of Modular
Agent Intelligence