• Nie Znaleziono Wyników

Programowanie liniowe – metoda sympleks

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie liniowe – metoda sympleks"

Copied!
25
0
0

Pełen tekst

(1)

Programowanie liniowe – metoda sympleks

Mirosław Sobolewski

Wydział Matematyki, Informatyki i Mechaniki UW

13. wykład z algebry liniowej Warszawa, stycze ´n 2018

Mirosław Sobolewski (UW) Warszawa, 2018 1 / 12

(2)

Metoda sympleks

Twórca– George Dantzig, USA 1947 rok

Cel: rozwi ˛azywanie zadania programowania liniowego okre ´slonego w postaci standardowej

f (x1, . . . ,xn) =c1x1+ · · · +cnxn→ min (f –funkcja celu) przy warunkach

U :





a11x1+ · · · +a1nxn =b1 ... . .. ... ... am1xm1+ · · · +amnxn =bm

, x1≥ 0, . . . , xn≥ 0, gdzie bi ≥ 0 dla i = 1, . . . , m. W skrócie :

Min{c>· x : Ax = b, x ≥ 0}, gdzie A =

a11 · · · a1n ... . .. ... am1 · · · amn

,

 b1 ..

 

x1 ..

 

c1 ..

(3)

Schemat przeszukiwania: Zaczynaj ˛ac od pewnego rozwi ˛azania bazowego dopuszczalnego, przechodzimy kolejno do innych rozwi ˛aza ´n rozwi ˛aza ´n bazowych dopuszczalnych, w ka˙zdym kroku zast ˛epuj ˛ac jeden element zbioru bazowego innym, dopóki da si ˛e pomniejsza´c warto´s´c funkcji celu f .

Interpretacja geometryczna: Rozwi ˛azania bazowe dopuszczalne = wierzchołki zbioru dopuszczalnego X .

Wymiana jednego elementu w zbiorze bazowym = przej´scie do s ˛asiedniego ( tzn. poł ˛aczonego kraw ˛edzi ˛a) wierzchołka X . W˛edrówk˛e po wierzchołkach ko ´nczymy w wierzchołku ”najni˙zszym” w sensie funkcji celu f .

Mirosław Sobolewski (UW) Warszawa, 2018 3 / 12

(4)

Przykład (Szczegóły metody sympleks ) Szukamy najwi ˛ekszej warto´sci funkcji

g(x1,x2,x3,x4,x5) =16x1+10x2+x3, przy ograniczeniach : x1+x3=2

x2+x4=3 x1+x2+x5=4 x1≥ 0, . . . , x5≥ 0

Sprowadzamy problem do postaci standardowej zast ˛epuj ˛ac maksymalizacj ˛e funkcji g minimalizacj ˛a funkcji

f (x1,x2,x3,x4,x5) = −16x1− 10x2− x3. Inaczej mo˙zna to zadanie zapisa´c w postaci f (x1,x2,x3,x4,x5) = −16x1− 10x2− x3→ min przy

Ax = b, x ≥0, gdzie A =

1 0 1 0 0 0 1 0 1 0 1 1 0 0 1

,x =

 x1 x2 x3 x

 ,b =

 2 3 4

(5)

Przykład (cd)

Macierz ˛a rozszerzon ˛a układu jest:

1 0 1 0 0 2 0 1 0 1 0 3 1 1 0 0 1 4

Widzimy st ˛ad, ˙ze wybieraj ˛ac jako zmienne bazowe (zale˙zne) x3,x4,x5mamy rozwi ˛azanie ogólne postaci:

U1:

x3=2 −x1 x4=3 −x2 x5=4 −x1 −x2

Pocz ˛atkowym wektorem bazowym dopuszczalnym jest

(x1,x2,x3,x4,x5) = (0, 0, 2, 3, 4), zbiór bazowy to {3, 4, 5}. Wyra˙zamy funkcj ˛e celu f przy pomocy zmiennych wolnych x1,x2:

f (x ) = −16x1−10x2−x3= −16x1−10x2−(2−x1) = −2−15x1−10x2. Dla pocz ˛atkowego rozwi ˛azania bazowego dopuszczalnego warto´s´c f wynosi −2 (bo x1=x2=0). Czy mo˙zemy j ˛a polepszy´c (tj.

pomniejszy´c)? Tak, powi ˛ekszaj ˛ac x1albo x2.

