Operations Research

Course number: CO-583-A

Constructor University, Fall 2023

News

Contact Information

Instructor: Prof. Sören Petrat
Email: spetrat AT constructor.university
Office: 112, Research I

Teaching Assistants: Alexa Léon and Stasa Vasilic
Please ask all questions to the TAs under the "Tutorial Sessions" channel on MS Teams.

Time and Place

Class:
Tue 14:15-15:30
Thu 15:45-17:00
TA tutorial (for review, questions, homework hints):
Wed 20:45-22:00, online (MS Teams)

First class session: Sep 5, 2023; last class session: Dec 7, 2023.

Syllabus

All the most recent information about class can be found on this website.

Official Course Description

Operations research is an interdisciplinary mathematical science that focuses on the effective use of technology by organizations. By employing techniques such as mathematical modeling, statistical analysis, and mathematical optimization, operations research finds optimal or near-optimal solutions to complex decision-making problems. Operations Research is concerned with determining the maximum (of profit, performance, or yield) or the minimum (of loss, risk, or cost) of some real-world objective. This module introduces students to modelling of decision problems and the use of quantitative methods and techniques for effective decision-making.

Resources

Textbooks

Most of the class material is similar to the following textbook:

A good textbook on Pyomo is:

Grading

The assessment for this class is the final exam only. There is a possibility to get bonus points, see below.

Exams

There will be a final exam, which is scheduled centrally in the exam period (Dec. 12 - 22, 2023). As practice and to obtain bonus points, there will also be a midterm exam (see class schedule below). Bonus points from the midterm can be obtained from the following table:

Midterm Points Bonus
80 or more 5%
60 - 79 4%
40 - 59 3%
20 - 39 2%
1 - 19 1%

Final Exam Preparation

The best exam preparation is to work on and understand the homework problems, plus the examples we have discussed in class. The following final exams from previous years can be used for further practice and cover mostly the same topics as we have done:

Fall 2017: final exam, solutions
Fall 2020: final exam, solutions
Fall 2021: midterm exam, solutions
Fall 2021: final exam, solutions
Fall 2022: midterm exam, solutions
Fall 2022: final exam, solutions

Homework Sheets

Usually once per week there will be a homework assignment. The due date is usually one week after it has been handed out, and is stated on each homework sheet. The submission is only electronically via Moodle. Note: It is encouraged to discuss the exercise sheets with your classmates (e.g., discuss how to come up with the solution or what the right way of approaching the problem is). On the other hand, the solutions must be written down and handed in individually! Copying the solutions from somebody else is a violation of Academic Integrity! Please be aware that the Code of Academic Integrity applies to all homework submission, the midterm, and the final! Working on and understanding the homework problems is the best preparation for the final exam.

Bonus points: Solving the homework sheets and the midterm exam can give you bonus points for the final grade. Each of them can provide a bonus of up to 5% (i.e., 0.33 grade points), for a maximum total of 10% (0.67 grade points). The bonus is computed as follows: Take the percentage for each the midterm and the total homework score, and divide by 20, then round. For the computation of the total homework score, the two worst homework sheets will be disregarded. (Note that this implies that there will be no extension of homework submission deadlines!). Note that the maximum final module grade is 100% (even if the bonus would get you above 100%). Important: The bonus cannot change a failing grade into a non-failing grade!

Example: A Student had 80% on the midterm, and a homework average of 50%. The bonus for the midterm is 4%, and the bonus for the homework is 3%. If the final exam score is 70%, then the total grade is 77%.

Date Sheet Number Due Date
Sep 05, 2023 Sheet 1 Sep 13, 2023
Sep 12, 2023 Sheet 2 Sep 20, 2023
Sep 19, 2023 Sheet 3 Sep 27, 2023
Sep 26, 2023 Sheet 4 Oct 04, 2023
Oct 03, 2023 Sheet 5 Oct 11, 2023
Oct 10, 2023 Sheet 6 Oct 18, 2023
Oct 17, 2023 Sheet 7 Oct 25, 2023
Oct 24, 2023 Sheet 8 Nov 01, 2023
Nov 07, 2023 Sheet 9 Nov 15, 2023
Nov 14, 2023 Sheet 10 Nov 22, 2023
Nov 21, 2023 Sheet 11 Nov 29, 2023
Nov 28, 2023 Sheet 12 Dec 06, 2023

Table of Contents

Chapter 1: Introduction

Chapter 2: Linear Programming
2.1: Graphical Solutions
2.2: Standard Form of LP Problems
2.3: The Simplex Method
2.4: The Dual LP Problem
2.5: Transportation Problems
2.6: Network Optimization

Chapter 3: Further Optimization Techniques
3.1: Dynamic Programming
3.2: Decision Analysis
3.3: Inventory Theory
3.4: Nonlinear Programming

Class Schedule

Will be updated while class is progressing.

Below, please click on the date to download the lecture notes of that day.

Note that the book references given below offer only a rough orientation. Sometimes, only parts of a particular chapter are covered in class. Note that the Hillier/Lieberman chapters refer to the ninth edition.

