Introduction to Linear Optimization

Język wykładowy Angielski
Semestr Letni
Status Poddana pod głosowanie
Opiekun Martin Böhm
Liczba godzin 30 (wyk.) 30 (ćw-prac.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak

Opis przedmiotu:

Linear optimization, or linear programming, is a study of encoding mathematical problems -- from the very fundamental in computer science, such as flow and matching problems, to problems central to supply chain and logistics -- as problems described by a set of linear equalities, where the quality of a solution is also measured by a linear function. The centerpoint of linear optimization is the fact that efficient algorithms -- in both theoretical and practical sense of the word -- exist to find the optimal solution of such a linear system. We can see the practical impact of linear optimization by the fact that early research into this field has been awarded the 1975 Nobel Memorial Prize in Economics. On the theoretical side, many advanced courses in algorithm design benefit from knowledge of linear programming, among others: * Numerical optimization (https://zapisy.ii.uni.wroc.pl/offer/736-numerical-optimization/) * Approximation algorithms (Algorytmy aproksymacyjne, https://zapisy.ii.uni.wroc.pl/offer/algorytmy-aproksymacyjne_8/ ) * Online algorithms (Algorytmy online, https://zapisy.ii.uni.wroc.pl/offer/algorytmy-online_16/) * Algorithmic game theory (https://zapisy.ii.uni.wroc.pl/offer/712-algorithmic-game-theory/) * Submodular optimization (Optymalizacja submodularna, https://zapisy.ii.uni.wroc.pl/offer/3160-optymalizacja-submodularna/ ) * Scheduling theory (https://zapisy.ii.uni.wroc.pl/offer/3153-scheduling-theory/) This course offers a thorough introduction to the theory of linear optimization, with a particular focus on both the mathematical background of the area as well as empowering the student to be able to model many computer science problems as linear systems, and solve such systems on a computer with the use of a linear programming solver. The course is aimed at Bachelor-level (undergraduate) Computer Science students and above, and is appropriate for first-year Master-level students as well. A basic knowledge of linear algebra is expected. The exercise sessions will consist of a combination of theoretical problem solving practice in class and practical modelling tasks to be solved with the help of a computer solver. The grade for the exercises will be determined by a set of several homework sheets throughout the semester. The course will be concluded with a final exam, which will be oral or written depending on the number of attending students. The course will be taught completely in English. Sample topics: * Introduction to linear programming and integer programming. * Modeling with linear and integer programs. * Convexity and its properties. * Hyperplanes, polytopes and polyhedra. Farkas lemma. * Duality in linear optimization. * Ellipsoid method: an algorithm for solving linear programs. * Solution methods for large LPs: separation oracles and column generation methods. * Network flows and their algorithms. Duality between network flows and graph cuts. * Integrality of selected combinatorial polytopes. Linear relaxations of integer programs. Literature: * Jiří Matoušek, Bernd Gärtner. Understanding and Using Linear Programming. Springer 2007 (https://link.springer.com/book/10.1007/978-3-540-30717-4) * Lecture notes of Alexander Shrijver (in particular, Section 2 of https://homepages.cwi.nl/~lex/files/dict.pdf)