1.2. Rozwiązywanie zadań programowania liniowego metodą geometryczną



Podobne dokumenty
Badania operacyjne. z wykorzystaniem WinQSB. Dariusz Siudak

Zadania 1. Czas pracy przypadający na jednostkę wyrobu (w godz.) M 1. Wyroby

Programowanie liniowe

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

Definicja problemu programowania matematycznego

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

Ekonometria - ćwiczenia 10

Elementy Modelowania Matematycznego

Excel - użycie dodatku Solver

Rozdział 1 PROGRAMOWANIE LINIOWE

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

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

Programowanie liniowe

WYDZIAŁ ELEKTRYCZNY POLITECHNIKI WARSZAWSKIEJ INSTYTUT ELEKTROENERGETYKI ZAKŁAD ELEKTROWNI I GOSPODARKI ELEKTROENERGETYCZNEJ

Microsoft EXCEL SOLVER

4. PROGRAMOWANIE LINIOWE

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Badania operacyjne Instrukcja do c wiczen laboratoryjnych Rozwiązywanie problemów programowania liniowego z użyciem MS Excel + Solver

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

Rozwiązywanie programów matematycznych

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

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):

Elementy Modelowania Matematycznego

Metoda simpleks. Gliwice

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

Elementy Modelowania Matematycznego Wykład 7 Programowanie nieliniowe i całkowitoliczbowe

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

Rozdział 1 PROGRAMOWANIE LINIOWE

Definicja pochodnej cząstkowej

Teoretyczne podstawy programowania liniowego

Programowanie liniowe

ZAGADNIENIE TRANSPORTOWE

Agata Boratyńska ZADANIA Z MATEMATYKI, I ROK SGH GRANICA CIĄGU

Zagadnienia programowania liniowego dotyczą modelowania i optymalizacji wielu problemów decyzyjnych, na przykład:

Optymalizacja procesów technologicznych przy zastosowaniu programowania liniowego

Programowanie liniowe. Tadeusz Trzaskalik

Wielokryteriowa optymalizacja liniowa

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

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

Programowanie matematyczne

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

II. FUNKCJE WIELU ZMIENNYCH

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Badania Operacyjne Ćwiczenia nr 5 (Materiały)

Badania Operacyjne Ćwiczenia nr 2 (Materiały)

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

c j x x

Badania Operacyjne Ćwiczenia nr 1 (Materiały)

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

WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału

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

Funkcja liniowa - podsumowanie

Analiza danych przy uz yciu Solvera

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Definicja i własności wartości bezwzględnej.

FUNKCJA LINIOWA - WYKRES

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Optymalizacja

Programowanie celowe #1

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

Arkusz maturalny nr 2 poziom podstawowy ZADANIA ZAMKNIĘTE. Rozwiązania. Wartość bezwzględna jest odległością na osi liczbowej.

Funkcja jednej zmiennej - przykładowe rozwiązania 1. Badając przebieg zmienności funkcji postępujemy według poniższego schematu:

Wykład z modelowania matematycznego. Zagadnienie transportowe.

1) 2) 3) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) 18) 19) 20) 21) 22) 23) 24) 25)

WYDZIAŁ ELEKTRYCZNY POLITECHNIKI WARSZAWSKIEJ INSTYTUT ELEKTROENERGETYKI ZAKŁAD ELEKTROWNI I GOSPODARKI ELEKTROENERGETYCZNEJ

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

Wykład 7. Informatyka Stosowana. Magdalena Alama-Bućko. 16 kwietnia Magdalena Alama-Bućko Wykład 7 16 kwietnia / 23

=B8*E8 ( F9:F11 F12 =SUMA(F8:F11)

Wykład 6. Programowanie liniowe

Programowanie nieliniowe. Badania operacyjne Wykład 3 Metoda Lagrange a

Matematyka licea ogólnokształcące, technika

INSTRUKCJA DO ĆWICZENIA NR 1

ZAGADNIENIE TRANSPORTOWE

FUNKCJA LINIOWA. A) B) C) D) Wskaż, dla którego funkcja liniowa określona wzorem jest stała. A) B) C) D)

