ZADANIA DO ĆWICZEŃ Z PROGRAMOWANIA LINIOWEGO

 

 

1. PODSTAWY PROGRAMOWANIA LINIOWEGO (PL):

 

- wektory, macierze, rachunek macierzowy,

- elementy teorii przestrzeni liniowych,

- bazowe rozwišzanie układu równań liniowych,

- sformułowanie zadania PL,

- graficzne rozwišzywanie zadania PL.

 

 

Przykład nr 1

 

Sprawdzić, z definicji, czy podane zestawy wektorów tworzš bazę w danej przestrzeni:

 

        aT = [2  3], bT = [4  1], cT = [0  1]

 

        aT = [2  3  1], bT = [4  2  0],

 

ƒ        aT = [1  3  4], bT = [6  3  0], cT = [5  0  -4],

 

        aT = [3  -1  3], bT = [2  2  2], cT = [4  1  0].

 

Wskazówki

 

Tylko ostatni zestaw wektorów tworzy bazę. Dobrym przypomnieniem algebry może być sprawdzanie liniowej niezależnoœci innymi metodami niż z definicji: wyznaczenie rzędu macierzy, obliczenie wyznacznika itp. 

 

 

Przykład nr 2

 

Wyznaczyć dowolne, bazowe rozwišzanie podanego układu równań:

 

2x1 + 3x2 – 6x3 + x4 = 24

x1 – 6x2 – 12x3 + x4 = 12

 

Wskazówki

 

Kolejne etapy postępowania: wybór dowolnych dwóch kolumn z macierzy A, sprawdzenie ich liniowej niezależnoœci (dowolnym sposobem), wyznaczenie rozwišzania bazowego odpowiadajšcego wybranym wektorom bazy (rozwišzanie układu dwóch równań z dwiema niewiadomymi).

 

Rozwišzanie

 

Przykładowe rozwišzanie, jeżeli przyjmiemy, że najpierw badamy kolumny pierwszš i czwartš macierzy A. Wektor a1 i wektor a4 sš liniowo niezależne (można to łatwo sprawdzić), co pozwala wyznaczyć  bazowe rozwišzanie układu równań przyjmujšc zgodnie z definicjš x2=0 oraz x3=0:

x1=12

x2=0

 

Należy zauważyć, że to szczególne rozwišzanie jest bazowym rozwišzaniem zdegenerowanym.

 

 

Przykład nr 3

 

Na przykładzie typowego zadania programowania liniowego wyjaœnić podstawowe pojęcia, składowe i strukturę zadania programowania liniowego: zmienne decyzyjne (nieujemnoœć), funkcja kryterium (maksymalizacja albo minimalizacja), warunki ograniczajšce (bilansowe, strukturalne, brzegowe). Wyjaœnić proces uzyskiwania rozwišzania: rozwišzanie dopuszczalne (wieloœcienny zbiór wypukły), rozwišzanie optymalne (przeszukiwanie zbioru rozwišzań wierzchołkowych).

 

Wskazówki

 

Rozwišzań optymalnych może nie być w ogóle (zbiór pusty rozwišzań dopuszczalnych), może nie być skończonego rozwišzania optymalnego (szczególny przypadek, gdy zbiór rozwišzań dopuszczalnych jest nieograniczony), może być jedno rozwišzanie optymalne (wierzchołek), może być nieskończenie wiele rozwišzań optymalnych (liniowa kombinacja wypukła punktów wierzchołkowych optymalizujšcych wartoœć funkcji). 

 

Wykorzystujšc dowolne przykłady zadań PL zastosować graficznš metodę rozwišzywania zadania PL (oczywiœcie tylko w R2) do zilustrowania przedstawionych wczeœniej pojęć i interpretacji. W szczególnoœci należy pokazać co w R2 oznacza graficzne poszukiwanie rozwišzania optymalnego na zbiorze rozwišzań dopuszczalnych oraz na czym polega istnienie wielu rozwišzań optymalnych (rozwišzania optymalne na krawędzi zbioru rozwišzań dopuszczalnych).

 

 

2. FORMUŁOWANIE LINIOWYCH PROBLEMÓW DECYZYJNYCH (1):

 

- typowe zagadnienia bilansowe,

- klasyczny problem "diety",

- klasyczny problem "działalnoœci produkcyjnej".

 

 

Przykład nr 1

 

W zakładzie produkcyjnym powstajš dwa wyroby: „z” oraz „y”. Wytwarzane sš z czterech rodzajów półproduktów: a, b, c, d.  Pojedynczy wyrób „z” powstaje z półproduktów użytych w następujšcych iloœciach: 2a, b, 3c, 2d. Pojedynczy wyrób „y” powstaje z półproduktów użytych w następujšcych iloœciach: 2a, 2b, 2c, 3d. Z kolei jednostka półproduktu „c” składa się z: 2a, b. Natomiast jednostka półproduktu „d” składa się z: 2a, 2b.

 

Zdolnoœci produkcyjne działów, w których powstajš półprodukty i wyroby gotowe sš limitowane. W dziale A można wytworzyć co najwyżej 1200 półproduktów „a”, w dziale B co najwyżej 1500 półproduktów „b”, w dziale C co najwyżej 500 półproduktów „c”, w dziale D co najwyżej 600 półproduktów „d”. W dziale montażowym E zdolnoœci produkcyjne wynoszš co najwyżej 200 jednostek wyrobów „z” i „y” razem.

 

W badanym okresie cena wyrobu „z” wynosi 1 denar, a cena wyrobu „y” odpowiednio 1,5 denara. Okreœlić program produkcji, który pozwoli uzyskać maksymalnš wartoœć produkcji wyrobów „z” i „y”.

 

Wskazówki

 

