Programowanie liniowe Łukasz Kowalik Instytut Informatyki, Uniwersytet Warszawski April 8, 2016 Łukasz Kowalik (UW) LP April 8, 2016 1 / 15
Problem diety Tabelka wit. A (µg) wit. B1 (µg) wit. C (µg) (kcal) kotlet schabowy 500 0 0 237 ziemniaki 70 0,8 1 60 kasza gryczana 90 0,5 0 141 sałatka 300 0,1 75 25 zapotrzebowanie 1000 1,2 100 Zadanie zminimalizuj 237x k + 60x z + 141x g + 25x s z zachowaniem warunków 500x k + 70x z + 90x g + 300x s 1000 0.8x z + 0.5x g + 0.1x s 1.2 x z + 75x s 100 x k, x z, x g, x s 0 Łukasz Kowalik (UW) LP April 8, 2016 2 / 15
Co to jest program liniowy? Definicja Program liniowy (w skrócie PL) jest to problem minimalizacji/maksymalizacji liniowej funkcji celu o n argumentach x 1, x 2,..., x n przy zachowaniu pewnej liczby równości lub nierówności liniowych (będziemy je nazywać ograniczeniami) zawierających zmienne x i. Łukasz Kowalik (UW) LP April 8, 2016 3 / 15
PL a dyskretne problemy algorytmiczne Wiele problemów algorytmicznych możemy zapisać jako programy liniowe. Np. maksymalny przepływ: zmaksymalizuj v V f sv z zachowaniem warunków f vw c(v, w) v, w V f vw = f wv v, w V w V f vw = 0 v V \ {s, t} Łukasz Kowalik (UW) LP April 8, 2016 4 / 15
PL a dyskretne problemy algorytmiczne Wiele problemów algorytmicznych możemy zapisać jako programy liniowe. Np. maksymalny przepływ: zmaksymalizuj v V f sv z zachowaniem warunków f vw c(v, w) v, w V f vw = f wv v, w V w V f vw = 0 v V \ {s, t} Najtańszy przepływ o wartości x? Proszę bardzo: zminimalizuj v,w V a(v, w)f vw z zachowaniem warunków f vw c(v, w) v, w V f vw = f wv v, w V w V f vw = 0 v V \ {s, t} v V f sv = x. Łukasz Kowalik (UW) LP April 8, 2016 4 / 15
Notacja Rozważmy PL o n zmiennych x 1,..., x n. Wartościowanie zmiennych: wektor x R n. liniowa funkcja celu ma postać: n c j x j, j=1 dla pewnego wektora c = (c 1,..., c n ) R n. Inny zapis funkcji celu (iloczyn skalarny): cx Czasem piszemy też (jako iloczyn macierzy): c T x Łukasz Kowalik (UW) LP April 8, 2016 5 / 15
Definicje x R n jest rozwiązaniem dopuszczalnym PL gdy x spełnia wszystkie ograniczenia. Łukasz Kowalik (UW) LP April 8, 2016 6 / 15
Definicje x R n jest rozwiązaniem dopuszczalnym PL gdy x spełnia wszystkie ograniczenia. x jest rozwiązaniem optymalnym PL gdy x jest dopuszczalny i optymalizuje f-cję celu, tzn Dla każdego rozwiązania dopuszczanego y R n, (dla problemu minimalizacyjnego) cx cy Łukasz Kowalik (UW) LP April 8, 2016 6 / 15
Definicje x R n jest rozwiązaniem dopuszczalnym PL gdy x spełnia wszystkie ograniczenia. x jest rozwiązaniem optymalnym PL gdy x jest dopuszczalny i optymalizuje f-cję celu, tzn Dla każdego rozwiązania dopuszczanego y R n, (dla problemu minimalizacyjnego) cx cy PL jest dopuszczalny gdy istnieje rozwiązanie dopuszczalne, wpp. jest sprzeczny. Łukasz Kowalik (UW) LP April 8, 2016 6 / 15
Definicje x R n jest rozwiązaniem dopuszczalnym PL gdy x spełnia wszystkie ograniczenia. x jest rozwiązaniem optymalnym PL gdy x jest dopuszczalny i optymalizuje f-cję celu, tzn Dla każdego rozwiązania dopuszczanego y R n, (dla problemu minimalizacyjnego) cx cy PL jest dopuszczalny gdy istnieje rozwiązanie dopuszczalne, wpp. jest sprzeczny. PL jest nieograniczony gdy istnieje rozwiązanie dopuszczalne, ale nie ma rozwiązań optymalnych, tzn. λ R rozw. dopuszczalne x R n t.ż. xc < λ Łukasz Kowalik (UW) LP April 8, 2016 6 / 15
Postać kanoniczna zmaksymalizuj z zachowaniem warunków n j=1 c jx j n j=1 a ijx j b i i = 1,..., m gdzie {a ij, b i, c j } są dane. Zapis macierzowy: Łukasz Kowalik (UW) LP April 8, 2016 7 / 15
Postać kanoniczna zmaksymalizuj z zachowaniem warunków n j=1 c jx j n j=1 a ijx j b i i = 1,..., m gdzie {a ij, b i, c j } są dane. Zapis macierzowy: zmaksymalizuj z zachowaniem warunków c T x Ax b Łukasz Kowalik (UW) LP April 8, 2016 7 / 15
Postać kanoniczna zmaksymalizuj z zachowaniem warunków n j=1 c jx j n j=1 a ijx j b i i = 1,..., m gdzie {a ij, b i, c j } są dane. Zapis macierzowy: zmaksymalizuj z zachowaniem warunków c T x Ax b Fakt 1 Każdy program liniowy można sprowadzić do równoważnego programu w postaci kanonicznej. Łukasz Kowalik (UW) LP April 8, 2016 7 / 15
Równoważność programów liniowych Rozważmy PL L i L, maksymalizacyjne, z funkcjami celu c i c. L i L są równoważne gdy dla każdego rozw. dopuszczalnego x programu L istnieje rozw. dopuszczalne x programu L tż. cx = c x. dla każdego rozw. dopuszczalnego x programu L istnieje rozw. dopuszczalne x programu L tż. cx = c x. Łukasz Kowalik (UW) LP April 8, 2016 8 / 15
Równoważność programów liniowych Rozważmy maksymalizacyjny PL L i minimalizacyjny PL L, z funkcjami celu c i c. L i L są równoważne gdy dla każdego rozw. dopuszczalnego x programu L istnieje rozw. dopuszczalne x programu L tż. cx = c x. dla każdego rozw. dopuszczalnego x programu L istnieje rozw. dopuszczalne x programu L tż. cx = c x. Łukasz Kowalik (UW) LP April 8, 2016 9 / 15
Postać standardowa wersja max: zmaksymalizuj z zachowaniem warunków wersja min: zminimalizuj z zachowaniem warunków c T x Ax b x 0 c T x Ax b x 0 Fakt 2 Każdy program liniowy można sprowadzić do równoważnego programu w postaci standardowej. Łukasz Kowalik (UW) LP April 8, 2016 10 / 15
Postać dopełnieniowa zmaksymalizuj z zachowaniem warunków c T x Ax = b x 0 Fakt 3 Każdy program liniowy można sprowadzić do równoważnego programu w postaci dopełnieniowej. Łukasz Kowalik (UW) LP April 8, 2016 11 / 15
Geometria programów liniowych f (x) 4 x 2 = x 1 + 2 3 max x 1 + 2x 2 x 2 x 1 + 2 2x 1 + x 2 4 2x 2 + x 1 0 x 2 0 2 2x 1 + x 2 = 3 1 x 2 1 0 1 2 3 1 2 2x 1 + x 2 = 4 2x 2 + x 1 = 0 Łukasz Kowalik (UW) LP April 8, 2016 12 / 15
Wnioski 2 zmienne: ogólnie: ograniczenia półpłaszczyzny zbiór rozwiązań dopuszczalnych wielokąt (wypukły), być może nieograniczony. zbiór punktów spełniających ax = b hiperpłaszczyzna zbiór punktów spełniających ax b półprzestrzeń zbiór rozwiązań dopuszczalnych PL wielościan (wypukły). Łukasz Kowalik (UW) LP April 8, 2016 13 / 15
Równoważność pojęć wierzchołka Wierzchołkiem wielościanu P nazywamy dowolny punkt x P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c. Łukasz Kowalik (UW) LP April 8, 2016 14 / 15
Równoważność pojęć wierzchołka Wierzchołkiem wielościanu P nazywamy dowolny punkt x P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c. Punktem ekstremalnym wielościanu P nazywamy dowolny punkt x P, który nie jest wypukłą kombinacją dwóch innych punktów y, z P. (tzn. dowolny punkt postaci λy + (1 λ)z dla pewnego λ [0, 1].) Łukasz Kowalik (UW) LP April 8, 2016 14 / 15
Równoważność pojęć wierzchołka Wierzchołkiem wielościanu P nazywamy dowolny punkt x P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c. Punktem ekstremalnym wielościanu P nazywamy dowolny punkt x P, który nie jest wypukłą kombinacją dwóch innych punktów y, z P. (tzn. dowolny punkt postaci λy + (1 λ)z dla pewnego λ [0, 1].) Bazowe rozwiązanie dopuszczalne (brd) PL o n zmiennych to rozwiązanie dopuszczalne x R n takie, że istnieje n liniowo niezależnych ograniczeń (w sensie wektorów współczynników przy x i, tzn. x 1 + 2x 2 1 i x 1 + 2x 2 2 są liniowo zależne), które dla x są spełnione z równością. Łukasz Kowalik (UW) LP April 8, 2016 14 / 15
Równoważność pojęć wierzchołka Fakt 4 Wierzchołkiem wielościanu P nazywamy dowolny punkt x P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c. Punktem ekstremalnym wielościanu P nazywamy dowolny punkt x P, który nie jest wypukłą kombinacją dwóch innych punktów y, z P. (tzn. dowolny punkt postaci λy + (1 λ)z dla pewnego λ [0, 1].) Bazowe rozwiązanie dopuszczalne (brd) PL o n zmiennych to rozwiązanie dopuszczalne x R n takie, że istnieje n liniowo niezależnych ograniczeń (w sensie wektorów współczynników przy x i, tzn. x 1 + 2x 2 1 i x 1 + 2x 2 2 są liniowo zależne), które dla x są spełnione z równością. Powyższe pojęcia są równoważne (dowód tablica) Łukasz Kowalik (UW) LP April 8, 2016 14 / 15
Struktura rozwiązań optymalnych Twierdzenie Każdy ograniczony PL w postaci standardowej max c T x, Ax b, x 0 ma rozwiązanie optymalne, które jest punktem ekstremalnym. (dowód tablica) Łukasz Kowalik (UW) LP April 8, 2016 15 / 15