Wybrane elementy badań operacyjnych

Podobne dokumenty
O MACIERZACH I UKŁADACH RÓWNAŃ

ZAGADNIENIE TRANSPORTOWE

Układy równań i nierówności liniowych

c j x x

3. Macierze i Układy Równań Liniowych

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

ZAGADNIENIE TRANSPORTOWE(ZT)

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

1 Układy równań liniowych

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych

Programowanie liniowe metoda sympleks

Programowanie liniowe

Metoda simpleks. Gliwice

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozwiązanie Ad 1. Model zadania jest następujący:

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Programowanie liniowe. Tadeusz Trzaskalik

Programowanie liniowe metoda sympleks

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Spis treści. Koszalin 2006 [BADANIA OPERACYJNE PROGRAMOWANIE LINIOWE]

2. Układy równań liniowych

Metoda eliminacji Gaussa

Programowanie liniowe metoda sympleks

BADANIA OPERACYJNE Zagadnienie transportowe

Rozdział 1 PROGRAMOWANIE LINIOWE

Wykład z modelowania matematycznego. Zagadnienie transportowe.

ZAGADNIENIE TRANSPORTOWE (część 1)

Definicja problemu programowania matematycznego

Notatki do tematu Metody poszukiwania rozwiązań jednokryterialnych problemów decyzyjnych metody dla zagadnień liniowego programowania matematycznego

Macierze. Rozdział Działania na macierzach

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Programowanie liniowe

, A T = A + B = [a ij + b ij ].

( 1) ( ) 16 Warunki brzegowe [WB] Funkcja celu [FC] Ograniczenia [O] b i ( 2) ( ) ( ) 14. FC max. Kompletna postać bazowa

Elementy Modelowania Matematycznego

3. Wykład Układy równań liniowych.

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

Układy równań liniowych. Ax = b (1)

1 Macierz odwrotna metoda operacji elementarnych

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Rozwiązanie zadania 1. Krok Tym razem naszym celem jest, nie tak, jak w przypadku typowego zadania transportowego

Model przepływów międzygałęziowych (model Leontiewa)

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Elementy Modelowania Matematycznego

Programowanie liniowe

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

0 + 0 = 0, = 1, = 1, = 0.

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

FUNKCJA LINIOWA - WYKRES

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Układy równań liniowych

Zagadnienie transportowe

Programowanie celowe #1

celu przyjmijmy: min x 0 = n t Zadanie transportowe nazywamy zbilansowanym gdy podaż = popyt, czyli n

UKŁADY RÓWNAŃ LINIOWYCH

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Wykład 7 Macierze i wyznaczniki

BADANIA OPERACYJNE pytania kontrolne

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

Ekonometria - ćwiczenia 10

WYRAŻENIA ALGEBRAICZNE

13 Układy równań liniowych

1 Macierze i wyznaczniki

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Metody numeryczne Wykład 4

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Rozwiązywanie problemów z użyciem Solvera programu Excel

4. PROGRAMOWANIE LINIOWE

3. FUNKCJA LINIOWA. gdzie ; ół,.

Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli?

Układy równań liniowych

Rozwiązywanie programów matematycznych

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

A. Kasperski, M. Kulej Badania Operacyjne- programowanie liniowe 1

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

1 Zbiory i działania na zbiorach.

Algorytm simplex i dualność

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

BADANIA OPERACYJNE Zagadnienie transportowe. dr Adam Sojda

Przykład 2 układ o rozwiązaniu z parametrami. Rozwiążemy następujący układ równań:

Wprowadzenie do badań operacyjnych - wykład 2 i 3

Standardowe zadanie programowania liniowego. Gliwice 1

Przykład wykorzystania dodatku SOLVER 1 w arkuszu Excel do rozwiązywania zadań programowania matematycznego

MACIERZE I WYZNACZNIKI

Algebra liniowa. Macierze i układy równań liniowych

Microsoft EXCEL SOLVER

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

Transkrypt:

Wybrane elementy badań operacyjnych 1

Przykład 1. GWOŹDZIE. Pewna fabryczka może produkować dwa gatunki gwoździ II i I. Do wyprodukowania tony gwoździ II gatunku potrzeba 1,2 tony stali oraz 1 roboczogodzinę pracy, do wyprodukowania 1 tony I gatunku gwoździ potrzeba 1,3 tony stali oraz 1,2 roboczogodziny. Minimalne dostawy wynoszą dla drugiego gatunku 5 ton, a dla pierwszego 3 ton. Zysk z 1 tony II gatunku wynosi 2 złotych, a zysk z jednej tony I gatunku 25 złotych. Tygodniowe zasoby stali wynoszą 18 ton, a tygodniowa moc przerobowa 2 roboczogodzin. Ile ton gwoździ I i II gatunku należy wyprodukować w ciągu tygodnia, aby zysk był największy. MODEL MATEMATYCZNY x 1 - tygodniowa produkcja gwoździ I gatunku x 2 - tygodniowa produkcja gwoździ II gatunku FUNKCJA CELU (ZYSKU) OGRANICZENIA f = 25x 1 + 2x 2 x 1 3 x 2 5 1, 3x 1 + 1, 2x 2 18 1, 2x 1 + x 2 2. Przykład 2. POŚREDNIK (ZAGADNIENIE TRANS- PORTOWE) Pewien pośrednik kupuje ten sam towar u 2 dostawców i dostarcza go trzem odbiorcom. Znamy cenę zakupu u każdego dostawcy i cenę zbytu u każdego odbiorcy. Znamy też maksymalne i minimalne ilości towaru sprzedawanego przez poszczególnych dostawców i kupowanego przez poszczególnych odbiorców. Zbuduj model matematyczny. 2