Sugeruje się zrealizowanie kolejno następujšcych poleceń:

1.      Naszkicować schemat blokowy procesu produkcyjnego uwzględniajšcy wszystkie działy produkcyjne od A do E.

2.      Zbudować macierz bezpoœrednich nakładów jednostkowych półproduktów na wytworzenie wyrobów „z” oraz „y”.

3.      Zbudować macierz nakładów jednostkowych półproduktów „a” i „b” na wytworzenie półproduktów „c” i „d”, a następnie wynikajšcš z niej macierz nakładów jednostkowych półproduktów „a” i „b” na wytworzenie wyrobów „z” oraz „y”.

4.      Wyznaczyć macierz zagregowanych nakładów jednostkowych „a” i „b” na wytworzenie wyrobów „z” i „y” (działania na macierzach).

5.      Okreœlić zmienne decyzyjne zadania.

6.      Zbudować zadanie PL z maksymalizacjš wartoœci produkcji (funkcja kryterium oraz warunki ograniczajšce).

7.      Naszkicować graficznie dopuszczalne rozwišzanie zadania, okreœlić rozwišzanie optymalne i zinterpretować je zgodnie z podanš treœciš. 

 

Warto zauważyć, że ten przykład czytelnie wyjaœnia na czym polega problem wšskich gardeł w złożonym procesie produkcyjnym („niedopasowanie” zdolnoœci produkcyjnych działów).

 

Rozwišzanie

 

x1 – produkcja wyrobu „z” (sztuk)

x2 – produkcja wyrobu „y” (sztuk)

 

funkcja kryterium:

max [ f(x) = x1 + 1,5x2 ]

 

warunki ograniczajšce:

12x1 + 12 x2 £ 1200

8x1 + 10 x2 £ 1500

3x1 + 2x2 £ 500

2x1 + 3x2 £ 600

x1 + x2 £ 200

x1 ³ 0

x2 ³ 0

 

rozwišzanie optymalne:

x1* = 0

x2* = 100

fmax = 150

 

 

Przykład nr 2

 

W pewnym zakładzie (elektrownia, gazownia lub pogotowie ratunkowe) z powodów technologicznych konieczna jest stała obecnoœć pracowników. Ze względu na zmienne natężenie realizowanego procesu liczba niezbędnych pracowników ulega zmianie. Można jš okreœlić dla czterogodzinnych przedziałów czasu w czasie całej doby: godziny 0-4 – co najmniej 4 osoby, godziny 4-8 – co najmniej 18 osób, 8-12 – co najmniej 7, 12-16 – co najmniej 15, 16-20 – co najmniej 18, w przedziale 20-24 – co najmniej 6 osób.

 

Pracownicy przychodzš do pracy tylko o okreœlonych godzinach (0, 4, 8, 12, 16 lub 20), a po przyjœciu pozostajš w pracy przez całš zmianę, która trwa równe 8 godzin.

 

Należy zbudować zadanie PL w celu uzyskania odpowiedzi na pytanie: jaka jest minimalna  liczba pracowników niezbędnych do obsługi procesu produkcyjnego w cišgu doby?

 

Wskazówki

 

Problem ten, ze względu na strukturę (minimalizowana funkcja kryterium,

 zwroty nierównoœci w warunkach ograniczajšcych), odtwarza schemat klasycznego problemu „diety”.

 

Po sformułowaniu zadania PL, przedmiotem analizy może być dalsze modyfikowanie zadania w zależnoœci od wydłużania się lub skracania trwania jednej zmiany.

 

Rozwišzanie

 

Zdefiniowanie zmiennej decyzyjnej:

x1 – liczba pracowników rozpoczynajšcych pracę o godzinie 0,

x2 – liczba pracowników rozpoczynajšcych pracę o godzinie 4,

x3 – liczba pracowników rozpoczynajšcych pracę o godzinie 8,

x4 – liczba pracowników rozpoczynajšcych pracę o godzinie 12,

x5 – liczba pracowników rozpoczynajšcych pracę o godzinie 16,

x6 – liczba pracowników rozpoczynajšcych pracę o godzinie 20.

 

Funkcja kryterium:

min [ f(x) = x1 + x2 + x3 + x4 + x5 + x6 ]   

 

warunki ograniczajšce:

x1 + x2 ³ 18

x2 + x3 ³ 7

x3 + x4 ³ 15

x4 + x5 ³ 18

x5 + x6 ³ 6

x6 + x1 ³ 4

xj ³ 0; j=1, 2, ..., 6

 

Rozwišzanie optymalne:

x1* = 14

x2* = 4

x3* = 3

x4* = 12

x5* = 6

x6* = 0

fmin = 39

 

 

Przykład nr 3

 

Samodzielnie zbudować i charakteryzować strukturę typowego zadania działalnoœci produkcyjnej: maksymalizacja funkcji kryterium (dochód, zysk, lub wartoœć produkcji), ograniczenia (zasobowe limity wyrażone w warunkach ograniczajšcych w postaci nierównoœci „nie więcej niż”). Przykład powinien być w przyszłoœci rozwišzany w pracowni komputerowej za pomocš dostępnego pakietu „Decision” lub programu „Excel”.

 

W tradycyjnym modelu „działalnoœci produkcyjnej” zakłada się, że struktura wytwarzania produktów jest szeregowa (logiczne „i”), co oznacza, że niezerowa zmienna decyzyjna musi sprawić, że zużywane mogš być (w różnych proporcjach) wszystkie wymienione w zadaniu zasoby produkcyjne (czas pracy maszyn lub urzšdzeń, siła robocza, inne). Nie dzieje się tak, kiedy struktura wytwarzania ma układ równoległy. Przy okazji omawiania modelu „działalnoœci produkcyjnej” wyjaœnić równoległe struktury produkcyjne (logiczne „lub”), które zmuszajš do stosowania większej liczby zmiennych decyzyjnych, ewentualnie do wprowadzania podwójnego ich indeksowania. Zwrócić również uwagę na zapis warunków strukturalnych, które wprowadzajš relacje proporcjonalnoœci między zmiennymi lub ich kombinacjami.   

 

 

