Deep Learning in Computational Discrete Optimization

CO 759, Winter 2018

Class meets in MC 6486, Monday and Wednesday, 11:30--12:50.

Course Description

The goal of the course is to examine research-level topics in the application of deep-learning techniques to the solution of computational problems in discrete optimization. The first part of the course will cover background material, introducing students to deep learning (focusing on practical aspects) and covering major topics in computational discrete optimization: heuristic methods, dynamic programming, linear programming, cutting planes, column generation, and branch-and-bound. We will then make an in-depth study of recent papers where deep learning has been proposed as a solution-technique in discrete optimization, aiming towards discussions of open research questions.


General mathematical maturity is expected: students should feel comfortable reading on their own Part 1 (Applied Math and Machine Learning Basics) in the text Deep Learning.

Although no specific background in the topics is required, students will get the most out of the course if they have previous knowledge of one of the three components: (1) discrete optimization (CO255 and/or CO450/650 and/or CO452/652), (2) machine learning (CS489/695 or the Deep Learning text), (3) computation (TensorFlow or a good background in computer programming).

Reference Texts

Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
MIT Press, 2016
The main course text for fundamentals of deep learning.

A Practical Guide to Discrete Optimization, Chapter 1, Chapter 7
David Applegate, William Cook, Sanjeeb Dash
Computational studies in discrete optimization.

Constraint Integer Programming
Tobias Achterberg, Ph. D. Thesis, Berlin 2009.
Beautiful examples of careful computational testing.

Lecture Notes

Introduction (January 3)
Deep Learning, Chapters 1 to 5.

Computational Setting (January 8)
Deep Learning, Chapter 6, Deep Feedforward Networks
A Practical Guide to Discrete Optimization, Chapter 1, The Setting