MODEL 1, bardziej skomplikowany, ale narzucający się Wprowadzamy oznaczenia: i - numer dostawcy, i = 1, 2 j - numer odbiorcy, j = 1, 2, 3 a i - minimalna ilość towaru sprzedawanego przez i-tego dostawcę b i - maksymalna ilość towaru sprzedawanego przez i-tego dostawcę c j - minimalna ilość towaru kupowanego przez j-tego odbiorcę d j - maksymalna ilość towaru kupowanego przez j-tego odbiorcę k i - cena zakupu towaru u i-tego dostawcy p j - cena sprzedaży towaru j-temu odbiorcy a ij - koszt jednostkowy transportu od i-tego dostawcy do j-tego odbiorcy ZMIENNE DECYZYJNE z i - ilość towaru zakupionego u i-tego dostawcy y j - ilość towaru sprzedanego j-temu odbiorcy x ij - ilość towaru przewiezionego od i-tego dostawcy do j-tego odbiorcy Razem 11 zmiennych. FUNKCJA CELU (ZYSK) 3 2 2 3 f = p j y j k i z i a ij x ij. j=1 i=1 i=1 j=1 WARUNKI OGRANICZAJĄCE 3 x ij = z i, i = 1, 2 ( ) j=1 2 x ij = y j, j = 1, 2, 3 ( ) i=1 a i z i b i, i = 1, 2 c j y j d j, j = 1, 2, 3 3

Razem 21 warunków! z i, i = 1, 2, y j, j = 1, 2, 3, x ij, i = 1, 2; j = 1, 2, 3. D y g r e s j a: ile byłoby warunków przy 3 dostawcach i 3 odbiorcach, a ile przy 4 odbiorcach i 4 dostawcach? Okazuje się, że można ten model znacznie uprościć i wykorzystując równości ( ) i ( ) oprzeć się na tylko 6 zmiennych decyzyjnych x ij. Wprowadzimy mianowicie nowe parametry u ij = p j k i a ij. Wtedy funkcja celu wygląda następująco 2 3 f = u ij x ij, i=1 j=1 a warunki ograniczające Razem już tylko 11 warunków. 3 a i x ij b i, i = 1, 2 j=1 2 c j x ij d j, j = 1, 2, 3 i=1 x ij, i = 1, 2; j = 1, 2, 3. Zauważmy, że współczynniki e ij odpowiadają za koszty transportu. Jeśli ograniczymy się tylko do nich (zakładając, że ceny u wszystkich dostawców są takie same oraz u wszystkich odbiorców sa takie same), to otrzymamy problem nazywany ZAGADNIENIEM TRANSPORTOWYM. Zakłada się, że odbiorcy muszą dostać ustaloną ilość towaru (oznacza to, że c j = d j ). Przy dostawcach rozważamy tylko ograniczenie górne. 4

Oczywiście zysk będzie największy, gdy koszty transportu będą najmniejsze. Prowadzi to do modelu: Funkcja celu: szukamy jej minimum. Warunki ograniczające: 2 3 f = a ij x ij, i=1 j=1 3 x ij b i, i = 1, 2 j=1 2 x ij = c j, j = 1, 2, 3 i=1 x ij, i = 1, 2; j = 1, 2, 3. Wygodnie dane dla zagadnienia transportowego zapisywac w postaci tabeli, co zobaczymy w poniższym przykladzie liczbowym. Pewien towar jest zmagazynowany w miejscowości A 1 w ilości 7 ton oraz w miejscowości A 2 w ilości 2 miejscowości A 3 w ilości 9 ton. Ma być on przewieziony do miejscowości M 1 w ilości 5 ton oraz miejscowości M 2 w ilości 12 ton. Koszt przewozu jednej tony pomiędzy miejscowościami podany jest w tabeli M 1 M 2 A 1 75 42. A 2 25 25 A 3 65 24 Model wygląda następująco: Najpierw wypiszmy dane odpowiadające ogólnemu modelowi: Zauważmy, że tym razem mamy 3 dostawców i 2 odbiorców, czyli i zmienia sie od 1 do 2, zaś j od 1 do 3. a 11 = 75, a 12 = 42, a 21 = 25, a 22 = 25, a 31 = 65, a 32 = 24. b 1 = 7, b 2 = 2, b 3 = 9, c 1 = 5, c 2 = 12. 5

Funkcja celu ma postać: f = 75x 11 + 42x 12 + 25x 21 + 25x 22 + 65x 31 + 24x 32. Warunki ograniczające: x 11 + x 12 7, x 21 + x 22 2, x 31 + x 32 7. x 11 + x 21 + x 31 = 5, x 12 + x 22 + x 32 = 12. Zapiszemy ten model w postaci tabeli: X 1 X 2 znak b i A 1 75 42 7 A 2 25 25 2 A 3 65 24 9 znak = = 5 12. 6

PRZYKŁAD 3. DZIAŁALNOŚĆ ROLNIKA Rolnik posiada 4 hektarów ziemi. Może hodować tuczniki i uprawiać ziemniaki j zboże. Jeden tucznik potrzebuje 4 q ziemniaków i 2 q zboża i wymaga dodatkowo 2 złotych (robocizna, witaminy, weterynarz itp.) Uprawa hektara ziemniaków kosztuje 8 zł. nakładu (nawozy, robocizna, paliwo, środki ochrony roślin itp.) i daje plon 2 q. Uprawa hektara zboża kosztuje 2 zł i daje plon 5 q. Cena sprzedaży jednego tucznika wynosi 3 złotych, 1 q ziemniaków 1 zł., a zboża 3 zł. Zasoby rolnika (robocizna, siła nabywcza itp) wynoszą 4 zł. Zbuduj model matematyczny. ZMIENNE DECYZYJNE: x 1 - liczba tuczników x 2 - obszar uprawy ziemniaków x 3 - obszar uprawy zboża x 4 - ilość sprzedanych ziemniaków x 5 - ilość sprzedanego zboża FUNKCJA CELU (ZYSKU) f = 3x 1 + 1x 4 + 3x 5 (2x 1 + 8x 2 + 2x 3 ). WARUNKI OGRANICZAJĄCE: x 2 + x 3 4 4x 1 + x 4 2x 2 x 1 - całkowite. 2x 1 + x 5 5x 3 2x 1 + 8x 2 + 2x 3 4 x 1, x 2, x 3, x 4, x 5 Ostatni warunek bardzo utrudnia rozwiązanie. Zwykle go się pomija i po uzyskaniu rozwiązania wybiera się liczbę całkowitą najbliższą uzyskanej. 7

ROZWIĄZANIE GEOMETRYCZNE Rozważmy problem: Znaleźć maksimum funkcji f(x 1, x 2 ) = 2x 1 + x 2 przy warunkach 3x 1 + 2x 2 18 3x 1 + x 2 12 x 1, x 2. Rozwiązanie geometryczne widzimy na następnej stronie. 8

9

Rozwiązanie geometryczne da się wykorzystać tylko przy małej liczbie zmiennych - w zasadzie tylko dwóch. Przy większej liczbie zmiennych trzeba stosować inne metody. 1