3. FORMUŁOWANIE LINIOWYCH PROBLEMÓW DECYZYJNYCH (2):

 

- zadanie typu "rozkroju",

- klasyczne zagadnienie "transportowe",

- wybrane problemy sieciowe.

 

 

Przykład nr 1

 

Proces technologiczny wymaga, żeby do wytworzenia pewnego produktu gotowego  wytwarzać trzy rodzaje elementów. Mogš to być elementy drewniane, papierowe ewentualnie metalowe – w każdym razie sš wycinane z jednorodnego arkusza danego materiału o ustalonych wymiarach: 5 metrów na 10 metrów. Element pierwszy e1 jest trapezem prostokštnym: podstawa dolna 5 m, podstawa górna 3 m, wysokoœć 4 m. Drugi element e2 jest prostokštem o wymiarach: 3m x 4m. Trzeci element e3 jest również prostokštem o wymiarach: 2m x 5m. Wiadomo, że należy wytworzyć co najmniej 12000 elementów e1, co najmniej 6000 elementów e2, co najmniej 8000 elementów e3.

 

Należy zbudować zadanie PL w celu udzielenia odpowiedzi na pytanie: jak rozcinać standardowe arkusze, aby zminimalizować liczbę zużytych arkuszy i wytworzyć wymaganš liczbę wymienionych, trzech elementów?

 

Wskazówki

 

Iloœć dostępnych arkuszy nie jest istotna dla sformułowania zadania. Problem decyzyjny polega na ustaleniu ile arkuszy rozcinać według każdego ze sprawnych wariantów. Dlatego też, przed sformułowaniem zadania konieczne jest okreœlenie wszystkich, sprawnych (!) wariantów rozcinania pojedynczego arkusza. W tym celu należy rozważyć różne warianty rozmieszczenia na powierzchni arkusza różnych kombinacji różnych iloœci elementów e1, e2 oraz e3.

 

Zmienna decyzyjna może być okreœlona w jednostkach fizycznych (jak podano poniżej), albo jako zmienna o charakterze intensywnoœciowym – jako krotnoœć, częstoœć lub iloœć powtórzeń danego rodzaju rozkroju. W zadaniu nie ma wymagania minimalizacji iloœci odpadów, co może być dodatkowym urozmaiceniem tego przykładu. 

 

Rozwišzanie

 

Zdefiniowanie zmiennych decyzyjnych:

xj – liczba standardowych arkuszy rozcinanych zgodnie z wariantem j, przy czym jÎJ, gdzie J to zbiór wszystkich, wyznaczonych uprzednio, wariantów sprawnych;

w tym zadaniu J={1, 2, 3, 4, 5, 6, 7, 8}

 

funkcja kryterium:

min [ f(x) = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 ]

 

warunki ograniczajšce (uwaga: kolejnoœć numerowania wariantów może być inna, ale kolumn macierzy A, czyli sprawnych wariantów, powinno być w sumie 8 i powinny one występować w kolumnach macierzy A z tymi samymi współczynnikami!):

2x1 + x2 + x3 + x4 ³  12000

2x2 + x3 + 3x5 + 2x6 + x7 ³ 6000

x1 + x3 + 3x4 + 2x6 + 3x7 + 5x8 ³ 8000

xj ³ 0, jÎJ

 

Ten przykład ma alternatywne rozwišzania optymalne. Rozwišzania zadania podano poniżej:

 

rozwišzanie optymalne nr 1:

x1* = 4500

x2* = 3000

x3* = 0

x4* = 0

x5* = 0

x6* = 0

x7* = 0

x8* = 700

fmin = 8200

 

Majšc do dyspozycji ostatnia tablicę sympleksowš rozwišzanego zadania, można zidentyfikować i wyznaczyć rozwišzania alternatywne:

 

rozwišzanie optymalne nr 2:

x1* = 3800

x2* = 3000

x3* = 0

x4* = 1400

x5* = 0

x6* = 0

x7* = 0

x8* = 0

fmin = 8200

 

rozwišzanie optymalne nr 3:

x1* = 5200

x2* = 1600

x3* = 0

x4* = 0

x5* = 0

x6* = 1400

x7* = 0

x8* = 0

fmin = 8200

 

 

Przykład nr 2

 

Zbudować i omówić typowe zadanie „diety”. Struktura zadania: minimalizacja funkcji kryterium (koszt całkowity), ograniczenia (zapewnienie minimalnej iloœci niezbędnych składników odżywczych, nierównoœci postaci „co najmniej”). Przykład powinien być w przyszłoœci rozwišzany w pracowni komputerowej za pomocš dostępnego pakietu „Decision” lub programu „Excel”.

 

 

Przykład nr 3

 

W pewnej sieci komunikacyjnej (pocišgi, bity informacji lub przesyłki pocztowe) chcemy przesłać w pewnej jednostce czasu jak najwięcej jednorodnego towaru z punktu 1 do punktu przeznaczenia o numerze 6. Jest w sumie 6 węzłowych punktów tej sieci. Sieć komunikacyjna składa się z następujšcych połšczeń: (1Ž2), (1Ž3), (2Ž3), (2Ž4), (3Ž4), (3Ž5), (4Ž5), (4Ž6), (5Ž6). Strzałki oznaczajš jedyny możliwy kierunek przepływu towaru. Zbiór połšczeń oznaczamy L.

 

