U of Nott CS & IT COL Research Lab


Last Update: 05 June 2024

Back to the Main Page

Individual Dissertation (Relevant for UG and PGT Projects)

General Information

To get an idea of the types of projects that are within my interests to supervise, please look at the lists of past supervised projects below. In this page you can also read more details about the areas and topics for the projects that I typically supervise, and some specifc projects that I am keen in supervising.

See the list of UG projects and PGT projects that I have supervised.

See the individual project guidelines (for students that I supervise).

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. Also, some of the these project ideas are related to the module that I currently teach, Linear and Discrete optimisation or related to other modules in the School, like Simulation and optimisation for Decision Support, Artificial Intelligence Methods, Advanced Algorithms and Data Structures, Fundamentals of Artificial Intelligence. I would also be interested in projects that explore the interplay between optimisation with machine learning, data science, evolutionary computation, simulation, intelligent agents, and related topics.

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 so that we can have a conversation before agreeing to supervise a project. Note that all the projects ideas listed below can involve research and/or programming but they can also be tailored for 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. 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. 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 MSc, MSci or BSc dissertations? Most of the project ideas suggested here can be adapted for developing a dissertation according to the degree type and subject (computer science, artificial intelligence, combination, etc.). Please see the corresponding project handbook for more guidelines and the requirements that your project should meet according to your degree. For all these project ideas, there is a potential for producing a publication if that is something that interests you.

Some ideas for individual projects are listed below, they are intentionally described very briefly in order not to be too prescriptive. The intention is that such ideas trigger your interest, then you can conduct some research and shape the project idea to your own liking. If you want some more specifics on these ideas, please contact me to have a conversation.

Some Ideas for Individual Projects

NOW TAKING ON SUPERVISIONS OF UG AND MSC PROJECTS FOR THE ACADEMIC YEAR 2024-2025

AI Language Models to Generate Optimisation Models and Solution Approaches

ChatGPT, Google Gemini, and Bing Copilot are recent examples of Artificial Intelligence language models that have received considerable attention due to their capabilities to generate content. For tackling an optimisation problem, one of the baseline steps is to have a mathematical programming model (linear or nonlinear) to represent the problem in a formal way. This step usually requires some degree of expertise for developing such algebraic models. Once a mathematical programming model is available, it is relatively easy to plug the model into existing solvers to explore how difficult is to solve it and to develop the model further with more details about the optimisation problem in hand. The aim of this project is to develop a methodology to use AI language models such as ChatGPT and others to assist in the automated generation of mathematical programming models for optimisation problems. A similar project could be the use of AI language models to assist non-experts in identifying optimisation problems. Yet another similar project could be the use of AI language models to provide users with no expertise in optimisation with a template of a solution approach (i.e. an algorithm) to generate solutions to the optimisation problem.

Experimenting With Different Optimisation Algorithms for Decision Focused Learning

Decision focused learning combines machine learning and optimisation seeking to provide a more robust methodology for forecasting. The machine learning model might produce some errors in the prediction and the optimisation method can help to "spot such forecasting errors" as part of the decision-making process, that is, as part of the search for optimal solutions. Then, decision focused learning seeks to feedback errors in the decision-making stage to the predictive stage carried out by the machine learning model. An ongoing research project is exploring this technique to forecast solar irradiance in renewable energy generation, and uses a standard Genetic Algorithm (GA) as the optimiser. The student project would focus on developing other optimisation algorithms or an improved version of the current GA. Optimisation methods to be considered can be exact (e.g. linear programming) or heuristic, including evolutionary strategies or metaheuristics. The existing GA could be improved by developing tailored genetic operators and other mechanisms.

Benchmarking the Performance of Various Optimisation Solvers

A good number of optimisation solvers exist such as Cplex, Google OR Tools, Gurobi, Pyomo, Cplex, and others. In the COMP4041 - Linear and Discrete Optimization module, students learn to develop linear optimisation models in spreadsheet and algebraic forms, using solvers like Excel Solver and LP-Solve, which do not require much computeer programming, and that perform ok for optimisation models of modest size. However, for larger and more challenging optimisation problems, more powerful solvers like the ones mentioned above are needed. Student projects can focus on implementing some optimisation model(s) in selected solvers and conduct an experimental study to evaluate the performance of such solvers when tackling the given optimisation problem(s). Moreover, optimisation can also be implemented in other programming environments like R, Julia, Matlab, etc. and these can also be the subject of experimentation.

Machine Learning Classifiers to Recognise Features in Solutions to Optimisation Problems

