Simpleks jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

71
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź 2000. Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania

description

Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź 2000. Simpleks jest uniwersalną metodą rozwiązywania zadań programowania lini o wego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania. Zmienne swobodne. - PowerPoint PPT Presentation

Transcript of Simpleks jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Page 1: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w

zarządzaniu” D. Witkowska, Menadżer Łódź 2000.

Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego.

Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania

Page 2: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Wyznaczenie

startowego rozwiązania

Czy to jest

rozwiązanie Koniec

optymalne

Czy można

wyznaczyć lepsze

rozwiązanie

Wyznaczenie nowego

rozwiązania

Tak

Nie

Tak

Nie

Page 3: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Zmienne swobodne Przekształcamy model tak, aby można było zastosować

algorytm simpleks. Przekształcamy warunki ograniczające w równania dopisując do nich nieujemne zmienne, tzw. zmienne swobodne w następujący sposób:– do każdego warunku postaci “” dodaje się zmienną swobodną

z parametrem równym jeden

– do każdego warunku postaci “” dodaje się zmienną swobodną ze współczynnikiem -1

Zmienne swobodne posiadają interpretację ekonomiczną wynikającą z informacji zawartej w warunkach ograniczających, do których zostały wprowadzone.

Dodane zmienne wchodzą również do nowej funkcji kryterium, gdzie parametry przy zmiennych swobodnych przyjmują wartość zero

Page 4: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny I Zmienne decyzyjne :

x1 - liczba emisji reklamy radiowej; x2 - liczba emisji reklamy telewizyjnej.funkcja celu: f(x)=3x1 + 6x2 min (koszty zleceniodawcy w tys. zł)

warunki ograniczające:2 x1 + x2 6 warunek na koszty ponoszone przez firmę "Press", x1 + x2 2 warunek zleceniodawcy na emisję reklam, x2 1 dolne ograniczenie uwzględniające żądanie zleceniodawcy, x2 4 górne ograniczenie dotyczące warunków nałożonych przez TV,warunki brzegowe: x1 0, x2 0, x1C, x2 C.

Page 5: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Sprowadzamy warunki ograniczające do równości

Zmienne decyzyjne : x1 ;x2 s1,s2,s3,s4 funkcja celu: f(x)=3x1 + 6x2 + 0s1 +0s2 +0s3 +0s4minwarunki ograniczające:2x1 + x2 + s1 = 6

x1 + x2 - s2 = 2x2 - s3 =1x2 + s4 = 4

warunki brzegowe: x10, x20, s10, s20, s30, s40, x1,x2,s1,s2,s3,s4C

.

Page 6: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa

cB B 3 6 0 0 0 0

x1 x2 s1 s2 s3 s4

2 1 1 0 0 01 1 0 -1 0 00 1 0 0 -1 0

0 1 0 0 0 1

Page 7: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Zmienne sztuczne

Jeżeli z macierzy współczynników tak powstałych równań nie da się wyodrębnić macierzy jednostkowej, to do warunków, które od początku były warunkami postaci równania oraz do warunków, które pierwotnie były postaci “” dopisuje się tzw. zmienne sztuczne .

Page 8: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Zmienne sztuczne c.d.

Dodane zmienne wchodzą również do nowej funkcji kryterium, gdzie parametry przy zmiennych swobodnych przyjmują wartość zero, natomiast parametry przy zmiennych sztucznych zależą od optimum funkcji celu: w zadaniach z funkcją celu dążącą do maximum jest to -M, w zadaniach z funkcją celu dążącą do minimum jest to +M,

gdzie M jest dowolnie dużą liczbą rzeczywistą dodatnią (M+).

Page 9: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa

cB B 3 6 0 0 0 0 M M xB x1 x2 s1 s2 s3 s4 t2 t3

0 s1 2 1 1 0 0 0 0 0 6M t2 1 1 0 -1 0 0 1 0 2M t3 0 1 0 0 -1 0 0 1 1

0 s4 0 1 0 0 0 1 0 0 4

Page 10: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Po powyższych przekształceniach otrzymujemy model postaci:

f(x)=3x1 + 6x2 + 0s1 +0s2 +0s3 +0s4 + Mt1 + Mt2 min

2x1 + x2 + s1 = 6

x1 + x2 - s2 + t2= 2

