Project ideas for MSc and BSc projects

My interests:

  • Artificial intelligence, particularly hard mathematical search problems such as searching for an optimal route or schedule; learning of optimisation algorithms
  • Data science and machine learning, particularly interpretability (so that people could understand the system) and hyper-parameter optimisation (finding the parameters of the learning algorithm that give best performance)
  • Algorithm engineering, particularly optimisation algorithm and combinatorics
  • Symbolic AI
  • Data visualisation, analysis and manipulation
  • Other interests: physics; engineering; aviation; public transport; astronomy; chess

Below are a few specific project ideas. I am also happy to discuss your ideas or come up with new projects based our joint interests.

Please note that all these projects will involve substantial amounts of programming and research..

Learning Interpretable Strategies for the 2048 Videogame

Target programmes: CS, CS(AI), Data Science

2048 is a simple yet addictive videogame (http://2048game.com/). It is not too difficult to play although learning how to play it well takes a lot of time.

There have been very successful attempts to develop AI agents to play the game. The problem is that we do not understand how these agents play, and so we cannot use them to teach a human player.

In this project, you will design an automated method to learn simple (interpretable) yet efficient policy for an AI agent to play 2048. The hypothesis is that an agent based on a small set of easy-to-understand rules can play the game relatively well. Testing this hypothesis and developing the learning methodology will contribute to the game industry and to the solution of the long-standing issue of interpretability in AI.

Instead of 2048, you can suggest some other one-player videogame, or we can consider two-player games.

Programming
Algorithms and Data Structures
Artificial Intelligence
Data Science
Mathematics
Research

Automated Design of Interpretable Stock Market Strategies

Target programmes: CS, CS(AI)

Trading strategy is key to one's success in stock markets, and so a lot of research has been done to support trading decisions or even implement completely automated trading systems. However, most of this research focused on maximising the profits; the predictions and decisions are usually impossible to understand for a human.

This project is to apply artificial intelligence (AI) methods to stock market trading. Specifically, you will develop a system that can automatically learn efficient yet interpretable long-term investment policies. For example, the system could identify that buying a stock that has raised in price by more than 5% within a day and then did not change its price for the next two days is, on average, an efficient policy. You will use back-testing to evaluate policies and an optimisation algorithm to search in the space of possible policies.

Programming
Algorithms and Data Structures
Artificial Intelligence, Optimisation
Finances
Data Science
Mathematics
Research

Chess Game Assistant for Beginners

Target programmes: CS, CS(AI)

Computers are exceptionally good at playing chess; the estimated rating of the AlphaZero (developed by DeepMind) is above 3500 whereas best human players can only achieve around 2700–2900. The move that computers make are often hard to understand, particularly for beginners.

This project is to apply artificial intelligence (AI) methods to explain, in English, moves suggested by AI chess engines. For example, you could develop an assistant for beginners that explains why certain moves are good or bad, e.g. ‘Moving the rook to e6 would leave it hanging.’ You will most likely use an existing AI chess engine to identify the tactics that make certain moves good or bad.

Programming
Algorithms and Data Structures
Artificial Intelligence
Chess
Data Science
Mathematics
Research

Smartphone App for Weight Measurements

Target programmes: CS, Data Science

Supplied with a range of sensors and features, smartphone can be handy as a heart rate monitor, speedometer, step tracker, tool to measure distances, angles, voice volume, etc., however one thing a smartphone currently cannot adequately measure is the weight of an object.

In this project, you will develop a weighing scales smartphone app. The project will involve experimenting with several approaches to estimate the weight of a small object using a smartphone. This will require creativity and ability to analyse the experimental results. While not much knowledge of physics will be needed, engineering mindset will be a strong plus.

App Development
Algorithms and Data Structures
Data Science
Mathematics
Research

Semi-Automated Plagiarism Detection Tool for Programming Languages

Target programmes: CS, CS(AI), Data Science, HCI

Standard plagiarism detection tools are designed for natural languages and are mostly looking for precise matches of text fragments. Detecting plagiarism in programming languages is much more challenging mainly for three reasons: (i) two programs may share a lot of code simply because it is some standard code (e.g., a piece of code given in a lecture or auto-generated code); (ii) there may exist the most natural way to implement a function, and different people may arrive to this implementation independently; (iii) it is easy to modify a piece of code by reshuffling lines, renaming variables, etc., to make it less recognisable. There exist automated tools to tackle point (iii) but they cannot offer a solution to points (i) and (ii).

In this project, you will develop a tool that uses a completely different approach to plagiarism detection. The plagiarism will be detected by searching for similar anomalies in program codes. For example, an unusual solution method or an identical mistake found in several programs is a good indicator of plagiarism. If several such anomalies are shared by two programs, this is a strong indicator of plagiarism.

Your tool will load all the programs that need to be analysed and let the user select anomalies by hand. It can then search for similar anomalies across all the programs, identify the most likely plagiarism cases and generate reports.

Programming
Algorithms and Data Structures
Artificial Intelligence
Research

AI-based search for compact formula approximations

Target programmes: CS, CS(AI)

Some formulas do not exist in a compact form. For example, the logarithmic function can only be computed as a sum of an infinite series. Similarly, Prime-counting function and Bell number do not have compact formulas.

In this project, you will develop a system to automatically search for compact approximations of formulas. You will define the problem as an optimisation problem and design an optimisation algorithm to search the space of formulas.

Inspired by this video.

Programming
Algorithms and Data Structures
Artificial Intelligence
Mathematics
Machine Learning
Research

Automated Design of Optimisation Algorithms

Target programmes: CS, CS(AI)

Mathematical optimisation algorithms are at the core of many decision support/making systems. Development of optimisation algorithms is resource-expensive and time-consuming, and hence there are a lot of benefits of automated generation of optimisation algorithms.

In this project, you will apply a recent artificial intelligence framework to automatically develop an optimisation algorithm for some combinatorial optimisation problem.

Programming
Algorithms and Data Structures
Artificial Intelligence
Mathematics
Research

Intelligent public transport journey planner

Target programmes: CS, CS(AI), HCI

Services such as Google Maps and TFL (https://tfl.gov.uk/plan-a-journey/) provide advanced tools for planning a journey by public transport. However, behind the scene they perform relatively primitive optimisation, for example minimising the total travel time and ignoring other aspects of the journey.

In this project, you will build a proof-of-concept journey planner (a smartphone app or a website) which in some ways will be more intelligent that the existing services. A couple of examples how your journey planner can be more intelligent:

  • You can take into account frequency of services; for example, one may prefer to travel from a bus stop that has a service every 5 minutes rather than having a slightly shorter journey but from a bus stop with one service per hour.
  • You can take into account ticket price, various paying options, etc.
  • Instead of showing ridiculously long overnight journeys, you can tell the user which service is the last reasonable one.

User interface can be an important component of this project; for example, you can group together similar journey options and represent them in an intuitive way decluttering the output.

Web/App Development
Algorithms and Data Structures
Artificial Intelligence
Research