Mike Wooldridge -- Projects



Research Projects

MJWR1: A Graphical Model Checking Tool for Knowledge

The logic of knowledge (epistemic logic) is a formalism that is intended to enable reasoning about what agents in a multiagent system know. The semantics of epistemic logic are given in terms of "possible worlds". For example, if I thought that there was one possible world (state of affairs) where it was raining in Liverpool, and another where it was not raining in Liverpool, then you would say I did not know whether or not it was raining in Liverpool. If, however, in all the states of affairs that I considered possible, it was raining in Manchester, then according to possible worlds semantics, you would say I knew it was raining in Manchester. The idea of this project is to develop a graphical tool for drawing these knowledge structures pictorially, and then for checking whether or properties are true in these structures.

Main reference: R.Fagin, J.Y.Halpern, Y.Moses, and M.Y.Vardi. Reasoning About Knowledge MIT Press 1995.

MJWR2: Implement RoboCup Soccer-Playing Agents Using JAM

The RoboCup robot-soccer initiative is a hugely successful international initiative intended to support the development of robotics by setting the goal of having a team of robot agents that will be able to beat a human team within 50 years. This is a very challenging initiative because it not only requires robots that are very (VERY!) agile and capable, but also because it will require the robots to be able to coordinate their activities with other members of their team. As well as a physical robots league, RoboCup have a simulator league, which allows programs to play instead of robots, in a simulated environment. The simulator can be downloaded for free. The idea of this project is to develop robotic soccer playing agents using the JAM system. JAM (Java Agent Model) is a software system for building agents. If more than one student undertakes this project, we can run a competition to see who did the best implementation.


Problem Solving Projects

MJWP1: Trading Agents

The idea of this project is to implement trading agents for the trading agent competition (TAC). The idea of the TAC is that we have software agents which attempt to buy components of a travel package in a simulated real-time marketplace. Prices in the market fluctuate with varying demand (so if there is high demand, prices will tend to rise; low demand, and prices will tend to fall). Demand is determined by the other software agents, which are also attempting to buy travel packages. You want to build an agent that gets the best deal.

If multiple students undertake this project, we can have a competition to see who delivers the best result. Project requires Java programming.

MJWP2: Comparison Shopping Agent

I want a comparison shopping agent, which will find me the best deal possible on Apple Mac hardware, software, and peripherals. I will issue a query to your comparison shopping agent, and it will then issue this query to a number of online Apple Mac shops. The results of these parallel searches will be presented to me in an orderly and systematic way. The idea of a comparison shopping agent is very similar to Froogle, the Google comparison shopping system.

MJWP3: Intelligent WWW Search Tools: Automated Query Refinement

The aim of this project is to develop a tool for intelligent WWW search. The main function of the tool is to help users to refine their search terms (i.e., the keywords they use when doing a search). The basic idea is as follows. You will develop a tool that, like a search engine, allows a user to enter some search terms. Your tool will then behave as follows:

  1. the query terms are simultaneously issued by your tool to a number of search engines E1, ... , En;

  2. your tool then collects the results from each search engine --- from engine Ei there will be a HTML document Di which will contain an ordered list of URLs Ui1, ..., Uik which the search engine Ei believes are relevant for the search terms;

  3. for each search engine, your tool then obtains the 5 most relevant documents (i.e., it downloads the document at URL U11, U12, U13, U14, U15, U21, U22, U23, U24, U25, .... Un1, Un2, Un3, Un4, Un5);

  4. each of these HTL documents is then translated to a Java Vector (list) of words (using the Java StringTokenizer class) - all formatting instructions (e.g., HTML tags) are removed at this stage;

  5. you then delete from each list of words the noise words (e.g., "the", "and", "of", etc) which are not relevant to the original query;

  6. for each of the Vectors that remain, you then compute the words that occur most frequently in each Vector --- for each of the documents that you downloaded, these will be the terms that occur most frequently in these documents;

  7. finally, for the wordsa that occur most frequently in individual documents, compute the words that occur most frequently in most documents. Thus if a word "Wooldridge" occurs a lot in one document, but not in any others, it may not be relevant.

  8. these words are then good candidate terms to seach on in future.
There is some scope for investigating different measures of relevance (eg the most discriminating words in a document may not be the most frequently occuring!)

The project will be implemented in Java, and will involve programming using the java.net classes (e.g., the URL class).


Development Projects

MJWD1: Online Multiple-Choice Test

I wrote a textbook on multi-agent systems, and associated with that, I distributed a bunch of teaching materials (lecture slides, etc). I would like to develop some online-testing material; in particular, I would like to be able to put an online multiple-choice test system up, whereby students using the textbook across the world can go to the online testing page and face a multiple choice exam set by me on the book. The system would allow tests to be set by chapter, and must be easy both for students to use and for me to manage. In particular, I maybe would like to change questions from time-to-time, so my input to the system should be something nice and simple such as a text file with entries as follows:
  <question>
   <text>
   What is the best agent architecture?
   </text>
   <possible-answer>
    <label>A</label>
    <text>TouringMachines</text>
   </possible-answer>
   <possible-answer>
    <label>B</label>
    <text>InterRap</text>
   </possible-answer>
   <possible-answer>
    <label>C</label>
    <text>The Procedural Reasoning System</text>
   </possible-answer>
   <correct-answer>C</correct-answer>
  </question>

I would like this system to be available via the WWW. I would envisage it being written in PHP, or possible PERL.