x2 - s3 + t3 =1

x2 + s4 = 4

x1 0, x2 0, s1 0, s2 0, s3 0, s4 0, t2 = 0, t3 = 0.

x1, x2, s1, s2, s3, s4, t2, t3C

Page 11: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Optymalność rozwiązaniaW celu sprawdzenia optymalności otrzymanego

rozwiązania obliczamy współczynniki zj i j wg wzoru:

Wartość współczynnika optymalności j określa jednostkową zmianę wartości funkcji kryterium, jeżeli do bazy wprowadzimy daną zmienną (dla wszystkich zmiennych bazowych j=0).

zj = jBycT j = cj- zj

Page 12: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Jeżeli wartość j jest ujemna, to oznacza, że wprowadzenie danej zmiennej do bazy spowoduje spadek wartości funkcji celu. Zatem wartość funkcji kryterium można uzależnić od jej wartości w poprzedniej iteracji:

Bnj

nn xff xx 1

Page 13: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Rozwiązanie optymalne Rozwiązanie jest optymalne, jeżeli nie

występują zmienne niebazowe, których wprowadzenie do bazy byłoby pożądane:– w zadaniu z funkcją celu dążącą do minimum

takie zmienne, które powodowałyby spadek wartości tej funkcji (j<0),

– a w przypadku zadań, w których funkcja celu dąży do maksimum takie zmienne, które powodowałyby jej wzrost (j>0).

Page 14: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Rozwiązanie optymalne

warunek optymalnościŹródłoj

MIN MAXLiteratura

jj cz 0 jj

0 jj

QSB, WinQSBjj zc 0 j

j0 j

j

Page 15: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6M t 2 1 1 0 - 1 0 0 1 0 2M t 3 0 1 0 0 - 1 0 0 1 1

0 s 4 0 1 0 0 0 1 0 0 4z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

Rozwiązanie jest nieoptymalne, bo wskaźniki optymalności j<0

Page 16: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Kryterium wejścia do bazy

W następnym kroku algorytmu wprowadzamy do bazy tę zmienną, która spowoduje najbardziej korzystne efekty:– ma największe dodatnie wartości j

w zadaniach na max

– najmniejsze ujemne wartości j w zadaniach z funkcją celu dążącą do minimum.

Page 17: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6M t 2 1 1 0 - 1 0 0 1 0 2M t 3 0 1 0 0 - 1 0 0 1 1

0 s 4 0 1 0 0 0 1 0 0 4z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

Najmniejsza ujemna

Do bazy wejdzie x2

Page 18: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Kryterium wyjścia z bazy Z uwagi na to, że liczba zmiennych w bazie musi być stała (i

równa liczbie warunków ograniczających), należy wyznaczyć zmienną, która bazę opuści. Obliczamy w tym celu wskaźniki Q , wg wzoru:

Współczynniki wyznacza się wyłącznie dla >0 w celu uzyskania w kolejnej iteracji rozwiązania dopuszczalnego (spełniającego warunki brzegowe).

Zmienną, która opuszcza bazę jest ta, dla której ma najmniejszą wartość.

= Bik

Bi

y

x

Page 19: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6 6

M t 2 1 1 0 - 1 0 0 1 0 2 2

M t 3 0 1 0 0 - 1 0 0 1 1 1

0 s 4 0 1 0 0 0 1 0 0 4 4z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

Najmniejsza wartość

W kolejnej iteracji zamiast

zmiennej t3 pojawi się x2

Page 20: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)c B B 3 6 0 0 0 0 M M x B

x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6 6 M t 2 1 1 0 - 1 0 0 1 0 2 2 M t 3 0 1 0 0 - 1 0 0 1 1 1

0 s 4 0 1 0 0 0 1 0 0 4 4 z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 0 M t 2 0

6 x 2 1

0 s 4 0 z j

jjj zc

Page 21: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)c B B 3 6 0 0 0 0 M M x B

x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6 6

M t 2 1 1 0 - 1 0 0 1 0 2 2M t 3 0 1 0 0 - 1 0 0 1 1 1

0 s 4 0 1 0 0 0 1 0 0 4 4z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 0M t 2 0

6 x 2 0 1 0 0 - 1 0 0 1 1

0 s 4 0 -

z j

jjj zc

Przepisany

z poprzedniej

iteracji

