Optymalizacja Optymalizacja
w procesach biznesowych w procesach biznesowych
dr hab. inż. Joanna Józefowska, prof.PP dr hab. inż. Joanna Józefowska, prof.PP
Instytut Informatyki Instytut Informatyki
Obecność na wykładach będzie sprawdzana!
Organizacja zajęć Organizacja zajęć
►
►
16 godzin wykładów 16 godzin wykładów
dr hab. inż. J. Józefowska, prof. PP dr hab. inż. J. Józefowska, prof. PP
www.cs.put.poznan.plwww.cs.put.poznan.pl//jjozefowskajjozefowska
dyżur: poniedziałek 9.30dyżur: poniedziałek 9.30--11.00, 11.00, pok 436 WE
pok 436 WE
Obecność na ćwiczeniach jest obowiązkowa!
pok. 436 WE pok. 436 WE
►
►
16 godzin ćwiczeń 16 godzin ćwiczeń
dr inż. Grzegorz Waligóradr inż. Grzegorz Waligóra
►
►
Ok. 16 godzin pracy poza zajęciami Ok. 16 godzin pracy poza zajęciami
Zaliczenie Zaliczenie
►
►
Zaliczenie ćwiczeń jest warunkiem Zaliczenie ćwiczeń jest warunkiem dopuszczenia do egzaminu
dopuszczenia do egzaminu
►
►
Egzamin odbędzie się zgodnie z Egzamin odbędzie się zgodnie z harmonogramem sesji
harmonogramem sesji harmonogramem sesji harmonogramem sesji
►
►
Nie przewidujemy zwolnienia z egzaminu Nie przewidujemy zwolnienia z egzaminu
►
►
Na egzamin pisemny proszę przynieść Na egzamin pisemny proszę przynieść indeks!
indeks!
Program zajęć Program zajęć
►
►
Programowanie liniowe Programowanie liniowe
Sformułowanie problemu i przykłady zastosowańSformułowanie problemu i przykłady zastosowań
Algorytm simpleksAlgorytm simpleks
Zagadnienie dualneZagadnienie dualne
Z d i i t t
Z d i i t t
►
►
Zagadnienie transportowe Zagadnienie transportowe
Znajdowanie rozwiązania początkowegoZnajdowanie rozwiązania początkowego
Metoda potencjałówMetoda potencjałów
►
►
Programowanie dynamiczne Programowanie dynamiczne
►
►
Optymalizacja w zarządzaniu projektami Optymalizacja w zarządzaniu projektami
Literatura Literatura
►
►BadaniaBadania operacyjne,operacyjne, redred.. EE.. Ignasiak,Ignasiak, PWE,PWE, Warszawa,Warszawa, 19971997..
►
►BadaniaBadania operacyjneoperacyjne dladla informatyków,informatyków, skryptskrypt PolitechnikiPolitechniki PoznańskiejPoznańskiej 1137
1137,, BłażewiczBłażewicz JJ..,, CellaryCellary WW..,, SłowińskiSłowiński RR..,, WęglarzWęglarz JJ..,, Wydawnictwo
Wydawnictwo PolitechnikiPolitechniki Poznańskiej,Poznańskiej, Poznań,Poznań, 19841984..
►
►BadaniaBadania operacyjneoperacyjne ww przykładachprzykładach ii zadaniach,zadaniach, redred.. KK.. Kukuła,Kukuła, Jędrzejczyk
Jędrzejczyk ZZ..,, KukułaKukuła KK..,, SkrzypekSkrzypek JJ..,, WalkoszWalkosz AA..,, PracowniaPracownia Jęd ejc y
Jęd ejc y ,, u u au u a ,, SS ypeype JJ ,, a osa os ,, acoaco aa Poligraficzna
Poligraficzna AkademiiAkademii EkonomicznejEkonomicznej ww Krakowie,Krakowie, Kraków,Kraków, 19921992..
►
►BadaniaBadania operacyjne,operacyjne, SiudakSiudak MM..,, OficynaOficyna WydawniczaWydawnicza PolitechnikiPolitechniki Warszawskiej,
Warszawskiej, Warszawa,Warszawa, 19941994..
►
►ManagementManagement forfor Engineers,Engineers, ChapmanChapman CC.. BB..,, CooperCooper DD.. FF..,, PagePage MM.. JJ..,, John
John WileyWiley && Sons,Sons, ChichesterChichester,, 19871987..
►
►TrzaskalikTrzaskalik TT..,, WprowadzenieWprowadzenie dodo badańbadań operacyjnychoperacyjnych zz komputerem,komputerem, Polskie
Polskie WydawnictwoWydawnictwo Ekonomiczne,Ekonomiczne, WW--wawa 20032003..
Literatura Literatura
►
►BadaniaBadania operacyjne,operacyjne, redred.. EE.. Ignasiak,Ignasiak, PWE,PWE, Warszawa,Warszawa, 19971997..
►
►BadaniaBadania operacyjneoperacyjne dladla informatyków,informatyków, skryptskrypt PolitechnikiPolitechniki PoznańskiejPoznańskiej 1137
1137,, BłażewiczBłażewicz JJ..,, CellaryCellary WW..,, SłowińskiSłowiński RR..,, WęglarzWęglarz JJ..,, Wydawnictwo
Wydawnictwo PolitechnikiPolitechniki Poznańskiej,Poznańskiej, Poznań,Poznań, 19841984..
►
►BadaniaBadania operacyjneoperacyjne ww przykładachprzykładach ii zadaniach,zadaniach, redred.. KK.. Kukuła,Kukuła, Jędrzejczyk
Jędrzejczyk ZZ..,, KukułaKukuła KK..,, SkrzypekSkrzypek JJ..,, WalkoszWalkosz AA..,, PracowniaPracownia Jęd ejc y
Jęd ejc y ,, u u au u a ,, SS ypeype JJ ,, a osa os ,, acoaco aa Poligraficzna
Poligraficzna AkademiiAkademii EkonomicznejEkonomicznej ww Krakowie,Krakowie, Kraków,Kraków, 19921992..
►
►BadaniaBadania operacyjne,operacyjne, SiudakSiudak MM..,, OficynaOficyna WydawniczaWydawnicza PolitechnikiPolitechniki Warszawskiej,
Warszawskiej, Warszawa,Warszawa, 19941994..
►
►ManagementManagement forfor Engineers,Engineers, ChapmanChapman CC.. BB..,, CooperCooper DD.. FF..,, PagePage MM.. JJ..,, John
John WileyWiley && Sons,Sons, ChichesterChichester,, 19871987..
►
►TrzaskalikTrzaskalik TT..,, WprowadzenieWprowadzenie dodo badańbadań operacyjnychoperacyjnych zz komputerem,komputerem, Polskie
Polskie WydawnictwoWydawnictwo Ekonomiczne,Ekonomiczne, WW--wawa 20032003..
Programowanie liniowe Programowanie liniowe gg
Optymalizacja w procesach biznesowych Optymalizacja w procesach biznesowych
Wykład 1 Wykład 1
Plan wykładu Plan wykładu
►
►
Problem programowania liniowego Problem programowania liniowego
PrzykładPrzykład
Postać kanonicznaPostać kanoniczna
Postać standardowaPostać standardowa
►
►
Metoda graficzna Metoda graficzna gg
►
►
Algorytm Algorytm simplex simplex
Początkowa baza dopuszczalnaPoczątkowa baza dopuszczalna
Tablica simpleksTablica simpleks
Warunek optymalności rozwiązaniaWarunek optymalności rozwiązania
Zmiana bazy Zmiana bazy
Transformacja tablicyTransformacja tablicy
►
►
Metoda sztucznej bazy Metoda sztucznej bazy
Przykład zastosowania PL Przykład zastosowania PL
Mały warsztat naprawia trzy rodzaje urządzeń B1, B2, B3. Każde urządzenie zawiera trzy podstawowe elementy: E1, E E Naprawa polega na demontażu i/lub montażu E2, E3. Naprawa polega na demontażu i/lub montażu elementów E1, E2, E3według określonej technologii. Tabela przedstawia przebieg każdej naprawy, zysk z naprawy urządzenia określonego typu oraz zapas elementów E1, E2, E3w firmie.
Element Element
Urządzenie
Urządzenie
EE
11EE
22EE
33zysk zysk [$/szt]
[$/szt]
Przykład zastosowania PL Przykład zastosowania PL
BB
1133 --22 --44 --1 1
BB
22--11 44 33 33
BB
3322 00 88 --22
Zapas [szt.]
Zapas [szt.] 77 12 12 10 10
Aby określić optymalny z punktu widzenia maksymalizacji zysku zakres napraw budujemy model liniowy problemu.
Sformułowanie problemu Sformułowanie problemu
Niech x1 oznacza planowaną liczbę sztuk urządzenia B1
x2oznacza planowaną liczbę sztuk urządzenia B2
x3oznacza planowaną liczbę sztuk urządzenia B3
Całkowity zysk z naprawy urządzeń:
–x1+ 3x2– 2x3
Liczba sztuk elementu E1 potrzebna do realizacji produkcji:
3x1– x2+ 2x3 ≤ 7
Zakład ma zapas 7 sztuk elementu E1
–2x1+ 4x2 ≤ 12 –4x1+ 3x2+ 8x3≤ 10 Podobnie dla elementów E2 i E3:
Sformułowanie problemu Sformułowanie problemu
Zmaksymalizować –x1+ 3x2– 2x3 (1) Przy ograniczeniach 3x x + 2x ≤ 7 (2) Przy ograniczeniach 3x1– x2 + 2x3≤ 7 (2)
–2x1+ 4x2 ≤ 12 (3)
–4x1+ 3x2+ 8x3≤ 10 (4) x1, x2, x3≥ 0 (5)
Model liniowy Model liniowy
1
zmaksymalizować
n j jj
c x
∑
=funkcja celu (kryterium)
1
przy ograniczeniach
n ij j i, 1
ja x b i , ,m
=
≥ =
∑ K
j
0, 1
x ≥ j = K , ,n
ograniczenia
Model liniowy Model liniowy
1
zmaksymalizować
n j jj
c x
∑
=zmienna decyzyjna
(i)
1
przy ograniczeniach , 1
n
ij j i j
a x b i , ,m
=
≤ =
∑ K
j
0, 1
x ≥ j = K , ,n
parametry parametry parametry
(ii)
(iii)
Model liniowy
Model liniowy –– postać kanoniczna postać kanoniczna
1
zmaksymalizować
n j j j
c x
∑
=1
przy ograniczeniach , 1
n
ij j i j
a x b i , ,m
=
≤ =
∑ K
j
0, 1
x ≥ j = K , ,n
Model liniowy Model liniowy
1
zminimalizować
n j jj
c x
∑
=1
przy ograniczeniach , 1
n
ij j i j
a x b i , ,m
=
≥ =
∑ K
j
0, 1
x ≥ j = K , ,n
Model liniowy
Model liniowy –– postać standardowa postać standardowa
zmaksymalizować cx
przy ograniczeniach Ax = b
≥ 0 x ≥ 0 x
1 2
m b b
b
⎡ ⎤⎢ ⎥
=⎢ ⎥
⎢ ⎥⎢ ⎥
⎣ ⎦
b K
1 2
n x x
x
⎡ ⎤⎢ ⎥
=⎢ ⎥
⎢ ⎥⎢ ⎥
⎣ ⎦
x K
[
c ,c ,1 2 ,cn]
=
c K 11 1
1
n
m mn
a a
a a
⎡ ⎤
⎢ ⎥
= ⎢ ⎥
⎢ ⎥
⎣ ⎦
A
K K K K
K
Podstawowe definicje Podstawowe definicje
Rozwiązaniem dopuszczalnym zagadnienia programowania liniowego jest wektor x=(x1,x2,...,xn), spełniający warunki (ii) oraz (iii).
Rozwiązaniem bazowymukładu równań (ii) nazywamy rozwiązanie układu powstałego przez przyrównanie do zera n – m zmiennych przy założeniu, że wyznacznik współczynników pozostałych m p y a o e u, e y ac spó c y ó po os a yc zmiennych jest niezerowy. Te m zmiennych nazywamy zmiennymi bazowymi.
Niezdegenerowanym rozwiązaniem bazowym dopuszczalnym nazywamy bazowe rozwiązanie dopuszczalne, w którym wszystkie zmienne bazowe są dodatnie.
Maksymalnym (minimalnym) rozwiązaniem dopuszczalnymjest rozwiązanie dopuszczalne, które maksymalizuje (minimalizuje) funkcję celu (i).
Rozwiązanie metodą graficzną
Rozwiązanie metodą graficzną Własności zbioru rozwiązań dopuszczalnych Własności zbioru rozwiązań dopuszczalnych
►
►Zbiór rozwiązań dopuszczalnych zadania programowania Zbiór rozwiązań dopuszczalnych zadania programowania liniowego jest zbiorem liniowo wypukłym.
liniowego jest zbiorem liniowo wypukłym.
►
►Istnieje punkt wierzchołkowy zbioru rozwiązań Istnieje punkt wierzchołkowy zbioru rozwiązań
dopuszczalnych, w którym funkcja celu przyjmuje minimum dopuszczalnych, w którym funkcja celu przyjmuje minimum (maksimum)
(maksimum) (maksimum).
(maksimum).
►
►Każde bazowe rozwiązanie dopuszczalne jest punktem Każde bazowe rozwiązanie dopuszczalne jest punktem wierzchołkowym zbioru rozwiązań dopuszczalnych.
wierzchołkowym zbioru rozwiązań dopuszczalnych.
►
►Każdemu punktowi wierzchołkowemu zbioru rozwiązań Każdemu punktowi wierzchołkowemu zbioru rozwiązań dopuszczalnych odpowiada m wektorów liniowo dopuszczalnych odpowiada m wektorów liniowo niezależnych z danego zbioru n wektorów związanych z niezależnych z danego zbioru n wektorów związanych z tym punktem.
tym punktem.
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simplekszbudować początkową tablicę simpleks;;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k); );
55 jeżeli jego wartość jestjeżeli jego wartość jest mniejsza lub równa zero to koniec;mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest jeżeli jego wartość jest mniejsza lub równa zero, to koniec; mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. wyznaczyć element wyznaczyć element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik≥≥0, 0, ii∈∈BB;;
b.
b. przekształcić tablicę przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x
=x
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simpleks;zbudować początkową tablicę simpleks;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k); );
55 jeżeli jego wartość jest mniejsza lub równa zero to koniec;jeżeli jego wartość jest mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest mniejsza lub równa zero, to koniec; jeżeli jego wartość jest mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. wyznaczyć wyznaczyć element element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik≥≥0, 0, ii∈∈BB;;
b.
b. przekształcić tablicę przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x
=x
Postać kanoniczna problemu PL Postać kanoniczna problemu PL
Zmaksymalizować: –x1+ 3x2– 2x3 Przy ograniczeniach: 3x1– x2+ 2x3 ≤ 7
–2x1+ 4x2 ≤ 12
–4x1+ 3x2+ 8x3 ≤ 10 x1, x2, x3≥ 0
Postać standardowa problemu PL Postać standardowa problemu PL
►
►
Wszystkie ograniczenia mają postać Wszystkie ograniczenia mają postać równań
równań
dodajemy zmienne osłabiające (s dodajemy zmienne osłabiające (s
ii≥≥ 0), 0),
i ół ik i f k ji l
i ół ik i f k ji l
Jak to zrobić?
z zerowymi współczynnikami w funkcji celu z zerowymi współczynnikami w funkcji celu
►
►
Wektor prawych stron ograniczeń jest Wektor prawych stron ograniczeń jest nieujemny (
nieujemny (b b ≥≥ 0) 0)
mnożymy obustronnie równanie przez ( mnożymy obustronnie równanie przez (–1) 1)
►
►
Funkcja celu jest maksymalizowana Funkcja celu jest maksymalizowana
mnożymy funkcję celu przez ( mnożymy funkcję celu przez (–1) 1)
Jak to zrobić?
Jak to zrobić?
Zmaksymalizować: –3x1+ 3x2– 2x3
Sprowadzenie ograniczeń do postaci równań Sprowadzenie ograniczeń do postaci równań
Zmaksymalizować: –x1+ 3x2– 2x3+ 0s1+ 0s2+ 0s3
Funkcja celu jest maksymalizowana
–4x1+ 3x2+ 8x3 ≤ 10
–2x1+ 4x2 ≤ 12
Przy ograniczeniach: 3x1– x2+ 2x3 ≤ 7
–2x1+ 4x2 + s2 = 12
–4x1+ 3x2+ 8x3 + s3= 10 x1, x2, x3≥ 0
Wektor prawych stron ograniczeń jest dodatni
Przy ograniczeniach: 3x1– x2+ 2x3+ s1 = 7
x1, x2, x3, s1, s2, s3≥ 0
Problem w postaci standardowej Problem w postaci standardowej
Zmaksymalizować: –x1+ 3x2– 2x3+ 0s1+ 0s2+ 0s3 Przy ograniczeniach: 3x1– x2+ 2x3+ s1 = 7
–2x1+ 4x2 + s2 = 12
–4x1+ 3x2+ 8x3 + s3= 10 x1, x2, x3, s1, s2, s3≥ 0
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simpleks;zbudować początkową tablicę simpleks;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k); );
55 jeżeli jego wartość jest mniejsza lub równa zero to koniec;jeżeli jego wartość jest mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest mniejsza lub równa zero, to koniec; jeżeli jego wartość jest mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. Wyznaczyć Wyznaczyć element element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik≥≥0, 0, ii∈∈BB;;
b.
b. Przekształcić tablicę Przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x
=x
Dopuszczalne rozwiązanie bazowe Dopuszczalne rozwiązanie bazowe
Rozwiązaniem bazowym jest rozwiązanie, Rozwiązaniem bazowym jest rozwiązanie, które powstaje przez przyrównanie do zera które powstaje przez przyrównanie do zera n
n –– m zmiennych i rozwiązanie powstałego m zmiennych i rozwiązanie powstałego układu równań.
układu równań.
Jeżeli w rozwiązaniu bazowym wartości Jeżeli w rozwiązaniu bazowym wartości wszystkich zmiennych są nieujemne, to jest wszystkich zmiennych są nieujemne, to jest ono rozwiązaniem bazowym dopuszczalnym.
ono rozwiązaniem bazowym dopuszczalnym.
Uwaga: w postaci standardowej zawsze n>m
Znalezienie bazy początkowej Znalezienie bazy początkowej
Zmaksymalizować: –x1+ 3x2– 2x3
Przy ograniczeniach: 3x1– x2+ 2x3+ s1 = 7
–2x1+ 4x2 + s2 = 12
–4x1+ 3x2+ 8x3 + s3= 10 x1, x2, x3≥ 0 Niech x1 = x2 = x3 = 0 x1, x2, x3, s1, s2, s3≥ 0
Znalezienie bazy początkowej Znalezienie bazy początkowej
3x1– x2+ 2x3+s1 = 7
–2x1+ 4x2 + s2 = 12
–4x1+ 3x2+ 8x3 +s3= 10 Niech x1 = x2 = x3 = 0
Jest to rozwiązanie bazowe dopuszczalne
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simpleks;zbudować początkową tablicę simpleks;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k); );
55 jeżeli jego wartość jest mniejsza lub równa zero to koniec;jeżeli jego wartość jest mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest mniejsza lub równa zero, to koniec; jeżeli jego wartość jest mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. Wyznaczyć Wyznaczyć element element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik≥≥0, 0, ii∈∈BB;;
b.
b. Przekształcić tablicę Przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x =x
Początkowa tablica simpleks Początkowa tablica simpleks
i
1 2 3
4
Początkowa tablica simpleks Początkowa tablica simpleks
i
1
Numer wiersza tablicy.
Liczba wierszy: m+1.
2 3 4
Początkowa tablica simpleks Początkowa tablica simpleks
i B
1 ss11
Nazwy wektorów tworzących bazę.
2 ss22
3 ss33 4
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB
1 ss11 00
Współczynniki przy zmiennych bazowych w
funkcji celu.
2 ss22 00
3 ss33 00 4
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB RHS
1 ss11 00 77
Wartości zmiennych bazowych w bieżącym
rozwiązaniu.
2 ss22 00 1212
3 ss33 00 1010
4
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 77
2 ss22 00 1212
3 ss33 00 1010
4
Nazwy wszystkich zmiennych.
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 77
Współczynniki przy zmiennych w funkcji celu.
2 ss22 00 1212
3 ss33 00 1010
4
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
Współczynniki przy zmiennych w ograniczeniach.
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
j i ij
i B
z c x
∈
= ∑
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4
Wiersz wskaźnikowy.
Wartości cj- zj
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
j i ij
i B
z c x
∈
= ∑
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00
Wiersz wskaźnikowy.
Wartości cj- zj
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
Wartość funkcji celu w bieżącym rozwiązaniu.
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
Własności rozwiązań optymalnych Własności rozwiązań optymalnych
►
►
Jeżeli dla ustalonego Jeżeli dla ustalonego jj spełniony jest warunek spełniony jest warunek zz
jj––
cc
jj> 0, to można skonstruować zbiór rozwiązań > 0, to można skonstruować zbiór rozwiązań dopuszczalnych taki, że dla każdego elementu dopuszczalnych taki, że dla każdego elementu tego zbioru spełniona jest nierówność
tego zbioru spełniona jest nierówność zz < < zz
00, gdzie , gdzie ńń
dolna granica
dolna granica zz jest albo skończona albo jest albo skończona albo nieskończona (
nieskończona ( zz oznacza wartość funkcji celu w oznacza wartość funkcji celu w punkcie należącym do zbioru rozwiązań punkcie należącym do zbioru rozwiązań dopuszczalnych.
dopuszczalnych.
Własności rozwiązań optymalnych Własności rozwiązań optymalnych
Jeżeli dla dowolnego rozwiązania dopuszczalnego Jeżeli dla dowolnego rozwiązania dopuszczalnego x = (X
x = (X
1010PP
11, x , x
2020PP
22, …, x , …, x
m0m0) spełnione są warunki ) spełnione są warunki zz
jj–– cc
jj< 0 dla wszystkich j = 1, 2, …, n, to (1) i (2) < 0 dla wszystkich j = 1, 2, …, n, to (1) i (2) określają minimalne rozwiązanie dopuszczalne.
określają minimalne rozwiązanie dopuszczalne.
xx
1010PP
11+ x + x
2020PP
22+ … + x + … + x
m0m0PP
mm= b = b (1) (1) xx
1010cc
11+ x + x
2020cc
22+ … + x + … + x
m0m0cc
mm= z = z
00(2) (2)
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simpleks;zbudować początkową tablicę simpleks;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k); );
55 jeżeli jego wartość jest mniejsza lub równa zero to koniec;jeżeli jego wartość jest mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest mniejsza lub równa zero, to koniec; jeżeli jego wartość jest mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. Wyznaczyć Wyznaczyć element element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik≥≥0, 0, ii∈∈BB;;
b.
b. Przekształcić tablicę Przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x
=x
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simpleks;zbudować początkową tablicę simpleks;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k););
55 jeżeli jego wartość jest mniejsza lub równa zero to koniec;jeżeli jego wartość jest mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest mniejsza lub równa zero, to koniec; jeżeli jego wartość jest mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. Wyznaczyć Wyznaczyć element element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik>>0, 0, ii∈∈BB;;
b.
b. Przekształcić tablicę Przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x =x
Jeżeli wszystkie x Jeżeli wszystkie xikik≤≤0, 0, ii∈∈BB, ,
to funkcja celu może to funkcja celu może przyjmować dowolnie duże przyjmować dowolnie duże wartości (rozwiązanie wartości (rozwiązanie
nieograniczone).
nieograniczone).
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
kolumna k
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
kolumna k
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
12/4 < 10/3
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
kolumna k
2 ss22 00 –2 44 00 00 11 00 1212
3 ss33 00 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
wiersz l
element centralny przekształcenia
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
kolumna k
2 xx22 33 –2 44 00 00 11 00 1212
3 ss33 –2 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
wiersz l
zmienna x2(z kolumny k) zastępuje w bazie zmienną s2 (z wiersza l)
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simpleks;zbudować początkową tablicę simpleks;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k););
55 jeżeli jego wartość jest mniejsza lub równa zero to koniec;jeżeli jego wartość jest mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest mniejsza lub równa zero, to koniec; jeżeli jego wartość jest mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. Wyznaczyć Wyznaczyć element element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik≥≥0, 0, ii∈∈BB;;
b.
b. Przekształcić tablicę Przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x =x
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
kolumna k
kolumna j
wiersz i
2 xx22 00 –2 44 00 00 11 00 1212
3 ss33 –2 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
wiersz l wiersz i
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 33 –1 22 11 00 00 77
Początkowa tablica simpleks Początkowa tablica simpleks
kolumna k
kolumna j
wiersz i
3 –1
2 xx22 00 –2 44 00 00 11 00 1212
3 ss33 –2 –4 33 88 00 00 11 1010
4 –1 33 –2 00 00 00 00
wiersz l wiersz i
–2 4
–
* =2,5
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3 1 ss11 00 5/25/2 0 22 11 1/41/4 00 1010
kolumna k
2 xx22 00 –2 44 00 00 11 00 1212
3 ss33 –2 –5/2 00 88 00 –3/4 11 11
4 1/2 00 –2 00 –3/4 00
wiersz l
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3 1 ss11 00 5/25/2 0 22 11 1/41/4 00 1010
kolumna k
2 xx22 00 –1/2 11 00 00 1/41/4 00 33
3 ss33 –2 –5/2 00 88 00 –3/4 11 11
4 1/2 00 –2 00 –3/4 00
wiersz l
Algorytm simpleks Algorytm simpleks
1.
1. sprowadzić problem do postaci standardowej;sprowadzić problem do postaci standardowej;
2.
2. znaleźć dopuszczalne rozwiązanie bazowe;znaleźć dopuszczalne rozwiązanie bazowe;
3.
3. zbudować początkową tablicę simpleks;zbudować początkową tablicę simpleks;
4.
4. wybrać największy element wiersza wskaźnikowego (xwybrać największy element wiersza wskaźnikowego (xm+1,km+1,k); );
55 jeżeli jego wartość jest mniejsza lub równa zero to koniec;jeżeli jego wartość jest mniejsza lub równa zero to koniec;
5.
5. jeżeli jego wartość jest mniejsza lub równa zero, to koniec; jeżeli jego wartość jest mniejsza lub równa zero, to koniec;
w przeciwnym razie:
w przeciwnym razie:
a.
a. Wyznaczyć Wyznaczyć element element xxlklko najmniejszym ilorazie o najmniejszym ilorazie bbikik//xxikikdla xdla xikik≥≥0, 0, ii∈∈BB;;
b.
b. Przekształcić tablicę Przekształcić tablicę simplexsimplex przyjmując element przyjmując element xxlklkza element za element centralny przekształcenia stosując następujące wzory:
centralny przekształcenia stosując następujące wzory:
c.
c. wrócić do kroku 4.wrócić do kroku 4.
ij
' ik
ij lj
lk
x x x x
= −x
lj ' lj
lk x x =x
Tablica simpleks Tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3 1 ss11 00 5/25/2 0 22 11 1/41/4 00 1010 2 xx22 33 –1/2 11 00 00 1/41/4 00 33
3 ss33 0 –5/2 00 88 00 –3/4 11 11
4 1/2 00 –2 00 –3/4 00 9
Tablica simpleks Tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 5/25/2 0 22 11 1/41/4 00 1010 2 xx22 33 –1/2 11 00 00 1/41/4 00 33
3 ss33 0 –5/2 00 88 00 –3/4 11 11
4 1/2 00 –2 00 –3/4 00 9
Tablica simpleks Tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3
1 ss11 00 5/25/2 0 22 11 1/41/4 00 1010 2 xx22 33 –1/2 11 00 00 1/41/4 00 33
3 ss33 0 –5/2 00 88 00 –3/4 11 11
4 1/2 00 –2 00 –3/4 00 9
Tablica simpleks Tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3 1 ss11 00 5/25/2 0 22 11 1/41/4 00 1010
2 xx22 33 –1/2 11 00 00 1/41/4 00 33
3 ss33 0 –5/2 00 88 00 –3/4 11 11
4 1/2 00 –2 00 –3/4 00 9
Końcowa tablica simpleks Końcowa tablica simpleks
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3 1 xx11 –11 11 0 4/54/5 2/52/5 1/101/10 00 44
2 xx22 33 0 11 2/52/5 1/51/5 3/103/10 00 55
3 ss33 0 0 00 1010 11 -1/2 11 1111
4 0 00 -12/5 --1/51/5 -4/5 00 11
i B cB –1 3 –2 0 0 0 RHS
x1 x2 x3 s1 s2 s3 1 xx11 –11 11 0 4/54/5 2/52/5 1/101/10 00 44
Rozwiązanie optymalne Rozwiązanie optymalne
x1=4 x2=5 x3=0 z=11
s1=0 s2=0 s3=11
2 xx22 00 0 11 2/52/5 1/51/5 3/103/10 00 55
3 ss33 –2 0 00 1010 11 -1/2 11 1111
4 0 00 -12/5 --1/51/5 -4/5 00 11
Interpretacja rozwiązania Interpretacja rozwiązania
►
►
Maksymalny zysk to 11$. Maksymalny zysk to 11$.
►
►
Należy naprawić 4 szt. urządzenia B Należy naprawić 4 szt. urządzenia B
11i 5 szt. i 5 szt.
urządzenia B
urządzenia B
22, natomiast nie należy przyjmować , natomiast nie należy przyjmować zleceń na naprawę urządzenia B
zleceń na naprawę urządzenia B
33..
►
►
Wartości zmiennych uzupełniających oznaczają Wartości zmiennych uzupełniających oznaczają zapas części, który pozostanie w magazynie po zapas części, który pozostanie w magazynie po zakończeniu produkcji.
zakończeniu produkcji.
►
►
Elementy E Elementy E
11i E i E
22zostaną zużyte, natomiast zostaną zużyte, natomiast pozostanie 11 szt. Elementu E
pozostanie 11 szt. Elementu E
33. .
Przykład 2 Przykład 2
Zminimalizować: 2x1+ x2+ x3 Przy ograniczeniach: x1+ 3x2+ x3 ≥ 3
2x1+ x2 + 2x3 ≤ 5 2x1+ 2x2+ x3 ≥ 2 x1, x2, x3≥ 0
Postać standardowa Postać standardowa
Zmaksymalizować: 2x1+ x2+ x3 Przy ograniczeniach: x1+ 3x2+ x3– s1 = 3
2x1+ x2 + 2x3 + s2= 5 2x1+ 2x2+ x3 – s3= 2 x1, x2, x3≥ 0
Baza dopuszczalna?
Metoda sztucznej bazy Metoda sztucznej bazy j j y y
Metoda sztucznej bazy Metoda sztucznej bazy
I.
I. Wprowadzamy k Wprowadzamy k ≤≤ m zmiennych sztucznych. Zmienne te są nieujemne, a m zmiennych sztucznych. Zmienne te są nieujemne, a ich współczynniki w funkcji celu przyjmują wartość (
ich współczynniki w funkcji celu przyjmują wartość (––M), gdzie M jest dużą M), gdzie M jest dużą liczbą dodatnią.
liczbą dodatnią.
II.
II. Tablicę simpleks ze sztucznymi wektorami przekształcamy jak zwykłą Tablicę simpleks ze sztucznymi wektorami przekształcamy jak zwykłą tablicę, dopóki:
tablicę, dopóki:
1.
1. wszystkie sztuczne wektory zostaną wyeliminowane z bazy, tj. mamy bazę wszystkie sztuczne wektory zostaną wyeliminowane z bazy, tj. mamy bazę dopuszczalną pierwotnego zagadnienia;
dopuszczalną pierwotnego zagadnienia;pp ą pą p gg gg ;; 2.
2. brak dodatnich współczynników przy Mbrak dodatnich współczynników przy M a.
a. jeżeli sztuczna część funkcji celu jest dodatnia, to zagadnienie nie ma rozwiązania jeżeli sztuczna część funkcji celu jest dodatnia, to zagadnienie nie ma rozwiązania dopuszczalnego;
dopuszczalnego;
b.
b. jeśli sztuczna część funkcji celu jest równa zero, to mamy zdegenerowane rozwiązanie jeśli sztuczna część funkcji celu jest równa zero, to mamy zdegenerowane rozwiązanie dopuszczalne pierwotnego zagadnienia, które zawiera co najwyżej jeden sztuczny dopuszczalne pierwotnego zagadnienia, które zawiera co najwyżej jeden sztuczny wektor. Przekształcamy tablicę simpleks wprowadzając do bazy wektor, który wektor. Przekształcamy tablicę simpleks wprowadzając do bazy wektor, który odpowiada największemu dodatniemu elementowi wiersza wskaźnikowego przy odpowiada największemu dodatniemu elementowi wiersza wskaźnikowego przy zerowej wartości współczynnika przy M.
zerowej wartości współczynnika przy M.
III.
III. Kolumny odpowiadające zmiennym sztucznym, które opuściły bazę można Kolumny odpowiadające zmiennym sztucznym, które opuściły bazę można eliminować z obliczeń.
eliminować z obliczeń.
IV.
IV. Po otrzymaniu bazy dopuszczalnej zagadnienia pierwotnego kontynuujemy Po otrzymaniu bazy dopuszczalnej zagadnienia pierwotnego kontynuujemy realizację algorytmu simpleks aż do otrzymania rozwiązania problemu realizację algorytmu simpleks aż do otrzymania rozwiązania problemu pierwotnego.
pierwotnego.
Sztuczna baza Sztuczna baza
Zmaksymalizować: 2x1+ x2+ x3– Ma1– Ma3 Przy ograniczeniach: x1+ 3x2+ x3– s1+ a1= 3
2x1– x2 + 2x3 + s2 = 5 –2x1+ 2x2– x3 – s3+ a3= 2
x1, x2, x3, s1, s2, s3, a1, a3≥ 0 x1= x2= x3= s1= s3= 0
Sztuczna baza Sztuczna baza
Zmaksymalizować: 2x1+ x2+ x3– Ma1– Ma3 Przy ograniczeniach: a1= 3
s2= 5 a3= 2
x1= x2= x3= s1= s3= 0
Początkowa tablica simpleks Początkowa tablica simpleks
i B cB 2 1 1 0 0 0 -M -M RHS
x1 x2 x3 s1 s2 s3 a1 a3
1 a1 -M 1 3 1 -1 0 0 1 0 3
2 s2 0 2 1 2 0 1 0 0 0 5
3 a3 -M 2 2 1 0 0 -1 0 1 2
4 2+3M 1+5M 1+2M -M 0 -M 0 0 --5M5M
Rozwiązanie Rozwiązanie
ExploreLP.exe
Przykład 3 Przykład 3
Zminimalizować: – 2x1– 3x2
Przy ograniczeniach: x1+ 3x2 ≥ 5 – x1+ 2x2 ≤ 2
5x1+ x2 ≤ 7 x1, x2≥ 0
Rozwiązanie Rozwiązanie
ExploreLP.exe
Przykład Przykład 44
Zmaksymalizować: x1+ 2x2 Przy ograniczeniach: x1+ x2≤ 5
x1+ x2 ≥ 8
x1, x2≥ 0
Przykład Przykład 44
Zmaksymalizować: x1+ 2x2
Przy ograniczeniach: x1+ x2+ s1 = 5 x1+ x2 – s2+ a1= 8 x1, x2, s1, s2, a1≥ 0