VIII. Zastosowanie rachunku różniczkowego do badania funkcji. 1. Twierdzenia o wartości średniej. Monotoniczność funkcji.

Trik 1 Autorejestrowanie zmian dokonanych w obliczeniach

Wielokryteriowa optymalizacja liniowa cz.2

( ) Arkusz I Zadanie 1. Wartość bezwzględna Rozwiąż równanie. Naszkicujmy wykresy funkcji f ( x) = x + 3 oraz g ( x) 2x

3. FUNKCJA LINIOWA. gdzie ; ół,.

WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIEŃ TRANSPORTOWYCH Z KRYTERIUM KOSZTÓW

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

PROGRAMOWANIE KWADRATOWE

FUNKCJE ELEMENTARNE I ICH WŁASNOŚCI

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

Programowanie nieliniowe

Rozwiązanie problemu transportowego metodą VAM. dr inż. Władysław Wornalkiewicz

Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Badania operacyjne. Temat ćwiczenia:

Załóżmy, że obserwujemy nie jedną lecz dwie cechy, które oznaczymy symbolami X i Y. Wyniki obserwacji obu cech w i-tym obiekcie oznaczymy parą liczb

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2

Programowanie liniowe

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Optymalizacja liniowa w liczbach całkowitych (PLC)

9. BADANIE PRZEBIEGU ZMIENNOŚCI FUNKCJI

4.Arkusz kalkulacyjny Calc

Skrypt 12. Funkcja kwadratowa:

Programowanie liniowe

Standardowe zadanie programowania liniowego. Gliwice 1

Analiza Statystyczna

Programowanie liniowe

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

Transkrypt:

binarną są określane mianem zadania programowania binarnego. W stosunku do dyskretnych modeli decyzyjnych stosuje się odrębną klasę metod ich rozwiązywania. W dalszych częściach niniejszego rozdziału zostaną zaprezentowane przykładowe zadania programowania liniowego i ich rozwiązania za pomocą metod geometrycznej oraz analitycznej wraz z pełną analizą i interpretacją uzyskanych wyników. Do ich rozwiązania wykorzystano oprogramowanie WinQSB wspomagające rozwiązywanie wielu zadań decyzyjnych za pomocą metod i modeli badań operacyjnych. Moduł programowania liniowego WinQSB umożliwia wyznaczenie rozwiązania optymalnego zarówno metodą geometryczną, jak i analityczną. Czytelnika zainteresowanego aspektami teoretycznymi programowania liniowego, w tym prezentacją algorytmu simpleks, odsyłamy do szeroko dostępnej literatury przedmiotu (np. [Siudak M., 2012]). 1.2. Rozwiązywanie zadań programowania liniowego metodą geometryczną Dowolne rozwiązanie x 1, x 2,..., x n, spełniające układ równań i nierówności (1.2) jest rozwiązaniem dopuszczalnym zadania. Zbiór wszystkich rozwiązań dopuszczalnych, czyli zbiór rozwiązań układu równań i nierówności (1.2) będziemy dalej oznaczać przez X. Rozwiązania bazowe układu warunków (1.2) będziemy nazywać dopuszczalnymi rozwiązaniami bazowymi, jeżeli spełniają one dodatkowo warunek brzegowy: x 1 0, x 2 0,..., x n 0. Rozwiązania optymalnego należy poszukiwać wśród bazowych rozwiązań dopuszczalnych układu ograniczeń. Ponieważ wektor bazowych rozwiązań dopuszczalnych jest punktem wierzchołkowym zbioru rozwiązań dopuszczalnych (X), więc rozwiązanie optymalne leży w jednym z wierzchołków zbioru rozwiązań układu równań i nierówności, a w szczególnym przypadku również na całej krawędzi tego zbioru. Rozwiązaniem optymalnym zadania programowania liniowego na maksimum (minimum) jest to rozwiązanie, które spośród bazowych rozwiązań dopuszczalnych osiąga największą (najmniejszą) wartość funkcji celu. W przypadku, gdy zbiór rozwiązań dopuszczalnych jest pusty (X = ), zadanie jest sprzeczne. Klasyfikację możliwych wyników rozwiązania zadania liniowego przedstawiono na rys. 1.1. Rozwiązanie zadania liniowego metodą geometryczną polega na: graficznym wyznaczeniu zbioru rozwiązań dopuszczalnych (graficzne rozwiązanie układu równań i nierówności stanowiących układ warunków ograniczających), graficznym wyznaczeniu punktu (punktów) optymalnego poprzez wyznaczenie kilku warstwic funkcji celu. 14