Mirosław Sobolewski (UW) Warszawa, 2018 5 / 12

(6)

Przykład (cd)

Wybieramy wi ˛ec x1jako now ˛a zmienn ˛a bazow ˛a (kierujemy si ˛e tym, ˙ze współczynnik przy x1w zapisie f jest ”najbardziej” ujemny - to reguła heurystyczna(=intuicyjna), a nie ´sci´sle uzasadniona).

Musimy równie˙z okre´sli´c, która ze zmiennych x3,x4,x5przestanie by´c zmienn ˛a bazow ˛a. Wybór jest zdeterminowany przez to, by nowe rozwi ˛azanie bazowe było dopuszczalne (tzn. nie pojawiły si ˛e ujemne warto´sci zmiennych).

Reguła jest nast ˛epuj ˛aca: spo´sród dotychczasowych zmiennych bazowych (=zale˙znych) wybieramy t ˛e, w której dotychczasowym przedstawieniu jako funkcji zmiennych wolnych współczynnik a przy nowej zmiennej bazowej jest ujemny i iloraz wyrazu stałego b przez ten współczynnik, czyli b/a jest najwi ˛ekszy(=jego moduł jest najmniejszy). Czyli: dla x3iloraz b/a = 2/ − 1, za´s dla x5iloraz b/a = 4/ − 1, wybieramy wi ˛ec x3– przestanie ona by´c zmienn ˛a bazow ˛a (prosz ˛e sprawdzi´c, ˙ze wybór x5da rozwi ˛azanie bazowe niedopuszczalne).

(7)

Przykład (cd)

Wybieramy wi ˛ec x1jako now ˛a zmienn ˛a bazow ˛a (kierujemy si ˛e tym, ˙ze współczynnik przy x1w zapisie f jest ”najbardziej” ujemny - to reguła heurystyczna(=intuicyjna), a nie ´sci´sle uzasadniona).

Musimy równie˙z okre´sli´c, która ze zmiennych x3,x4,x5przestanie by´c zmienn ˛a bazow ˛a. Wybór jest zdeterminowany przez to, by nowe rozwi ˛azanie bazowe było dopuszczalne (tzn. nie pojawiły si ˛e ujemne warto´sci zmiennych).

Reguła jest nast ˛epuj ˛aca: spo´sród dotychczasowych zmiennych bazowych (=zale˙znych) wybieramy t ˛e, w której dotychczasowym przedstawieniu jako funkcji zmiennych wolnych współczynnik a przy nowej zmiennej bazowej jest ujemny i iloraz wyrazu stałego b przez ten współczynnik, czyli b/a jest najwi ˛ekszy(=jego moduł jest najmniejszy). Czyli: dla x3iloraz b/a = 2/ − 1, za´s dla x5iloraz b/a = 4/ − 1, wybieramy wi ˛ec x3– przestanie ona by´c zmienn ˛a bazow ˛a (prosz ˛e sprawdzi´c, ˙ze wybór x5da rozwi ˛azanie bazowe niedopuszczalne).

Mirosław Sobolewski (UW) Warszawa, 2018 6 / 12

(8)

Przykład (cd)

Wybieramy wi ˛ec x1jako now ˛a zmienn ˛a bazow ˛a (kierujemy si ˛e tym, ˙ze współczynnik przy x1w zapisie f jest ”najbardziej” ujemny - to reguła heurystyczna(=intuicyjna), a nie ´sci´sle uzasadniona).

Musimy równie˙z okre´sli´c, która ze zmiennych x3,x4,x5przestanie by´c zmienn ˛a bazow ˛a. Wybór jest zdeterminowany przez to, by nowe rozwi ˛azanie bazowe było dopuszczalne (tzn. nie pojawiły si ˛e ujemne warto´sci zmiennych).

Reguła jest nast ˛epuj ˛aca: spo´sród dotychczasowych zmiennych bazowych (=zale˙znych) wybieramy t ˛e, w której dotychczasowym przedstawieniu jako funkcji zmiennych wolnych współczynnik a przy nowej zmiennej bazowej jest ujemny i iloraz wyrazu stałego b przez ten współczynnik, czyli b/a jest najwi ˛ekszy(=jego moduł jest najmniejszy).