Każda z tras ma w danym okresie okreœlonš przepustowoœć, co oznacza, że w analizowanym okresie może niš zostać przesłana iloœć towaru nie większa, niż ustalona i podana. Przepustowoœci „p” dla kolejnych odcinków sieci przedstawiajš się następujšco: p(1Ž2)=7, p(1Ž3)=10, p(2Ž3)=6, p(2Ž4)=8, p(3Ž4)=2, p(3Ž5)=3, p(4Ž5)=7, p(4Ž6)=8, p(5Ž6)=9.

 

Należy zbudować zadanie PL, które umożliwi wyznaczenie rozwišzania, które okreœli: jakie majš być przepływy towarowe na poszczególnych odcinkach sieci, aby zmaksymalizowana została suma towarów przesłanych z punktu poczštkowego do punktu końcowego?

 

Wskazówki

 

Przed przystšpieniem do formułowania zadania PL wykonać graficznš interpretację zadania. W oparciu o graf łatwiej jest okreœlić warunki ograniczajšce zadania. W ujęciu zagadnienia zgodnym z konwencjš maksymalnego przepływu w sieci (maximal flow method) wyklucza się, że towar mógłby zaginšć na trasie lub w węzłach poœrednich sieci. Szuka się odpowiedzi na pytanie: jaki może być największy przepływ towarów, który opuœci punkt poczštkowy i, pomimo ograniczonych przepustowoœci kolejnych odcinków sieci, dotrze w całoœci do punktu końcowego?

 

Rozwišzanie

 

Zdefiniowanie zmiennej decyzyjnej:

xij – iloœć towarów przepływajšcych od węzła i-tego do węzła j-tego sieci;

przy czym (i, j) Î L = {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (3, 5), (4, 5), (4, 6), (5, 6)}

 

funkcja kryterium:

max [ f(x) = x12 + x13 ]

alternatywnie można również przyjšć:

max [ f(x) = x46 + x56 ]

 

warunki ograniczajšce:

x12 £  7

x13 £  10

x23 £  6

x24 £  8

x34 £  2

x35 £  3

x45 £  7

x46 £  8

x56 £  9

x12 – x23 – x24 = 0

x13 + x23 – x34 – x35 = 0

x24 + x34 – x45 – x46 = 0

x35 + x45 – x56 = 0

xij ³ 0, (i, j) Î L

 

Rozwišzanie optymalne:

x12* = 7

x13* = 5

x23* = 0

x24* = 7

x34* = 2

x35* = 3

x45* = 1

x46* = 8

x56* = 4

fmax = 12

 

 

4. ZADANIE TRANSPORTOWE:

 

- pierwsze rozwišzanie dopuszczalne,

- interpretacja wskaŸników optymalnoœci rozwišzania bazowego,

- poprawianie uzyskanego rozwišzania,

- schemat blokowy algorytmu,

- niezbilansowane zadanie transportowe,

- zdegenerowane rozwišzanie bazowe,

- problem tras niedopuszczalnych.

 

Przykład nr 1

 

Zbudować własne zadanie transportowe (o wymiarze 3x4): macierz nieujemnych, dwuindeksowych zmiennych decyzyjnych, minimalizacja funkcji kryterium (całkowity koszt dostarczenia towarów), macierz współczynników jednostkowego kosztu przewiezienia towaru dla wszystkich tras, dwie grupy warunków ograniczajšcych (nierównoœci „£”  dla „dostawców”, nierównoœci „³” dla „odbiorców”).

 

Pokazać, że z powodu liniowej zależnoœci między warunkami ograniczajšcymi liczba dodatnich wartoœci zmiennych w rozwišzaniu bazowym (niezdegenerowanym) powinna być równa: n + m – 1, gdzie „n” oznacza liczbę warunków ograniczajšcych opisujšcych „dostawców”, a „m” liczbę warunków ograniczajšcych opisujšcych odbiorców. Ponieważ jest to bilans zamknięty, zawsze jeden z warunków daje się przedstawić jako liniowa kombinacja pozostałych.

 

 

Przykład nr 2

 

Cztery magazyny zaopatrujš cztery sklepy w jednorodny towar. Każdy z magazynów (M1, M2, M3, M4) ma do rozesłania jednakowš liczbę 20 jednostek towaru. Odbiorcy, czyli sklepy, zgłosili zróżnicowane zapotrzebowanie na towar: S1=15, S2=17, S3=21, S4=27.

 

Macierz C jednostkowych kosztów (cij) przewozu towarów podana jest poniżej:  

14

16

12

4

13

12

10

5

12

18

10

7

14

15

14

9

 

 

 

 

 

 

Wskazówki

 

Rozwišzanie tego przykładu jest proste, ponieważ zadanie jest zbilansowane i w trakcie rozwišzywania nie występuje degeneracja rozwišzania bazowego. Pierwsze rozwišzanie dopuszczalne należy wyznaczyć konsekwentnie wybierajšc najpierw trasy o najniższym koszcie jednostkowym (metoda minimalnego elementu w tablicy kosztów jednostkowych).

 

Należy zwrócić uwagę na „oryginalny” cykl, który trzeba zbudować w celu uruchomienia przepływu na jedynej (!) trasie wyróżnionej „nieoptymalnym”, ujemnym wskaŸnikiem (proponuje się przyjšć w algorytmie, że  „–” przy wskaŸniku oznacza możliwoœć znalezienia następnego rozwišzania bazowego zmniejszajšcego wartoœć funkcji). Pokazać, że przejœcie od jednego rozwišzania bazowego do drugiego, dzięki konstrukcji algorytmu, gwarantuje dopuszczalnoœć i „bazowoœć” następnego rozwišzania.

 