1.2. Rozwiązywanie zadań programowania liniowego metodą geometryczną Rysunek 1.1. Klasyfikacja możliwych wyników rozwiązania zadania programowania liniowego Źródło: opracowanie własne. Należy podkreślić, iż moduł programowania liniowego programu WinQSB automatycznie znajduje warstwicę funkcji celu w punkcie (punktach) odpowiadającym najmniejszej wartości funkcji kryterium dla zadania na minimum lub odpowiadającym największej wartości funkcji kryterium dla zadania na maksimum. Za pomocą kolejnych przykładów z zakresu zarządzania i organizacji produkcji przeanalizujemy możliwości uzyskania wyników rozwiązania zadania programowania liniowego. Przykład 1.1. Przedsiębiorstwo produkuje dwa rodzaje produktów (P 1 i P 2 ). Zysk ze sprzedaży jednej tony produktu P 1 wynosi 1000 złotych, a z jednej tony produktu P 2 2000 złotych. Do produkcji są wykorzystywane dwa surowce: S 1 i S 2, których ilość dostępna w ciągu jednej doby wynosi odpowiednio 8 ton i 3 tony. Ilości surowców (w tonach) wykorzystywane do produkcji jednej tony produktu P 1 i jednej tony produktu P 2 zamieszczono w tabeli 1.1. Oba wyroby charakteryzują się wysoką podzielnością. Tabela 1.1. Zapotrzebowanie na surowce do produkcji oraz ich dostępne zasoby Surowiec Produkt P 1 P 2 Dostępne zasoby S 1 [tony] 2 2 8 S 2 [tony] 0 1 3 Źródło: opracowanie własne. 15

Ile ton dziennie należy produkować produktów P 1 i P 2, aby zysk ze sprzedaży był największy? Rozwiązanie Oznaczamy przez x 1 (zmienna decyzyjna 1) ilość ton produkcji produktu P 1, a przez x 2 (zmienna decyzyjna 2) ilość ton produktu P 2. Zadanie programowania liniowego przyjmuje postać poniższego modelu przy warunkach ograniczających z = 1000x 1 + 2000x 2 max, (1.5) 2x 1 + 2x 2 8 (1.6) x 2 3 (1.7) x 1, x 2 0. (1.8) Funkcja celu określa poszukiwanie takiej struktury produkcji, aby uzyskać największy (maksymalny) zysk ze sprzedaży produktów P 1 i P 2. Pierwszy warunek ograniczający oznacza, iż nie można wykorzystać więcej niż 8 ton zasobu surowca S 1, który do produkcji 1 tony produktu P 1 jest wykorzystywany w ilości 2 ton, a do produkcji 1 tony produktu P 2 również w ilości 2 ton. Drugi warunek ograniczający zakłada, iż do produkcji 1 tony produktu P 2 jest wykorzystywana 1 tona surowca S 2, którego ilość jest limitowana do 3 ton. Trzeci warunek ograniczający został wprowadzony ze względu na to, iż przedsiębiorstwo nie może wyprodukować ujemnej wielkości produktów P 1 i P 2 (warunek nieujemności zmiennych decyzyjnych). Tego typu warunki ograniczające określa się mianem warunków brzegowych. Do rozwiązania powyższego zadania decyzyjnego zastosujemy moduł programowania liniowego programu WinQSB. W tym celu należy uruchomić program, wybierając z listy dostępnych programów polecenie WinQSB i dalej moduł Linear and Integer Programming (programowanie liniowe i całkowitoliczbowe). Po uruchomieniu programu pojawi się okno jak na rys. 1.2. Rysunek 1.2. Okno startowe modułu Linear and Integer Programming programu WinQSB 16