Zaprezentujemy jedną z nich tzw. algorytm sympleksowy. Zanim do niego przejdziemy wprowadzimy kilka wstępnych pojęć. POSTAĆ KANONICZNA W postaci kanonicznej poprzez dodanie nowych zmiennych zamieniamy warunki ograniczające mające postać nierówności na warunki mające postać równości. Zaprezentujemy to na przykładzie poprzednim: Znaleźć maksimum funkcji przy warunkach 3x 1 + 2x 2 18 3x 1 + x 2 12 x 1, x 2. f(x 1, x 2 ) = 2x 1 + x 2 Pierwszy warunek ograniczający 3x 1 + 2x 2 18 zastąpimy warunkami: 3x 1 + 2x 2 + s 1 = 18 oraz s 1. Drugi warunek ograniczający 3x 1 + x 2 12 zastępujemy warunkami 3x 1 + x 2 + s 2 = 12 oraz s 2. Ostatecznie forma standardowa zadania programowania liniowego będzie w postaci: FUNKCJA CELU: f = 2x 1 + x 2 + s 1 + s 2 WARUNKI OGRANICZAJĄCE: 3x 1 + 2x 2 + s 1 = 18 3x 1 + x 2 + s 2 = 12 x 1, x 2, s 1, s 2. 11

Zanim przejdziemy do dalszej części wykładu przypomnimy elementy rachunku macierzowego. MACIERZE Macierzą o n wierszach i k kolumnach nazywamy układ nk liczb rzeczywistych zapisanych w postaci prostokątnej tabeli A = a 11 a 12... a 1k a 21 a 22... a 2k...... a n1 a 22... a nk. Układ liczb a i1 a i2... a ik nazywamy i tym wierszem macierzy A, a układ liczb a 1j a 2j. a nj nazywamy j tą kolumną macierzy A. Kolumnę macierzy możemy traktować jako wektor n-wymiarowy, a wiersz jako wektor k-wymiarowy. Macierz oznacza się też następująco: A = [a ij ] j=1,...,k i=1,...,n. W wypadku gdy macierz ma n wierszy i k kolumn będziemy pisać, że jest to macierz n k. Teraz omówimy operacje jakie możemy wykonywać na macierzach. Najpierw przypomnimy co to jest iloczyn skalarny dwóch wektorów. Iloczynem skalarnym wektorów V = x 1. x n oraz W = V W = x 1 y 1 + x 2 y 2 + + x n y n. 12 y 1. y n nazywamy liczbę

Na przykład (1, 2, 3) ( 1,, 2) = 1 ( 1) + 2 + 3 2 = 5. TRANSPONOWANIE Macierzą transponowaną macierzy A nazywamy macierz oznaczaną A T, której kolejne wiersze są kolejnymi kolumnami macierzy A. Zatem jeśli macierz A jest macierzą n k, to macierz A T jest macierzą k n. 1 2 PRZYKŁAD. Jeśli A = 3 4, to AT = 5 6 MNOŻENIE PRZEZ LICZBĘ [ ] 1 3 5. 2 4 6 Jeśli A jest macierzą n k, a q IR, to możemy utworzyć macierz qa = [c ij ] j=1,...,k i=1,...,n, gdzie c ij = qa ij dla każdego i = 1,..., n i j = 1,..., k. PRZYKŁAD. [ ] 1 2 3 5 = 4 5 6 [ ] 5 1 5 2 5 3 = 5 4 5 5 5 6 [ ] 5 1 15. 2 25 3 DODAWANIE Jeśli obie macierze A i B są macierzami n k, to możemy utworzyć macierz C = A + B = [c ij ] j=1,...,k i=1,...,n, gdzie c ij = a ij + b ij, dla każdego i = 1,..., n i j = 1,..., k. 1 2 7 1 + 2 + 7 1 9 PRZYKŁAD. 3 4 + 3 8 = 3 + 3 4 + 8 = 6 12. 5 6 1 9 5 + 1 6 + 9 6 15 Dodawanie macierzy i mnożenie przez liczbę spełniają warunki (q + r)a = qa + ra, q(a + B) = qa + qb, 13

MNOŻENIE MACIERZY (A + B) T = A T + B T. Jeśli macierz A ma tyle samo kolumn ile wierszy ma macierz B, czyli A jest macierzą n k, a B jest macierzą k p, to możemy utworzyć macierz A B = C = [c ij ] j=1,...,p i=1,...,n, gdzie c ij = a i1 b 1j + a i2 b 2j + + a in b nj. Inaczej mówiąc c ij jest iloczynem skalarnym wektora utworzonego z i tego wiersza macierzy A i wektora utworzonego z j tej kolumny macierzy B. Często opuszczamy znak i piszemy zamiast A B po prostu AB. PRZYKŁAD. Niech A = [ ] 1 2 3, B = 4 5 6 2 5 3 6. 4 7 Możemy wykonać działania zarówno AB jak i BA. Niech AB = C. Wówczas C będzie macierzą 2 2. Obliczając według powyższej recepty mamy Zatem AB = [ ] 2 38. 47 92 c 11 = 1 2 + 2 3 + 3 4 = 2 c 12 = 1 5 + 2 6 + 3 7 = 38 c 21 = 4 2 + 5 3 + 6 4 = 47 c 22 = 4 5 + 5 6 + 6 7 = 92. Natomiast macierz BA będzie macierzą 3 3. Mamy: 2 5 BA = 3 6 4 7 14 [ 1 2 ] 3 4 5 6

2 1 + 5 4 2 2 + 5 5 2 3 + 5 6 22 29 36 = 3 1 + 6 4 3 2 + 6 5 3 3 + 6 6 = 27 36 45. 4 1 + 7 4 4 2 + 7 5 4 3 + 7 6 32 43 54 PRZYKŁAD. Niech A = Wtedy AB = Wniosek: [ ] 1, B = [ ] 1, natomiast BA = Mnożenie macierzy nie jest przemienne. [ ]. 1 [ ]. 1 Natomiast prawdziwa jest rozdzielność mnożenia macierzy względem dodawania, czyli (A+B)C = AC + BC A(B+C) = AB+AC, przy czym w pierwszej kolejności wykonuje się mnożenie, a potem dodawanie. Operacje elementarne Operacjami elementarnymi nazywamy: 1. Mnożenie i-tego wiersza macierzy przez dowolną liczbę różną od zera. 2. Dodanie do i-tego wiersza macierzy innego wiersza macierzy pomnożonego przez dowolną liczbę. 3. Zamianę miejscami dwóch dowolnych wierszy macierzy. [ ] 1 2 PRZYKŁAD. Dana jest macierz A =. Poprzez operacje elementarne 3 4 [ ] 1 przekształcić tę macierz w macierz B =. 2 Rozwiązanie 15

