Jaroslav Fowkes
Visiting Research Fellow

My principal research interests lie in developing numerical 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 (code) and mining interesting sequential patterns (code).

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

Bayesian Optimization

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.