1.2. Rozwiązywanie zadań programowania liniowego metodą geometryczną Po uruchomieniu programu, użytkownik ma do wyboru dwie opcje: 1) wprowadzić nowy problem decyzyjny (od początku); 2) załadować uprzednio wprowadzony i zapisany problem decyzyjny. Aby wprowadzić od początku nowy problem do programu, należy wybrać z menu polecenie File/New problem. Zostanie wówczas wyświetlone okno (rys. 1.3), w którym dokonuje się specyfikacji problemu. W oknie tym należy określić: tytuł problemu (Problem Title), liczbę zmiennych występujących w modelu (Number of Variables), liczbę warunków ograniczających (Number of Constraints), ekstremum funkcji celu (Objective Criterion) kryterium funkcji celu może zostać określone jako maksimum (maximization) lub minimum (minimization), domyślny typ zmiennych (Default Variable Type) typ może zostać określony jako zmienna nieujemna ciągła (Nonnegative continuous), zmienna nieujemna całkowitoliczbowa (Nonnegative integer), zmienna binarna (Binary (0, 1)), zmienna nieograniczona ciągła (Unsigned/unrestricted), format wprowadzania danych (Data Entry Format) może to być formularz skoroszytu (Spreadsheet Matrix Form) bądź formularz modelu (Normal Model Form). Rysunek 1.3. Okno specyfikacji nowego problemu decyzyjnego Oczywiście na dalszym etapie pracy z programem można dokonywać zmian specyfikacji, łącznie ze zmianą ekstremum funkcji celu, dodawaniem/usuwaniem zmiennych, warunków ograniczających czy zmianą typu zmiennych. Model decyzyjny zapisany za pomocą równań (1.5) (1.8) zawiera dwie zmienne decyzyjne oraz dwa warunki ograniczające, a funkcja celu dąży do maksimum. W tym miejscu należy zaznaczyć, że do programu WinQSB nie ma sensu wprowadzać dodatkowo warunku brzegowego (1.8), ponieważ warunek nieujemności zmiennych jest spełniony poprzez określenie ich typu jako zmiennych nieujemnych ciągłych (Nonnegative continuous). Zmienne decyzyjne są oczywiście zmiennymi ciągłymi ze względu na założenie ich nieskończonej podzielności 2. Każda zmienna typu ciągłego może przyjąć dowolną wartość ze zbioru liczb rzeczywistych. 2 Modele, w których występują zmienne całkowitoliczbowe, będą omawiane w podrozdziale 1.4. 17