Czyli: dla x3iloraz b/a = 2/ − 1, za´s dla x5iloraz b/a = 4/ − 1, wybieramy wi ˛ec x3– przestanie ona by´c zmienn ˛a bazow ˛a (prosz ˛e sprawdzi´c, ˙ze wybór x5da rozwi ˛azanie bazowe niedopuszczalne).

(9)

Przykład (cd)

Wybieramy wi ˛ec x1jako now ˛a zmienn ˛a bazow ˛a (kierujemy si ˛e tym, ˙ze współczynnik przy x1w zapisie f jest ”najbardziej” ujemny - to reguła heurystyczna(=intuicyjna), a nie ´sci´sle uzasadniona).

Musimy równie˙z okre´sli´c, która ze zmiennych x3,x4,x5przestanie by´c zmienn ˛a bazow ˛a. Wybór jest zdeterminowany przez to, by nowe rozwi ˛azanie bazowe było dopuszczalne (tzn. nie pojawiły si ˛e ujemne warto´sci zmiennych).

Reguła jest nast ˛epuj ˛aca: spo´sród dotychczasowych zmiennych bazowych (=zale˙znych) wybieramy t ˛e, w której dotychczasowym przedstawieniu jako funkcji zmiennych wolnych współczynnik a przy nowej zmiennej bazowej jest ujemny i iloraz wyrazu stałego b przez ten współczynnik, czyli b/a jest najwi ˛ekszy(=jego moduł jest najmniejszy).

Czyli: dla x3iloraz b/a = 2/ − 1, za´s dla x5iloraz b/a = 4/ − 1, wybieramy wi ˛ec x3– przestanie ona by´c zmienn ˛a bazow ˛a (prosz ˛e sprawdzi´c, ˙ze wybór x5da rozwi ˛azanie bazowe niedopuszczalne).

Mirosław Sobolewski (UW) Warszawa, 2018 6 / 12

(10)

Przykład

Uwaga: je´sli wszystkie współczynniki przy nowej zmiennej bazowej s ˛a nieujemne, to oznacza to, ˙ze funkcja celu f jest na zbiorze rozwi ˛aza ´n dopuszczalnych nieograniczona z dołu – osi ˛aga dowolnie niskie ujemne rozwi ˛azania.

Nowy zbiór bazowy to {1, 4, 5} i odpowiadaj ˛ace mu rozwi ˛azanie ogólne to:

U2:

x1=2 −x3 x4=3 −x2 x5=2 −x2 +x3

Mo˙zemy zapisa´c funkcj ˛e celu

f (x ) = −2 − 15x1− 10x2= −2 − 15(2 − x3) −10x2= −32 − 10x2+15x3 Mamy dopuszczalne rozwi ˛azanie bazowe (2, 0, 0, 3, 2), w którym f osi ˛aga −32. Mo˙zemy zmniejszy´c warto´s´c f zwi ˛ekszaj ˛ac x2. B ˛edzie ono, wi ˛ec now ˛a zmienn ˛a bazow ˛a. Poniewa˙z 3/ − 1 < 2/ − 1, zatem x5

przestanie by´c zmienn ˛a bazow ˛a.

(11)

Przykład

Uwaga: je´sli wszystkie współczynniki przy nowej zmiennej bazowej s ˛a nieujemne, to oznacza to, ˙ze funkcja celu f jest na zbiorze rozwi ˛aza ´n dopuszczalnych nieograniczona z dołu – osi ˛aga dowolnie niskie ujemne rozwi ˛azania.

Nowy zbiór bazowy to {1, 4, 5} i odpowiadaj ˛ace mu rozwi ˛azanie ogólne to:

U2:

x1=2 −x3 x4=3 −x2 x5=2 −x2 +x3

Mo˙zemy zapisa´c funkcj ˛e celu