Podać interpretację wskaŸników optymalnoœci. Wyjaœnić, że badane w algorytmie znaki wskaŸników  pokazujš, czy rozwišzanie jest optymalne, natomiast wartoœć pojedynczego wskaŸnika jest jednostkowš (przypadajšcš na jednostkę towaru) miarš zmiany wartoœci funkcji.

 

Rozwišzanie

 

rozwišzanie optymalne, czyli macierz X*:

0

0

0

20

0

12

1

7

0

0

20

0

15

5

0

0

 

 

 

 

 

fmin = 754

 

 

Przykład nr 3

 

Podać interpretację i metodę postępowania w następujšcych przypadkach i zagadnieniach rozszerzajšcych typowe zadanie transportowe:

ˇ          zadanie niezbilansowane (dodatkowe wiersze lub kolumny tablicy transportowej),

ˇ          degeneracja rozwišzania bazowego (wyjaœnienie i postępowanie w procesie rozwišzywania zadania),

ˇ          alternatywne rozwišzanie optymalne,

ˇ          skumulowany koszt jednostkowy (uwzględnianie nie tylko kosztu jednostkowego transportu, ale również innych jednostkowych parametrów kosztowych wynikajšcych z charakterystyki dostawców lub odbiorców),

ˇ          problem tras niedopuszczalnych (postępowanie w formułowaniu zadania i jego dalszym rozwišzywaniu),

ˇ          wieloetapowe zadanie transportowe (na przykład: producent-magazyny-odbiorcy).  

 

 

5. METODA SYMPLEKS:

 

- schemat blokowy algorytmu,

- interpretacja uzyskiwanych wyników,

- zmienne sztuczne,

- degeneracja rozwišzania bazowego.

 

 

Przykład nr 1

 

Rozwišzać prosty przykład ograniczony do przestrzeni dwuwymiarowej:

 

funkcja kryterium:

max [ f(x) = 5x1 + 25x2 ]

 

warunki ograniczajšce:

2x1 + x2 £ 12

2x1 + 2x2 £ 20

x1 ³ 0

x2 ³ 0

 

Wskazówki

 

Omówić przejœcie od zadania poczštkowego do zadania rozszerzonego ze zmiennymi pomocniczymi, w tym przypadku dopełniajšcymi lewš stronę obu nierównoœci. W algorytmie należy zwrócić uwagę na operacje zmierzajšce do wymiany w bazie jednego wektora: identyfikacja wektora usuwanego z bazy i wyznaczenie wektora wprowadzanego do bazy.

 

Należy wyjaœnić w jakiej sytuacji w metodzie sympleks uzyskuje się rozwišzanie optymalne, w jakiej rozwišzanie nieograniczone, a kiedy zadanie nie ma rozwišzania. 

 

Przedstawić graficznie zadanie i pokazać na rysunku na czym polega schemat metody sympleks – badanie optymalnoœci rozwišzania wierzchołkowego i w razie możliwoœci poprawy rozwišzanie przechodzenie do sšsiedniego wierzchołka zapewniajšcego większš poprawę wartoœci funkcji.  

 

Rozwišzanie

 

rozwišzanie optymalne:

x1* = 0

x2* = 10

x3* = 2

x4* = 0

fmax = 250

 

 

Przykład nr 2

 

Rozwišzać dowolny przykład zadania PL ilustrujšcego problem „działalnoœci produkcyjnej”, a następnie przeanalizować i zinterpretować uzyskany wynik.

 

Wskazówki

 

Poniżej podane jest przykładowe zadanie. Ekonomiczny opis problemu sprowadza się do wytwarzania dwóch rodzajów wyrobów (inwencja prowadzšcego), które majš okreœlonš cenę zbytu. Sš wytwarzane z dwóch rodzajów zasobów (inwencja prowadzšcego), których iloœć jest ograniczona. Dodatkowo limitowana jest wielkoœć produkcji obu wyrobów.

 

max [ f(x) = 3x1 + 5x2 ]

 

3 x1 + x2 £ 30

x1 + 2x2 £ 20

x1 + x2 £ 13

x1 ³ 0

x2 ³ 0

 

rozwišzanie optymalne:

x1* = 6

x2* = 7

x3* = 5

x4* = 0

fmax = 53

 

Rozwišzanie

 

Interpretujemy uzyskane rozwišzanie:

ˇ          maksymalnie możemy uzyskać produkcję o wartoœci 53 jednostek pieniężnych,

ˇ          należy wtedy wytworzyć 6 jednostek wyrobu pierwszego,

ˇ          należy wytworzyć również 7 jednostek wyrobu drugiego,

ˇ          zasób pierwszy nie zostanie wykorzystany w całoœci (pozostanie 5 jednostek),

ˇ          zasób drugi zostanie wykorzystany  w całoœci (pozostanie 0 jednostek).

 

Należy przeanalizować na rysunku jakš rolę odegrało ograniczenie wielkoœci produkcji (trzeci warunek ograniczajšcy)? Jak wyglšdałoby rozwišzanie optymalne, gdyby było uzależnione wyłšcznie od ograniczeń zasobowych?

 

Uprzedzajšc analizę po-optymalnš zastanowić się na tym samym rysunku nad wrażliwoœciš rozwišzania optymalnego. Jakie sš następstwa dla rozwišzania wynikajšce ze zmiany cen (pierwszego albo drugiego wyrobu) lub ze zmiany ograniczenia zasobowego (pierwszego albo drugiego zasobu)?

 

 

Przykład nr 3

 

Okreœlić problemy zwišzane z tworzeniem pierwszego, dopuszczalnego rozwišzania bazowego (kiedy nie wystarczajš zmienne pomocnicze) oraz interpretację  degeneracji rozwišzania bazowego. Przypomnieć na czym polega alternatywne rozwišzanie (zerowe wskaŸniki optymalnoœci dla „niebazowych” kolumn/zmiennych w tablicy sympleksowej).

 