Preferowanym formatem wprowadzania danych jest zwykły skoroszyt, przypominający arkusz kalkulacyjny MS Excel. Po zatwierdzeniu (przycisk OK) przechodzimy do formularza wprowadzania parametrów zadania decyzyjnego programowania liniowego, co zaprezentowano na rys. 1.4. Rysunek 1.4. Arkusz służący do wprowadzania parametrów zadania programowania liniowego z przykładu 1.1 Arkusz wprowadzania parametrów zadania programowania liniowego jest skonstruowany w postaci tabeli, której kolumny składają się z kolejnych zmiennych decyzyjnych. Domyślnie są one określane symbolem X z kolejnymi numerami porządkowymi (w tym przypadku mamy X1 i X2). Ostatnie dwie kolumny służą do określania kierunku nierówności (ewentualnie określenia równości) warunków ograniczających (Direction) oraz wartości wyrazów wolnych tychże warunków (R. H. S.) 3. Pierwszy wiersz dotyczy tylko i wyłącznie funkcji celu, kolejne zaś poszczególnych warunków ograniczających. Domyślnie są one oznaczone literą C (od słowa constraint) z kolejnymi liczbami porządkowymi (w analizowanym przykładzie są to C1 i C2). Ostatnie trzy wiersze służą do określania typu zmiennych: dolne ograniczenie (LowerBound), górne ograniczenie (UpperBound) i typ zmiennych (Variable Type). Dla górnego ograniczenia oraz symetrycznie dla dolnego ograniczenia mogą pojawić się następujące symbole: M i M. Symbol M oznacza bardzo dużą liczbę (oznaczenie zostało wprowadzone w metodzie kar 4 wyznaczania początkowego dopuszczalnego rozwiązania bazowego), tak dużą, że w przypadku, gdy parametr a jest liczbą dodatnią, to dla dowolnych liczb a, b R spełniona będzie nierówność am b > 0. Przykładowe nierówności lub są spełnione za względu na liczbę M. 0,00001M 1 000 000 000 > 0 0,00001M + 1 000 000 000 < 0 3 Czyli wartości prawych stron układu równań i nierówności, stąd też skrót R. H. S. (Right Head Side). 4 Metoda kar zostanie omówiona w podrozdziale 1.3. 18

1.2. Rozwiązywanie zadań programowania liniowego metodą geometryczną Dla każdej zmiennej decyzyjnej można dokonać zmiany jej typu poprzez dwukrotne kliknięcie w komórkę zawierającą typ zmiennej. Wówczas automatycznie zmianie ulegają dolne i górne ograniczenie. W podobny sposób można dokonywać zmiany kierunku nierówności (lub zmiany na równość i odwrotnie) poszczególnych warunków ograniczających 5. Oczywiście każde nowo wprowadzone zadanie decyzyjne może zostać zapisane lub wydrukowane (opcje z menu File). Do aktualnego zadania można wprowadzać odpowiednie modyfikacje za pomocą poleceń z menu Edit: zmiana tytułu problemu (Problem Name), zmiana nazw zmiennych decyzyjnych (Variable Names), zmiana nazw warunków ograniczających (Constraint Names), zmiana ekstremum funkcji celu (Objective Function Creation), dołączenie nowej zmiennej decyzyjnej (Insert a Variable), usunięcie zmiennej decyzyjnej (Delete a Variable), dołączenie nowego warunku ograniczającego (Insert a Constraint), usunięcie warunku ograniczającego (Delete a Constraint). Można także przełączyć tryb wprowadzania danych zadania decyzyjnego na formularz modelu (co pokazano na rys. 1.5), wybierając z menu Format polecenie Switch to Normal Model Form. Rysunek 1.5. Formularz modelu dla zadania programowania liniowego z przykładu 1.1 Na rysunku 1.5. został przedstawiony model decyzyjny programowania liniowego z przykładu 1.1, którego odpowiednikiem jest model na rys. 1.4. Ponieważ zadanie opisane równaniami (1.5) (1.8) zawiera dwie zmienne decyzyjne, zatem można je rozwiązać metodą geometryczną w układzie współrzędnych (dwuwymiarowa przestrzeń geometryczna). Niezależnie od rodzaju formularza wprowadzania danych, aby rozwiązać zadanie metodą geometryczną należy wybrać z menu Solve and Analyze polecenie Graphic Method. Wyświetlone zostanie okno dialogowe (rys. 1.6) służące do przypisania każdej z dwóch zmiennych decyzyjnych do osi odciętych i osi rzędnych. Po zaakceptowaniu (w większości przypadków można przyjąć domyślny układ osi współrzędnych) zostanie wyświetlone rozwiązanie zadania decyzyjnego metodą geometryczną w tym przypadku jest to rozwiązanie przykładu 1.1, co przedstawiono na rys. 1.7. Obszar zakreskowany stanowi zbiór rozwiązań dopuszczalnych X. Wynika on z dwóch warunków ograniczających (C1 i C2) oraz warunku brzegowego (x 1, x 2 0). Prosta oznaczona symbolem C1 wyznacza półpłaszczyznę z warunku ograniczające- 5 Jest to pomocne w przypadku zadań, w których występuje kilkaset lub więcej zmiennych i kilkaset lub więcej warunków ograniczających. 19