Page 22: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)c B B 3 6 0 0 0 0 M M x B

x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6 6 M t 2 1 1 0 - 1 0 0 1 0 2 2 M t 3 0 1 0 0 - 1 0 0 1 1 1

0 s 4 0 1 0 0 0 1 0 0 4 4 z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 0 1 0 1 0 0 - 1 5 M t 2 0

6 x 2 0 1 0 0 - 1 0 0 1 1

0 s 4 0 z j

jjj zc

Od elementów wiersza pierwszego odejmujemy elementy

wyróżnionego wiersza trzeciego

Page 23: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)c B B 3 6 0 0 0 0 M M x B

x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6 6 M t 2 1 1 0 - 1 0 0 1 0 2 2 M t 3 0 1 0 0 - 1 0 0 1 1 1

0 s 4 0 1 0 0 0 1 0 0 4 4 z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 0 1 0 1 0 0 - 1 5 M t 2 1 0 0 - 1 1 0 1 - 1 1

6 x 2 0 1 0 0 - 1 0 0 1 1

0 s 4 0 z j

jjj zc

Od elementów wiersza drugiegoodejmujemy elementy

wyróżnionego wiersza trzeciego

Page 24: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)c B B 3 6 0 0 0 0 M M x B

x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 1 1 0 0 0 0 0 6 6 M t 2 1 1 0 - 1 0 0 1 0 2 2 M t 3 0 1 0 0 - 1 0 0 1 1 1

0 s 4 0 1 0 0 0 1 0 0 4 4 z j M 2 M 0 - M - M 0 M M 3 M

jjj zc 3 - M 6 - 2 M 0 M M 0 0 0

I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 0 1 0 1 0 0 - 1 5 M t 2 1 0 0 - 1 1 0 1 - 1 1

6 x 2 0 1 0 0 - 1 0 0 1 1

0 s 4 0 0 0 0 1 1 0 - 1 3 - z j

jjj zc

Od elementów wiersza czwartego odejmujemy elementy

wyróżnionego wiersza trzeciego

Page 25: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 0 1 0 1 0 0 - 1 5 M t 2 1 0 0 - 1 1 0 1 - 1 1 6 x 2 0 1 0 0 - 1 0 0 1 1

0 s 4 0 0 0 0 1 1 0 - 1 3 z j M 6 0 - M M - 6 0 M - M + 6 M + 6

jjj zc 3 - M 0 0 M 6 - M 0 0 2 M - 6

Najmniejsza wartość

Sprawdzamy optymalność

Najmniejsza ujemna wartość

x1 będzie nową zmienną bazową

Page 26: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 0 1 0 1 0 0 - 1 5 5 / 2 M t 2 1 0 0 - 1 1 0 1 - 1 1 1 6 x 2 0 1 0 0 - 1 0 0 1 1 -

0 s 4 0 0 0 0 1 1 0 - 1 3 - z j M 6 0 - M M - 6 0 M - M + 6 M + 6

jjj zc 3 - M 0 0 M 6 - M 0 0 2 M - 6

Sprawdzamy kryterium wyjścia

Najmniejsza wartość

Bazę opuści t2

Page 27: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (min)I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 2 0 1 0 1 0 0 - 1 5 5 / 2 M t 2 1 0 0 - 1 1 0 1 - 1 1 1

6 x 2 0 1 0 0 - 1 0 0 1 1 -

0 s 4 0 0 0 0 1 1 0 - 1 3 - z j M 6 0 - M M - 6 0 M - M + 6 M + 6

jjj zc 3 - M 0 0 M 6 - M 0 0 2 M - 6

I I I i t e r a c j a

c B B 3 6 0 0 0 0 M M x B x 1 x 2 s 1 s 2 s 3 s 4 t 2 t 3

0 s 1 0 0 1 2 - 1 0 - 2 1 3 M x 1 1 0 0 - 1 1 0 1 - 1 1 1

6 x 2 0 1 0 0 - 1 0 0 1 1 -

0 s 4 0 0 0 0 1 1 0 - 1 3 - z j

jjj zc

Drugi wiersz przepisujemy

Od elementów pierwszego odejmujemy

elementy drugiego pomnożone przez dwa

Trzeci i czwarty wiersz przepisujemy