Wskazówki

 

Rozwišzywanie zadania ze zmiennymi sztucznymi. Należy wskazać sytuacje, w których muszš pojawić się zmienne sztuczne (w konwencji prymalnej metody sympleks) i wyjaœnić jak wpływa to na proces obliczeniowy.

 

Pokazać, że każde rozwišzanie z niezerowš wartoœciš  zmiennej sztucznej w bazie jest rozwišzaniem niedopuszczalnym. Dopiero wyeliminowanie zmiennych sztucznych oznacza, że badane rozwišzanie jest już rozwišzaniem wierzchołkowym zbioru rozwišzań dopuszczalnych.

 

Poniżej pomocniczy przykład:

 

funkcja kryterium:

min [ f(x) = x1 + x2 ]

 

warunki ograniczajšce:

2x1 + x2 ³ 8

x1 + 3x2 ³ 9

x1 ³ 0

x2 ³ 0

 

rozwišzanie optymalne (gdzie zmienne x5 i x6 sš zmiennymi sztucznymi):

x1* = 3

x2* = 2

x3* = 0

x4* = 0

x5* = 0

x6* = 0

fmin = 5

 

Wyjaœnić kiedy powstaje degeneracja, jak jš identyfikujemy w tablicy sympleksowej i jakie stwarza problemy dla procesu obliczeniowego?

 

Szczególnie interesujšce, w kontekœcie przyszłej interpretacji zmiennych dualnych, jest pokazanie, co na rysunku (w przestrzeni dwuwymiarowej) oznacza wystšpienie degeneracji dopuszczalnego rozwišzania bazowego. Poniżej proponowany przykład:

 

funkcja kryterium:

max [ f(x) = 10x1 + 4x2 ]

 

warunki ograniczajšce:

x1 + x2 £ 8

2x1 + 4x2 £ 16

x1 ³ 0

x2 ³ 0

 

rozwišzanie optymalne (w którym mamy mniej niż dwie dodatnie wartoœci zmiennych):

x1* = 8

x2* = 0

x3* = 0

x4* = 0

fmax = 80

 

 

6. DUALNOŒĆ I ZMIENNE DUALNE:

 

- symetryczne i niesymetryczne pary zadań dualnych,

- informacyjna zawartoœć tablicy sympleksowej,

- interpretacja zmiennych dualnych.

 

 

Przykład nr 1

 

Należy na bardzo różnych przykładach pokazać pary zadań dualnych i ich własnoœci, szczególnie w odniesieniu do zależnoœci występujšcej między funkcjami kryterium obu zadań. W odniesieniu do pary zadań „symetrycznych” zaleca się zbudowanie tablicy ułatwiajšcej zapamiętanie, w jaki sposób okreœlić zadanie dualne do podanego (współczynniki funkcji kryterium i prawych stron zamieniajš się miejscami, macierz A ulega transpozycji).

 

Podać analityczne sposoby dostosowywania zadań złożonych do schematu zadań symetrycznych (przekształcenia kierunku optymalizacji, nierównoœci lub równań występujšcych w zadaniu pierwotnym). Zapisać ogólnš tablicę przejœcia od dowolnego zadania pierwotnego do jego postaci dualnej.

 

 

Przykład nr 2

 

Odczytać zawartoœć tablicy sympleksowej w częœci zwišzanej z zadaniem dualnym. Może to zrobić korzystajšc ze znanego przykładu rozwišzanego wczeœniej metodš sympleks:

 

funkcja kryterium:

max [ f(x) = 5x1 + 25x2 ]

 

warunki ograniczajšce:

2x1 + x2 £ 12

2x1 + 2x2 £ 20

x1 ³ 0

x2 ³ 0

 

Wskazówki

 

Zadanie dualne (symetryczne) przedstawia się oczywiœcie następujšco:

 

funkcja kryterium:

min [ g(y) = 12y1 + 20y2 ]

 

warunki ograniczajšce:

2y1 + 2y2 ³ 5

y1 + 2y2 ³ 25

y1 ³ 0

y2 ³ 0

 

Wiersz wskaŸników optymalnoœci w ostatniej tablicy sympleksowej (dajšcej optymalne rozwišzanie zadania pierwotnego) składa się z następujšcych elementów: a01 = 20, a02 = 0, a03 = 0, a04 = 25/2. Sš to zarazem wartoœci zmiennych dualnych dla rozwišzania optymalnego minimalizujšcego g(y).

 

Wartoœci zmiennych decyzyjnych dla rozwišzania optymalnego zadania dualnego odnajdujemy w kolejnych kolumnach odpowiadajšcych pomocniczym zmiennym zadania pierwotnego, a w kolejnych kolumnach odpowiadajšcych zmiennym decyzyjnym zadania pierwotnego znajdujš się w wierszu wskaŸnikowym wartoœci zmiennych pomocniczych zadania dualnego.

 

Rozwišzanie

 

Rozwišzanie optymalne zadania dualnego:

y1* = 0

y2* = 25/2

y3* = 20

y4* = 0

gmin = 250

 

 

Przykład nr 3

 

W celu podania interpretacji zmiennych dualnych skorzystać z dwóch metod. Po pierwsze, zinterpretować znaczenia zmiennych, które jest w pełni czytelne dla zadania „działalnoœci produkcyjnej” (korzystamy ze sformułowanego i rozwišzanego już zadania – na przykład nr 2 powyżej). Po drugie, wyprowadzić wnioski z definicyjnej zależnoœci fmax = gmin.

 

Wskazówki

 

