My principal research interests are optimization challenges in the commercial aviation sector as well as more general algorithms that bridge the divide between optimization and machine learning. See the sections below for details.
Optimization in Aviation
Optimization in the commercial aviation sector. For example, consider the airline sector which is a low-margin business with high fixed costs, namely operating the aircraft themselves.
It is therefore of great importance for an airline to maximize passenger capacity on its network, a process known as revenue management.
Studies have shown that effective revenue management can increase airline revenues by up to 7%, which in today's challenging environment can be the difference between making a profit as opposed to a loss.
There has been a great deal of research on optimization techniques for revenue management, however the majority of existing work focuses on full-service airlines and their largely outdated capacity allocation models based on customer segmentation.
As a result, there is an urgent need for more sophisticated optimization strategies in revenue management that do not rely on customer segmentation.
Exploratory Data Analysis
Statistical pattern mining algorithms for exploratory data analysis.
The problem of pattern mining, that is extracting interesting patterns from data, has traditionally been formulated as
finding the most frequent
patterns in a dataset. However, more recent approaches
seek to mine those patterns that are considered statistically the most interesting
In particular, see our novel probabilistic models for mining interesting itemsets
) and mining interesting sequential patterns
). See the video below for a brief overview:
Machine Learning for Source Code
Machine learning techniques for the analysis of program source code.
Source code has a very well-defined structure making it amenable to machine learning techiniques once suitably adapted. This leads to exciting and novel
applications, for example, see our live demo of source code summarization using autofolding
based on our paper
and associated implementation (see video below)
One can also apply statistical pattern mining techniques to source code, for example, in order to mine sequences of API calls, as we have done in our latest
Algorithms for the global optimization of functions that are expensive to evaluate.
Such functions need to be approximated using a cheap to evaluate surrogate which can
be iteratively optimized and updated in place of the underlying expensive function.
See our paper
for a general surrogate optimization algorithm and
follow up paper
for an implementation
with improved bounds.
2013 – 2016
EPSRC Postdoctoral Research Associate, University of Edinburgh
Dr. C. Sutton, Grant: EP/K024043/1
Researched approximation algorithms for interesting pattern mining based on statistical models of the underlying data
as well as their applications to the analysis of program source code text.
2011 – 2013
EPSRC Postdoctoral Research Assistant, University of Edinburgh
Dr. C. Cartis, Grant: EP/I028854/1
Researched techniques for the global optimization of functions with Lipchitz
continuous gradient or Hessian. Implemented a parallel global optimization algorithm in Python on the ECDF Eddie cluster.
2007 – 2011
DPhil in Numerical Analysis, University of Oxford
Prof. N. I. M. Gould and Dr. C. L. Farmer
Conducted research on Bayesian approaches to global optimization using Gaussian processes and statistical decision theory.
This was an EPSRC Industrial CASE Award in conjunction with Schlumberger.
2003 – 2007
MMath (Hons) Mathematics, University of Bath
First Class Honours. (Courses on a variety of Pure and Applied Mathematics topics as well as areas of Physics and Computer Science.)
Awarded the SIAM UK prize for the best presentation by a PhD student at the 23rd Biennial Conference on Numerical Analysis, Glasgow.
Awarded the CCLRC Science Prize for Excellence in Science at the European School, Culham.