Solutions to different problem instances of optimisation problems could have some common features or patterns that if recognised, could be useful to tailor the design of optimisation algorithms. For example, the identification of such features can help to 1) construct partial solutions to the optimisation problem to then complete the solution, or 2) to inspire the design of tailored heuristics to produce high-quality solutions to the optimisation problem. Some ongoing research is exploring the learning through of features in solutions to instances of the Travelling Salesman Problem (TSP) to then produce partial solutions for unseen problem instances. In the learning stage, the distance matrix and the optimal solution for a large number of TSP instances are used for learning, then the model seeks to predict which cities would be directly connected in unseen TSP instances. After having a set of selected edges connecting some cities, a follow-up procedure can be used to complete the solution to the TSP instance.

Script Generator for LP-Solve IDE

LP-Solve is a free mathematical programming solver for linear optimisation models. The solver can be used in different ways: as a command line application, as a library from various programming environments, and through a basic IDE. The IDE can take models in lp format which is the fully expanded algebraic expressions of the mathematical optimisation model. For models of considerable size with more than a few decision variables and a few constraints, it is better to express the model using algebra in compact notation. The goal here is to develop a generator that takes a linear optimisation model expressed in compact algebraic notation, check its correctness and generate the optimisation model in lp format that can then be solved using the LP-Solve IDE or the command line application.

Educational Software Tools for Search and Optimisation Algorithms

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. The goal here is to develop tools that interactively illustrate the way in which some algorithm works. The focus should be on effectively visualisation and interactivity, can be a tutorial or even a computer game. There are several examples of projects of this type that I have supervised in the past, see the lists linked above.

Intelligent Optimisation on Smarphones for Scheduling Part-Time Workers

The goal here is to develop a mobile app to facilitate the automated creation of schedules for part-time workers (e.g. in the hospitality industry) through modern smartphones. There are many real-world scenarios in which a schedule needs to be created for part-time workers while taking into account a variety of requirements, restrictions and objectives. The project would involve the application of search, optimisation and computational intelligence techniques, as well as the development of an effective user interface to ensure usability and good user experience. One of the challenges in this project is to develop the scheduling capability employing sophisticated intelligent optimisation in an efficent manner for the computing resources in smartphones. The goal is to develop a mobile App that could appeal to as many users that need to develop a template schedule for part-time workers.

Intelligent Optimisation on Smarphones for Scheduling Sport Competitions

The goal here is to develop a mobile App to facilitate the automated creation of schedules for amateur sport competitions (e.g. recreational and school leagues) through modern smartphones. There are many real-world scenarios in which a schedule needs to be created for small or medium size sport competitions where the schedule is created perhaps manually by a person. Usually, the competition takes place on a set of venues and a variety of requirements, restrictions and objectives must also be taken into account when constructing the schedule. The project would involve the application of search, optimisation and computational intelligence techniques, as well as the development of an effective user interface to ensure usability and good user experience. One of the challenges in this project is to develop the scheduling capability employing sophisticated intelligent optimisation in an efficent manner for the computing resources in smartphones. The goal is to develop a mobile App that could appeal to as many users that need to develop a template schedule for sports competitions.

Optimisation Software Library 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. Various works have been done on this problem, developing algorithms, problem instance generators and graphical user interfaces. There is a set of benchmark instances for this optimisation problem and the goal is to develop a library that includes baseline optimisation routines including objective function, local search algorithms, metaheuristics, etc.

Further Development and Evaluation of Non-linear Great Deluge

The Non-linear Great Deluge algorithm is a metaheuristic proposed some years ago. The method has a simple and neat design but is showed to perform very well when applied to course timetabling problems. Some variants of the algorithm incorporating mechanisms from evolutionary computation and from machine learning have been developed too. Several papers about non-linear great deluge are listed in this webpage. The goal in this project is to evaluate the performance of these algorithms on other optimisation problems (continuous or combinatorial) and deploy other machine learning mechanisms within the algorithm to improve its performance. Non-linear great deluge can be seen as a more prescriptive strategy for strategic oscillation, then it can also be interesting to compare it to ad-hoc implementations of strategic oscillation from the literature.

Tutorial on the Graphical Method for optimisation

The graphical method is one of the essential concepts for optimisation, it is based on solving a system of linear algebraic equations in order to find the values for the variables that optimise some objective function. A previous student project developed a very good basis for a tutorial on the graphical method for optimisation. The program was developed as a web application and the functionality was rated as very good. The goal of this project is then to further develop the application towards a product to be released. The graphical method is taught in the module 'Linear and Discrete optimisation' and the students in that module would be available as actual users in order to inform the project development.