Mixed Integer Programming and Graph Algorithms for Engineering Problems

Module Number: EI71059

Duration: 1 Semester

Ocurrence: Winter Semester

Language: English

Number of ECTS: 5


Professor in charge: Dr. Tsun-Ming Tseng

Amount of work

Contact hours: 60

Self-study hours: 90

Total: 150

Description of achievement and assessment methods:

The examination will be in written form, the duration is 75 minutes. The students will demonstrate their capability to construct abstract models for commonly-seen engineering problems at given examples. They will show that they can select and apply appropriate solution algorithms and derive the corresponding mathematical constraints and objectives. They will also show that they can analyze the algorithm efficiency as well as the result quality

(Recommended) requirements

Fundamental programming knowledge


Content covered in this course: - Physical modeling, mixed integer linear programming (MILP), time complexity - Graph: vertex, edge, directed, degree, cyclic, planarity - Tree: binary search tree, MILP sort, quick sort, heaps - Distance-oriented graph: MILP shortest path, Dijkstra, A*, MILP spanning tree, Kruskal, MILP steiner tree, MILP planar routing - Conflict-oriented graph: vertex coloring, edge coloring, maximum independent set - Graph partition: max-flow min-cut, clustering - Set: set covering, exact covering - Scheduling and binding: time slot modeling, non-uniform time slot

Study goals

After accomplishing this module, students are able to construct abstract models (e.g. graphs) for commonly-seen engineering problems, and apply algorithms or mathematical modeling methods to solve the problems systematically. In particular, students are able to analyze the problem space and solution space for a given engineering problem and understand that a small variance of the problem formulation can cause a significant change to the methodology. In addition, with a given method, students are able to evaluate its time complexity and measure its solution quality.

Teaching and learning methods

Students learn the content of this course by attending the lectures and the tutorials. While the lectures focus on teaching the theories, the tutorials focus on consolidating students’ knowledge by applying learnt models and methods to solve varying problems. Both the lectures and tutorials are held in a teacher-centered style, but the students are always encouraged to interact with the lecturer and the tutor, especially when the students have different ideas regarding the models or algorithms.

Media formats

The following kinds of media are used: - Slides - Blackboard presentations - Online examples and demos


The following literatures are recommended:

- Applied Mathematical Programming;Bradley, Hax, and Magnanti; Addison-Wesley 1977.

- Introduction to Algorithms; Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein; The MIT Press 2009.

- Introduction to Graph Theory; Douglas B. West; Pearson 2000.