Nadajšc pełnš ekonomicznš interpretację zadaniu pierwotnemu, takiemu jak w powyższym przykładzie nr 2, pokazać, że zadanie dualne polega na minimalizacji kosztu zakupu obu rodzajów zasobów, a warunki ograniczajšce maja zapewnić minimalny poziom opłacalnoœci produkcji obu rodzaju wyrobów. W takim kontekœcie i-ta zmienna decyzyjna zadania dualnego jest „cenš” jednostki i-tego zasobu występujšcego w zadaniu pierwotnym.

 

Natomiast z zależnoœci f(x)max = g(y)min tworzymy następujšce rozwinięcie (w tym przypadku dla zadania o dwóch zmiennych decyzyjnych):

f(x)max = c1x1* + c2x2* = b1y1* + b2y2* = g(y)min.

Obliczajšc pochodne czšstkowe, najpierw po b1, a następnie po b2 otrzymujemy:

śf(x)max /śb1 = y1* oraz śf(x)max /śb2 = y2*.

 

Interpretujemy to w ten sposób, że i-ta zmienna dualna (rozwišzania optymalnego) jest miarš krańcowej produktywnoœci i-tego ograniczenia w zadaniu pierwotnym. Dokładniej: wskazuje jaki będzie marginalny przyrost optymalnej wartoœci funkcji zadania pierwotnego, jeżeli nastšpi marginalne powiększenie i-tego zasobu o jednostkę.  

 

Zmienne decyzyjne w zadaniu dualnym nazywane sš cenami dualnymi, cenami cieniami, cenami umownymi cenami przeliczeniowymi lub wewnętrznymi cenami rozrachunkowymi (funkcjonuje bardzo wiele nazw), ale tak czy inaczej dotyczš ceny jednostki danego zasobu. Umownoœć tej specyficznej ceny polega na tym, że jest to miarš wewnętrznej (u danego producenta) opłacalnoœci zakupu dodatkowej jednostki zasobu (w naszym przykładzie). Kluczowe jest stwierdzenie, czy „dokupienie” dodatkowej jednostki danego zasobu pozwoli uzyskać przyrost wartoœci funkcji w zadaniu pierwotnym, który ten zakup zrekompensuje.

 

Uogólniajšc powiemy, że i-ta cena dualna wskazuje na wrażliwoœć wartoœci funkcji kryterium zadania pierwotnego w reakcji na relaksację i-tego warunku ograniczajšcego: śf(x)max /śbi = yi*. Nie zawsze możliwe jest podanie oczywistej i czytelnej interpretacji ekonomicznej zmiennych dualnych, jeżeli zadanie pierwotne nie składa się z uporzšdkowanych i jednorodnych warunków ograniczajšcych, a zmienne decyzyjne sš zdefiniowane w skomplikowany sposób.

 

 

7. DUALNOŒĆ I DUALNA METODA SYMPLEKS:

 

- schemat blokowy metody dualnej,

- interpretacja uzyskiwanych wyników,

- wyznaczanie rozwišzań z warunków Dantziga‑Ordena.

 

 

Przykład nr 1

 

Wyjaœnić na czym polega dualna metoda sympleks i porównać jš z prymalnš metodš sympleks zwracajšc uwagę nie na aspekt obliczeniowy, ale na odmiennš logikę procesu poprawiania uzyskiwanych rozwišzań.

 

Wskazówki

 

O ile metoda prymalna rozpoczynała się od pierwszego, dopuszczalnego rozwišzania bazowego, to metoda dualna rozpoczyna się od pierwszego niedopuszczalnego rozwišzania bazowego z nieujemnymi wskaŸnikami optymalnoœci. Prymalna metoda metodycznie badała sšsiednie wierzchołki zbioru rozwišzań dopuszczalnych, aby zatrzymać się w tym z nich, który daje optymalnš wartoœć funkcji. Metoda dualna „porusza się” po pseudo-wierzchołkach, które leża poza obszarem dopuszczalnym, ale „optymalizujš” (nieujemnoœć) wskaŸniki optymalnoœci. Algorytm dualny kończy się, gdy nieujemnoœć wskaŸników zostaje zachowana, a dane rozwišzanie okazuje się również być rozwišzaniem dopuszczalnym.

 

Zadania rozwišzywane prymalnš metodš ze zmiennymi sztucznymi z reguły można rozwišzać metodš dualnš bez wprowadzania zmiennych sztucznych. Metoda dualna jest pomocna przy analizie post-optymalnej zadania PL w odniesieniu do zmian współczynników prawych stron .

 

 

Przykład nr 2

 

Rozwišzać przykładowe zadanie stosujšc dualna metodę sympleks:

 

min [ f(x) = x1 + x2 ]

 

2x1 + x2 ³ 8

2x1 + 3x2 ³ 12

x1 ³ 0

x2 ³ 0

 

Wskazówki

 

Zamiast stosować metodę prymalnš (ze zmiennymi sztucznymi) przekształcamy zadanie mnożšc oba bilansowe warunki ograniczajšce przez „-1”. Można wówczas okreœlić pierwsze rozwišzanie, które będzie niedopuszczalne (ujemna wartoœć zmiennych), ale wszystkie wskaŸniki optymalnoœci będš dla tego rozwišzania nieujemne. Od niego rozpoczyna się działanie algorytmu.

 

Rozwišzanie

 

Rozwišzanie optymalne

x1* = 3

x2* = 2

x3* = 0

x4* = 0

fmin = 5

 

 

Przykład nr 3

 

Zastosować podane na wykładzie warunki Dantziga-Ordena i wykorzystać je do wyznaczenia rozwišzania optymalnego zadania dualnego. Porównać je z warunkami komplementarnoœci klasycznych warunków Kuhna-Tuckera zadania programowania nieliniowego.

 

Wskazówki

 

