Projects

All projects slots are now allocated.
KNB1 Solving real-time dial-a-ride problems
KNB2 Optimising fleets of autonomous vehicles for public transport
KNB3 Avoiding other agents in path-finding
KNB4 Assorted projects in algorithms and optimisation

Project suggestions are listed on the right. These projects are suitable for either 4th year projects, or for MSc projects. Each of these project areas can be turned into multiple different projects for different students, but there is a limit to the number of projects I can supervise, so not all projects are guaranteed to be allocated. 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 interests are in intelligent decision making, particularly for cooperative, competitive and uncertain situations. We also build simulators which allow us to test different algorithms and protocols. For example, how can a group of autonomous vehicles cross a busy junction? How do we guide drivers and passengers to get best use out of a car pooling scheme? How can a group of sensor nodes coordinate themselves to cover mobile targets? How should a network of radios share the radio frequency to ensure that all messages are delivered?

My research is carried out in Insight, the centre for data analytics, in which we work on coordinated optimisation in response to dynamically changing data. I am an investigator on Enable, a 'Spoke' project on IoT and smart cities and communities, where I work on smart urban mobility solutions. I am also a funded investigator in Connect, the future telecommunications research centre, in which we optimise the operation of wireless networks, and in Confirm, the centre for smart manufacturing, in which we work on applied AI for manufacturing.

Project Details

KNB1: Solving real-time dial-a-ride problems

In the Dial-a-ride problem, a minibus acts as a shared taxi. Users request a trip, specifying a starting location and a destination, and a time at which they must reach their destination. The service provider then allocates them a seat on a shared vehicle, and includes those locations in the vehicle's schedule. Typically, these services are provided for social care or hospital appointments: the requests are made days in advance, and the service provider can run an optimiser to generate efficient routes and schedules. But as cities are trying to reduce congestion and improve public transport, there is a growing need for handling immediate bookings, either to carry people to and from public transport systems, or to reduce the number of single car trips. In this project, we will look at the real time dial-a-ride problem, implement solutions, and evaluate their ability to respond to requests and to changes in real time. We will explore local search methods, which do not guarantee optimal solutions, but should provide good solutions quickly.
Requirements: You must be a confident programmer, and you must be able to read current research papers.

KNB2: Optimising fleets of autonomous vehicles for public transport

The advent of connected autonomous vehicles will cause a big shake-up in public transport. Taxis will be available on demand, bus routes can be optimised in real-time based on the people in the bus, and multiple vehicles can platoon together for more efficient use of the road space. But all of this will require careful coordination. In this project, we will look at centralised algorithms for dispatch of autonomous vehicles, perhaps integrating with scheduled public transport -- given a batch of requests for transport, locations and journeys of existing vehicles, and known bus and train schedules, find an efficient allocation of vehicles to journeys. Possible techniques include Genetic Algorithms, Large Neighbourhood Search, or other local search algorithms.
Requirements: You must be a confident programmer, and you must be able to read current research papers.

KNB3: Avoiding other agents in path-finding

Dijkstra's algorithm, and extensions, can be used to find shortest paths in graphs. But sometimes we want to want to avoid other agents that are moving through the graph - for example, avoiding an enemy in a game, avoiding collisions among robots in a warehouse, or avoiding a truck load of hazardous materials - but still get every agent to its destination as quickly as possible. In this project, we will look at extensions of Dijkstra's algorithm for avoiding mobile agents. Initially we will start with a pair of agents, with a known fixed path for one of them. We will then extend it to multi-agent scenarios, where all agent paths are configurable. We may also extend it to handle cases where we do not have full knowledge of the target path.
Requirements: You must be a confident programmer, and you must be able to read current research papers.

KNB4: Assorted projects in algorithms and optimisation

Other projects are possible, by discussion. Possible topics include dynamic path finding in the presence of obstacles, scheduling of autonomous vehicles through a multi-lane junction, evaluating modern route finding algorithms like Contraction Hierarchies, or mobile apps for supporting urban mobility.
Requirements: You must be a confident programmer, you must have an idea of the areas you want to work in, and you must be able to read current research papers.