Page 28: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa III iteracja (min)cB B 3 6 0 0 0 0 M M xB x1 x2 s1 s2 s3 s4 t2 t3

0 s1 0 0 1 2 -1 0 -2 1 3 3 x1 1 0 0 -1 1 0 1 -1 1 6 x2 0 1 0 0 -1 0 0 1 1

0 s4 0 0 0 0 1 1 0 -1 3

zj 3 6 0 -3 -3 0 3 3 9

j 0 0 0 3 3 0 M-3 M-3

Rozwiązanie optymalne, bo wszystkie wartości

współczynników optymalności j   są większe lub równe zero

Jeżeli w rozwiązaniu wszystkie wartości j dla zmiennych niebazowych są różne od zera to,

otrzymane rozwiązanie optymalne jest jednoznaczne.

Jeżeli w rozwiązaniu optymalnym pewne wartości j dla zmiennych niebazowych są równe zero

, to otrzymane rozwiązanie optymalne jest niejednoznaczne (istnieje nieskończenie wiele rozwiązań optymalnych,

które są kombinacją liniową rozwiązań bazowych wyznaczonych przez wprowadzanie do bazy tych zmiennych,

dla których j =0).

Page 29: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny II Zmienne decyzyjne :

x1 - ilość wydobywanego węgla w tonach; x2 - ilość wydobywanej ropy w hl.funkcja celu: f(x)=3x1 + 6x2 max(zysk w tys. zł)

warunki ograniczające:2 x1 + x2 8 warunek na czas pracy maszyn w godz.

x1 + x2 10 warunek na liczbę zatrudnianych osób, warunki brzegowe:x1 0, x2 0.

Page 30: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny II Zmienne decyzyjne :

x1;x2; s1; s2; t2,.funkcja celu: f(x)=3x1 + 6x2 +0 s1 +0 s2 -M t2 max(zysk w tys. zł)

warunki ograniczające:2 x1 + x2 +s1= 8

x1 + x2 -s2+t2= 10 warunki brzegowe:x1 0, x2 0, s1 0,s2 0;. t2 =0

Page 31: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa

cB B 3 6 0 0 -M xB x1 x2 s1 s2 t2

0 s1 2 1 1 0 0 8-M t2 1 1 0 -1 1 10

Page 32: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8- M t 2 1 1 0 - 1 1 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

Rozwiązanie jest nieoptymalne, bo wskaźniki optymalności j>0

Page 33: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8 8- M t 2 1 1 0 - 1 1 1 0 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

W kolejnej iteracji do bazy wejdzie x2 na miejsce s1

Page 34: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8 8- M t 2 1 1 0 - 1 1 1 0 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

I I i t e r a c j a

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 x 2 2 1 1 0 0 8- M t 2 - 1 0 - 1 - 1 1 2

z j

jjj zc

Page 35: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8 8- M t 2 1 1 0 - 1 1 1 0 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

I I i t e r a c j a

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

6 x 2 2 1 1 0 0 8- M t 2 - 1 0 - 1 - 1 1 2

z j M + 1 2 6 M + 6 M - M - 2 M + 4 8

jjj zc - 9 - M 0 - M - 6 - M 0

Optymalne, bo wszystkie wskaźniki

optymalności mniejsze od zera

Jeżeli w rozwiązaniu, które spełnia warunek optymalności

w bazie znajduje się zmienna sztuczna, a jej wartość jest większa od zera

(tzn. wartość funkcji kryterium zależy od M), to zadanie jest sprzeczne.

Page 36: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny III Zmienne decyzyjne :

x1 - ilość wydobywanego węgla w tonach; x2 - ilość wydobywanej ropy w hl.funkcja celu: f(x)=3x1 + 6x2 max(zysk w tys. zł)

warunki ograniczające:2 x1 + x2 8 warunek na czas pracy maszyn w godz.

x1 + x2 10 warunek na liczbę zatrudnianych osób, warunki brzegowe:x1 0, x2 0.

Page 37: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny II Zmienne decyzyjne :

x1;x2; s1; s2; t1 t2,.funkcja celu: f(x)=3x1 + 6x2 +0 s1 +0 s2 -M t1 -M t2 max(zysk w tys. zł)

warunki ograniczające:2 x1 + x2 +s1+ - t1 = 8

x1 + x2 -s2+t2= 10 warunki brzegowe:x1 0, x2 0, s1 0,s2 0; t1 =0; t2 =0