f (x ) = −2 − 15x1− 10x2= −2 − 15(2 − x3) −10x2= −32 − 10x2+15x3 Mamy dopuszczalne rozwi ˛azanie bazowe (2, 0, 0, 3, 2), w którym f osi ˛aga −32. Mo˙zemy zmniejszy´c warto´s´c f zwi ˛ekszaj ˛ac x2. B ˛edzie ono, wi ˛ec now ˛a zmienn ˛a bazow ˛a. Poniewa˙z 3/ − 1 < 2/ − 1, zatem x5

przestanie by´c zmienn ˛a bazow ˛a.

Mirosław Sobolewski (UW) Warszawa, 2018 7 / 12

(12)

Przykład

Nowy zbiór bazowy to {1, 2, 4}, za´s odpowiadaj ˛ace mu rozwi ˛azanie ogólne to

U3:

x1=2 −x3

x2=2 +x3− x5

x4=1 −x3 +x5 Mo˙zemy przedstawi´c

f (x ) = −32 − 10(2 − x5+x3) +15x3= −52 + 5x3+10x5. Poniewa˙z w zbiorze rozwi ˛aza ´n dopuszczalnych x3≥ 0, x5≥ 0 zatem f osi ˛aga warto´s´c najmniejsz ˛a = −52 dla x3=x5=0 czyli dla rozwi ˛azania bazowego dopuszczalnego (2, 2, 0, 1, 0). Zatem rozwi ˛azanie pierwotnego problemu to max g = − min f = 52

(13)

Znajdowanie pocz ˛ atkowego wektora bazowego dopuszczalnego

Mamy zbiór X opisany standardowo przez

Ax = b, x = [x1, . . . ,xn]> ≥ 0, gdzie A ∈ Mm×n,b ∈ Mm×1,b ≥0. Jak stwierdzi´c, ˙ze X jest niepusty, i je´sli tak jest jak znale´z´c wektor bazowy dopuszczalny?

Stosuje si ˛e tzw. metod ˛esztucznej bazy, wprowadzaj ˛ac dodatkowe zmienne, y1, . . . ,ym, macierz współczynników A przedłu˙zaj ˛ac o

macierz jednostkow ˛a Im. Tzn. macierz układu dla n + m zmiennych ma teraz posta´c [A|Im|b] ∈ Mm×(n+m+1)(R), z macierz ˛a współczynników A0 = [A|Im] ∈Mm×(n+m) oraz x0 = [x1, . . . ,xn,y1, . . . ,ym]>,i

rozwi ˛azujemy problem y1+ · · · +yn→ min przy warunkach A0x0 =b, x0 ≥ 0.

Ten problem ma zawsze rozwi ˛azanie.

Je´sli osi ˛agamy min = 0 to X 6= ∅, w przeciwnym wypadku, tzn. min > 0 mamy X = ∅.

Mirosław Sobolewski (UW) Warszawa, 2018 9 / 12

(14)

Znajdowanie pocz ˛ atkowego wektora bazowego dopuszczalnego

Mamy zbiór X opisany standardowo przez

Ax = b, x = [x1, . . . ,xn]> ≥ 0, gdzie A ∈ Mm×n,b ∈ Mm×1,b ≥0. Jak stwierdzi´c, ˙ze X jest niepusty, i je´sli tak jest jak znale´z´c wektor bazowy dopuszczalny?

Stosuje si ˛e tzw. metod ˛esztucznej bazy, wprowadzaj ˛ac dodatkowe zmienne, y1, . . . ,ym, macierz współczynników A przedłu˙zaj ˛ac o

macierz jednostkow ˛a Im. Tzn. macierz układu dla n + m zmiennych ma teraz posta´c [A|Im|b] ∈ Mm×(n+m+1)(R), z macierz ˛a współczynników A0 = [A|Im] ∈Mm×(n+m)oraz x0 = [x1, . . . ,xn,y1, . . . ,ym]>,i

rozwi ˛azujemy problem y1+ · · · +yn→ min przy warunkach A0x0 =b, x0 ≥ 0.

Ten problem ma zawsze rozwi ˛azanie.

(15)

Przykład

Zbiór X ⊂ R4opisany jest przez:

8x1+3x2− 5x3+x4=4 3x1+x2− 2x3− x4=1 x1,x2,x3,x4≥ 0

