2005 MSc Projects


Last updated:  3 March 2005

Dr Joanna Bryson

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
This project builds on an existing system which uses a realistic emotional representation to control an 3D VR face.  It involves creating an editor for the expressions associated with different emotions, which includes an editor for altering the "muscle" representation for the face.  It requires programming in C++ and working with a modular AI system (though you won't need to know much / any AI.)

This is a good project for a student interested in an industry job in applications or HCI.

You will be working with Emmanuel Tanguy, one of my PhD students, as well as myself, because it's his system!

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.




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:
  1. There will be a variety of knowable things with varying costs and benefits to knowing them.
  2. 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.)
  3. An agent's prestige will be related to its fitness over time.
  4. Information will be automatically (but stochastically) transferred between neighbouring agents.
  5. In some conditions, agents will be more likely to learn from agents with more prestige.
  6. 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:
    1. It is set up to be inhabited by AI characters as well as people.
    2. 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