Page 38: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa

cB B 3 6 0 0 -M -M xB x1 x2 s1 s2 t1 t2

-M t1 2 1 -1 0 1 0 8-M t2 1 1 0 -1 0 1 10

Page 39: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

- M t 1 2 1 - 1 0 1 0 8- M t 2 1 1 0 - 1 0 1 1 0

z j - 3 M - 2 M M M - M - M - 1 8 M

jjj zc 3 + 3 M 6 + 2 M - M - M 0 0

Rozwiązanie jest nieoptymalne, bo wskaźniki optymalności j>0

Page 40: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

- M t 1 2 1 - 1 0 1 0 8 4- M t 2 1 1 0 - 1 0 1 1 0 1 0

z j - 3 M - 2 M M M - M - M - 1 8 M

jjj zc 3 + 3 M 6 + 2 M - M - M 0 0

Tablica simpleksowa (max)

W kolejnej iteracji do bazy wejdzie x1 na miejsce t1

Page 41: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

- M t 1 2 1 - 1 0 1 0 8 4- M t 2 1 1 0 - 1 0 1 1 0 1 0

z j - 3 M - 2 M M M - M - M - 1 8 M

jjj zc 3 + 3 M 6 + 2 M - M - M 0 0

I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 1 / 2 - 1 / 2 0 1 / 2 0 4- M t 2 0 1 / 2 1 / 2 - 1 - 1 / 2 1 2

z j 3 3 / 2 - 1 / 2 M - 3 / 2 - 1 / 2 M M 3 / 2 + 1 / 2 M - M 1 2 - 2 M

jjj zc 0 9 / 2 + 1 / 2 M 3 / 2 + 1 / 2 M - M - 3 / 2 - 3 / 2 M 0

Page 42: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 1 / 2 - 1 / 2 0 1 / 2 0 4 8- M t 2 0 1 / 2 1 / 2 - 1 - 1 / 2 1 2 4

z j 3 3 / 2 - 1 / 2 M - 3 / 2 - 1 / 2 M M 3 / 2 + 1 / 2 M - M 1 2 - 6 M

jjj zc 0 9 / 2 + 1 / 2 M 3 / 2 + 1 / 2 M - M - 3 / 2 - 3 / 2 M 0

Tablica simpleksowa (max)

Page 43: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 1 / 2 - 1 / 2 0 1 / 2 0 4- M t 2 0 1 / 2 1 / 2 - 1 - 1 / 2 1 2

z j 3 3 / 2 - 1 / 2 M - 3 / 2 - 1 / 2 M M 3 / 2 + 1 / 2 M - M 1 2 - 2 M

jjj zc 0 9 / 2 + 1 / 2 M 3 / 2 + 1 / 2 M - M - 3 / 2 - 3 / 2 M 0

I I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 0 - 1 1 1 - 1 26 x 2 0 1 1 - 2 - 1 2 4

z j 3 6 3 - 9 - 3 9 3 0

jjj zc 0 0 - 3 9 - M + 3 - M - 9

Tablica simpleksowa (max)

Page 44: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

I I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 0 - 1 1 1 - 1 2 26 x 2 0 1 1 - 2 - 1 2 4 -

z j 3 6 3 - 9 - 3 9 3 0

jjj zc 0 0 - 3 9 - M + 3 - M - 9

Page 45: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

I I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 0 - 1 1 1 - 1 2 26 x 2 0 1 1 - 2 - 1 2 4 -

z j 3 6 3 - 9 - 3 9 3 0

jjj zc 0 0 - 3 9 - M + 3 - M - 9

I V i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

0 s 2 1 0 - 1 1 1 - 1 26 x 2 2 1 - 1 0 1 0 8

z j 1 2 6 - 6 0 6 0 4 8

jjj zc - 9 0 6 0 - M - 6 - M

Page 46: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

I V i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

0 s 2 1 0 - 1 1 1 - 1 2 -6 x 2 2 1 - 1 0 1 0 8 -

z j 1 2 6 - 6 0 6 0 4 8

jjj zc - 9 0 6 0 - M - 6 - M

Nie da się wyznaczyć zmiennej, która wyjdzie z bazy

Jeżeli w pewnej iteracji nie można wyznaczyć żadnego