Wprowadzamy sztuczne zmienne y1,y2i funkcj ˛e celu f (x1, . . . ,x4,y1,y2) =y1+y2→ min przy warunkach 8x1+3x2− 5x3+x4+y1=4

3x1+x2− 2x3− x4+y2=1 x1, . . . ,x4≥ 0, y1,y2≥ 0

y1,y2s ˛a pocz ˛atkowymi zmiennymi bazowymi (zale˙znymi)

 y1=4 −8x1 −3x2 +5x3 −x4 y2=1 −3x1 −x2 +2x3 +x4

Wyra˙zamy f przez zmienne niezale˙zne: f = 5 − 11x1− 4x2+7x3.

Mirosław Sobolewski (UW) Warszawa, 2018 10 / 12

(16)

Przykład

Zbiór X ⊂ R4opisany jest przez:

8x1+3x2− 5x3+x4=4 3x1+x2− 2x3− x4=1 x1,x2,x3,x4≥ 0

Wprowadzamy sztuczne zmienne y1,y2i funkcj ˛e celu f (x1, . . . ,x4,y1,y2) =y1+y2→ min przy warunkach 8x1+3x2− 5x3+x4+y1=4

3x1+x2− 2x3− x4+y2=1 x1, . . . ,x4≥ 0, y1,y2≥ 0

y1,y2s ˛a pocz ˛atkowymi zmiennymi bazowymi (zale˙znymi)

 y1=4 −8x1 −3x2 +5x3 −x4 y2=1 −3x1 −x2 +2x3 +x4

Wyra˙zamy f przez zmienne niezale˙zne: f = 5 − 11x1− 4x2+7x3.

(17)

Przykład

Zbiór X ⊂ R4opisany jest przez:

8x1+3x2− 5x3+x4=4 3x1+x2− 2x3− x4=1 x1,x2,x3,x4≥ 0

Wprowadzamy sztuczne zmienne y1,y2i funkcj ˛e celu f (x1, . . . ,x4,y1,y2) =y1+y2→ min przy warunkach 8x1+3x2− 5x3+x4+y1=4

3x1+x2− 2x3− x4+y2=1 x1, . . . ,x4≥ 0, y1,y2≥ 0

y1,y2s ˛a pocz ˛atkowymi zmiennymi bazowymi (zale˙znymi)

 y1=4 −8x1 −3x2 +5x3 −x4 y2=1 −3x1 −x2 +2x3 +x4

Wyra˙zamy f przez zmienne niezale˙zne: f = 5 − 11x1− 4x2+7x3.

Mirosław Sobolewski (UW) Warszawa, 2018 10 / 12

(18)

Przykład

Zbiór X ⊂ R4opisany jest przez:

8x1+3x2− 5x3+x4=4 3x1+x2− 2x3− x4=1 x1,x2,x3,x4≥ 0

Wprowadzamy sztuczne zmienne y1,y2i funkcj ˛e celu f (x1, . . . ,x4,y1,y2) =y1+y2→ min przy warunkach 8x1+3x2− 5x3+x4+y1=4

3x1+x2− 2x3− x4+y2=1 x1, . . . ,x4≥ 0, y1,y2≥ 0

y1,y2s ˛a pocz ˛atkowymi zmiennymi bazowymi (zale˙znymi)

 y1=4 −8x1 −3x2 +5x3 −x4

y =1 −3x −x +2x +x

(19)

Przykład

mo˙zemy zmniejszy´c f wybieraj ˛ac x2jako now ˛a zmienn ˛a bazow ˛a, natomiast y2przestanie by´c zmienna bazow ˛a.

 x2=1 −3x1 +2x3 +x4 −y2

y1=1 +x1 −x3 −4x4 +3y2 Wyra˙zamy f przez nowe zmienne niezale˙zne:

f = 1 + x1− x3− 4x4+4y2

Mirosław Sobolewski (UW) Warszawa, 2018 11 / 12

(20)

Przykład

mo˙zemy zmniejszy´c f wybieraj ˛ac x2jako now ˛a zmienn ˛a bazow ˛a, natomiast y2przestanie by´c zmienna bazow ˛a.

 x2=1 −3x1 +2x3 +x4 −y2

y1=1 +x1 −x3 −4x4 +3y2

