Badania operacyjne to dyscyplina
Transkrypt
Badania operacyjne to dyscyplina
Wprowadzenie Badania operacyjne to dyscyplina, której zadaniem jest wspomaganie podejmowania trafnych decyzji. Badania operacyjne to dyscyplina naukowa związana z teorią decyzji, pozwalająca wyznaczyć metodę i rozwiązanie określonych problemów związanych z podejmowaniem optymalnych decyzji. Operations Research, Operational Research…. Metodologia badań operacyjnych sprowadza się do następujących etapów: I. II. III. IV. V. VI. VII. Formułowanie problemu decyzyjnego Budowa modelu matematycznego lub jego odpowiednika w wersji symulacyjnej Pozyskanie i przetwarzanie informacji niezbędnej do ustalenia parametrów modelu Procedura obliczeniowa lub postępowanie symulacyjne za pomocą wybranego algorytmu Analiza jakości rozwiązań modelu Weryfikacja modelu, sprawdzenie jego adekwatności Wdrożenie rozwiązania Podstawowym przedmiotem badań operacyjnych są decyzje. Z podjęciem decyzji wiąże się jakiś skutek – wynik decyzji, który zależy od zaistniałego stanu natury. Stan natury jest niezależny od woli decydenta. Klasyfikacja problemów decyzyjnych (związana z informacją dotyczącą stanów natury): I. II. III. IV. Podejmowanie decyzji w warunkach pewności (znany jest wynik każdej decyzji; znane są stany natury, które mogą wystąpić z pewnością. Problemem jest bardzo duża liczba możliwych decyzji, które należy przeanalizować). Np. Programowanie matematycznie. Podejmowanie decyzji w warunkach ryzyka (znane są możliwe stany natury, ale ich zaistnienie nie jest pewne; znane są prawdopodobieństwa zaistnienia poszczególnych stanów natury). Np. gry z naturą, analiza decyzyjna – kryterium Bayesa. Podejmowanie decyzji w warunkach niepewności (nie są znane prawdopodobieństwa zaistnienia możliwych stanów natury lub znane są tylko niektóre prawdopodobieństwa). Np. gry z naturą – kryterium Walda, Savage’a, optymistyczne, Hurwicza. Podejmowanie decyzji w warunkach konfliktu – interakcji (wynik decyzji zależy od decyzji innych uczestników procesu). Np. gry, teoria gier, gry dwuosobowe o sumie zerowej. PROGRAMOWANIE MATEMATYCZNE, PROGRAMOWANIE LINIOWE x - zmienna decyzyjna f ( x) → opt (max lub min) g i ( x) ≤ bi g j ( x) ≥ b j g k ( x) = bk 3 x1 + 4 x2 → max x1 + 2 x2 ≤ 10 x1 + x2 ≤ 8 x1 ≥ 0, x2 ≥ 0 Zbiór rozwiązań dopuszczalnych (feasible set) tworzą wszystkie wartości zmiennych decyzyjnych spełniające warunki ograniczające. Typowe zadania programowania liniowego: 1. 2. 3. 4. 5. 6. 7. 8. 9. Zagadnienie optymalnego wykorzystania urządzeń produkcyjnych Zagadnienie transportowe Zagadnienie optymalnego załadunku Zagadnienie optymalnego rozdziału jednorodnych zasobów Model optymalnego asortymentu produkcji Model optymalnego składu mieszanki (problem diety) Zagadnienie optymalnego rozdziału czynności Zagadnienie optymalnego rozkroju Wybór optymalnej struktury zasiewów AD. 8. Zakład ‘RURA’ ma wyprodukować 100 rur o długości 5,5 m i 150 o długości 7,5 m. Zakład ma do dyspozycji rury o długości 17 m. Jak należy pociąć rury, aby odpad był najmniejszy? Pozostałe rury długości 5,5 i 7,5 stanowią odpad. Zapisz odpowiedni program liniowy. Sposób cięcia I II III Zamówienie Liczba rur 5,5 m 3 1 0 100 Liczba rur 7,5 m 0 1 2 150 Odpad [m] 0,5 4 2 „Liczba cięć i-tym sposobem” Xi – liczba rur o długości 17 m, pocięta i-tym sposobem, i=1,2,3. 0,5 ⋅ x1 + 4 ⋅ x2 + 2 ⋅ x3 + 5,5 ⋅ (3 ⋅ x1 + x2 − 100) + 7,5 ⋅ ( x2 + 2 ⋅ x3 − 150) → min 3 ⋅ x1 + x2 ≥ 100 x2 + 2 ⋅ x3 ≥ 150 x1 , x2 , x3 ≥ 0; x1 , x2 , x3 ∈ C AD. 2. Przedsiębiorstwo przewozowe ‘ STAR ‘ zajmuje się dostarczaniem lodów do sklepów. Dane dotyczące kosztów przewozu jednostki z magazynu do sklepu oraz wielkości zapasów i zapotrzebowania zamieszczono w tabeli. Określić plan przewozu minimalizujący koszty. Zagadnienie transportowe zamknięte (popyt = podaż) Xij – liczba jednostek (np. kartonów) lodów dostarczonych do i-tego sklepu z j-tego magazynu; i=1,2,3,4,5; j=1,2,3,4. 50 ⋅ x11 + 70 ⋅ x12 + 35 ⋅ x13 + 100 ⋅ x14 + + 60 ⋅ x21 + 30 ⋅ x22 + 20 ⋅ x23 + 45 ⋅ x24 + + 70 ⋅ x31 + 55 ⋅ x32 + 75 ⋅ x33 + 80 ⋅ x34 + + 100 ⋅ x41 + 130 ⋅ x42 + 150 ⋅ x43 + 110 ⋅ x44 + + 75 ⋅ x51 + 50 ⋅ x52 + 60 ⋅ x53 + 85 ⋅ x54 → min 4 ∑x j =1 1j 4 2j = 100 3j = 300 ∑x j =1 4 ∑x j =1 4 4j = 1000 5j = 200 ∑x j =1 4 ∑x j =1 5 ∑x i =1 i1 5 ∑x i =1 i2 5 ∑x i =1 i3 5 ∑x i =1 = 500 i4 = 300 = 700 = 600 = 500 xij ≥ 0; xij ∈ C DUALNOŚĆ W PROGRAMOWANIU LINIOWYM Program liniowy (PL) – program pierwotny c1 ⋅ x1 + c2 ⋅ x2 + ... + cn ⋅ xn → max a11 ⋅ x1 + a12 ⋅ x2 + ... + a1n ⋅ xn ≤ b1 ... ai1 ⋅ x1 + ai 2 ⋅ x2 + ... + ain ⋅ xn ≤ bi cT x → max Ax ≤ b x≥0 ... am1 ⋅ x1 + am 2 ⋅ x2 + ... + amn ⋅ xn ≤ bm cT x → min -> Ax ≥ b x≥0 x1 , x2 ,..., xn ≥ 0 Każdemu programowi PL odpowiada program dualny. Z każdym programem liniowym sprzężony jest inny program, zwany programem dualnym. I. II. III. IV. V. VI. W programie dualnym jest tyle zmiennych ile ograniczeń w programie pierwotnym. Każdemu ograniczeniu w programie pierwotnym odpowiada zmienna dualna. W programie dualnym jest tyle ograniczeń ile zmiennych w programie pierwotnym. Każdej zmiennej w programie pierwotnym odpowiada ograniczenie w programie dualnym. Wagi funkcji celu programu pierwotnego są wyrazami wolnymi w programie dualnym. Wyrazy wolne programu pierwotnego są wagami funkcji celu w programie dualnym. Macierz współczynników programu dualnego jest transpozycją macierzy współczynników programu pierwotnego. Jeżeli program pierwotny jest na maksimum, to program dualny na minimum. I odwrotnie. Program pierwotny Program dualny x - zmienna pierwotna y - zmienna dualna c x → max T Ax ≤ b T <-> b y → min x≥0 AT y ≥ c y≥0 Program pierwotny Program dualny x - zmienna pierwotna y - zmienna dualna c x → min T Ax ≥ b x≥0 T <-> b y → max AT y ≤ c y≥0 1. Jeżeli i-ty warunek w PL jest równością, to odpowiadająca mu zmienna yi nie ma ograniczeń. 2. Jeżeli i-ty warunek w PL jest nietypową nierównością, to odpowiadająca mu zmienna dualna jest mniejsza lub równa zero yi ≤ 0 . 3. Jeżeli w PL na zmienną nie nałożono ograniczeń, to odpowiadający jej warunek (ograniczenie) dualny jest równością. 4. Jeżeli w PL zmienna jest mniejsza lub równa 0, to odpowiadający jej warunek dualny jest nietypową nierównością. I. Dla każdego rozwiązania dopuszczalnego (PL - max i PD - min) prawdziwa jest zależność: c T x ≤ bT y . Dla rozwiązania optymalnego (x* i y*) prawdziwa jest zależność: c T x* = bT y * . II. Jeżeli i-ty warunek PD w rozwiązaniu optymalnym jest spełniony z nierównością (ostro), to odpowiadająca mu zmienna w PL, w rozwiązaniu optymalnym przyjmuje wartość 0. Zakład ‘RURA’ ma wyprodukować 100 rur o długości 5,5 m i 150 o długości 7,5 m. Zakład ma do dyspozycji rury o długości 17 m. Jak należy pociąć rury, aby odpad był najmniejszy? Sposób cięcia I II III Zamówienie Liczba rur 5,5 m 3 1 0 100 Liczba rur 7,5 m 0 1 2 150 Xi – liczba rur o długości 17 m, pocięta i-tym sposobem, i=1,2,3. 0,5 ⋅ x1 + 4 ⋅ x2 + 2 ⋅ x3 → min 3 ⋅ x1 + x2 ≥ 100 x2 + 2 ⋅ x3 ≥ 150 x1 , x2 , x3 ≥ 0; x1 , x2 , x3 ∈ C Odpad [m] 0,5 4 2 Rolnik posiada dwa pola o powierzchniach odpowiednio 15 ha i 30 ha. W związku ze specjalizacją produkcji zamierza wprowadzić jedynie trzy uprawy: szparagi, kapustę pekińską oraz orzeszki ziemne. W zależności od rodzaju uprawy zmienia się koszt uprawy jednego hektara. Dla szparagów wynosi on 1500 zł, dla kapusty 1000 zł, dla orzeszków 1200 zł. Na wydajność z hektara ma wpływ pogoda. W przypadku pogody umiarkowanej wydajność kształtuje się na poziomie 2 q/ha, 3 q/ha i 2,5 q/ha odpowiednio dla szparagów, kapusty, orzeszków stanowiąc jednocześnie poziom odniesienia dla pozostałych wydajności. W przypadku wystąpienia upałów wydajność zmniejsza się o 15%, w przypadku deszczy wydajność spada do 65% założonych wydajności dla umiarkowanej pogody. Cena, za jaką rolnik sprzedaje swoje uprawy jest stała, niezależna od pogody i wynosi odpowiednio dla szparagów, kapusty, orzeszków :100 zł/q, 80 zł/q i 70 zł/q. Rolnik uznaje, że opłaca mu się uprawiać ziemię, kiedy jego oczekiwany zysk jest nie mniejszy niż 10000 zł. Długoterminowa prognoza zakłada, że deszcze wystąpią z prawdopodobieństwem 0,15, upały – 0,35 ,a pogoda umiarkowana – 0,5. Zapisać program linowy pomocny w podjęciu decyzji o uprawach. Xi – wielkość powierzchni uprawy i-tego płodu rolnego (i=1, szparagi; i=2, kapusta pekińska; i=3, orzeszki ziemne) [ha] (2 ⋅ 0,5 + (2 − 0,15 ⋅ 2) ⋅ 0,35 + (0,65 ⋅ 2) ⋅ 0,15) ⋅ X 1 ⋅100 − 1500 ⋅ X 1 + + (3 ⋅ 0,5 + (3 − 0,15 ⋅ 3) ⋅ 0,35 + (0,65 ⋅ 3) ⋅ 0,15) ⋅ X 2 ⋅ 80 − 1000 ⋅ X 2 + + (2,5 ⋅ 0,5 + (2,5 − 0,15 ⋅ 2,5) ⋅ 0,35 + (0,65 ⋅ 3) ⋅ 0,15) ⋅ X 3 ⋅ 70 − 1200 ⋅ X 3 − 10000 → max X 1 + X 2 + X 3 ≤ 15 + 30 X1, X 2 , X 3 ≥ 0 Wartość funkcji celu powinna być nieujemna, aby rolnik podjął decyzję o podjęciu uprawy. Rolnik nie powinien podejmować się uprawy. PROGRAMOWANIE DYNAMICZNE Jest jedną z metod wspomagania decyzji wieloetapowych. Do rozwiązywania wieloetapowych problemów decyzyjnych. Richard Bellman – opracował metodę programowania dynamicznego. Oznaczenia: di – decyzja, którą należy podjąć na i-tym etapie; si – stan przed podjęciem decyzji di; stan na początku i-tego etapu; si+1 – stan po podjęciu decyzji di; stan na końcu i-tego etapu; Di – zbiór decyzji dopuszczalnych w i-tym etapie; Si – zbiór stanów, które mogą wystąpić na początku i-tego etapu. Ciąg decyzji {d1, d2, …, dn} to strategia. F(d1, d2, …, dn, s1, s2, …, sn) – globalna funkcja kryterium. Wymogiem stosowania programowania dynamicznego jest własność Markowa tzn. decyzje optymalne na pewnym etapie procesu, nie zależą od wcześniejszych decyzji, jedynie od stanu wynikającego z ich podjęcia. Z własności Markowa wynika zasada optymalności Bellmana, na której oparto metodę programowania dynamicznego. Globalna funkcja kryterium powinna być dekomponowana na etapy np.: n F (d1 ,..., d n , s1 ,..., sn ) = ∑ f i (d i , si ) . i =1 Wtedy poszukujemy optymalnej strategii, dla której funkcja globalna osiąga np. maksimum zgodnie z zasadą optymalności Bellmana. Zasada ta opiera się o tzw. ciąg równań funkcyjnych Bellmana. Dla rozważanego przykładu, ciąg ten ma następującą postać: g n ( sn ) := max{ f n (d n , sn )} d n∈Dn sn∈S n g k ( sk ) := max{ f k (d k , sk ) + g k +1 ( sk +1 )} k = 1,2,..., n − 1 d k ∈Dk sk ∈S k Problem 1. Pewna firma chce opracować program produkcji elementów na kolejne 3 miesiące. Znany jest popyt na te elementy wynoszący 3 elementy w każdym z kolejnych trzech miesięcy. Firma może produkować maksymalnie 5 takich elementów miesięcznie. Koszty produkcji zależne od liczby wyprodukowanych elementów podano w tabeli: Liczba elementów Koszty w [jp] 0 0 1 15 2 3 4 17 19 21 5 23 Jednostkowy koszt przechowywania zapasów jest stały w okresie planistycznym i wynosi 1 jednostkę pieniężną (koszty magazynowania w i-tym miesiącu obliczamy według stanu na koniec miesiąca). Maksymalnie magazyn może pomieścić 4 elementy. W chwili obecnej w magazynie znajdują się 2 elementy. Pod koniec trzeciego miesiąca magazyn ma pozostać pusty. Rozwiązanie. Przyjmijmy oznaczenia dla i=1,2,3: - poziom zapasów na początku i-tego miesiąca, si pi - popyt w i-tym miesiącu, hi(j) - koszt magazynowania j elementów (0 ≤ j ≤ 4) w i-tym miesiącu, Ki(xi) - koszt produkcji xi elementów (0 ≤ xi ≤ 5) w i-tym miesiącu, fi(xi,si) - koszty produkcji i magazynowania w i-tym miesiącu. Zauważmy, że fi(xi,si) = Ki(xi) + hi(si+1), gdzie 0 ≤ si+1 = si + xi – pi ≤ 4, i=1,2,3 oraz s4 = 0. Łączne koszty magazynowania i produkcji wynoszą f1(x1,s1) + f2(x2,s2) + f3(x3,s3). Koszty te mają być najmniejsze. Korzystając z równań funkcyjnych Bellmana możemy zapisać: Krok 1. (miesiąc 3) g3(s3) = min (f3(x3,s3)) dla 0 ≤ s3 ≤ 4 0 ≤ x3 = p3–s3 Krok 2. (miesiąc 2) g2(s2) = min (f2(x2,s2) + g3(s3)) dla 0 ≤ s2 ≤ 4 p2-s2 ≤ x2 ≤ 4+p2–s2 Krok 3. (miesiąc 1) g1(s1) = min (f1(x1,s1) + g2(s2)) dla s1=2. p1–s1 ≤ x1 ≤ 4+p1–s1 Z treści zadania wynika, że s1 = 2, p1 = p2 = p3 = 3 s4 = s3 + x3 – 3 = 0 stąd x3 = 3 – s3. Mamy zatem: Krok 1. (miesiąc 3) g3(s3) = min f3(x3,s3) 0 ≤ x3=3–s3 s3 x3 s4 f3(x3,s3) g3(s3) 0 3 0 19+0 19 1 2 0 17+0 17 2 1 0 15+0 15 3 0 0 0+0 0 Krok 2. (miesiąc 2) g2(s2) = min (f2(x2,s2)+g3(s3)) dla 0 ≤ s2 ≤ 4 3–s2 ≤ x2 ≤ 7–s2 s2 x2 s3 f2(x2,s2) g3(s3) f2(x2,s2)+g3(s3) 0 3 0 19+0 19 38 0 4 1 21+1 17 39 0 5 2 23+2 15 40 1 2 0 17+0 19 36 1 3 1 19+1 17 37 1 4 2 21+2 15 38 1 5 3 23+3 0 26 2 1 0 15+0 19 34 2 2 1 17+1 17 35 2 3 2 19+2 15 36 2 4 3 21+3 0 24 3 0 0 0 19 19 3 1 1 15+1 17 33 3 2 2 17+2 15 34 3 3 3 19+3 0 21 4 0 1 0+1 17 18 4 1 2 15+1 15 32 4 2 3 17+3 0 20 g2(s2) 38 26 24 19 18 Krok 3 (miesiąc 1) g1(s1) = min (f1(x1,2)+g2(s2)) = min (f1(x1,2)+g2(s2)) 1≤ x1 ≤ 5 3-2≤ x1 ≤ 4+3-2 s1 2 2 2 2 2 x1 1 2 3 4 5 s2 0 1 2 3 4 f1(x1,s1) 15+0 17+1 19+2 21+3 23+4 g2(s2) 38 26 24 19 18 f1(x1,s1)+g2(s2) 53 44 45 43 45 g1(s1) 43 Optymalna strategia ma postać x1 = 4, x2 = 0, x3 = 3. Koszty poniesione przez firmę są wtedy najniższe i wynoszą 43 jp. Problem 2. Rozdzielić produkcję energii 100 MWh między dwie elektrownie tak, aby koszty zużycia paliwa były najniższe. Koszty opisane są funkcją: F ( x, y ) = 2 ⋅ (− x + 1) 2 + 3 ⋅ ( y − 3) 2 , gdzie x oznacza zużycie paliwa w elektrowni I, y zużycie paliwa w elektrowni II. Wiadomo, że z tony paliwa elektrownia I uzyskuje 3 MWh, a elektrownia II 2 MWh. 2 Etap 1. (Elektrownia 1). f1 (d1 , s1 ) = 2 ⋅ (− x + 1) , 0 <=d1 <=100, x = Etap 2. f 2 (d 2 , s2 ) = 3 ⋅ ( y − 3) 2 , 0 <=d2 <=100, y = d1 d ⇒ f1 (d1 , s1 ) = 2 ⋅ (− 1 + 1) 2 3 3 d2 d ⇒ f 2 (d 2 , s2 = 100 − d1 ) = 3 ⋅ ( 2 − 3) 2 . 2 2 Krok 1. (Etap2) g 2 ( s2 ) = min{3 ⋅ ( d 2 = s2 d2 S − 3) 2 } = 3 ⋅ ( 2 − 3) 2 . 2 2 Krok 2. (Etap 1) g1 ( s1 ) = min {2 ⋅ (− 0≤ d1 ≤100 100 − d1 d1 S d + 1) 2 + 3 ⋅ ( 2 − 3) 2 } = min {2 ⋅ (− 1 + 1) 2 + 3 ⋅ ( − 3) 2 } = min F (d1 ) 0≤ d1 ≤100 0≤ d1 ≤100 3 2 3 2 ∂F d 1 100 − d1 1 35 419 = 4 ⋅ (− 1 + 1) ⋅ (− ) + 6 ⋅ ( − 3) ⋅ (− ) = ... = ⋅ d1 − ∂d1 3 3 2 2 18 3 ∂ 2 F 35 = >0 ∂d12 18 = 0 ⇒ d1 ≈ 71,83 Aby koszty zużycia paliwa były najniższe należy przydzielić pierwszej elektrowni produkcję 71,83 MWh energii, a elektrowni drugiej 28,17 MWh. METODA SIMPLEKS 3 x1 + 4 x2 → max x1 + 2 x2 ≤ 10 x1 + x2 ≤ 8 x1 ≥ 0, x2 ≥ 0 Postać bazowa programu liniowego – wszystkie ograniczenia są równościami, nierówności przekształca się za pomocą zmiennych bilansujących. 3 x1 + 4 x2 + 0 x3 + 0 x4 + → max x1 + 2 x2 + x3 x1 + x2 = 10 + x4 = 8 x1 ≥ 0, x2 ≥ 0 Na tej podstawie buduje się tablicę simpleksową cj 3 4 0 0 x3 cB 0 x1 1 x2 2 x3 1 x4 0 10 x4 0 1 1 0 1 8 zj=cBTaij 0 0 0 0 0 dj=cj-zj 3 4 0 0 Baza b bi/aik Jeżeli wartości wszystkich wskaźników optymalności (dj) są niedodatnie, to rozpatrywane rozwiązanie jest optymalne (dla funkcji minimalizowane nieujemne). W przeciwnym wypadku otrzymane rozwiązanie można poprawić. Ze wskaźników optymalności wybieramy największy (dla min najmniejszy) – odpowiadająca mu zmienna wchodzi do bazy. Jeśli jest kilka wartości maksymalnych (minimalnych) to wprowadzamy dowolną odpowiadającą im zmienną. cj 3 4 0 0 x3 cB 0 x1 1 x2 2 x3 1 x4 0 10 x4 0 1 1 0 1 8 zj=cBTaij 0 0 0 0 0 dj=cj-zj 3 4 0 0 Baza b bi/aik Oblicza się ilorazy kolejnych wyrazów wolny (kolumna b) przez odpowiadające im dodatnie elementy kolumny zmiennej wprowadzanej do bazy. Bazę opuszcza zmienna, dla której iloraz jest najmniejszy 3 4 0 0 b x3 cB 0 x1 1 x2 2 x3 1 x4 0 10 5 x4 0 1 1 0 1 8 8 zj=cBTaij 0 0 0 0 0 dj=cj-zj 3 4 0 0 cj Baza bi/aik Przejście do kolejnego rozwiązania bazowego. Elementy tablicy simpleksowej są przekształcane za pomocą eliminacji Jordana-Gaussa (operacje elementarne na macierzach) Aby otrzymać macierz jednostkową z kolumn zmiennych bazowych, pierwszy wiersz dzielimy przez 2, a następnie od drugiego wiersza odejmujemy pierwszy podzielony przez 2. Dalej wypełniamy tabelę uzupełniając wartości… 3 4 0 0 x2 cB 4 x1 0,5 x2 1 x3 0,5 x4 0 5 x4 0 0,5 0 -0,5 1 3 zj=cBTaij 2 4 2 0 20 dj=cj-zj 1 0 -2 0 cj Baza b bi/aik Otrzymujemy kolejne rozwiązanie bazowe x2=5, x4=3 , pozostałe zmienne poza bazą równają się 0. Wartość funkcji celu 20. Ponieważ nie wszystkie wskaźniki są niedodatnie, to można jeszcze poprawić rozwiązanie. cj Baza 3 4 0 0 x1 b bi/aik x3 0,5 x4 0 5 10 6 x2 cB 4 0,5 x2 1 x4 0 0,5 0 -0,5 1 3 zj=cBTaij 2 4 2 0 20 dj=cj-zj 1 0 -2 0 Zmienna x1 wchodzi do bazy, a zmienna x4 opuszcza bazę. Aby otrzymać macierz jednostkową z kolumn zmiennych bazowych, mnożymy drugi wiersz razy 2 i odejmujemy od pierwszego wiersza drugi (wartości przed mnożeniem) . Dalej wypełniamy tabelę uzupełniając wartości… 3 4 0 0 x2 cB 4 x1 0 x2 1 x3 1 x4 -1 2 x1 3 1 0 -1 2 6 zj=cBTaij 3 4 1 2 26 dj=cj-zj 0 0 -1 -2 cj Baza b bi/aik Wszystkie wskaźniki optymalności są niedodatnie, więc otrzymane rozwiązanie jest rozwiązaniem optymalnym, x2=2, x1=6, wartość funkcji celu 26. ZMIENNE SZTUCZNE, minimalizacja, rozwiązanie alternatywne 3x1 + 2 x2 + 2 x3 → min x1 + x2 + x3 ≥ 15 x1 + 2 x2 + x3 ≤ 40 2 x1 + x2 + x3 = 20 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 Dla problemów minimalizacji rozwiązanie można poprawić, jeśli występuje przynajmniej jeden nieujemny wskaźnik optymalności. W celu zbudowania postaci bazowej programu należy: 1. od lewej strony ograniczeń typu „≥” odjąć zmienną bilansującą oraz dodać zmienną sztuczną (sk), 2. do lewej ograniczeń typu „=” dodać sztuczną zmienną, 3. (M – metoda) współczynniki w funkcji celu przy zmiennych sztucznych są bardzo dużymi wartościami dodatnimi w przypadku minimalizacji (M) lub ujemnymi w przypadku maksymalizacji (-M), 3x1 + 2 x2 + 2 x3 + 0 x4 + 0 x5 + Mx6 + Mx7 → min x1 + x2 + x3 − x4 + x6 = 15 x1 + 2 x2 + x3 + x5 = 40 2 x1 + x2 + x3 + x7 = 20 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 Do pierwszej tablicy simpleksowej wchodzą zmienne sztuczne, a gdzie nie występują tam zmienne bilansujące. cj 3 2 2 0 0 M M b bi/aik 0 0 15 40 15 0 1 20 10 0 M M 35M M 0 0 0 2 0 0 M M Baza cB x1 x2 x3 x4 x5 x6 x7 x6 x5 M 0 1 1 1 2 1 1 -1 0 0 1 1 0 x7 M 2 1 1 0 0 zj = cBTaij 3M 2M 2M -M dj=cj-zj 3-3M 2-2M 2-2M 3 2 cj b bi/aik -0,5 -0,5 5 30 10 20 0,5 10 20 Baza cB x1 x2 x3 x4 x5 x6 x7 x6 x5 M 0 0 0 0,5 1,5 0,5 0,5 -1 0 0 1 1 0 x1 3 1 0,5 0,5 0 0 0 zj = cBTaij 3 0,5M+1,5 0,5M+1,5 -M 0 M -0,5M+1,5 5M+30 dj=cj-zj 0 0,5-0,5M 0,5-0,5M M 0 0 1,5M-1,5 cj 40 3 2 2 0 0 M M b Baza cB x1 x2 x3 x4 x5 x6 x7 x2 x5 2 0 0 0 1 0 1 -1 -2 3 0 1 2 -3 -1 1 10 15 x1 3 1 0 0 1 0 -1 1 5 zj = cBTaij 3 2 2 -1 0 1 1 35 dj=cj-zj 0 0 0 1 0 M-1 M-1 bi/aik Wszystkie wskaźniki optymalności są nieujemne, rozwiązania nie można już poprawić. Wartość funkcji celu wynosi 35, x1=5, x2=10, x3=0. Wskaźnik optymalności dla zmiennej niebazowej x3 wynosi 0, oznacza to że, wprowadzenie jej do bazy nie poprawi funkcji celu, ale też nie pogorszy. Wskazuje to na rozwiązanie alternatywne. cj 3 2 2 0 0 M M b bi/aik -1 1 10 15 10 -1 1 5 0 1 1 35 1 0 M-1 M-1 2 0 0 M M Baza cB x1 x2 x3 x4 x5 x6 x7 x3 x5 2 0 0 0 1 0 1 -1 -2 3 0 1 2 -3 x1 3 1 0 0 1 0 zj = cBTaij 3 2 2 -1 dj=cj-zj 0 0 0 cj 3 2 b Baza cB x1 x2 x3 x4 x5 x6 x7 x3 x5 2 0 0 0 1 1 1 0 -2 1 0 1 2 -1 -1 0 10 25 x1 3 1 0 0 1 0 -1 1 5 zj = cBTaij 3 2 2 -1 0 1 1 35 dj=cj-zj 0 0 0 1 0 M-1 M-1 bi/aik Wartość funkcji celu wynosi 35, x1=5, x2=0, x3=10. Rozwiązanie alternatywne wskazuje, że dla dwóch wierzchołków (simpleksa) zbioru rozwiązań dopuszczalnych wartość funkcji celu przyjmuje wartość optymalną. Oznacza to, że zbiór rozwiązań optymalnych jest odcinkiem łączącym te dwa wierzchołki. W badanym przypadku będzie to zbiór: {x1 , x2 , x3 | 2 x1 + x2 + x3 = 20 ∧ x1 = 5 ∧ x2 ∈ 0,10 } . Rozwiązanie x1=5, x2=5, x3=5 jest więc również rozwiązaniem optymalnym. Brak ograniczeń na nieujemność zmiennych, zmienne niedodatnie, nieograniczony zbiór rozwiązań dopuszczalnych, zagadnienie sprzeczne • Jeżeli na k-tą zmienną nie nałożono ograniczeń na nieujemność, to należy dokonać przekształcenia tej zmiennej w dwie inne: xk = xk − xk , xk ≥ 0, xk ≥ 0 . • Dla zmiennej niedodatniej zamieniamy znak w programie, wtedy zmienna staje się nieujemna. Przy nieograniczonym zbiorze rozwiązań dopuszczalnych w tablicy simpleksowej dla wprowadzanej zmiennej wszystkie wartości w kolumnie rozwiązującej [aik] są niedodatnie. Nie można obliczyć żadnego ilorazu bi/aik. Zmienna ta może więc zwiększać lub zmniejszać wartość funkcji celu w nieskończoność. Zagadnienie sprzeczne – w rozwiązaniu optymalnym, zmienna sztuczna jest niezerową zmienną bazową. • • Rozwiązanie zdegenerowane, metoda perturbacji