ze współczynników Q, ponieważ wszystkie elementy wektora yj

są ujemne bądź równe zero, to rozwiązanie jest nieograniczone.

Page 47: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Sformulowanie zadania

Uzupelnienie o potrzebne zmiennesztuczne i/lub swobodne

Startowerozwiazaniebazowe

Obliczenie

wskaznikow

optymalnosci

Czy wszystkie wskazniki saniemniejsze (niewieksze)

od zera ?

Czy wsrod zmiennychbazowych sa zmiennesztuczne wieksze od

zera ?

k=max| |jj

Czy istniejaskladowe y >0ik

Nie istniejeskonczonerozwiazanieoptymalne

Znajdz wektor wchodzacydo bazy i zastap nim wektor

wychodzacy z bazy

Czy wszystkiewskazniki optymalnosci dla

zmiennych niebazowych sa wieksze(mniejsze) od zera ?

Zadanie

sprzecznejest

Niejednoznacznerozwiazanieoptymalne

Jednoznacznerozwiazanieoptymalne

Tak Nie

TakNie

Nie Tak

Tak

Nie

Page 48: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny II Zmienne decyzyjne :

x1 - ilość wydobywanego węgla w tonach; x2 - ilość wydobywanej ropy w hl.funkcja celu: f(x)=3x1 + 6x2 max(zysk w tys. zł)

warunki ograniczające:2 x1 + x2 8 warunek na czas pracy maszyn w godz.

x1 + x2 10 warunek na liczbę zatrudnianych osób, warunki brzegowe:x1 0, x2 0.

Page 49: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny II Zmienne decyzyjne :

x1;x2; s1; s2; t2,.funkcja celu: f(x)=3x1 + 6x2 +0 s1 +0 s2 -M t2 max(zysk w tys. zł)

warunki ograniczające:2 x1 + x2 +s1= 8

x1 + x2 -s2+t2= 10 warunki brzegowe:x1 0, x2 0, s1 0,s2 0;. t2 =0

Page 50: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa

cB B 3 6 0 0 -M xB x1 x2 s1 s2 t2

0 s1 2 1 1 0 0 8-M t2 1 1 0 -1 1 10

Page 51: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8- M t 2 1 1 0 - 1 1 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

Rozwiązanie jest nieoptymalne, bo wskaźniki optymalności j>0

Page 52: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8 8- M t 2 1 1 0 - 1 1 1 0 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

W kolejnej iteracji do bazy wejdzie x2 na miejsce s1

Page 53: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8 8- M t 2 1 1 0 - 1 1 1 0 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

I I i t e r a c j a

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 x 2 2 1 1 0 0 8- M t 2 - 1 0 - 1 - 1 1 2

z j

jjj zc

Page 54: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

0 s 1 2 1 1 0 0 8 8- M t 2 1 1 0 - 1 1 1 0 1 0

z j - M - M 0 M - M - 1 0 M

jjj zc 3 + M 6 + M 0 - M 0

I I i t e r a c j a

c B B 3 6 0 0 - M x B x 1 x 2 s 1 s 2 t 2

6 x 2 2 1 1 0 0 8- M t 2 - 1 0 - 1 - 1 1 2

z j M + 1 2 6 M + 6 M - M - 2 M + 4 8

jjj zc - 9 - M 0 - M - 6 - M 0

Optymalne, bo wszystkie wskaźniki

optymalności mniejsze od zera

Jeżeli w rozwiązaniu, które spełnia warunek optymalności

w bazie znajduje się zmienna sztuczna, a jej wartość jest większa od zera

(tzn. wartość funkcji kryterium zależy od M), to zadanie jest sprzeczne.

Page 55: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Model matematyczny III Zmienne decyzyjne :

x1;x2; s1; s2; t1 t2,.funkcja celu: f(x)=3x1 + 6x2 +0 s1 +0 s2 -M t1 -M t2 max(zysk w tys. zł)

warunki ograniczające:2 x1 + x2 +s1+ - t1 = 8

x1 + x2 -s2+t2= 10 warunki brzegowe:x1 0, x2 0, s1 0,s2 0; t1 =0; t2 =0

Page 56: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa

cB B 3 6 0 0 -M -M xB x1 x2 s1 s2 t1 t2

-M t1 2 1 -1 0 1 0 8-M t2 1 1 0 -1 0 1 10