Krok pierwszy: do pierwszego wiersza dodajemy wiersz [ drugi ] pomnożony 2 przez 1/3 - operacja typu 2. Otrzymujemy macierz 3. 3 4 Krok drugi: mnożymy [ ] pierwszy wiersz przez 3/2 - operacja typu 1. Otrzymujemy macierz. 1 3 4 Krok trzeci: do drugiego wiersza dodajemy pierwszy [ wiersz ] przemnożony 1 przez 4 - operacja typu 2. Otrzymujemy macierz. 3 Krok czwarty: mnożymy drugi wiersz przez 2/3 - operacja typu 1. Otrzymujemy macierz B. Słowne opisywanie operacji, które wykonujemy jest uciążliwe. Wprowadzimy pewne skrótowe opisy. Będziemy oznaczać i-ty wiersz macierzy przed wykonaniem operacji przez w i, a i-ty wiersz macierzy po dokonaniu operacji przez w i. I tak na przykład pierwszą operację w powyższym przykładzie możemy zapisać następująco: w 1 = w 1 1 3 w 2. Natomiast cały schemat rozwiązania zapiszemy tak: [ ] 1 2 w 1 = w 1 1 3 4 w 3 2 [ ] 2 3 3 4 [ ] 1 3 4 [ ] 1 3 [ ] 1. 2 w 1 = 3 2 w 1 w 2 = w 2 4w 1 w 2 = 2 3 w 2 16

Można było skrócić całą procedurę wykonując w jednym kroku kilka operacji elementarnych. Mogliśmy na przykład zapisać nasze rozwiązanie tak: [ 1 ] 2 w 1 = w 1 1w 3 2 3 4 w 1 = 3w 2 1 [ ] 1 3 4 [ ] 1. 2 w 2 = w 2 4w 1 w 2 = 2 3 w 2 MACIERZ JEDNOSTKOWA Macierzą jednostkową I n nazywamy macierz o n wierszach i n kolumnach mającą na głównej przekątnej jedynki, poza tym same zera. np. itd. POSTAĆ BAZOWA MACIERZY [ ] 1 I 2 = 1 1 I 3 = 1 1 1 1 I 4 = 1 1 Załóżmy, że macierz A ma k kolumn i n wierszy, przy czym k n. Powiemy, że macierz ma postać bazową, jeśli po wykreśleniu k n kolumn i przestawieniu kolejności pozostałych kolumn otrzymamy macierz jednostkową I n. Te kolumny, kt 17

Na przykład macierz A = [ 2 ] 1 1 3 ma postać bazową. Usuwamy drugą kolumnę i zamieniamy miejscami pozostałe kolumny. Kolumny bazowe macierzy A to kolumny pierwsza i trzecia. Macierz B = 4 1 3 6 5 3 1 7 1 2 1 1 też ma postać bazową: usuwamy 1, 3 i 6 kolumnę następnie przestawiamy w pozostałych drugą z trzecią. Kolumny bazowe macierzy B, to kolumny druga, czwarta i piąta. PRZYKŁAD. Przy pomocy operacji elementarnych sprowadzimy macierz [ 1 2 ] 3 4 5 6 do postaci bazowej, tak aby kolumnami bazowymi były pierwsza i trzecia. Oznacza to, że pierwsza kolumna ma być postaci 1, a druga 1 Ponieważ chcemy, aby w pierwszej kolumnie i drugim wierszu pojawiło się stosujemy operację elementarną: w 2 = w 2 4w 1. Otrzymujemy macierz [ ] 1 2 3. 3 6 Już pierwsza kolumna jest taka, jaką chcemy Teraz chcemy, aby w trzeciej kolumnie i pierwszym wierszu pojawiło się, wykonujemy zatem operację: w 1 = w 1 + 1 2 w 2. 18

Otrzymujemy macierz [ ] 1 1/2. 3 6 Wreszcie na końcu musimy podzielić pierwszy wiersz przez 6, czyli wykonać operację w 2 = 1 6 w 2. Otrzymujemy macierz w postaci bazowej [ 1 1/2 ] 1/2 1 takiej jak chcieliśmy. PRZYKŁAD: Przy pomocy operacji elementarnych sprowadzimy macierz 1 2 3 4 1 2 1 2 2 1 do postaci bazowej, tak aby kolumnami bazowymi były druga, trzecia i pierwsza. Oznacza to, że druga kolumna ma być postaci 1, trzecia 1, a pierwsza 1. Stosujemy kolejno operacje elementarne: 1) w 3 macierz 1 2 3 4 1 2 1 ; 1 2 4 = w 3 w 1. Otrzymujemy 2) w 1 = w 1 + w 3. Otrzymujemy macierz 2 2 1 1 2 1 1 2 4 19 ;

3) w 3 = w 3 + 4w 2. Otrzymujemy macierz 2 2 1 1 2 1 5 6 ; 4) w 1 = w 1 + 2/5w 3, w 2 = w 3 1/5w 3. Otrzymujemy macierz 2 7/5 4/5 1 5 6 ; 5) w 1 = 1/2w 1, w 3 = 1/5w 3. Otrzymujemy macierz w takiej postaci, o jaką chodzi. 1 7/1 4/5 1 1 6/5 2

TERAZ OMÓWIMY DOKŁADNIE ALGORYTM SYMPLEKSOWY. Omówimy go początkowo dla maksymalizacji funkcji celu. Na zakończenie podamy co trzeba zmienić w przypadku minimalizacji. Będziemy go ilustrować poniższym przykładem. FUNKCJA CELU: WARUNKI OGRANICZAJĄCE f = 4x 1 + x 2 max 3x 1 + 2x 2 18 4x 1 8 x 1, x 2 Tworzymy postać kanoniczną. POSTAĆ KANONICZNA FUNKCJA CELU: f = 4x 1 + x 2 + s 1 + s 2 max WARUNKI OGRANICZAJĄCE: ALGORYTM SYMPLEKSOWY 3x 1 + 2x 2 + s 1 = 18 4x 1 + s 2 = 8 x 1, x 2, s 1, s 2 Oznaczamy zmienne początkowe przez x 1,... x n, zmienne dodane przy tworzeniu postaci kanonicznej przez s 1... s m. 21

