TUM – TUM – Menü
Programming Tutorial Discrete Optimization
holiday course
supported through study contributions %SBBANNER%

Dozent: Paul Stursberg
Umfang: block course 6-8 April
Raum: MI 02.04.011


News Description Schedule Preparations Material Software Links


  • 11 April added solution hints
  • 21. May schedule updated again
  • 30. May schedule updated


In this tutorial, you will learn to apply the theory from the lectures Fundamentals of Convex Optimization (MA2504) und Discrete Optimization (MA 3502) to practical examples. Using a professional MILP-solver (FICO Xpress) you will practice how to transform a given problem into a Mixed-Integer Linear Programming model, to input the model to the solver and to tailor the solution process to certain properties of the problem. The tutorial is reccomended as a preparation for advanced optimization classes (especially Case Studies Discrete Optimization) as well as Bachelor's and Master's theses.

Agenda You will get to know the Mosel programming language that will be used throughout the course. Some linear optimization problems will serve to practice and deepen your knowledge. We then move on to problems of discrete optimization and explore the different possibilities to control the optimization process using cutting planes and Branch & Bound.

Throughout the course, the focus lies on practical problems with some brief theory revisions in between. You will work in small groups of 2-3 students to solve the problems and implement the solutions.


In case that you wish to participate but do not satisfy these requirements, please contact us to discuss wether you might be able to participate nonetheless.


Registration for the course is still possible on the holiday course website.


date time room topic
Wednesday, 6 April 2016 10:00 - 12:00 and 13:00 - ca. 17:00 02.04.011 Introduction to Mosel, programming exercises Linear Optimization
Thursday, 7 April 2016 9:00 - 12:00 and 13:00 - ca. 17:00 02.04.011 Introduction to Mosel (part II), Discrete Optimization: Cutting Planes
Friday, 8 April 2016 9:00 - 12:00 and 13:00 - ca. 16:00 02.04.011 Discrete Optimization: Branch & Bound


During the tutorial, you will work on programming problems in small groups of 2-3 students. As we cannot provide enough laptops, we ask all participants to bring their own laptops. You should try and install the software FICO Xpress (see next section) ahead of the first day of the tutorial as we will start with the first excercises right away. Should you encounter any problems, please contact us as soon as possible.

Furthermore, you should make sure that you can access at least one of the Wi-Fi networks available in the building as we will provide you with documents and data files during the course.


Mosel Introduction: pdf
Mosel Reference Sheet: pdf
Mosel Cutting Planes: pdf
Mosel Branch and Bound: pdf


  Exercise Problem Sheet Data Templates Solution Hints
0 Crude Oil Refinement pdf zip    
1 Cheese Coup pdf zip   zip
2 Cheese Empire pdf zip txt zip
3 Knapsack pdf zip   zip
4 Odyssey pdf zip txt zip
5 Knapsack Symmetry pdf zip   zip
6 Branching pdf txt   zip
7 Lot Sizing pdf zip txt zip

Installation of course software

In the tutorial, we use the commercial software FICO Xpress.


For Windows systems a restricted version for educational purposes is available free of charge. This version will suffice for the purposes of the tutorial and can be downloaded from https://community.fico.com/download.jspa .


Unfortunately, no free-of-charge version is available for these systems. Users can choose from these options:

Should you encounter any problems, please contact us!

-- PaulStursberg - 11 Apr 2016

Research Unit M9

Department of Mathematics
Boltzmannstraße 3
85748 Garching b. München
phone:+49 89 289-16858
fax:+49 089 289-16859


Prof. Dr. Peter Gritzmann
Applied Geometry and Discrete Mathematics

Prof. Dr. Andreas S. Schulz
Mathematics of Operations Research
(affiliated member of M9)

Prof. Dr. Stefan Weltge
Discrete Mathematics


Jan 25th, 2019
Case Studies 2019: Preliminary Meeting on Wed, Feb 6th, at 16:00 in room MI 03.06.011.