|Last Update: 10 June 2014|
Back to Individual Dissertation
General Areas of Interest for Supervising Projects
The project ideas listed here are related to my areas of research, which in a summarised way include the application of search and optimisation methods including artificial intelligence techniques to tackle a range of real-world problems in the broad area of modelling and optimisation.
I would also supervise projects in other topics of computer science if the project is within my interests and I feel competent to supervise the project. Please contact me if you are interested in me supervising your project. I always prefer to have a face to face conversation before agreeing to supervise a project. Note that all the projects listed below involve both research and programming and can also be targeted to a practical application that is in your interests.
What is required to undertake the projects suggested here? One typical question is: is this project adequate for obtaining a high grade? and the answer for all projects listed here is YES BUT IT STRONGLY DEPENDS ON THE STUDENT'S COMMITTMENT TO DEVELOP A HIGH-QUALITY DISSERTATION. The projects listed here have the potential to carry out research and develop a computer system. You definitely need to do considerable programming but also search the literature, select, read and analyse sources of information (not only Google search). As a computing student you are expected to produce good quality computer code. At first sight, these projects might seem too challenging, particularly if you are not familar with the problems or techniques. However, these are project ideas for which I can offer specific guidance. But of course, I will not tell you exactly how to develop the project. Selecting a challenging project does not guarantee you to obtain a high grade, that is only a good start. It is your performance and achievements which will be reflected in the final grade.
Are these project ideas suitable for 60/40/20 credit dissertations? Most of the project ideas suggested here can be adapted for developing a dissertation according to the degree type (Master degree, UG single honours, UG joint honours, UG Major/Minor, etc.). Please refer to the corresponding handbook for more guidelines and the requirements that your project should meet according to your course.
I am now considering BSc and MSci project supervisions for session 2014-2015. The ideas listed below will be updated soon, but for now they provide an idea of the type of projects I have particular interest in supervising.
List of Project Ideas
Forecasting Orders for Transport Planning
This is a company sponsored Project with a monetary incentive for the selected student(s), if you are interested then get in touch immediately. The supply and demand for transport is more relevant today than ever before. Hauliers want as much time as possible to plan and utilise their fleet whilst shippers are offering reduced lead times to their customers as a competitive advantage. Buying transport early means getting the best price and guaranteeing vehicle availability. Consequently the later an order is received the higher the price of transport and less chance of fulfilling the shipment. Anticipating the demand for transport and using predicted orders in transport planning means we can achieve the best rate and guarantee availability without the actual order. With a long standing customer base and therefore detailed order history, 3T Logistics is exploring the potential of predicting when consignees will order and what size the order will be. The predicted orders will then be used in the transport planning process to achieve best price and available vehicles. For this projects, historical data is available about the orders in the year 2013. Data includes the consignee id, the date and the order size. The goal of the project is to use computational techniques to analyse this data and "predict" future orders while also taking into account present conditions.
Software Solutions for the Office Space Allocation Problem
The office space allocation problem refers to allocating people to office space in order
to ensure an adequate utilisation of the available office space while also satisfying
additional constraints. Examples of these constraints are that certain people should
be in nearby offices or close to specific facilities and that certain groups of people
should be in nearby offices. Also, it is typically desirable that no one is given less
office space than needed but this constraint is sometimes not satisfied. Various works
have been done on this problem, developing algorithms, problem instance generators and
graphical user interfaces. There are opportunties for developing various project ideas
in this problem domain. The projects could be on computers algorithms, visualisation
tools, survey and analysis of existing software, etc.
Adaptive Room Layout Design: Problem Modelling and Solution Approaches
The goal here is to approach the problem of automating the design of rooms and buildings
layout in an organisation. Making an efficient use of the office space is often a challenge in
many organisations and the constant changes in staff and research students, makes this goal more
difficut to achieve. It is commonly the case that the number and size of the available rooms is
not the most adequate to allocate offices to staff, research students, visitors, etc. Therefore,
this projects aims at developing a system to suggest adequate changes in the layout of rooms and
buildings in order to better satisfy the space requirements. The system should serve as a decision
support tool for space administrators.
Mobile and Web Services for Workforce Scheduling
The goal here is to develop software tools to facilitate workforce scheduling through modern smart
phones and other mobile devices and via the Web. In many organisations, managers and staff
could access workforce scheduling tools to collect work preferences, estimate workload demand, assign
shifts and tasks, visualise schedules, etc. using mobile devices. This would help to deal in a better
way with the dynamic and sometimes uncertain nature of workforce scheduling. For example, changes to
the schedule could be communicated in real time to staff and managers, staff could get see their
working shifts at any time, etc. Also, sometimes workforce scheduling consists on assigning duties
to personnel. Usually these duties have pre-defined day/time and hence the scheduling consists in making
sure that staff ability and availability are taken into account when assigning duties. There are several
techniques in the literature to optimise the assignment, some more elaborate and computationally expensive
that others. The use of appropriate scheduling and web programming techniques can lead to developing
web-based automated workforce scheduling tool for different scenarios.
Educational Software Tools for Search and Optimisation Methods
There is good variety of search and optimisation algorithms and many bibliographic resources that
describe these algorithms at various levels of detail, but not many software tools to facilitate the
'self-learning' of how these methods work. Heuristic search is an important technique from Artificial
Intelligence that is also subject to intensive research because it can help to solve very difficult
and large search and optimisation problems. Some heuristic algorithms are nature inspired approaches
that attempt to find solutions to problems by simulating the way in which some systems work in nature.
Examples of this class of computational techniques are cultural algorithms, particle swarm optimisation,
social and individual learning, intelligent agents, artificial life, etc. The goal of a project in this
area would be to develop a computer system that interactively illustrates the way in which the algorithm
works. The project idea is not about developing the technique to solve a particular problem. Instead,
the focus of the project is to develop a program that permits an effectively visualisation of how the
selected technique operates. The program should be interective so that the user can play around with
the parameters of the technique and the visualisation. This project could be developed as a tutorial
or even as a computer game. The purpose is to develop a learning tool so that users understand the basic
principles of the technique.
Search and Optimisation Solutions Through Web Services, Mobile and Cloud Computing
Web Services are nowadays a common way of enabling distributed applications to work successfully
over the Internet. Cloud computing is also becoming an important technology for delivering computing
solutions. Service Oriented Architecture (SOA) aims for a loose coupling of services of operating
system, programming languages and technology. One of the benefits of these technologies is to
facilitate the execution of applications on mobile computing devices. Traditionally, search and
optimisation algorithms are developed for running on stand-alone computers with dedicated processing
power. The goal here is to evaluate the suitability of developing this kind of algorithms using modern
computing technologies such as web services, mobile and cloud computing. Projects could be about conducting
a systematic evaluation of opportunities in this area or about actually developing a computing solution to
some selected scenario using these technologies.
Benchmarks and Visualisation Tools for Selected Combinatorial Optimisation Problems
In combinatorial optimisation problems the aim is typically to find the best (optimal) arrangement of
objects that satisfies a given set of constraints. Examples of these type of problems are the travelling
salesman, bin packing, vehicle routing, timetabling, workforce scheduling, sudoku, etc. Projects can be
conceived about the development of software tools that facilitate the better understanding of these
problems, most of which have real-world applications in business and industry. For some of these problems
there are benchmark problem instances and results plus many bibliographic resources and the development
of software tools for visualisation, maintenance and extension of benchmarks, etc. represents viable
Further Development With Existing Search and Optimisation Algorithms
Recent research work has resulted in the development of search and optimisation algorithms for tackling
some optimisation problems. There are various ideas that would seek to extend some of this work by for
example, conducting systematic computational experiments, adapting algorithms to different scenarios,
comparing the performance of different algorithms, etc. That is, projects that do not aim at conceiving
a new algorithm, but instead, aim at studying and/or modifying existing ones. For example, algorithms
that we have developed recently include non-linear great deluge, dynamic lexicographic approach, etc.
Computational Intelligence and Software Engineering for Puzzles
Project ideas can be conceived for the development of software aimed at solving puzzles. There is a great
variety of puzzles and many are computationally difficult to solve. In some cases, well-known algorithms
exist and hence projects could be about applying software engineering to develop interfaces, mobile apps,
web applications, collaborative playing tools, etc. In other cases, identifying some computational
intelligence approach to solve the puzzle could be a good project. There is scope for many ideas in this
topic depending on the particular interests of the student.
Search and Optimisation Through the Raspberry Pi Computer
The Raspberry Pi computer is a capable little PC with some decent computation capability. Traditionally,
search and optimisation algorithms are developed for running on powerful computers given that these type
of algorithms usually consume considerable computation power and memory. The goal here is to evaluate
the suitability of developing this kind of algorithms for the Raspberry Pi computer. Projects could be
about conducting a systematic evaluation of opportunities or about actually developing a computing solution
to some selected scenario using this computing device. Alternatively, projects could be about using the
Raspberry Pi computer for other functions that could support search and optimisation applications, others
ideas along these lines are welcome.
Personal Tour Planning Tool
The goal here is to develop a software tool to assist in the planning of a set of diligences, e.g. visit the dentist, go to a specific supermarket branch, buy some item (anywhere convenient), take the car to wash, etc. Some of the diligences could be very specific while others might have some flexibility in terms of specific place to go, times, etc. The software tool would allow the user to enter the required information and then generate a good tour to carry out the diligences using real-time information. The transportation mode (walk, car, bus, etc.) might be fixed or not depending on the scope of the project. Since there are good algorithms already available in the literature to generate tours, the project would focus on developing a good quality software tool that makes use of some selected algorithm. The software can be developed to run on a desktop, mobile device, the web or another suitable platform.