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.
Description
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
Prerequisites
Fundamental programming knowledge
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.
Examination
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 literature
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.