Współczynniki w funkcji celu oznaczamy przez c 1,... c n, c n+1,... c n+m. c p = dla p > n. W rozważanym przykładzie n = 2, m = 2, n + m = 4, c 1 = 4, c 2 = 1, c 3 =, c 4 =. Przypuśćmy, że jest m warunków ograniczających powstałych z nierówności (oprócz warunków x i, s j ) postaci a j1 x 1 + + a jn x n + a j(n+1) s 1 + + a j(n+m) s m = b j j = 1, 2,... k. Np. w naszym przykładzie: a 11 = 3, a 12 = 2, a 13 = 1, a 14 = a 21 = 4, a 12 =, a 13 =, a 14 = 1 b 1 = 18, b 2 = 8. 22

KROK 1 TWORZYMY TABLICĘ SYMPLEKSOWĄ W NASTĘPUJĄCEJ POSTA- CI c j c 1... c n.. c B bazowe x 1.. x n s 1... s k b i c p1 s 1 a 11... a 1n a 1(n+1)... a 1(n+m) b 1........................... c pm s m a m1... a mn a m(n+1)... a m(n+m) b m z j z 1... z n z n+1... z n+m c j z j c 1 z 1... c n z n c n+1 z n+1... c n+m z n+m Macierz współczynników A = [a ij ] j=1,...,n+m i=1,...,m musi mieć postać bazową. W drugiej kolumnie wypisujemy zmienne bazowe, czyli zmienne odpowiadające kolumnom bazowym. z funkcji celu odpo- W pierwszej kolumnie c B mamy współczynniki c p1...c pm wiadające zmiennym bazowym z drugiej kolumny. W chwili startu zmienne bazowe to s 1,..., s m (w takiej kolejności), zatem te współczynniki są w chwili startu równe zero. z j wyliczamy z wzoru a 1j m z j = c B... = c pi a ij. a i=1 kj W ostatnim wierszu wpisujemy liczby c j z j, j = 1, 2,...n + m. Każdej tablicy sympleksowej odpowiada rozwiązanie bazowe. W takim rozwiązaniu zmienne niebazowe są równe zero. 23

Na przykład dla tablicy sympleksowej c j 4 3 c B bazowe x 1 x 2 s 1 s 2 b i s 1 3 2 1 12 4 x 1 1 1 2 z j 4 4 c j z j 1 4 mamy x 2 =, s 2 =, x 1 = 2 (z drugiego równania), s 1 = 12 (z pierwszego równania) i funkcja celu jest równa 4 2 + 3 + 12 + = 8. W następnych krokach będziemy zamieniać zmienne bazowe poprawiając wynik. KRYTERIUM OPTYMALNOŚCI Badamy współczynniki w ostatnim wierszu czyli c j z j. Jeśli wszystkie są niedodatnie, to kończymy pracę - rozwiązanie jest optymalne. KRYTERIUM WEJŚCIA Jeśli wśród liczb c j z j istnieją dodatnie, to wybieramy największą z nich. Niech będzie ona w kolumnie k-tej. Oznacza to, że nową zmienną bazową będzie zmienna x k KRYTERIUM WYJŚCIA a 1k.... a mk dla a jk >. Niech to będzie np. Rozważamy kolumnę macierzy A pod zmienną x k. Jest to kolumna Rozważamy najmniejszą spośród liczb b j a jk liczba bp a pk. Odpowiada to zmiennej bazowej s p. Oznacza to, że zmienna bazowa x k pojawi się w miejsce zmiennej bazowej s p. TWORZENIE NOWEJ TABLICY SYMPLEKSOWEJ Poprzez operacje elementarne tak zmieniamy macierz A B, aby pod zmienną x k pojawił się wektor taki, jaki jest teraz pod zmienną s p tzn. jedynka na p-tym miejscu, na pozostałych zera. Pod pozostałymi zmiennymi bazowymi musi pozostać to co było. 24

W drugiej kolumnie w miejsce zmiennej bazowej s p usuwanej z bazy wpisujemy nazwę nowej zmiennej bazowej, czyli x k, a w pierwszej zamiast współczynnika przy s p (równego ) wpisujemy współczynnik z funkcji celu przy x k, czyli c k. PROCEDURĘ POWTARZAMY TAK DŁUGO, AŻ OTRZYMA- MY ROZWIĄZANIE OPTYMALNE W KRYTERIUM OPTY- MALNOŚCI 25

PRZEŚLEDZIMY TO NA ROZWAŻANYM PRZYKŁADZIE POCZĄTKOWA TABLICA SYMPLEKSOWA Wyliczamy z j : z 1 = c B z 2 = c B z 3 = c B z 4 = c B [ ] 3 = 4 [ ] 2 = [ ] 1 = [ ] = 1 [ ] [ ] [ ] [ ] c j 4 1 c B bazowe x 1 x 2 s 1 s 2 b i s 1 3 2 1 18 s 2 4 1 8 z j???? c j z j???? [ ] 3 = 3 + 4 =. 4 [ ] 2 = 2 + =. [ ] 1 = 1 + =. [ ] = + 1 =. 1 Uzupełniamy tablicę sympleksową. c j 4 1 c B bazowe x 1 x 2 s 1 s 2 b i s 1 3 2 1 18 s 2 4 1 8 z j c j z j 4 1 Stosujemy kryterium optymalności: W ostatnim wierszu istnieją wyrazy dodatnie, zatem rozwiązanie nie jest optymalne. Stosujemy kryterium wejścia. 26

