Course overview
Optimization problems appear in many fields of our daily-life: resource planning, machine design, automation, business administration, finance, transportation, manufacturing, urban architecture, etc. This course provides students theoretical foundations of linear programming, integer programming, a number of exact algorithms and heuristic methods. The students will learn skills to understand and model different optimization problems under mathematical formulations. During the course, the students will also learn some optimization softwares and programming libraries used to model and solve practical optimization problems.
Participants in piloting
Participants are students in the 2nd year of undergraduate studies. The students are in the Data Science and Aritificial Intelligence program and have good background in English and programming skill with Python.
Timeframe
Fall 2019.
Use of ALIEN services and tools
During Fundamentals of Optimization, students were exposed to be active. The course is designed as problem-based learning.
The course will take place in 15 weeks including teaching/learning about theoretical aspects, doing practice exercises, working on mini projects.
In the first period (about 5 weeks), the students will learn background on algorithmic methods for solving linear programming problems, for instance, gradient methods, simplex method, branch-and-cut algorithms, constraint programming, metaheuristic method.
In the subsequent weeks, the teacher will give some optimization problems related operation management, doing mathematical model for the problems and demonstrating how to apply library tools (in Python) for solving them. During these sessions, the students are involved in building models for the given problems based on suggestions of the teacher.
For mini-projects, students are divided into groups. Each group will be given an optimization case study which is quite complicated including task assignment problems, or vehicle routing problems in transportations, or bin packing problems, etc. The students of groups must work in teams, think and propose mathematical models for describing the problem. Then, the students present their proposed mathematical model to the teacher, explaning decision variables, constraints and objectives of the model. The teacher will give comments and corrections to the proposed mathematical models. After that, students must employ different library tools in Python for implementing algorithms for solving the given problems, conducting experiments. Finally, students show and explain their results obtained to the teacher and other students in the presentation session. The teacher and other students can ask questions for discussion around mini projects.