Page 57: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

- M t 1 2 1 - 1 0 1 0 8- M t 2 1 1 0 - 1 0 1 1 0

z j - 3 M - 2 M M M - M - M - 1 8 M

jjj zc 3 + 3 M 6 + 2 M - M - M 0 0

Rozwiązanie jest nieoptymalne, bo wskaźniki optymalności j>0

Page 58: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

- M t 1 2 1 - 1 0 1 0 8 4- M t 2 1 1 0 - 1 0 1 1 0 1 0

z j - 3 M - 2 M M M - M - M - 1 8 M

jjj zc 3 + 3 M 6 + 2 M - M - M 0 0

Tablica simpleksowa (max)

W kolejnej iteracji do bazy wejdzie x1 na miejsce t1

Page 59: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

- M t 1 2 1 - 1 0 1 0 8 4- M t 2 1 1 0 - 1 0 1 1 0 1 0

z j - 3 M - 2 M M M - M - M - 1 8 M

jjj zc 3 + 3 M 6 + 2 M - M - M 0 0

I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 1 / 2 - 1 / 2 0 1 / 2 0 4- M t 2 0 1 / 2 1 / 2 - 1 - 1 / 2 1 2

z j 3 3 / 2 - 1 / 2 M - 3 / 2 - 1 / 2 M M 3 / 2 + 1 / 2 M - M 1 2 - 2 M

jjj zc 0 9 / 2 + 1 / 2 M 3 / 2 + 1 / 2 M - M - 3 / 2 - 3 / 2 M 0

Page 60: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 1 / 2 - 1 / 2 0 1 / 2 0 4 8- M t 2 0 1 / 2 1 / 2 - 1 - 1 / 2 1 2 4

z j 3 3 / 2 - 1 / 2 M - 3 / 2 - 1 / 2 M M 3 / 2 + 1 / 2 M - M 1 2 - 6 M

jjj zc 0 9 / 2 + 1 / 2 M 3 / 2 + 1 / 2 M - M - 3 / 2 - 3 / 2 M 0

Tablica simpleksowa (max)

Page 61: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 1 / 2 - 1 / 2 0 1 / 2 0 4- M t 2 0 1 / 2 1 / 2 - 1 - 1 / 2 1 2

z j 3 3 / 2 - 1 / 2 M - 3 / 2 - 1 / 2 M M 3 / 2 + 1 / 2 M - M 1 2 - 2 M

jjj zc 0 9 / 2 + 1 / 2 M 3 / 2 + 1 / 2 M - M - 3 / 2 - 3 / 2 M 0

I I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 0 - 1 1 1 - 1 26 x 2 0 1 1 - 2 - 1 2 4

z j 3 6 3 - 9 - 3 9 3 0

jjj zc 0 0 - 3 9 - M + 3 - M - 9

Tablica simpleksowa (max)

Page 62: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

I I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 0 - 1 1 1 - 1 2 26 x 2 0 1 1 - 2 - 1 2 4 -

z j 3 6 3 - 9 - 3 9 3 0

jjj zc 0 0 - 3 9 - M + 3 - M - 9

Page 63: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

I I I i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

3 x 1 1 0 - 1 1 1 - 1 2 26 x 2 0 1 1 - 2 - 1 2 4 -

z j 3 6 3 - 9 - 3 9 3 0

jjj zc 0 0 - 3 9 - M + 3 - M - 9

I V i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

0 s 2 1 0 - 1 1 1 - 1 26 x 2 2 1 - 1 0 1 0 8

z j 1 2 6 - 6 0 6 0 4 8

jjj zc - 9 0 6 0 - M - 6 - M

Page 64: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa (max)

I V i t e r a c j a

c B B 3 6 0 0 - M - M x B x 1 x 2 s 1 s 2 t 1 t 2

0 s 2 1 0 - 1 1 1 - 1 2 -6 x 2 2 1 - 1 0 1 0 8 -

z j 1 2 6 - 6 0 6 0 4 8

jjj zc - 9 0 6 0 - M - 6 - M

Nie da się wyznaczyć zmiennej, która wyjdzie z bazy

Jeżeli w pewnej iteracji nie można wyznaczyć żadnego

ze współczynników Q, ponieważ wszystkie elementy wektora yj