Maksimum c j z j wynosi 4 i mieści się w pierwszej kolumnie. Zatem k = 1, co oznacza, że nową zmienną bazową będzie x 1. Stosujemy kryterium wyjścia Liczymy minimum b j a jk dla a jk >. W naszym wypadku k = 1, czyli liczymy minimum spośród liczb b 1 a 11 = 18 = 6 3 oraz b 2 a 21 = 8 = 2. 4 Mniejszą jest druga z liczb otrzymana z drugiego wiersza odpowiadającego zmiennej bazowej s 2. Zatem nowa zmienna bazowa x 1 ma zastąpić zmienną s 2. Obecnie zmiennymi bazowymi będą s 1 - pozostanie w pierwszym wierszu oraz x 1 w drugim wierszu. Oznacza to, że przez operacje elementarne kolumna pod x 1 mająca obecnie postać 3 4 musi zmienić się w kolumnę 1, a kolumna pod s 1 ma pozostać w postaci 1. W tym celu pierwszy wiersz przekształcamy następująco: w 1 = w 1 3 4 w 2 = [ 3 2 1 18 ] 3 4 [ 4 1 8 ] = [ 2 1 3/4 12 ], a drugi w 2 = 1 4 w 2 = 1 4 [ 4 1 8 ] = [ 1 1/4 2 ]. Otrzymujemy nową tablicę sympleksową. 27

c j 4 1 c B bazowe x 1 x 2 s 1 s 2 b i s 1 2 1 3/4 12 4 x 1 1 1/4 2 z j???? c j z j???? Wyliczamy z j : z 1 = c B z 2 = c B z 3 = c B z 4 = c B [ ] = 1 [ ] 2 = [ ] 1 = [ ] 4 [ ] 4 [ ] 4 [ ] 3/4 = 1/4 [ ] = + 4 1 = 4. 1 [ ] 2 = 2 + 4 =. [ ] 1 = 1 + 4 =. [ ] 4 Uzupełniamy tablicę sympleksową. [ ] 3/4 = ( 3/4) + 4 1/4 = 1. 1/4 c j 4 1 c B bazowe x 1 x 2 s 1 s 2 b i s 1 2 1 3/4 12 4 x 1 1 1/4 2 z j 4 1 c j z j 1 1 Stosujemy kryterium optymalności: W ostatnim wierszu istnieją wyrazy dodatnie, zatem rozwiązanie nie jest optymalne. Stosujemy kryterium wejścia. Maksimum c j z j wynosi 1 i mieści się w drugiej kolumnie. Zatem k = 2, co oznacza, że nową zmienną bazową będzie x 2. 28

Stosujemy kryterium wyjścia: Liczymy minimum b j a jk dla a jk >. W naszym wypadku k = 2, czyli liczymy minimum spośród jednej tylko liczby b 1 a 12 = 12 2 = 6 Otrzymana jest ona z pierwszego wiersza odpowiadającego zmiennej bazowej s 1. Zatem nowa zmienna bazowa x 2 ma zastąpić zmienną s 1. Obecnie zmiennymi bazowymi będą x 1 - pozostanie w drugim wierszu oraz x 2 pojawi się zamiast s 1 w pierwszym wierszu. Oznacza to, że kolumna pod x 1 pozostanie bez zmian, czyli 1, a kolumna pod x 2 musi przybrać postać 1 elementarne. Aby to osiągnąc wystarczy przekształcenie w 1 = 1 2 w 1 = 1 2 [ 2 1 3/4 12 ] = [ 1 1/2 3/8 6 ]. Drugi wiersz pozostaje bez zmian. Otrzymujemy nową tablicę sympleksową. Wyliczamy z j : z 1 = c B [ ] = 1 [ ] 1 4 c j 4 1 c B bazowe x 1 x 2 s 1 s 2 b i 1 x 2 1 1/2 3/8 6 4 x 1 1 1/4 2 z j???? c j z j???? [ ] = 1 + 4 1 = 4. 1 29

z 2 = c B z 3 = c B z 4 = c B [ ] 1 = [ ] 1/2 = [ ] 1 4 [ ] 3/8 = 1/4 [ ] 1 4 [ ] 1 = 1 1 + 4 = 1. [ ] 1 4 Uzupełniamy tablicę sympleksową. [ ] 1/2 = 1 1/2 + 4 = 1/2. [ ] 3/8 = 1 ( 3/8) + 4 1/4 = 5/8. 1/4 c j 4 1 c B bazowe x 1 x 2 s 1 s 2 b i 1 x 2 1 1/2 3/8 6 4 x 1 1 1/4 2 z j 4 1 1/2 5/8 c j z j 1/2 5/8 Ponieważ wszystkie wyrazy w ostatnim wierszu tablicy są niedodatnie, wnioskujemy że mamy optymalne rozwiązanie. W nim x 1 = 2, x 2 = 6, f = 14. 3

ZADANIE NA MINIMUM Do tej pory omawialiśmy algorytm sympleksowy dla maksymalizacji funkcji celu. Przy minimalizacji warunki ograniczające mają przeważnie postać nierówności w drugą stronę dlatego zmienne swobodne występują w formie standardowej ze znakiem minus. Powoduje to, że startowa tablica sympleksowa budowana identycznie jak w przypadku maksymalizacji nie będzie w postaci bazowej. Rozpatrzmy np. zadanie programowania liniowego Zminimalizować funkcję f(x 1, x 2 ) = x 1 + x 2, przy ograniczeniach x 1 + 2x 2 3, 3x 1 + x 2 4. Wprowadzając nieujemne zmienne swobodne s 1 i s 2 zamieniamy nierówności na równości x 1 + 2x 2 s 1 = 3, 3x 1 + x 2 s 2 = 4. Teraz przy zmiennych swobodnych mamy znak. Zbudowanie początkowej tablicy sympleksowej podobnie jak dla maksymalizacji da nam nam tablicę następującą c j 1 1 c B bazowe x 1 x 2 s 1 s 2 b i s 1 1 2 1 3 s 2 3 1 1 4 z j???? c j z j???? Nie jest ona w postaci bazowej ze względu na minusy przed jedynkami w trzeciej i czwartej kolumnie macierzy A. Nic nie da pomnożenie wierszy przez 31

