# Labs

The goal of the labs is to exercise the topics presented on lectures.

On some labs you will receive homework assignment, which are implementation of an algorithm or a method solving some interesting combinatorial optimization problem. In all cases, the solutions to homework assignments are submitted to Brute where they are automatically checked and evaluated. Late upload will be penalized by -1 point for each week after deadline. Completing all homeworks successfully (i.e., the output is classified as correct according to Brute) is a mandatory requirement for the assessment. Moreover, we encourage you to solve the homeworks since in the practical test you will use algorithms implemented for the homeworks.

## Plan of the Labs

Week No. Title Notes Materials
1 Introduction, Gurobi installation, LP basics Grading and Rules
Gurobi Installation Guide
Gurobi Example (code)
LP Basics (Wolfram notebook)
Introduction (colab TODO)
Transportation (colab TODO)
Introduction (colab solved)
Transportation (colab solved)
2 ILP basics CC-OPT CoContest, Public Instances
ILP Basics (colab TODO)
ILP Basics (colab solved)
Gurobi Official Interactive Examples
Mathematical Programming Book with Examples
3 ILP 1 HW1 HW1 Assignment, Public Instances
Call Center (colab TODO)
The Catering Problem (colab TODO)
Tiles (colab TODO)
Call Center (colab solved)
Catering (colab solved)
Tiles (colab solved)
Catering Video: (introduction, solution)
4 ILP 2 Settle Up (colab TODO)
Peaking Power Plants (colab TODO)
Tents (colab TODO)
Settle Up (colab solved)
Peaking Power Plants (colab solved)
Tents (colab solved)
Settle Up Video: (introduction, solution)
Peaking Power Plants Video: (introduction, solution)
Tents Video: (introduction, solution)
5 ILP 3 HW2
HW2 Assignment, Public Instances, Video
Lazy Constraints: Handout , Video, Colab Notebook
6 Interesting ILP applications Game of Fivers: Game, Video, Handout , Colab (TODO), Colab (Solved)
Rubik's Cube: Video, Colab
Verification of DNNs: Video, Colab
7 Metaheuristics + consultations CC
CoContest Threshold Public Instances
Metaheuristics (colab TODO)
Metaheuristics (colab solved)
Handout SPT (optional) , Function approximation (colab)
Practical Test Training: Assignment, Public Instances
9 Max-Flow HW3 Max-Flow: Handout, Video
HW3: HW3 Assignment, Initial feasible flow for FF (video), Public instances
10 Consultation + selected topics Optional materials: Min Cost Flow, Dynamic programming, Nonogram (colab TODO), Pipes (colab solved), Min-Cost Flow (Video)
11 Scheduling - Bratley's algorithm HW4
HW4 Assignment (+ Handout), Public Instances, Video
The Scheduling ZOO
12 + 13 Modeling master class Deadline HW4
Masterclass (colab), data (zip)
CP overview (slides)
Image Reconstruction (colab), Quantum Soldiers (colab), Game of Life (colab), Game of Life (video), Game of Life (game)
14 Consultations, ungraded assessments, SP presentations

## Classroom computers

If possible, bring your own computer.

OS: Debian Linux 64bit, select Ubuntu during booting

Login: uses credentials from Department of Computers. If you haven't use them before, setup them at https://www.felk.cvut.cz/labpass/

Development environments: CLion (C++), PyCharm (Python), GVim, Netbeans are installed. CLion and PyCharm are installed in /opt and their license have to be activated via creating JetBrains account with faculty email.

VPN: Gurobi (Academic) licence can be obtained for free, but only from the university network; to access it remotely, you can use VPN - for more info see FEL VPN (CZ)/ FEE VPN (EN).