I am mostly interested in Artificial Intelligence problems, and I am happy to supervise projects in (almost) any area of AI. I have listed some suggestions below for projects as a starting point, but I am happy to discuss other topics if there is an AI or general CS project you would like to do.
(Multi) Agent-based simulation is an increasingly widely used technique to study the emergent properties of interactions between entities or individuals (e.g., vehicles, animals, people). It is particularly approprite when the phenomena of interest result from many discrete interactions between individuals. For example, large scale agent-based simulations have been used to simulate the possible impact of treatment options in pandemic flu. The aim of this project would be to build a (small-scale) agent-based simulation to allow the analysis of the emergent properties of a simple system (e.g., traffic jams, disease spread, economic behaviour). The simulation could either be based on an existing agent simulation toolkit such as Mason, or could be written from scratch.
Valentino Braitenberg's book Vehicles contains a series of thought experiments designed to show how seemingly complex behaviour can result from (very) simple robot architectures. Braitenberg's vehicles use direct, excitatory and inhibitory couplings of sensors to motors: sensors respond to features in the environment, e.g., heat, light etc.; motors move the vehicle in response to signals from the sensors; connections carry signals from the sensors to the motors and either cause the motors to turn or inhibit them from turning. Braitenberg describes a range of vehicles, including those (he) imagined to exhibit: cowardice, aggression, and even love. There are a number of Java and web-based Braitenberg simulators available, e.g., the KOVAN Braitenberg Vehicles applet. However in general these do not allow the vehicles to respond to objects in the simulated environment, such as obstacles and other vehicles. The aim of this project is to implement a Braitenberg vehicles simulator in which the agents can respond to objects and other agents in the environment.
The Procedural Reasoning System (PRS) can be viewed as an agent architecture for real-time, continuously-active, intelligent systems that make use of procedural knowledge, such as diagnostic programs and system controllers. It has been used in a number of applications including space shuttle fault diagnosis, mobile robot control and communications network management. The architecture consists of (1) a database containing current facts and beliefs, (2) a set of goals to be achieved, (3) a set of plans or procedures describing how certain sequences of conditional tests and actions may be performed to achieve certain goals or to react to certain situations, and (4) an interpreter that manipulates these components to select and execute appropriate plans for achieving the system's goals.
PRS was originally implemented in the AI language Common Lisp. The aim of this project would be to re-implement a core subset of PRS in Java, and use the resulting system to build a simple agent, e.g., to control a simulated mobile robot.
3APL is a simple agent programming language developed at the University of Utrecht for programming agents which have beliefs, goals and plans. (For more information about (3)APL agents, see the paper by Dastani et al.) 3APL is simple and elegant, but there is only one interpreter for it, which does not implement all the features of the language.
The aim of this project is to design and implement an interpreter for 3APL in Java and use the resulting system to build a simple agent.
Before any large infrastructure project is approved, it is necessary to perform an Environmental impact assessment to determine the possible impact of the project on the environment. One aspect which is often significant is the visual impact or degree of visual intrusion of the proposed development.
The aim of this project is to investigate ways of computing environmentally sensitive routes through complex 3D terrain. Route planning in complex terrain involves trading-off many factors, balancing the feasibility and cost of the route with its likely environmental impact. For example, in planning a route for for the Channel Tunnel high speed rail link, it is necessary to take into account the length of the route, the type of ground on which the track is to be laid, the maximum gradient which must be negotiated and the visibility of the proposed route. Similarly, in choosing a route for a line of electricity pylons or an undersea cable, many of the same criteria can be applied.
This project would involve developing a simple route planning system which generates concealed routes, taking into account constraints appropriate to a particular domain. Possible extensions include providing support for mixed-initiative planning.
The aim of this project would be to investigate strategies and representations for models which mix levels of abstraction and to consider how this information could be used by a route planning algorithm
In general, a planning problem is specified by three things:
This project would involve using published descriptions of algorithms to design and implement a simple non-linear planner for some domain such as the blocks world which is capable of solving problems like the Sussman anomaly in a principled way. A more ambitious project might involve extending the implementation to handle some aspects of one or more of the following: non-instantaneous actions, identifying actions which could be executed in parallel, planning with resource limits (e.g. time or money), or planning in abstraction hierarchies.
This file is maintained by Brian Logan Last modified: 22-May-2015, 16:55