1 bo wyrazy wolne powinny być w algorytmie sympleksowym dodatnie - w przeciwnym wypadku startowe rozwiązanie bazowe będzie niedopuszczalne - zmienne s i byłyby ujemne. Jednym ze sposobów jest wprowadzenie do funkcji celu nowych zmiennych tzw. zmiennych sztucznych w taki sposób aby początkowe rozwiązanie z tymi zmiennymi jako bazowymi było bardzo duże, czyli z dużymi współczynnikami. Spowoduje to, że w trakcie stosowania metody sympleksowej te nowe zmienne staną się zerami. Ponieważ teraz będziemy rozwiązanie zmniejszać to wprowadzane są następujące korekty w porównaniu z zadaniem maksymalizacji: 1) Kryterium optymalności wszystkie c j z j zamiast c j z j. 2) Kryterium wejścia min(c j z j ) zamiast max(c j z j ). Pozostałe elementy algorytmu sympleksowego pozostają identyczne. Prześledzimy to na następującym zadaniu programowania liniowego. Funkcja celu Ograniczenia x 1 + x 2 min x 1 + 2x 2 3 3x 1 + x 2 4 x 1, x 2 Krok pierwszy - wprowadzamy zmienne swobodne s 1, s 2. Otrzymujemy postać standardową. Funkcja celu Ograniczenia x 1 + x 2 + s 1 + s 2 min x 1 + 2x 2 s 1 = 3 3x 1 + x 2 s 2 = 4 32

x 1, x 2, s 1, s 2 Krok drugi - wprowadzamy zmienne sztuczne v 1 i v 2 i dodajemy do funkcji celu składnik 1v 2 +1v 2 oraz do równości odpowiednio v 1 i v 2. Otrzymujemy postać standardową i jednocześnie bazową. Funkcja celu Ograniczenia x 1 + x 2 + s 1 + s 2 + 1v 2 + 1v 2 min x 1 + 2x 2 s 1 + v 1 = 3 3x 1 + x 2 s 2 + v 2 = 4 x 1, x 2, s 1, s 2, v 1, v 2 Startowa tablica sympleksowa ma postać (piszemy od razu uzupełnioną). c j 1 1 1 1 c B bazowe x 1 x 2 s 1 s 2 v 1 v 2 b i 1 v 1 1 2 1 1 3 1 v 2 3 1 1 1 4 z j 4 3 1 1 1 1 c j z j 39 29 1 1 Kryterium optymalności w ostatnim wierszu istnieją liczby ujemne rozwiązanie można poprawić. Kryterium wejścia min(c j z j ) = c 1 z 1 = 39. Oznacza to, że nową zmienną bazową będzie x 1. Kryterium wyjścia 4/3 < 3/1 Zmienną usuwaną z bazy będzie v 2. W pierwszej kolumnie ma się pojawić wektor 1. W tym celu stosujemy operacje elementarne w 1 = w 1 1 3 w 2 33

w 2 = 1 3 w 2 Otrzymujemy nową tablicę sympleksową. c j 1 1 1 1 c B bazowe x 1 x 2 s 1 s 2 v 1 v 2 b i 1 v 1 5/3 1 1/3 1 1/3 5/3 1 x 1 1 1/3 1/3 1/3 4/3 z j 1 51/3 1 3 1 3 c j z j 16 1 3 13 Kryterium optymalności w ostatnim wierszu istnieją liczby ujemne rozwiązanie można poprawić. Kryterium wejścia min(c j z j ) = c 2 z 2 = 16. Oznacza to, że nową zmienną bazową będzie x 2. Kryterium wyjścia 5/3 5/3 < 4/3 1/3 Zmienną usuwaną z bazy będzie v 1. Oznacza to, że w drugiej kolumnie ma się pojawić wektor 1. W tym celu stosujemy operacje elementarne w 2 = w 2 1 5 w 1 w 1 = 3 5 w 1 Otrzymujemy nową tablicę sympleksową. c j 1 1 1 1 c B bazowe x 1 x 2 s 1 s 2 v 1 v 2 b i 1 x 2 1 3/5 1/5 3/5 1/5 1 1 x 1 1 1/5 3 1/5 2/5 1 z j 1 1 2/5 14/5 2/5 1/5 c j z j 2/5 14/5 48/5 49/5 34

Wszystkie współczynniki c j z j są nieujemne. Otrzymujemy rozwiązanie bazowe optymalne: s 1 = s 2 = v 2 = v 2 =, x 1 = 1, x 2 = 1, f = 1 + 1 = 2. 35

Rozwiązywanie zadań programowania liniowego programem solver Solver jest dodatkiem do arkusza kalkulacyjnego openoffice calc (istnieje począwszy od wersji 3.1). Poniżej opiszemy jak rozwiązać omawiane przez nas powyżej zadania programowania liniowego przy pomocy tego programu. Zademonstrujemy to na podstawie uproszczonego zadania z początku wykładu. Rozwiązemy mianowicie zadanie: FUNKCJA CELU (ZYSKU) f = 25x 1 + 2x 2 OGRANICZENIA 1,3x 1 + 1,2x 2 18, 1,2x 1 + x 2 2, x 1, x 2. Otwieramy program calc i wpisujemy dane następująco: Komórki, które wybieramy są tylko przykładowe! W komórkach b2 i c2 wpisujemy współrzędne funkcji celu, czyli 2 i 25. W komórkach b4 i c4 wpisujemy jakiekolwiek dane początkowe zmiennych decyzyjnych np. 1 i 2. W komórce f2 wpisujemy funkcję celu tzn: = SUMA.ILOCZYNÓW(b2 : c2; b4 : c4) Pojawi się w niej wynik 65 (25 1 + 2 2). W szóstym i siódmym wierszu wpisujemy ograniczenia: w komórkach b6 i c6 liczby 1,3 i 1,2 a w komórkach b7 i c7 liczby 1,2 i 1. 36

W komórce d6 wpisujemy wzór = SUMA.ILOCZYNÓW(b6 : c6; b4 : c4) W komórce d7 wpisujemy wzór = SUMA.ILOCZYNÓW(b7 : c7; b4 : c4) Pojawią się w nich odpowiednio liczby 3,7 i 3,2. W komórkach f6 i f7 wpisujemy prawe strony warunków ograniczających czyli 18 i 2. Otwieramy zakładkę Narzędzia, a w niej zakładkę Solver. 37

W okienku Komórka docelowa wpisujemy f2. Zoptymalizuj wynik zaznaczamy Maksimum. W okienku Komórki dla zmiennych wpisujemy b4:c4. W ograniczeniach wpisujemy: W pierwszym wierszu w kolumnie Odwołanie do komórki wpisujemy d6 w kolumnie Operator wybieramy <=, w kolumnie Wartość wpisujemy f6. W drugim wierszu w kolumnie Odwołanie do komórki wpisujemy d7 w kolumnie Operator wybieramy <=, w kolumnie Wartość wpisujemy f7. Otwieramy zakładkę Opcje (na dole po lewej stronie okienka). 38