Warunki Dantziga-Ordena sš specjalnym przypadkiem warunków optymalnoœci, które zostanš podane w ramach wykładu programowania nieliniowego (w zapisie macierzowym). Zapisane dalej warunki sš spełnione dla wektorów rozwišzań optymalnych x* oraz y*:

y*T(b – Ax*) = 0

(y*TA – cT)x* = 0.

 

W celu ułatwienia wyznaczania rozwišzania zadania dualnego proponuje się wykorzystywać poprzednio rozwišzane zadania. W trakcie zapisywania warunków i ich rozwišzywania należy podkreœlać zależnoœć, która łšczy i-tš zmiennš zadania prymalnego z i-tym warunkiem zadania dualnego oraz j-ty warunek zadania prymalnego z j-tš zmienna zadania dulanego.  

 

Rozwišzanie

 

Wykorzystać znany przykład:

 

funkcja kryterium:

max [ f(x) = 5x1 + 25x2 ]

warunki ograniczajšce:

2x1 + x2 £ 12

2x1 + 2x2 £ 20

x1 ³ 0

x2 ³ 0

 

otrzymujemy następujšce warunki D-O:

y1*(12 – 2x1* – x2*) = 0

y2*(20 – 2x1* – 2x2*) = 0

(2y1* + 2y2* – 5)x1* = 0

(y1* + 2y2* – 25)x2* = 0

 

po podstawieniu x* i poprawnym wnioskowaniu na temat komplementarnych warunków D-O wyznaczamy ostatecznie rozwišzanie optymalne zadania dualnego:

y1* = 0

y2* = 25/2

gmin = 250

 

 

8. ANALIZA POST-OPTYMALNA:

 

- zmiana współczynników funkcji kryterium,

- zastosowanie metody sympleks,

- zmiana prawych stron warunków ograniczajšcych,

- zastosowanie dualnej metody sympleks.

 

 

Przykład nr 1

 

Stosujšc prosty i rozwišzany już metodš sympleks przykład okreœlić konsekwencje zmian współczynników funkcji kryterium i współczynników prawych stron tworzšcych zadanie PL.

 

Wskazówki

 

Zmiana współczynników funkcji kryterium nie wymaga ponownego rozwišzania przykładu, ponieważ wprowadzenie zmiany w ostatniej tablicy sympleksowej pozwala sprawdzić czy zachowana została optymalnoœć uzyskanego wczeœniej rozwišzania (nieujemnoœć wskaŸników optymalnoœci). Gdyby optymalnoœć została utracona, to należy zastosować metodę sympleks do uzyskania nowego rozwišzania optymalnego.

 

Zmiana współczynników prawych stron również nie wymaga rozwišzywania przykładu od poczštku, ale pocišga za sobš koniecznoœć wyznaczenia macierzy przejœcia (znajduje się ona w tych kolumnach macierzy A, które w pierwszej tablicy tworzyły macierz jednostkowš). Dzięki macierzy przejœcia obliczamy nowy, przekształcony wektor prawych stron, a więc mamy możnoœć ustalić, czy została zachowana dopuszczalnoœć uzyskanego wczeœniej rozwišzania optymalnego. Gdyby dopuszczalnoœć został utracona, to należy zastosować dualna metodę sympleks w celu uzyskania nowego rozwišzania optymalnego.

 

 

Przykład nr 2

 

Na prostym przykładzie zadania PL należy przeprowadzić analizę post-optymalnš wyznaczajšc przedziały zmiennoœci współczynników funkcji kryterium, a następnie współczynników prawych stron.

 

Wskazówki

 

Dla współczynników funkcji kryterium rozwišzuje się odpowiednie nierównoœci wynikajšce z warunku nieujemnoœci wskaŸników optymalnoœci. Nierównoœci buduje się tyle, ile jest wskaŸników optymalnoœci z uwikłanym, badanym współczynnikiem funkcji kryterium.

 

Dla współczynników prawych stron buduje się nierównoœci, które majš zapewnić nieujemnoœć elementów przekształconego w tablicy sympleksowej nowego wektora prawych stron. Przekształcenia wektora identyfikujemy odtwarzajšc operacje elementarne dokonywane w celu uzyskania rozwišzania optymalnego. Nierównoœci do zbadania będzie tyle, ile z nich zawiera badany współczynnik prawej strony.

 

Uwaga: na tym elementarnym poziomie analizy możemy tylko badać skutki zmiany jednego współczynnika, a więc przy założeniu, że pozostałe nie ulegajš tymczasem zmianie. Analiza zmiany współczynników macierzy A nie jest zalecana z powodu ograniczonych możliwoœci przejrzystego przedstawienia tego problemu.

 

 

Przykład nr 3

 

Wyjaœnić zasady konstrukcji, sposobu postępowania i wykorzystania wyników w sytuacji, gdy do zadania PL wprowadzamy parametr o dajšcym się z góry przewidzieć przedziale zmiennoœci.

 

Wskazówki

 

Zadanie z parametrem można rozwišzywać metodš sympleks z rozbudowana tablicš sympleksowš, a efektem końcowym jest okreœlenie jakim wartoœciom parametru odpowiada szczególne rozwišzanie optymalne (wektor zmiennych decyzyjnych i optymalna wartoœć funkcji).

 

 

9. PAKIET KOMPUTEROWY „DECISION”

(zajęcia nr 1 w pracowni komputerowej):

- algorytm transportowy,

- problem przydziału,

- algorytm sympleks,

- analiza postoptymalna.

 

 

10. PAKIET KOMPUTEROWY „DECISION”

(zajęcia nr 2 w pracowni komputerowej):

- programowanie całkowitoliczbowe,

- programowanie wielokryterialne,

- wybrane problemy sieciowe.