są ujemne bądź równe zero, to rozwiązanie jest nieograniczone.

Page 65: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Nowe zadanie Tablica simpleksowa III iteracja

Rozwiązanie optymalne, bo wszystkie wartości

współczynników optymalności j   są większe lub równe zero

Jeżeli w rozwiązaniu optymalnym pewne wartości j dla zmiennych niebazowych są równe zero

, to otrzymane rozwiązanie optymalne jest niejednoznaczne (istnieje nieskończenie wiele rozwiązań optymalnych,

które są kombinacją liniową rozwiązań bazowych wyznaczonych przez wprowadzanie do bazy tych zmiennych,

dla których j =0).

cB B 3 3 0 0 0 0 M M xB

x1 x2 s1 s2 s3 s4 t2 t3

0 0 1 2 -1 0 -2 1 3

1 0 0 -1 1 0 1 -1 1

0 1 0 0 -1 0 0 1 1

0 0 0 0 1 1 0 -1 3

zj

j

s1

x1

x2

s4

0

3

3

0

3 3 0 -3 0 0 3 0 6

0 0 0 3 0 0 M-3 M

Page 66: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa IV iteracja cB B 3 3 0 0 0 0 M M xB

x1 x2 s1 s2 s3 s4 t2 t3

0 0 1 2 -1 0 -2 1 3

1 0 0 -1 1 0 1 -1 1

0 1 0 0 -1 0 0 1 1

0 0 0 0 1 1 0 -1 3

zj

j

s1

x1

x2

s4

0

3

3

0

3 3 0 -3 0 0 3 0 6

0 0 0 3 0 0 M-3 M

cB B 3 3 0 0 0 0 M M xB

x1 x2 s1 s2 s3 s4 t2 t3

0

1

0

0

zj

j

-1

-3

1 0 0 -1 0 1 -1 11 0 1 1 0 -1 0 4

1 1 0 -1 0 1 0 2-1 0 0 1 1 -1 0 2

s1s3

x2s4

0030

Page 67: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Rozwiązanie optymalneniejednoznaczne

6min 2

0

6min 1

1

opt

opt

x

x

Page 68: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Rozwiązanie optymalneniejednoznaczne

1;0

2222

0-1

1

1

optx

Page 69: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa IV iteracja

Rozwiązanie optymalne, bo wszystkie wartości

współczynników optymalności j   są większe lub równe zero

cB B 3 3 0 0 0 0 M M xB

x1 x2 s1 s2 s3 s4 t2 t3

0 0 1 2 -1 0 -2 1 3

1 0 0 -1 1 0 1 -1 1

0 1 0 0 -1 0 0 1 1

0 0 0 0 1 1 0 -1 3

zj

j

s1

x1

x2

s4

0

3

3

0

3 3 0 -3 0 0 3 0 6

0 0 0 3 0 0 M-3 M

Page 70: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowaI I i t e r a c j a

c B B 3 6 0 0 - M x B

x 1 x 2 s 1 s 2 t 2

6 x 2 2 1 0 8

- M t 2 - 1 - 1 - 1 2z j

jjj zc

Optymalne, bo wszystkie wskaźniki

optymalności mniejsze od zera

Jeżeli w rozwiązaniu, które spełnia warunek optymalności

w bazie znajduje się zmienna sztuczna, a jej wartość jest większa od zera

(tzn. wartość funkcji kryterium zależy od M), to zadanie jest sprzeczne.

1100

12+M 6 6+M M -M 48-2M

-9-M 0 -6-M -M 0

max

Page 71: Simpleks  jest uniwersalną metodą rozwiązywania zadań programowania lini o wego.

Tablica simpleksowa

I V i t e r a c j a

c B B 3 6 0 0 - M - M x B

x 1 x 2 s 1 s 2 t 1 t 2

1 0 - 1 1 1 - 1 2 -2 1 - 1 0 1 0 8 -

z j

jjj zc

Nie da się wyznaczyć zmiennej, która wyjdzie z bazy

Jeżeli w pewnej iteracji nie można wyznaczyć żadnego

e współczynników Q, ponieważ wszystkie elementy wektora yj

są ujemne bądź równe zero, to rozwiązanie jest nieograniczone.

s2

x2

0

6

12 6 -6 0 6 0 48

-9 0 6 0 -M-6 -M