Programowanie liniowe
Łukasz Kowalik
Instytut Informatyki, Uniwersytet Warszawski
April 8, 2016
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 237xk + 60xz+ 141xg + 25xs
z zachowaniem warunków 500xk+ 70xz+ 90xg + 300xs ≥ 1000 0.8xz+ 0.5xg + 0.1xs ≥ 1.2 xz+ 75xs ≥ 100 xk, xz, xg, xs ≥ 0
Co to jest program liniowy?
Definicja
Program liniowy (w skrócie PL) jest to problem
minimalizacji/maksymalizacji liniowej funkcji celu o n argumentach x1, x2, . . . , xn przy zachowaniu pewnej liczby równości lub nierówności liniowych (będziemy je nazywać ograniczeniami) zawierających zmienne xi.
PL a dyskretne problemy algorytmiczne
Wiele problemów algorytmicznych możemy zapisać jako programy liniowe.
Np. maksymalny przepływ:
zmaksymalizuj P
v ∈V fsv
z zachowaniem warunków fvw ≤ c(v , w ) v , w ∈ V fvw = −fwv v , w ∈ V P
w ∈Vfvw = 0 v ∈ V \ {s, t}
Najtańszy przepływ o wartości x? Proszę bardzo:
zminimalizuj P
v ,w ∈Va(v , w )fvw
z zachowaniem warunków fvw ≤ c(v , w ) v , w ∈ V
fvw = −fwv v , w ∈ V
P
w ∈Vfvw = 0 v ∈ V \ {s, t} P
v ∈V fsv = x .
PL a dyskretne problemy algorytmiczne
Wiele problemów algorytmicznych możemy zapisać jako programy liniowe.
Np. maksymalny przepływ:
zmaksymalizuj P
v ∈V fsv
z zachowaniem warunków fvw ≤ c(v , w ) v , w ∈ V fvw = −fwv v , w ∈ V P
w ∈Vfvw = 0 v ∈ V \ {s, t}
Najtańszy przepływ o wartości x? Proszę bardzo:
zminimalizuj P
v ,w ∈Va(v , w )fvw
z zachowaniem warunków fvw ≤ c(v , w ) v , w ∈ V
Notacja
Rozważmy PL o n zmiennych x1, . . . , xn.
Wartościowanie zmiennych: wektor x ∈ Rn. liniowa funkcja celu ma postać:
n
X
j =1
cjxj,
dla pewnego wektora c = (c1, . . . , cn) ∈ Rn. Inny zapis funkcji celu (iloczyn skalarny):
cx
Czasem piszemy też (jako iloczyn macierzy):
cTx
Definicje
x∈ Rn 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 ∈ Rn, cx≤ cy
(dla problemu minimalizacyjnego)
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 ∈ Rn t.ż. xc < λ
Definicje
x∈ Rn 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 ∈ Rn, cx≤ cy
(dla problemu minimalizacyjnego)
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 ∈ Rn t.ż. xc < λ
Definicje
x∈ Rn 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 ∈ Rn, cx≤ cy
(dla problemu minimalizacyjnego)
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 ∈ Rn t.ż. xc < λ
Definicje
x∈ Rn 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 ∈ Rn, cx≤ cy
(dla problemu minimalizacyjnego)
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 ∈ Rn t.ż. xc < λ
Postać kanoniczna
zmaksymalizuj Pn
j =1cjxj z zachowaniem warunków Pn
j =1aijxj ≤ bi i = 1, . . . , m gdzie {aij, bi, cj} są dane. Zapis macierzowy:
zmaksymalizuj cTx z zachowaniem warunków Ax ≤ b
Fakt 1
Każdy program liniowy można sprowadzić do równoważnego programu w postaci kanonicznej.
Postać kanoniczna
zmaksymalizuj Pn
j =1cjxj z zachowaniem warunków Pn
j =1aijxj ≤ bi i = 1, . . . , m gdzie {aij, bi, cj} są dane. Zapis macierzowy:
zmaksymalizuj cTx z zachowaniem warunków Ax ≤ b
Fakt 1
Każdy program liniowy można sprowadzić do równoważnego programu w postaci kanonicznej.
Postać kanoniczna
zmaksymalizuj Pn
j =1cjxj z zachowaniem warunków Pn
j =1aijxj ≤ bi i = 1, . . . , m gdzie {aij, bi, cj} są dane. Zapis macierzowy:
zmaksymalizuj cTx z zachowaniem warunków Ax ≤ b
Fakt 1
Równoważność programów liniowych
Rozważmy PL L i L0, maksymalizacyjne, z funkcjami celu c i c0.
L i L0 są równoważne gdy
dla każdego rozw. dopuszczalnego x programu L istnieje rozw.
dopuszczalne x0 programu L0 tż.
cx = c0x.
dla każdego rozw. dopuszczalnego x0 programu L0 istnieje rozw.
dopuszczalne x programu L tż.
cx = c0x.
Równoważność programów liniowych
Rozważmy maksymalizacyjny PL L i minimalizacyjny PL L0, z funkcjami celu c i c0.
L i L0 są równoważne gdy
dla każdego rozw. dopuszczalnego x programu L istnieje rozw. dopuszczalne x0 programu L0 tż.
cx = −c0x.
dla każdego rozw. dopuszczalnego x0 programu L0 istnieje rozw. dopuszczalne x programu L tż.
Postać standardowa
wersja max:
zmaksymalizuj cTx z zachowaniem warunków Ax ≤ b
x≥ 0 wersja min:
zminimalizuj cTx
z zachowaniem warunków Ax ≥ b x≥ 0 Fakt 2
Każdy program liniowy można sprowadzić do równoważnego programu w postaci standardowej.
Postać dopełnieniowa
zmaksymalizuj cTx z zachowaniem warunków Ax = b
x≥ 0
Fakt 3
Każdy program liniowy można sprowadzić do równoważnego programu w postaci dopełnieniowej.
Geometria programów liniowych
max x1+ 2x2
x2 ≤ x1+ 2 2x1+ x2 ≤ 4 2x2+ x1 ≥ 0 x2 ≥ 0
x f (x)
x2 = x1+ 2
2x2+ x1= 0 2x1+ x2 = 4
2x1+ x2= 3
−2 −1 0 1 2 3
−2
−1 1 2 3 4
Wnioski
2 zmienne:
ograniczenia ! półpłaszczyzny
zbiór rozwiązań dopuszczalnych ! wielokąt (wypukły), być może nieograniczony.
ogólnie:
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).
Równoważność pojęć wierzchołka
Wierzchołkiemwielościanu P nazywamy dowolny punkt x ∈ P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c.
Punktem ekstremalnym wielościanuP 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 ∈ Rn takie, że istnieje n liniowo
niezależnych ograniczeń (w sensie wektorów współczynników przy xi, tzn. x1+ 2x2 ≥ 1 i x1+ 2x2 ≤ 2 są liniowo zależne), które dla x są spełnione z równością.
Fakt 4
Powyższe pojęcia są równoważne (dowód → tablica)
Równoważność pojęć wierzchołka
Wierzchołkiemwielościanu P nazywamy dowolny punkt x ∈ P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c.
Punktem ekstremalnym wielościanuP 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 ∈ Rn takie, że istnieje n liniowo
niezależnych ograniczeń (w sensie wektorów współczynników przy xi, tzn. x1+ 2x2 ≥ 1 i x1+ 2x2 ≤ 2 są liniowo zależne), które dla x są spełnione z równością.
Fakt 4
Powyższe pojęcia są równoważne (dowód → tablica)
Równoważność pojęć wierzchołka
Wierzchołkiemwielościanu P nazywamy dowolny punkt x ∈ P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c.
Punktem ekstremalnym wielościanuP 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 ∈ Rntakie, że istnieje n liniowo
niezależnych ograniczeń (w sensie wektorów współczynników przy xi, tzn. x1+ 2x2 ≥ 1 i x1+ 2x2 ≤ 2 są liniowo zależne), które dla x są spełnione z równością.
Fakt 4
Powyższe pojęcia są równoważne (dowód → tablica)
Równoważność pojęć wierzchołka
Wierzchołkiemwielościanu P nazywamy dowolny punkt x ∈ P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c.
Punktem ekstremalnym wielościanuP 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 ∈ Rntakie, że istnieje n liniowo
niezależnych ograniczeń (w sensie wektorów współczynników przy xi, tzn. x1+ 2x2 ≥ 1 i x1+ 2x2 ≤ 2 są liniowo zależne), które dla x są spełnione z równością.
Struktura rozwiązań optymalnych
Twierdzenie
Każdy ograniczony PL w postaci standardowej max cTx, Ax ≤ b, x ≥ 0 ma rozwiązanie optymalne, które jest punktem ekstremalnym.
(dowód → tablica)