Throughout mathematics and computer science there is an over-arching connection between structural and descriptive mathematical statements and efficient algorithms. Here efficient algorithms mean polynomial time algorithms. These are algorithms whose running time scales well with the size of the input data that they are supposed to process. When you double the size of the data, the time taken to process it also get doubled, or at worst multiplied by a fixed constant. Efficient algorithms permeate everything, and so it is of utmost importance to know which problems can and can't be solved efficiently by computers. Yet, for some fundamental problems, such as the Independent Set problem (given a social network, find the largest group of people who do not know each other), researchers have been unable to establish precisely when an efficient algorithm exists and when it does not. Quite recently a lot of progress has been made on this problem, and on other related problems, by considering quasi-polynomial time algorithms instead of polynomial time algorithms. These are algorithms that are almost as efficient as polynomial time algorithms, but not quite. In this project the investigators will build a theory of quasi-polynomial time algorithms for graph problems. This will also lead to new and fundamental descriptive mathematical theorems, especially within the field of graph theory. Despite tremendous effort, a number of fundamental computational problems in algorithmic graph