Wyra˙zamy f przez nowe zmienne niezale˙zne: f = 1 + x1− x3− 4x4+4y2

(21)

Przykład

mo˙zemy zmniejszy´c f wybieraj ˛ac x2jako now ˛a zmienn ˛a bazow ˛a, natomiast y2przestanie by´c zmienna bazow ˛a.

 x2=1 −3x1 +2x3 +x4 −y2

y1=1 +x1 −x3 −4x4 +3y2 Wyra˙zamy f przez nowe zmienne niezale˙zne:

f = 1 + x1− x3− 4x4+4y2

Mirosław Sobolewski (UW) Warszawa, 2018 11 / 12

(22)

Przykład

Jako now ˛a zmienn ˛a bazowa wprowadzamy x3natomiast y1staje si ˛e zmienn ˛a niebazow ˛a (woln ˛a):

 x2=3 −x1 +2x3 −7x4 +2y1 +5y2 x3=1 +x1 −4x4 −y1 +3y2

Wyra˙zamy f przez nowe zmienne niezale˙zne: f = y1+y2

Otrzymali´smy minf = 0, zatem mamy niepusty X i nale˙zy do niego dopuszczalny punkt bazowy (x1,x2,x3,x4) = (0, 3, 1, 0).

(23)

Przykład

Jako now ˛a zmienn ˛a bazowa wprowadzamy x3natomiast y1staje si ˛e zmienn ˛a niebazow ˛a (woln ˛a):

 x2=3 −x1 +2x3 −7x4 +2y1 +5y2 x3=1 +x1 −4x4 −y1 +3y2

Wyra˙zamy f przez nowe zmienne niezale˙zne: f = y1+y2

Otrzymali´smy minf = 0, zatem mamy niepusty X i nale˙zy do niego dopuszczalny punkt bazowy (x1,x2,x3,x4) = (0, 3, 1, 0).

Mirosław Sobolewski (UW) Warszawa, 2018 12 / 12

(24)

Przykład

Jako now ˛a zmienn ˛a bazowa wprowadzamy x3natomiast y1staje si ˛e zmienn ˛a niebazow ˛a (woln ˛a):

 x2=3 −x1 +2x3 −7x4 +2y1 +5y2 x3=1 +x1 −4x4 −y1 +3y2

Wyra˙zamy f przez nowe zmienne niezale˙zne:

f = y1+y2

Otrzymali´smy minf = 0, zatem mamy niepusty X i nale˙zy do niego dopuszczalny punkt bazowy (x1,x2,x3,x4) = (0, 3, 1, 0).

(25)

Przykład

Jako now ˛a zmienn ˛a bazowa wprowadzamy x3natomiast y1staje si ˛e zmienn ˛a niebazow ˛a (woln ˛a):

 x2=3 −x1 +2x3 −7x4 +2y1 +5y2 x3=1 +x1 −4x4 −y1 +3y2

Wyra˙zamy f przez nowe zmienne niezale˙zne:

f = y1+y2

Otrzymali´smy minf = 0, zatem mamy niepusty X i nale˙zy do niego dopuszczalny punkt bazowy (x1,x2,x3,x4) = (0, 3, 1, 0).

Mirosław Sobolewski (UW) Warszawa, 2018 12 / 12

Cytaty

Powiązane dokumenty

[r]

[r]

[r]

Strefę kompletacji wydziela się przede wszystkim w celu skrócenia czasu tego etapu. Powierzchnia tej strefy zależy od liczby pozycji asortymentowych, które

W przeciwieństwie do programowania liniowego, gdzie uniwersalną metodą rozwiązywania jest algorytm simpleks, nie ma ogólnej metody rozwiązywania programów

Tak jak w rachunku funkcji jednej zmiennej minima i maksima lokalne funkcji dwóch zmiennych nazywamy ekstremami lokalnymi.

1.. Znajd¹ obj¦to±¢ sto»ka, oraz okre±l jaki popeªniamy maksymalny bª¡d bezwzgl¦dny oraz wzgl¦dny przy obliczaniu tej obj¦to±ci... )].. Zatem obliczanie pochodnych

Lista nr 9 TRiL, sem.I, studia stacjonarne I stopnia, 2013/14. Pochodna funkcji