Date Topics
Sep. 05, 2023 Organization, Introduction, a first example of a linear programming problem
See the information on this website for class organization; Hillier/Lieberman: see Chapter 1 and 2 for a general introduction to OR; see Chapter 3.1 for the Wyndor example.
Sep. 07, 2023 Linear Programming: Graphical Solutions
See R. Larson, Elementary Linear Algebra, Chapter 9.2; also: Hillier/Lieberman Chapter 3.2
Sep. 12, 2023 Standard form of an LP problem
Hillier/Lieberman Chapter 4.2 (note that the standard form there is slightly different from the one we use in class). See Resources for more on matrix multiplication.
Sep. 14, 2023 Short review of underdetermined linear systems (augmented matrix, row echelon form), basic solutions
See these old class notes of Marcel Oliver about Gaussian Elimination. See also Hillier/Lieberman Chapter 4.2 (Note: The book uses the maximization convention for the standard form.)
Sep. 19, 2023 Geometry of feasible region and basic solutions
Hillier/Lieberman Chapters 4.1 and 4.2.
Sep. 21, 2023 Solving a simplex tableau; the simplex algorithm
See Section 1 of the notes "Practical Guide to the Simplex Method of Linear Programming" by Marcel Oliver. Note: The Hillier/Lieberman book can also be consulted: see Chapters 4.2-4.4; however, the convention and notation used there is slightly different from the one we use in class.
Sep. 26, 2023 The simplex algorithm; Introduction to Pyomo Modeling
See references from previous session for the simplex algorithm. For pyomo: See the pyomo and glpk installation instructions above. The simple program discussed in class (taken from a previous class by Marcel Oliver) can be found here: html, ipynb. See also here for further programs from previous classes.
Sep. 28, 2023 Towards the dual problem; Introduction to Pyomo Modeling
Van Roy and Mason, beginning of Section 4.1. For pyomo: See the pyomo and glpk installation instructions above.
Oct. 03, 2023 No class (German Unity Day)
Oct. 05, 2023 Shadow prices; weak and strong duality theorems
Van Roy and Mason, Sections 4.1 and beginning of 4.2. See also Section 3 of the notes "Practical Guide to the Simplex Method of Linear Programming" by Marcel Oliver for a proof of strong duality. The programs discussed in class (taken from a previous class by Marcel Oliver) can be found here: How to use indexed decision variables: (1) html, (1) ipynb; How to get the dual variables (shadow prices) and solve the dual problem: (2) html, (2) ipynb.
Oct. 10, 2023 Transportation Problems
Hillier/Lieberman: parts of Chapter 8.1. The programs discussed in class can be found here: html, ipynb, data file.
Oct. 12, 2023 Transportation Problems
Hillier/Lieberman: parts of Chapter 8.1.
Oct. 17, 2023 Network Optimization: Shortest path problems
Hillier/Lieberman: Chapters 9.1-9.3.
Oct. 19, 2023 Dual variables and transportation problems in pyomo; minimum spanning tree problems, maximum flow problems
Hillier/Lieberman: Chapters 9.4 and 9.5. The programs discussed in class can be found here: Dual variables and dummy sources in transportation problems (Problem 2 from Homework Sheet 6): html, ipynb.
Oct. 24, 2023 Network Optimization: minimum cost flow
Hillier/Lieberman: Chapter 9.6.
Oct. 26, 2023 Pyomo implementations of network optimization problems; network duals and their interpretation; Project management (critical path, project crashing)
Hillier/Lieberman: Chapters 9.6 and 9.8. The programs discussed in class can be found here: shortest path (html), shortest path (ipynb); minimum cost flow (html), minimum cost flow (ipynb). See also here for a pyomo implementation of the PT company problem: transportation problem PT company (html), transportation problem PT company (ipynb). Further pyomo programs: project management (html), project management (ipynb); arbitrage detection (html), arbitrage detection (ipynb).
Oct. 31, 2023 No class (Reformation Day)
Nov. 02, 2023 Dynamic Programming: Shortest path revisited, "Stagecoach" problem
Hillier/Lieberman: Chapters 10.1 and 10.2
Nov. 07, 2023 Dynamic Programming: Distribution of effort problem, "Local Job Shop" problem
Hillier/Lieberman: Chapter 10.3
Nov. 09, 2023 Midterm exam (for bonus points)
See here for the midterm and here for the solutions. See here for the make-up midterm and here for the solutions.
Nov. 14, 2023 Dynamic Programming; "Local Job Shop" problem; probabilistic dynamic programming, "Hit-and-Miss Manufacturing Co." problem
Hillier/Lieberman: Chapter 10.4. As extra material, here is a python program solving the local job shop problem: local job shop ipopt (html), local job shop ipopt (ipynb). Note: python also has a nice environment for symbolic computations. This can be used to do the computations for the local job shop problem: sympy (html), sympy (ipynb) (this is just for those who are interested, these examples were not discussed in class).
Nov. 16, 2023 Probabilistic dynamic programming continued; Decision analysis: decision trees and the expected value of information, "Goferbroke Oil Co." problem
Hillier/Lieberman: Chapters 15.1-15.4.
Nov. 21, 2023 Decision analysis continued
Hillier/Lieberman: Chapters 15.1-15.4.
Nov. 23, 2023 Inventory Theory: EOQ model with and without planned shortages
Hillier/Lieberman: Chapters 18.1-18.3.
Nov. 28, 2023 Inventory Theory: deterministic periodic review models
Hillier/Lieberman: Chapter 18.4.
Nov. 30, 2023 Inventory Theory: EOQ with stochastic demand (stochastic single-period model for perishable products, "newsvendor problem")
Hillier/Lieberman: Chapter 18.7.
Dec. 05, 2023 Nonlinear Programming: Basic examples; nonlinear vs. linear programming; convex optimization; using Pyomo to solve nonlinear programs
Hillier/Lieberman: Chapters 12.1 and 12.2. See also the other sections of Chapter 12 for more details on some of the disucssed nonlinear programming types. The programs discussed in class can be found here: nonlinear WYNDOR (html), nonlinear WYNDOR (ipynb).
Dec. 07, 2023 Review
Dec. 21, 2023 Final exam

Data Privacy Statement/Datenschutzerklärung