Zaznaczamy opcję Przyjmij, że zmienne są liczbami nieujemnymi. Wychodzimy z tej zakładki naciskając OK i wybieramy Znajdź rozwiązanie. 39

Pojawia się małe okienko pt. Wynik szukania rozwiązania zawierające informacje: Szukanie rozwiązania zakończone powodzeniem Wynik: 34615,38 Zachować wynik czy przywrócić poprzednie wartości? Wybieramy Zachowaj wynik powracając do głównego ekranu arkusza kalkulacyjnego. W komórce b4 pojawi się liczba 138,46, w komórce c4 liczba, w komórce d6 liczba 18, w komórce d7 liczba 166,15 i w komórce f2 liczba 34615,38. Otrzymujemy zatem rozwiązanie: Maksymalną wartość funkcja celu osiągnie przy x 1 = 138,46, x 2 =. Wynosi ona 34615,38. 4

ANALIZA POOPTYMALIZACYJNA Analiza pooptymalizacyjna polega po pierwsze na zbadaniu ile mamy rozwiązań, a po drugie jak zmieni się rozwiązanie, jeśli zmienimy niektóre parametry w zadaniu. W wypadku problemu nr 1 mamy następujące twierdzenia: Twierdzenie 1. Jeśli w końcowej tablicy sympleksowej, liczba c j z j jest równa dla pewnej zmiennej niebazowej, to problem ma nieskończenie wiele rozwiązań. Twierdzenie 2. Jeśli w końcowej tablicy sympleksowej, liczby c j z j są różne od dla wszystkich zmiennych niebazowych, to problem ma tylko jedno rozwiązanie. Przykład Rozważamy problem. f = x 1 + x 2, maksimum, 2x 1 + 2x 2 12, x 1 + 3x 2 12, x 1, x 2. Tworzymy postać kanoniczną f = x 1 + x 2 + s 1 + s 2, maksimum, 2x 1 + 2x 2 + s 1 = 12, x 1 + 3x 2 + s 2 = 12, x 1, x 2, s 1, s 2. Zbudujmy początkową tablicę sympleksową 41

c j 1 1 c B bazowe x 1 x 2 s 1 s 2 b i s 1 2 2 1 12 s 2 1 3 1 12 z j c j z j 1 1 W ostatnim wierszu mamy dwie liczby dodatnie i obie równe 1. Zatem możemy sobie wybrać, czy do bazy wprowadzamy x 1, czy x 2. Jeśli wybierzemy x 1, to już po pierwszym kroku (pomijamy szczegóły) otrzymujemy końcową tablicę sympleksową postaci c j 1 1 c B bazowe x 1 x 2 s 1 s 2 b i 1 x 1 1 1 1/2 6 s 2 2 1/2 1 6 z j 1 1 1/2 c j z j 1/2 Rozwiązaniem bazowym (i optymalnym) jest x 2 = s 1 =, x 1 = 6, s 1 = 6; f = 6 + = 6. Jeśli wybierzemy x 2, to po drugim kroku (ponownie pomijamy szczegóły) otrzymujemy końcową tablicę sympleksową postaci: c j 1 1 c B bazowe x 1 x 2 s 1 s 2 b i 1 x 1 1 1/4 1/2 3 1 x 2 1 3/4 1/2 3 z j 1 1 1/2 c j z j 1/2 Rozwiązaniem bazowym (i optymalnym) tym razem jest s 2 = s 1 =, x 1 = 3, x 2 = 3; f = 3 + 3 = 6. 42

Na rysunku 2 widzimy, że proste o równaniu x 1 + x 2 = c są równoległe do prostej o równaniu 2x 1 + 2x 2 = 12 będącej ograniczeniem. Rozwiązaniem jest każdy punkt odcinka łączącego punkty (6, ) i (3, 3). Rysunek 2 W problemie typu 2 zmiany mogą dotyczyć: liczby zmiennych, dodania lub usunięcia waruków ograniczających, zmiany współczynników funkcji celu, zmiany wspólczynników w warunkach ograniczających. My omówimy tylko zmiany współczynników funkcji celu. Zajmiemy się tym zagadnieniem tylko dla dwóch zmiennych, wtedy bowiem zagadnienie ma prostą interpretację geometryczną. 43

Rozważmy przykład f = x 1 + 2x 2 maksimum, 5x 1 + x 2 13, x 1 + 4x 2 14, x 1, x 2. Rysunek 3 Na rysunku 3 czerwony wektor jest prostopadły do prostej o równaniu x 1 + 2x 2 = c i przesuwając prostą o takim równaniu w tym kierunku nie opuszczając dopuszczalnego obszaru (kolor żółty) najdalej można ją przesunąc do punktu (2, 3). I to jest rozwiązaniem naszego problemu. Zakładamy, że stała c 2 = 2 się nie zmienia, natomiast zmieniamy współrzędną c 1. Wtedy wektor prostopadły do prostej o równaniu c 1 x 1 + 2x 2 = c ma współrzędne (c 1, 2). Zmniejszając c 1 widzimy, że w momencie kiedy c 1 będzie mniejsze od 1/2 kąt pomiędzy tym wektorem a prostą o równaniu x + 4y = 14 ograniczającą obszar stanie się rozwarty i wówczas rozwiązaniem będzie nie punkt (2, 3), ale punkt (, 3 1 2). Analogicznie zwiększając c1 widzimy, że w momencie kiedy 44

c 1 przekroczy 1 rozwiązaniem będzie punkt ( 2 3 5, ). Zatem rozwiązanie się nie zmieni dla c 1 [1/2; 1]. Rysunek 4 Na rysunku 4 widzimy co się dzieje, jak zmienia się c 2 przy ustalonym c 1 = 1. Przeprowadzając podobną jak powyżej analizę widzimy, że rozwiązanie nie zmieni się dla c 2 [ 1 5 ; 4]. A teraz zmienimy nieco nasz problem na następujący: f = x 1 + 2x 2 maksimum, 5x 1 2, x 1 + 4x 2 14, x 1, x 2. Na rysunku 5 widzimy, że przy stałym c 2 = 2, rozwiązanie nie zmieni się dla c 1 [ 1 2 ; ). 45

Rysunek 5 Na rysunku 6 widzimy, że przy stałym c 1 = 1, rozwiązanie nie zmieni się dla c 2 [; 4]. Dla wartości granicznych będzie nieskończenie wiele rozwiązań. 46

Rysunek 6 47