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.
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.
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.
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.
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.
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.
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.
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.