Rysunek 1.6. Okno dialogowe przypisania zmiennych decyzyjnych do osi odciętych oraz osi rzędnych Rysunek 1.7. Graficzne rozwiązanie zadania programowania liniowego z przykładu 1.1 go (1.6). Przykładowo, podstawiając za zmienne decyzyjne x 1 = 1 i x 2 = 1, widzimy, że spełniona jest nierówność (1.6). Oznacza to, że nierówność ta jest spełniona przez punkty leżące na prostej C1 i w półpłaszczyźnie poniżej tej prostej. Podobnie prosta C2 wyznacza półpłaszczyznę na podstawie warunku ograniczającego (1.7). Łatwo sprawdzić, iż każda wartość zmiennej x 2 mniejsza bądź równa 3 spełnia nierówność (1.7). Uwzględniając warunek brzegowy zakładający nieujemność zmiennych decyzyjnych (na jego podstawie rozwiązanie optymalne musi znajdować się w pierwszej ćwiartce układu współrzędnych), otrzymujemy zbiór rozwiązań dopuszczalnych 6. 6 Ograniczony z góry zbiór rozwiązań dopuszczalnych dla zadania na maksimum określa się wielościanem wypukłym. 20

1.2. Rozwiązywanie zadań programowania liniowego metodą geometryczną Program automatycznie wyznacza warstwicę funkcji celu przechodzącą przez punkty wierzchołkowe zbioru rozwiązań optymalnych, w których funkcja celu osiąga ekstremum (pogrubiona prosta na rys. 1.7). Innymi słowy, warstwica funkcji celu przechodzi przez te punkty zbioru rozwiązań optymalnych, gdzie uzyskuje największą wartość dla zadania na maksimum, co stanowi rozwiązanie optymalne. Odbywa się to za pomocą wyznaczenia kierunku najszybszego wzrostu wartości funkcji kryterium poprzez jej gradient, będący wektorem pochodnych cząstkowych funkcji celu. Dla maksymalizowanej funkcji celu z = 1000x 1 + 2000x 2 max gradientem wektorem pochodnych cząstkowych po zmiennych decyzyjnych jest: z = [1000; 2000]. Największa wartość funkcji celu w zbiorze rozwiązań dopuszczalnych X zostanie osiągnięta poprzez przesunięcie warstwicy jak najdalej od przecięcia osi współrzędnych, przechodzącej jednocześnie przez co najmniej jeden punkt wspólny, z obszarem rozwiązań dopuszczalnych. Punkt stanowiący rozwiązanie optymalne jest zaznaczony pogrubioną kropką na rys. 1.7 i jak widać jest on na przecięciu prostych C1 i C2 (jednoelementowe rozwiązanie optymalne). Współrzędne rozwiązania optymalnego można odczytać z wykresu lub, jeżeli jest to niemożliwe, wyznaczyć analitycznie, rozwiązując układ równań warunków ograniczających (1.6) (1.7) 7. W prawym [ górnym ] rogu [ wykresu ] program podaje współrzędne rozwiązania optymalnego: x 0 x 1 1 = =, przy którym wartość funkcji x 2 3 celu osiąga poziom maksymalny wynoszący z max = 7000, co stanowi rozwiązanie optymalne. Czytelnikowi pozostawiamy sprawdzenie, czy wartość funkcji celu (1.5) osiąga wskazany wynik przy podstawieniu za zmienne decyzyjne powyższych wartości. Z przeprowadzonej analizy wynika, iż przedsiębiorstwo powinno dziennie produkować 1 tonę produktu P 1 i 3 tony produktu P 2, co daje łączny zysk w wysokości 7000 złotych 8. W zadaniu programowania liniowego z przykładu 1.1 otrzymaliśmy jedno rozwiązanie optymalne. Zgodnie z podziałem zadań programowania liniowego zaprezentowanym na rys. 1.1, powyższe zadanie posiada skończone rozwiązanie optymalne, istniejące tylko w jednym punkcie. Jednakże, jak już wspomniano, jeżeli zadanie liniowe nie jest sprzeczne, rozwiązań optymalnych może być nieskończenie wiele. Wykażemy to w przykładzie 1.2. 7 W rzeczywistości warunki ograniczające (1.6) (1.7) są nierównościami, choć w celu wyznaczenia tych dwóch prostych nierówności te są sprowadzane do równości (punkt przecięcia leży na obu prostych). Innym sposobem znalezienia rozwiązania jest obliczenie wartości funkcji celu (1.5) dla każdego wierzchołka wielościanu wypukłego (zbioru rozwiązań dopuszczalnych) z rys. 1.7. Wówczas największa wartość funkcja (1.5) jest maksymalizowana wskazuje punkt rozwiązania optymalnego. Jeżeli funkcja celu jest na minimum, najmniejsza wartość wskazuje wierzchołek ze zbioru rozwiązań optymalnych stanowiący rozwiązanie zadania decyzyjnego. Podejście to jest żmudne i pracochłonne dla zadań z większą liczbą zmiennych i warunków ograniczających. 8 Należy podkreślić, iż cena za każdą tonę jest stała, niezależnie od przyjętego programu produkcji i wielkości jej sprzedaży. W przypadku, gdy zysk ulegałby zmianie przy zamówieniu przekraczającym pewną ilość danego produktu, wówczas zastosowanie liniowej funkcji celu wyrażającej łączny zysk byłoby podejściem błędnym. W takim przypadku należy zastosować funkcję nieliniową i w konsekwencji metody rozwiązywania optymalizacyjnych zadań nieliniowych. 21

