Projects

KNB1 Walk this way: simulating pedestrians
ALLOCATED
KNB2 Path planning algorithms
ALLOCATED
KNB3 Agent coordination in JADE
ALLOCATED
KNB4 Iterated Local Search for Scheduling

Some project suggestions are listed on the right. These projects are suitable for either 4th year projects, or for MSc projects. You are also welcome to suggest your own project, if they match my general interests outlined below. It is best to contact me first by email (k.brown @ cs.ucc.ie).

My research interests are in intelligent decision making, particularly for cooperative, competitive and uncertain situations. How can a group of people arrange a set of meetings, without revealing their entire diary? How can a group of sensor nodes coordinate themselves to cover mobile targets? If I help you today, can I be sure that you will help me tomorrow? What move should I make in a game, knowing that you are trying to beat me? How should I present information to a user to help them make the best decisions they can? How do I make a decision when there are many conflicting requirements? What decision should I make today when I don't know what will happen tomorrow? Applications include scheduling work requests, booking patients in for appointments, agent-based e-commerce, optimising business supply chains, interactive games, etc.. Most of my research is carried out with 4C: the Cork Constraint Computation Centre. In particular, I am part of CTVR, a multi-site research centre in collaboration with Alcatel Lucent (Bell Labs), in which we are optimising the operation of wireless networks, ITOBO, a multi-disciplinary project looking at ICT for energy efficient smart buildings, and NEMBES, a research consortium based in Cork looking at the design, deployment, operation and applications of networked embedded systems.

Project List

KNB1: Walk this way: simulating pedestrians

When designing road networks, buildings, and walkways, you need to consider how traffic or people move through the environment, to avoid creating unnecessary bottlenecks, congestion hot-spots, or unsafe evacuation routes. One way of doing this is by multi-agent simulation: each individual is modelled as an autonomous agent with characteristic movement (e.g. walking speed, obstacle avoidance, queuing behaviour, and so on), and then designs can be evaluated in different scenarios. However, it is important that the agent characteristics are realistic, or else the evaluation is useless. There are similar issues in the design of agents in computer games. As part of the Nembes grant, we are building a simulator for the evacuation of buildings. For this project, you will create different classes of agents with different styles of movement, evaluate their walking style, and evaluate designs for ease of evacuation.
Requirements: You must be a confident Java programmer - the existing simulator is coded in Java, including a graphical simulation of floor plans and agents, and you will be required to understand how this simulator works in order to generate new agent types.

KNB2: Path planning algorithms

In robotics, computer games and route planning, agents must be able to plan a route through a landscape in order to reach a destination. The environment is normally represented as a graph, with nodes representing locations, and arcs representing legal movement. The problem is more complicated when the travel time across arcs or the accessibility of nodes varies over time (e.g. due to road congestion, or incoming tides). As part of the Nembes grant, we are building a simulator for the evacuation of buildings, and it can produce navigation graphs for the building. In this project, you will investigate, implement and compare a number of different algorithms for path planning, and integrate your software with the building simulator for demonstrating the performance of the different algorithms.
Requirements: You must be a confident Java programmer - the existing simulator is coded in Java, and you will be required to understand how this simulator works in order to integrate your path planning algorithms. You should also be interested in research, since the project will need you to read current research papers and implement new algorithms.

KNB3: Agent coordination in JADE

A software agent is an piece of software which senses and acts on its environment, and work with some level of autonomy. Agents may operate as a representative for a person or company or physical object - for example, in automated negotiation, e-business, and so on. JADE is an open-source development environment for java-based agents, designed to make it easy to implement multi-agent systems. In this project, you will explore the JADE framework, and use it to build a system for multi-agent negotiation over sharing of resources - for example, in coordinating meetings times among a group of people, or allocating radio frequencies in communications problems.
Requirements: You must be a confident Java programmer. You should also be interested in research, since the project will need you to read current research papers and implement algorithms.

KNB4: Iterated Local Search for scheduling

For many practical problems, it can take a very long time to find the best answer - for example, scheduling hundreds of tasks for a team of workers. For such problems, local search methods like hill climbing may be suitable - we start with a possible schedule, and then improve it by swapping the times of two tasks, or moving one task from one worker to another, and continue trying changes until we can't improve our current schedule. Iterated local search extends this idea, to conduct a sequence of searches, and using information from the last search to pick a starting point for the next one. Iterative local search has been shown to be one of the best methods for finding near-optimal solutions to hard combinatorial problems. In this project, we will explore the use of iterated search for large scheduling problems, evaluating different ways of moving through the search space, and different ways of reusing the previous solution to start the new search.
Requirements: You must be interested in research - this project will require you to read current research papers and to explore new ideas. You should also be comfortable with algorithms and programming.