Przykład 1.2. Przedsiębiorstwo produkuje dwa produkty (P 1 i P 2 ), z których zysk wynosi odpowiednio: 10 tys. zł i 8 tys. zł. Produkcja jest wykonywana na dwóch maszynach (M 1 i M 2 ). Maksymalna ilość roboczogodzin w danym okresie maszyny pierwszej wynosi 4 tys. godz., drugiej zaś 2 tys. godz. Pracochłonność poszczególnych maszyn niezbędna do wyprodukowania 1 tony powyższych produktów zaprezentowano w tabeli 1.2. Tabela 1.2. Pracochłonność maszyn wykorzystywanych w produkcji oraz limit ich wykorzystania Surowiec Produkt P 1 P 2 Maksymalna ilość roboczogodzin M 1 [tys. godz.] 1 0,8 4 M 2 [tys. godz.] 0,3 1 2 Źródło: opracowanie własne. Należy określić optymalny plan produkcji, aby uzyskać największy zysk. Rozwiązanie Ponownie jako x 1 oznaczamy 1 tonę produktu P 1, a jako x 2 1 tonę produktu P 2. Zadanie programowania liniowego przyjmuje postać poniższego modelu przy warunkach ograniczających z = 10x 1 + 8x 2 max, (1.9) x 1 + 0,8x 2 4 (1.10) 0,3x 1 + x 2 2 (1.11) x 1, x 2 0, (1.12) gdzie funkcja (1.9) jest funkcją celu na maksimum, nierówności (1.10) (1.11) warunkami ograniczającymi, a nierówność (1.12) warunkiem brzegowym zadania programowania liniowego. Rysunek 1.8. Okno specyfikacji problemu decyzyjnego dla zadania z przykładu 1.2 22