Wykład z modelowania matematycznego. Algorytm sympleks.



Podobne dokumenty
Wykład z modelowania matematycznego. Zagadnienie transportowe.

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

Programowanie liniowe. Tadeusz Trzaskalik

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

Teoretyczne podstawy programowania liniowego

Programowanie liniowe

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

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

Metoda simpleks. Gliwice

1 Przykładowe klasy zagadnień liniowych

Rozdział 1 PROGRAMOWANIE LINIOWE

Programowanie liniowe

ZAGADNIENIE TRANSPORTOWE

Programowanie liniowe

Układy równań liniowych i metody ich rozwiązywania

Definicja problemu programowania matematycznego

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

Programowanie liniowe

Programowanie liniowe metoda sympleks

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

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

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

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

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Programowanie liniowe metoda sympleks

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

Programowanie liniowe metoda sympleks

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

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

Ekonometria - ćwiczenia 10

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

13 Układy równań liniowych

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

Metody Ilościowe w Socjologii

Rozdział 1 PROGRAMOWANIE LINIOWE

Programowanie celowe #1

Ćwiczenia laboratoryjne - 7. Problem (diety) mieszanek w hutnictwie programowanie liniowe. Logistyka w Hutnictwie Ćw. L. 7

Programowanie nieliniowe

Standardowe zadanie programowania liniowego. Gliwice 1

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

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

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

Programowanie liniowe

Zagadnienie transportowe

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

O MACIERZACH I UKŁADACH RÓWNAŃ

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

Wykład 6. Programowanie liniowe

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

Wykład 5. Metoda eliminacji Gaussa

PROGRAMOWANIE KWADRATOWE

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

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

4. PROGRAMOWANIE LINIOWE

Elementy Modelowania Matematycznego

Zagadnienie transportowe (badania operacyjne) Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

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

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

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

Badania Operacyjne Ćwiczenia nr 2 (Materiały)

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

Metoda eliminacji Gaussa. Autorzy: Michał Góra

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

2. Układy równań liniowych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

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

ZAGADNIENIE TRANSPORTOWE(ZT)

Zaawansowane metody numeryczne

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

Układy równań liniowych. Krzysztof Patan

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

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

Wydział Matematyki Programowanie liniowe Ćwiczenia. Zestaw 1. Modelowanie zadań programowania liniowego.

RÓWNANIA RÓŻNICZKOWE WYKŁAD 2

Macierze. Rozdział Działania na macierzach

Zad.1. Microsoft Excel - Raport wyników Komórka Nazwa Warto pocz tkowa Warto cowa Komórka Nazwa Warto pocz tkowa Warto cowa Komórka Nazwa Warto

Programowanie liniowe

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

OPTYMALIZACJA W LOGISTYCE

Układy równań liniowych

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

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

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Układy równań liniowych

Algorytm simplex i dualność

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

Uniwersytet Kardynała Stefana Wyszyńskiego Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych. Piotr Kaczyński. Badania Operacyjne

Elementy modelowania matematycznego

Zbiory wypukłe i stożki

Badania operacyjne. te praktyczne pytania, na które inne metody dają odpowiedzi jeszcze gorsze.

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem

UKŁADY RÓWNAŃ LINIOWYCH

TOZ -Techniki optymalizacji w zarządzaniu

Wykład z równań różnicowych

PROGRAMOWANIE NIELINIOWE

Przekształcanie równań stanu do postaci kanonicznej diagonalnej

Transkrypt:

Wykład z modelowania matematycznego. Algorytm sympleks. 1

Programowanie matematyczne jest to zbiór metod poszukiwania punktu optymalizującego (minimalizującego lub maksymalizującego) wartość funkcji rzeczywistej w podzbiorze przestrzeni R n. Jednym z działów programowania matematycznego jest programowanie liniowe, w którym optymalizuje się wartość funkcji liniowej na zbiorze określonym przez układ warunków (równań i nierówności) liniowych. Metoda sympleks opracowana przez Georga Dantziga jest iteracyjną metodą rozwiązywania zadań programowania liniowego za pomocą kolejnego polepszania (optymalizacji) rozwiązania. Nazwa metody pochodzi od sympleksu, czyli otoczki wypukłej zbioru (n + 1)-elementowego w przestrzeni n wymiarowej. Polega na sprawdzaniu kolejnych wierzchołków wielościanów, w ten sposób, że przechodzi się od wierzchołka do sąsiedniego wierzchołka w pewnym sympleksie optymalizując (zwiększając lub zmniejszając) wartość funkcji. 1 Podstawowe pojęcia i oznaczenia Oznaczenia: Z p,q := {t Z : p t q}, N p,q := {t N : p t q}. Dla A M m,n : A k oznacza k-tą kolumnę macierzy A, A k oznacza k-ty wiersz macierzy A. Zatem A = (A 1... A n ) lub A = (A 1... A n ) T. Dla A M m,n, m n, B N 1,n (B - zbiór m-elementowy): B := N 1,n \ B, A B := (A j1... A jm ), gdzie j 1 <... < j m, j 1,..., j m B. Definicja 1 Problemem programowania liniowego (problemem PL) nazywamy następujący problem: dla dowolnie ustalonych m, n N oraz macierzy A M m,n, b M m,1, c M 1,n, zminimalizować funkcjonał M n,1 x cx (1) przy warunkach oraz Ax = b (2) x 0. (3) Warunki (2)-(3) nazywamy warunkami ograniczającymi, zaś funkcjonał (1) nazywamy funkcją celu.. Definicja 2 Rozwiązaniem dopuszczalnym problemu PL nazywamy wektor x spełniający warunki ograniczające (2)-(3). Zbiór nazywamy zbiorem rozwiązań dopuszczalnych. D := {x M n,1 : Ax = b, x 0} (4) 2

Definicja 3 Rozwiązaniem optymalnym nazywamy rozwiązanie dopuszczalne minimalizujące funkcję celu (1), tj. wektor ẋ D spełniający warunek cẋ = min cx. Zbiór rozwiązań optymalnych x D oznaczamy symbolem D opt. Zadanie PL polega więc na tym, aby ze zbioru rozwiązań układu m równań, spełniających warunki nieujemności, wyznaczyć takie rozwiązanie, przy którym funkcja celu osiąga wartość minimalną. W postaci skalarnej problem PL możemy zapisać następująco: zminimalizować wyrażenie przy warunkach c 1 x 1 +... + c n x n a 11 x 1 +... +a 1n x n = b 1. a m1 x 1 +... +a mn x n = b m x 1 0. x n 0. Problem (1) - (3) nazywany jest problemem programowania liniowego w postaci standardowej (dla odróżnienia od innych postaci). Inne postacie problemu PL można sprowadzić do postaci (1) - (3). Wyróżniamy trzy sytuacje: (i) Funkcja cx ma być zmaksymalizowana. Wtedy minimalizujemy funkcję cx. (ii) Niektóre z warunków (2) mają postać nierówności liniowych. Rozpatrzmy na przykład warunek postaci a 11 x 1 +... + a 1n x n b 1. Warunek ten zastępujemy warunkami a 11 x 1 +... + a 1n x n + x n+1 = b 1 oraz x n+1 0, czyli do problemu PL wprowadzamy nową zmienną x n+1 := b 1 (a 11 x 1 +... + a 1n x n ), która na podstawie początkowego warunku daje nierówność x n+1 0. (iii) Niektóre zmienne przyjmują dowolne wartości rzeczywiste (mogą być ujemne). Niech na przykład x 1 R, czyli może przyjmować wartości ujemne. Wówczas do problemu wyjściowego podstawiamy: x 1 = x 1 x 1 gdzie x 1, x 1 0, otrzymując równoważny problem. Definicja 4 Problem PL nazywamy sprzecznym, jeśli zbiór rozwiązań dopuszczalnych D określony w (4) jest zbiorem pustym. Uwaga 1 W dalszym ciągu rozważać będziemy wyłącznie problem PL, w którym macierz A jest rzędu m, czyli problem PL, który nie zawiera równań liniowo zależnych (można je wyeliminować i nie zmieni to zbioru rozwiązań). Załóżmy teraz, że X := M n,1 dla dowolnie ustalonego n N. Definicja 5 Niech a M 1,n, x X, b R. Jeśli a 0, to zbiór nazywamy półprzestrzenią domkniętą, zaś zbiór nazywamy hiperpłaszczyzną. P b a := {x : ax b} (5) H b a := {x : ax = b} (6) 3

Definicja 6 Wielościennym zbiorem wypukłym nazywamy zbiór M X będący przecięciem skończonej liczby półprzestrzeni domkniętych: P b 1 a 1,..., P b m a m, gdzie b i R, a i M 1,n, i N 1,m, czyli m M = P b i a i = {x X : a i x b i }. (7) Definicja 7 Rozwiązaniem dopuszczalnym równania i=1 Ax = b z niewiadomą x M n,1 (8) nazywamy każdą macierz x M n,1 spełniającą warunki Ax = b i x 0. Definicja 8 Rozwiązanie dopuszczalne x nazywamy bazowym rozwiązaniem dopuszczalnym względem macierzy bazowej A B, jeśli x j = 0 dla każdego j B. Twierdzenie 1 Dla każdej macierzy bazowej A B istnieje dokładnie jedno rozwiązanie bazowe A 1 B b, j B x[b] j = 0, j B. (9) Dowód. Bez zmniejszenia ogólności rozważań, przyjmijmy, że B = N 1,m. Wtedy B = N 1,n \B = N m+1,n. Przyjmijmy następujący zapis a 11... a 1m a 1m+1... a 1n A =. = [ A B A B ], x = a m1... a mm a mm+1... a mn Z warunku Ax = b mamy więc [ ] [ ] x AB A B B x B = b, czyli A B x B + A B x B = b. x 1. x m x m+1 Ponieważ macierz A B jest nieosobliwa więc istnieje macierz odwrotna A 1 B. Wówczas Przyjmując x B = 0, otrzymujemy a stąd, x B = A 1 B (b A B x B ). x =. x n = [ ] xb x B x B = A 1 B b, (10) [ ] xb x B jest jedynym bazowym rozwiązaniem względem A B. [ ] A 1 B b = 0 Wniosek 1 Dla każdej macierzy bazowej A B istnieje co najwyżej jedno bazowe rozwiązanie dopuszczalne. Wniosek 2 Macierz bazowa A B jest dopuszczalna wtedy i tylko wtedy, gdy A 1 B b 0. Twierdzenie 2 Rozwiązanie dopuszczalne x równania (8) jest bazowym rozwiązaniem dopuszczalnym wtedy i tylko wtedy, gdy jest wierzchołkiem zbioru rozwiązań dopuszczalnych tego równania. 4.

2 Postać bazowa problemu programowania liniowego Definicja 9 Mówimy, że problem (1)-(3) jest problemem w postaci bazowej względem m-elementowego zbioru B N 1,n, jeśli: (i) macierz A B jest macierzą jednostkową z dokładnością do kolejności wierszy; (ii) b 0; (iii) c j = 0 dla każdego j B. Twierdzenie 3 Dla niesprzecznego problemu PL (1)-(3) istnieje równoważny mu problem PL w postaci bazowej względem ustalonego zbioru B, tzn. oba problemy mają ten sam zbiór rozwiązań dopuszczalnych i optymalnych. Dowód. Wykażemy, że dla dowolnej macierzy bazowej dopuszczalnej A B istnieje problem PL w postaci bazowej względem zbioru B równoważny problemowi (1)-(3). Niech A B będzie macierzą bazową dopuszczalną, a więc istnieje macierz odwrotna A 1 B. Z wniosku 2 mamy A 1 B b 0. (11) Rozpatrzmy funkcję celu określoną w (1) na zbiorze D danym przez (4). Dla każdego x D zachodzi Ax = b. Stąd A 1 B Ax = A 1 B b, (12) co daje c B A 1 B Ax + c B A 1 B b = 0. Wówczas cx = cx c B A 1 B Ax + c B A 1 B b, x D (13) Zauważmy, że c B A 1 B b jest wielkością stałą. Rozpatrzmy teraz problem zminimalizowania funkcjonału M n,1 x dx (14) przy warunkach w którym Hx = h 0 oraz x 0, (15) gdzie Oznaczmy H :=A 1 B A, (16) h 0 :=A 1 B b, (17) d :=c z, (18) z := c B A 1 B A = c B H M 1,n. (19) z o := c B A 1 B b = c B h 0. (20) Na mocy (12) warunki ograniczające (2) i (15) są równoważne. Z (13) i z (18)-(20) otrzymujemy cx = (c z)x + z 0 = dx + z 0, (21) gdzie z 0 jest wielkością stałą. Zatem minimalizacja funkcji celu x cx określonej w (1) jest równoważna minimalizacji funkcji x dx określonej w (14). Zatem problemy (1)-(3) i (14)-(15) są równoważne. 5

Należy jeszcze wykazać, że drugi z nich jest problemem w postaci bazowej. Bez zmniejszenia ogólności rozważań przyjmijmy, że B = N 1,m. Z (16) mamy H = [ H B H B ] [ ] = A 1 B AB A B, a stąd Ponadto z (17) i (11) mamy Natomiast z (18) i (19) mamy H B = A 1 B A B = I. (22) h 0 = A 1 B b 0. (23) d = c z = c c B H, (24) czyli [ ] [ ] [ ] [ ] db d B = cb c B cb HB H B = cb c B H B c B c B H B. (25) Z (25) i (22) otrzymujemy d B = c B c B H B = c B c B I = 0. (26) Warunki (22), (23) i (26) oznaczają, że problem (14)-(15) określony przez (16)-(19) jest problemem w postaci bazowej, co kończy dowód. Z (16) wynika, że gdzie a więc a j = A B h j, j N 1,n. A B H = A, czyli A B [ h1... h n ] = [ a1... a n ], a j := A j i h j := H j dla j N 1,n, Wniosek 3 Liczba z 0 określona wzorem (20) jest wartością funkcji celu (1) odpowiadającą bazowemu rozwiązaniu dopuszczalnemu względem macierzy bazowej A B. Stosowanie metody sympleks polega na kolejnym przekształcaniu problemu PL (1)-(3) do odpowiednich postaci bazowych. Załóżmy, że zadany jest problem PL (1)-(3) oraz zbiór B N 1,n jest dowolnie ustalonym zbiorem takim, że A B jest macierzą bazową dopuszczalaną. Z dowodu twierdzenia 3 wynika, że macierze H, h 0 i d określone wzorami (16)-(19), wyznaczają problem PL w postaci bazowej względem zbioru B równoważny problemowi PL (1)-(3). Istotną rolę odgrywają elementy d j = c j z j, j B macierzy d = c z (c j := c(1, j), d j := d(1, j), z j := z(1, j) dla j N 1,n ). Elementy te pozwalają stwierdzić, czy bazowe rozwiązanie dopuszczalne x[b] względem macierzy bazowej A B jest rozwiązaniem optymalnym i dlatego nazywamy je wskaźnikami optymalności. Wynika to z następującego twierdzenia. Twierdzenie 4 Jeżeli c z 0, to x[b] jest rozwiązaniem optymalnym problemu PL (1)-(3). Dowód. Dla każdego x D mamy x 0. Ponadto z założeń twierdzenia wiemy, że c z 0. Zatem dla każdego x D mamy (c z)x 0. (27) 6

Ponieważ problem PL jest w postaci bazowej względem zbioru B więc d j = c j z j = 0 dla każdego j B, zaś dla bazowego rozwiązania dopuszczalnego x[b] względem macierzy bazowej A B z definicji 8 mamy x[b] j = 0 dla każdego j B (x[b] j := x[b](j, 1), j N 1,n ). Zatem n (c z)x[b] = j z j )x[b] j = j=1(c (c j z j )x[b] j + (28) j B + (c j z j )x[b] j = 0 x[b] j + (c j z j ) 0 = 0. j B j B j B Stąd oraz z (27) i (18) wynika, że x[b] jest rozwiązaniem optymalnym problemu PL. Twierdzenie 5 Jeżeli istnieje k B takie, że c k z k < 0 oraz h k celu problemu PL postaci (1)-(3) jest nieograniczona od dołu. = A 1 B a k 0, to funkcja Uwaga 2 Często postać bazową uzyskuje się doprowadzając problem do postaci standardowej przez wprowadzenie tzw. zmiennych dodatkowych. Często jednak to nie wystarcza. Najprostszym sposobem wyznaczania początkowej postaci bazowej jest wprowadzenie tzw. zmiennych sztucznych. Rozpatrzmy problem PL w postaci (1)-(3). Przyjmijmy, że dla uzyskania postaci bazowej do każdego równania układu (2) należy wprowadzić zmienną sztuczną. Rozpatrzmy następujący problem: zminimalizować funkcjonał m M n,1 x cx + M x s i (29) przy warunkach oraz i=1 Ax + x s = b (30) x 0, x s 0, (31) gdzie A M m,n, c M 1,n i b, x s M m,1, zaś M oznacza wystarczająco dużą liczbą (np. bardzo wysokie koszty jednostkowe). Jeśli w rozwiązaniu optymalnym (ẋ, x s ) problemu (29)-(31) zachodzi mi=1 ẋ s i = 0, to ẋ jest rozwiązaniem optymalnym problemu (1)-(3). W przeciwnym przypadku problem ten jest sprzeczny. 3 Schemat metody sympleks Wniosek 4 W każdym problemie PL zachodzi dokładnie jedna z trzech poniższych sytuacji: (i) problem PL jest sprzeczny, tj. nie istnieje jego rozwiązanie dopuszczalne, (ii) funkcja celu nie jest ograniczona od dołu, (iii) istnieje rozwiązanie optymalne. Praktyka wskazuje, że zazwyczaj rozwiązaniem problemu PL jest pojedynczy wierzchołek albo rozwiązań nie ma. Dlatego podczas rozwiązywania zadań posługiwać się można uproszczonym schematem metody sympleks: 1. Wyznaczamy początkową macierz bazową dopuszczalną A B oraz równoważną postać bazową problemu PL (1)-(3) względem zbioru B. 7

2. Jeśli c z = c c B A 1 B A 0, to na mocy twierdzenia 4, x[b] jest rozwiązaniem optymalnym problemu PL (1)-(3). koniec działania algorytmu! 3. Jeśli istnieje takie k B, że c k z k < 0, to wybieramy k B, dla którego c k z k jest najmniejszym wyrazem macierzy c z (kryterium wejścia). 4. Jeśli h k 0 (k wyznaczone przez kryterium z punktu 3), to na mocy twierdzenia 5 funkcja celu problemu PL (1)-(3) jest nieograniczona od dołu i tym samym problem ten nie ma rozwiązania optymalnego. 5. Jeśli h k posiada wyraz dodatni, to wybieramy l B, dla którego iloraz wyrazów macierzy h 0 przez dodatnie wyrazy macierzy h k jest najmniejszy h l0 h lk (kryterium wyjścia). 6. Tworzymy zbiór B k,l = (B \ {l}) {k} numerów kolumn nowej macierzy bazowej i wracamy do punktu 1 (początek następnej iteracji). Postępowanie zwykle (o ile jest to możliwe) zaczynamy od takiej postaci bazowej, w której A B = I, dzięki czemu wyznaczenie H, h 0, c z ze wzorów (16)-(19) jest natychmiastowe. Jeśli c z jest wektorem nieujemnym, to rozwiązaniem optymalnym jest x[b]. W przeciwnym przypadku, istnieje wyraz c k z k, który jest ujemny. Wybór najmniejszego wyrazu macierzy c z zapewnia największy jednostkowy spadek wartości minimalizowanej funkcji celu x cx. Wyraz c k z k jest bowiem zmianą wartości funkcji celu spowodowaną przez powiększenie wartości x k o 1 w stosunku do wartości funkcji celu odpowiadającej x[b]. Kryterium z punktu 3 określające macierz a k, która wejdzie do nowej macierzy bazowej (jeśli h k ma wyraz dodatni) nazywamy kryterium wejścia metody sympleks. Kryterium z punktu 5, nazwane kryterium wyjścia metody sympleks określa, która macierz a l zostanie usunięta z macierzy bazowej A B. Definicja 10 Bazowe rozwiązanie dopuszczalne x[b] nazywamy niezdegenerowanym, jeśli x[b] j > 0 dla każdego j B. W przeciwnym przypadku tzn. gdy x[b] j = 0 dla pewnego j B, rozwiązanie x[b] nazywamy zdegenerowanym. Definicja 11 Problem programowania liniowego nazywamy niezdegenerowanym, jeśli każde jego bazowe rozwiązanie dopuszczalne jest niezdegenerowane. Twierdzenie 6 W niezdegenerowanym problemie programowania liniowego metoda sympleks kończy się w skończonej liczbie iteracji. Przy rozwiązywaniu problemów PL metodą sympleks możemy stosować bardzo wygodny zapis z wykorzystaniem tablic sympleksowych. Pierwszą tablicę sympleksową można przedstawić jak w tabeli 1, natomiast każdą następną - jak w tabeli 2. Tablica 1: Zapis macierzowy pierwszej tablicy sympleksowej c c B x[b] B A b z j 0 c j z j c 8

Tablica 2: Zapis macierzowy tablicy sympleksowej c c B x[b] B H = A 1 B A h 0 = A 1 B b z j z = c B H z 0 = c B h 0 c j z j c z 4 Przykłady zastosowań metody sympleks w ekonomii 4.1 Optymalny wybór asortymentu produkcji Przedsiębiorstwa przemysłowe stają przed koniecznością opracowania planów produkcyjnych. Muszą podjąć decyzję co do rodzaju oraz ilości wytwarzania różnych wyrobów, uwzględniając przy tym istniejące warunki produkcji. Jednocześnie chcą osiągnąć możliwie najkorzystniejszy w danych warunkach wynik finansowy. Załóżmy, że przedsiębiorstwo może produkować n wyrobów: W 1,..., W n. Do ich produkcji zużywane jest m środków produkcji: S 1,..., S m. Dane są normy zużycia poszczególnych środków produkcji na jednostkę każdego wyrobu, zasoby środków produkcji, ceny lub zyski jednostkowe ze sprzedaży wyrobów. Należy określić, które wyroby i w jakich ilościach produkować, aby nie przekraczając posiadanych zasobów środków produkcji, zmaksymalizować zysk z ich sprzedaży. Oznaczmy a ij - zużycie i-tego środka produkcji na wytworzenie jednostki j-tego wyrobu, b i - posiadany zasób i-tego środka produkcji, c j - cena lub zysk jednostkowy ze sprzedaży j-tego wyrobu, x j - szukana wielkość produkcji j-tego wyrobu, gdzie i N 1,m, j N 1,n. Ogólny model zagadnienia można zapisać następująco c 1 x 1 +... + c n x n max (32) a 11 x 1 +... + a 1n x n b 1. (33) a m1 x 1 +... + a mn x n b m x 1,..., x n 0. (34) Układ nierówności (33) przedstawia ograniczenia wynikające z limitów poszczególnych środków produkcji. Lewa strona każdej z tych nierówności oznacza łączne zużycie danego środka produkcji przy wytwarzaniu wszystkich wyrobów. Zużycie to nie może być większe od zasobu. Ograniczenia (34) oznaczają, że wielkości produkcji wyrobów nie mogą być ujemne. Funkcja celu (32) jest to globalny zysk osiągnięty ze sprzedaży wszystkich wytwarzanych wyrobów. Przykład 1 Zaplanować produkcję zakładu w pewnym tygodniu w taki sposób, aby osiągnięty zysk był maksymalny. Zakład może wytwarzać dwa produkty: P 1 i P 2. Ich produkcja jest limitowana dostępnymi zasobami trzech środków: S 1, S 2 i S 3. Zasoby tych środków, zyski jednostkowe z poszczególnych produktów i nakłady jednostkowe poszczególnych środków na poszczególne produkty są podane w tabeli 3. Z danych wynika, że zysk uzyskany z wytworzenia 1 jednostki produktu P 1 wynosi 2, zaś zysk uzyskany z wytworzenia 1 jednostki produktu P 2 wynosi 3. Do produkcji tych produktów zakład może 9

Tablica 3: Parametry przykładowego zadania wyboru asortymentu produkcji P 1 P 2 zasoby S 1 2 2 14 S 2 1 2 8 S 3 4 0 16 zyski 2 3 użyć 14 jednostek środka S 1, 8 jednostek środka S 2 i 16 jednostek środka S 3. Liczba 4 znajdująca się na przecięciu wiersza S 3 i kolumny P 1 oznacza, że wytworzenie 1 jednostki produktu P 1 wymaga zużycia 4 jednostek środka S 3. W podobny sposób należy interpretować pozostałe liczby zamieszczone w tabeli 3. Oznaczając przez x 1 i x 2 planowane ilości produktów P 1 i P 2, otrzymamy problem 2x 1 + 3x 2 max 2x 1 + 2x 2 14 x 1 + 2x 2 8 (35) 4x 1 16 x 1, x 2 0. Funkcja (x 1, x 2 ) 2x 1 +3x 2 oznacza łączny zysk przedsiębiorstwa. Lewa strona pierwszej nierówności określa ilość zużytego środka S 1. Wytworzenie x 1 jednostek P 1 wymaga zużycia 2x 1 jednostek S 1, zaś wytworzenie x 2 jednostek P 2 wymaga zużycia 2x 2 jednostek S 1. Łącznie zużycie środka S 1 na oba produkty wynosi 2x 1 + 2x 2 i nie może przekroczyć dostępnej ilości S 1 wynoszącej 14. Interpretacja pozostałych nierówności dotyczących środków S 2 i S 3 jest podobna. Problem (35) rozwiążemy metodą sympleks w rozdziale 5. 4.2 Wybór technologii produkcji Wiele wyrobów może być wytwarzanych przy zastosowaniu różnych sposobów produkcji - różnych procesów technologicznych, odmiennych sposobów organizacji produkcji. W warunkach ograniczonych, głównie ze względu na koszty, zasobów środków produkcji poszukiwanie optymalnego procesu technologicznego jest bardzo ważne. Wariant I. Przyjmijmy, że dany wyrób może być wytwarzany przy zastosowaniu n różnych procesów technologicznych. Przy produkcji tego wyrobu ponoszone są nakłady m czynników produkcji, których zasoby są ograniczone i wynoszą odpowiednio b 1,..., b m. Technologiczne współczynniki zużycia czynników produkcji na jednostkę wyrobu wykonywanego przy zastosowaniu j-tej technologii oznaczmy przez a ij, i N 1,m, j N 1,m. Niech c j oznacza zysk na jednostce wyrobu osiągnięty z zastosowania j-tej technologii. Należy wyznaczyć takie wielkości produkcji wyrobu przy zastosowaniu poszczególnych technologii, by łączny zysk był maksymalny. Model matematyczny takiego problemu jest postaci (32)-(34), gdzie x 1,..., x n oznaczają szukane wielkości produkcji wyrobu otrzymane przy zastosowaniu poszczególnych procesów technologicznych. Przykład 2 Zakład produkcyjny ma możliwość stosowania trzech różnych procesów technologicznych produkcji pewnego detalu. W procesie wytwarzania ponoszone są nakłady trzech czynników produkcji (surowca, energii i pracy ludzkiej), których zasoby są ograniczone. Jednostkowe nakłady 10

poszczególnych czynników produkcji oraz ich zasoby są podane w tabeli 4. Zysk uzyskany na jednostce wyrobu wytwarzanego przy zastosowaniu poszczególnych procesów technologicznych wynosi odpowiednio 700 zł, 600 zł i 720 zł. Tablica 4: Współczynniki nakładów dla różnych procesów technologicznych w przykładowym zadaniu proces technologiczny czynniki produkcji 1 2 3 zasoby surowiec 18 17 18 2400 energia 0,5 0,4 0,5 60 praca 10 15 13 1500 Oznaczmy przez x 1, x 2, x 3 wielkości produkcji wyrobu otrzymane przy zastosowaniu poszczególnych procesów technologicznych. Otrzymujemy problem 700x 1 + 600x 2 + 720x 3 max 18x 1 + 17x 2 + 18x 3 2400 0, 5x 1 + 0, 4x 2 + 0, 5x 3 60 (36) 10x 1 + 15x 2 + 13x 3 1500 x 1, x 2, x 3 0. Rozwiązaniem tego zadania jest x 1 = 20, x 2 = 0, x 3 = 100, wartość funkcji celu wynosi 86.000. Interpretując ten wynik stwierdzamy, że zakład powinien produkować 20 jednostek detalu przy użyciu pierwszego procesu technologicznego i 100 - przy użyciu trzeciego procesu technologicznego. Maksymalny zysk wyniesie 86.000 zł. Wariant II. Przyjmijmy, że przedsiębiorstwo ma wytwarzać m wyrobów w ilościach b 1,..., b m. Do ich wytwarzania może stosować n procesów technologicznych. Stosując j-ty proces w skali jednostkowej (jeden raz) uzyskuje i-ty wyrób w ilości a ij i ponosi koszty c j, i N 1,m, j N 1,n. Należy tak dobrać procesy technologiczne, by wytworzyć potrzebne ilości poszczególnych wyrobów przy najmniejszych kosztach. Model matematyczny przedstawia się następująco c 1 x 1 +... + c n x n min a 11 x 1 +... + a 1n x n = b 1 a m1 x 1 +... + a mn x n = b m x 1,..., x n 0.. (37) gdzie x 1,..., x n oznaczają odpowiednie ilości jednostek, w jakich należy prowadzić poszczególne procesy technologiczne, np. kilowaty energii, tony surowca, godziny pracy maszyny. Przykład 3 Przedsiębiorstwo ma dostarczyć 3 różne detale w ilościach b 1 =2000, b 2 =1000, b 3 =4000. Ma możliwość zastosowania 4 różnych procesów technologicznych obróbki tych detali. Ilość detali uzyskiwanych w wyniku zastosowania poszczególnych sposobów obróbki detali w jednostce czasu oraz jednostkowe koszty obróbki podane są w tabeli 5. 11

Tablica 5: Parametry technologiczne obróbki detali przy zastosowaniu różnych procesów technologicznych proces technologiczny detale 1 2 3 4 plan produkcji 1 25 40 40 10 2000 2 15 8 20 5 1000 3 40 32 25 3 4000 koszt obróbki 420 380 450 200 Jeśli przez x 1, x 2, x 3, x 4 oznaczymy czas pracy maszyny w danym procesie technologicznym to otrzymamy następujący problem 420x 1 + 380x 2 + 450x 3 + 200x 4 min 25x 1 + 40x 2 + 40x 3 + 10x 4 = 2000 15x 1 + 8x 2 + 20x 3 + 5x 4 = 1000 (38) 40x 1 + 32x 2 + 25x 3 + 30x 4 = 4000 x 1,..., x 4 0. Rozwiązaniem tego zadania jest x 1 = x 2 = 0, x 3 = 21, 05, x 4 = 115, 79 (wyniki zaokrąglone do dwóch miejsc po przecinku), wartość funkcji celu wynosi 32.631, 57. Zatem aby dostarczyć detale w wymaganej ilości, przedsiębiorstwo powinno zastosować proces technologiczny trzeci i czwarty, a minimalne koszty wyniosą wtedy 32.631, 57 zł. 4.3 Optymalizacja składu mieszanin W przedsiębiorstwach takich branż, jak metalurgiczna, chemiczna, petrochemiczna, spożywcza, pewne wyroby są często mieszaninami, które otrzymuje się w wyniku łączenia różnych surowców. Składniki zazwyczaj są wzajemnie zastępowalne i mają niejednakowy koszt, przez co koszt mieszanin o odmiennym składzie jest różny, zaś jakość mieszanin musi być taka sama. Zadanie polega na tym, aby znaleźć takie proporcje (ilości) poszczególnych składników mieszaniny, aby otrzymać wyrób o pożądanych właściwościach przy możliwie najniższych kosztach zakupu surowców. Przykłady zagadnień: ustalenie najtańszego zestawu wsadu różnych metali do stopu, wyznaczenie optymalnego składu komponentów w celu wytworzenia benzyny, zestawienie optymalnego składu zużycia różnych paliw z zachowaniem norm dotyczących zanieczyszczeń środowiska, wyznaczenia najtańszego zestawu dawek nawozów mineralnych. Załóżmy, że mieszanina składa się z n materiałów wsadowych. Gotowy wyrób powinien zawierać m składników, przy czym powinien mieć ściśle ustalony skład chemiczny określony wielkością b i, i N 1,m, oznaczającą procentowy udział i-tego składnika w gotowym wyrobie. Znane są wielkości a ij, i N 1,m, j N 1,n oznaczające procentową zawartość i-tego składnika w j-tym materiale 12

wsadowym. Ponadto znane są ceny c j, j N 1,n jednostki każdego materiału wsadowego. Model możemy zapisać w postaci (37) z dodatkowym warunkiem n x i = 1. i=1 Przykład 4 W celu otrzymania stopu ołowiu, cyny i cynku wykorzystuje się surowiec będący mieszaniną pięciu stopów tych metali. Stopy te różnią się zawartością poszczególnych metali i kosztem uzyskania 1 kg stopu. Dane przedstawia tabela 6. Należy określić, jaki powinien być udział stopu każdego rodzaju w mieszaninie stanowiącej gotowy wyrób, aby otrzymać po minimalnym koszcie mieszaninę zawierającą 20% ołowiu, 30% cynku i 50% cyny. Tablica 6: Procentowy udział ołowiu, cyny i cynku w różnych stopach stopy metale I II III IV V ołów 10 10 40 60 30 cyna 10 30 50 30 20 cynk 80 60 10 10 50 koszt 1 kg 4 4,5 5,8 6 7,5 Oznaczmy przez x 1,..., x 5 udziały poszczególnych rodzajów stopów w mieszaninie stanowiącej gotowy wyrób. Otrzymujemy model 4x 1 + 4, 5x 2 + 5, 8x 3 + 6x 4 + 7, 5x 5 min 10x 1 + 10x 2 + 40x 3 + 60x 4 + 30x 5 = 20 10x 1 + 30x 2 + 50x 3 + 30x 4 + 20x 5 = 30 (39) 80x 1 + 60x 2 + 10x 3 + 10x 4 + 50x 5 = 50 5 x i = 1, x 1,..., x 5 0. i=1 Rozwiązaniem tego zadania jest x 1 = x 2 = x 3 = 1, x 3 4 = x 5 = 0, wartość funkcji celu wynosi 4.767. Należy więc wziąć pierwsze trzy stopy w równej ilości, tj. po 1, a pozostałych stopów nie 3 wykorzystywać. Zapewni to minimalny koszt gotowej mieszaniny wynoszący 4.767 zł. Przykład 5 Sporządzić najtańszą mieszankę zawierającą co najmniej 2 jednostki składnika A, co najmniej 4 jednostki składnika B i co najmniej 3 jednostki składnika C. Mieszankę tę można sporządzić z trzech produktów: P 1, P 2 i P 3, których ceny jednostkowe wynoszą odpowiednio 240, 300 i 200. Na przecięciu odpowiednich wierszy i kolumn w tabeli 7 podane są zawartości odpowiednich składników w jednostkach poszczególnych produktów, np. w jednej jednostce produktu P 1 zawarte są 4 jednostki składnika B. Oznaczając przez x 1, x 2 i x 3 ilości odpowiednich produktów P 1, P 2 i P 3 użytych do sporządzenia mieszanki, otrzymujemy problem 240x 1 + 300x 2 + 200x 3 min x 1 + 2x 2 + x 3 2 4x 1 + x 2 + x 3 4 (40) 3x 1 + 5x 2 + x 3 3 x 1, x 2, x 3 0. 13

Tablica 7: Zawartość składników w poszczególnych produktach oraz minimalne ilości P 1 P 2 P 3 minimalne ilości A 1 2 1 2 B 4 1 1 4 C 3 5 1 3 ceny 240 300 200 Problem ten rozwiążemy metodą sympleks w rozdziale 5. 4.4 Problem najtańszej diety Zadanie sprowadza się do określenia, jakie ilości różnych produktów żywnościowych należy spożyć, aby przy pełnym zaspokojeniu potrzeb organizmu na podstawowe składniki odżywcze i kalorie, koszt wyżywienia był możliwie najniższy. Problem ten może być stawiany w odniesieniu do ludzi (stołówek, pojedynczego człowieka) oraz zwierząt domowych czy hodowlanych. Aby zaspokoić potrzeby organizmu należy spożyć odpowiednie ilości różnych składników odżywczych - białka, węglowodanów, tłuszczów, soli mineralnych, witamin, które są zawarte w różnych produktach żywnościowych. Te pożądane ilości składników pokarmowych podane są w tzw. normach żywieniowych. Załóżmy, że jest m składników odżywczych oraz b 1,..., b m norm żywieniowych. Mamy do dyspozycji n produktów. Przez a ij, i N 1,m, j N 1,n, oznaczmy zawartość i-tego składnika w jednostce j-tego produktu. Znamy też ceny poszczególnych produktów c 1,..., c n. Należy wybrać taki skład mieszanki żywieniowej, która ze wszystkich dopuszczalnych byłaby najtańsza. Jeśli szukane ilości poszczególnych produktów oznaczmy przez x 1,..., x n, to otrzymamy model c 1 x 1 +... + c n x n min a 11 x 1 +... + a 1n x n b 1 a m1 x 1 +... + a mn x n b m x 1,..., x n 0.. (41) W problemie tym mogą występować jeszcze ograniczenia określające górne granice spożycia niektórych produktów, np. aby dieta nie była zbyt monotonna. Oznaczmy d j - minimalna ilość j-tego produktu, jaką powinno się spożyć, g j - maksymalna ilość j-tego produktu, jaką organizm może otrzymać i dołączmy do modelu nierówności d j x j g j, j N 1,n. (42) Przykład 6 Ustalić optymalną rację żywnościową dla bydła w gospodarstwie. W skład racji wchodzą 3 produkty: kiszonka, siano i pasza treściwa. Produkty te zawierają następujące składniki odżywcze istotne ze względu na zapotrzebowanie organizmu zwierzęcego: białko, wapno i witaminy. Zawartość tych składników w 1 kg poszczególnych produktów wyrażona w gramach oraz minimalne dobowe normy zapotrzebowania na nie przedstawia tabela 8. Górne granice spożycia poszczególnych produktów wynikające z dostępności pasz wynoszą: kiszonki - 20 kg, siana - 10 kg, pasz treściwych - 15 kg. Ceny 1 kg poszczególnych produktów: kiszonka 200, siano 300, pasze treściwe 500. 14

Tablica 8: Zawartość składników odżywczych w paszach oraz normy żywieniowe składniki odżywcze w g produkty w kg białko wapno witaminy kiszonka 20 4 1 siano 50 6 2 pasze treściwe 180 3 1 normy żywieniowe 100 120 4 Oznaczmy przez x 1, x 2 i x 3 dobowe spożycie odpowiednio kiszonki, siana i pasz treściwych. Otrzymamy model 200x 1 + 300x 2 + 500x 3 min 0, 020x 1 + 0, 050x 2 + 0, 180x 3 0, 100 0, 004x 1 + 0, 006x 2 + 0, 003x 3 0, 120 (43) 0, 001x 1 + 0, 002x 2 + 0, 001x 3 0, 004 x 1 20, x 2 10, x 3 15 x 1, x 2, x 3 0. Rozwiązaniem tego zadania jest x 1 = 15, x 2 = 10, x 3 = 07, wartość funkcji celu wynosi 6.000. Interpretując ten wynik stwierdzamy, że dzienna racja żywnościowa bydła wymagająca poniesienia najmniejszego kosztu obejmuje spożycie 15 kg kiszonki i 10 kg siana. Minimalny koszt racji żywnościowej wynosi 6.000 zł. 5 Rozwiązania wybranych przykładów Przykład 1. Zaplanować produkcję zakładu w pewnym tygodniu w taki sposób, aby osiągnięty zysk był maksymalny. Zakład może wytwarzać dwa produkty: P 1 i P 2. Ich produkcja jest limitowana dostępnymi zasobami trzech środków: S 1, S 2 i S 3. Zasoby tych środków, zyski jednostkowe z poszczególnych produktów i nakłady jednostkowe poszczególnych środków na poszczególne produkty są podane w poniższej tabeli. P 1 P 2 zasoby S 1 2 2 14 S 2 1 2 8 S 3 4 0 16 zyski 2 3 Oznaczając przez x 1 i x 2 planowane ilości produktów P 1 i P 2, problem przyjmuje postać 2x 1 + 3x 2 max 2x 1 + 2x 2 14 x 1 + 2x 2 8 4x 1 16 x 1, x 2 0. 15

Po wprowadzeniu dodatkowych zmiennych x 3, x 4 i x 5 oraz pomnożeniu funkcji celu przez 1, otrzymamy problem PL w postaci standardowej (równoważny problemowi (35)) 2x 1 3x 2 min 2x 1 +2x 2 +x 3 = 14 x 1 +2x 2 +x 4 = 8 4x 1 +x 5 = 16 x j 0, j N 1,5. Problem ten można zapisać także w postaci (1)-(3), przyjmując A = [ ] 2 2 1 0 0 14 a 1 a 2 a 3 a 4 a 5 = 1 2 0 1 0, b = 8 4 0 0 0 1 16 x 1 x 2 x = x 3 x 4 x 5, c = [ c 1 c 2 c 3 c 4 c 5 ] = [ 2 3 0 0 0 ]. Jest to postać bazowa problemu względem zbioru B = {3, 4, 5}, A B = (a 3 a 4 a 5 ) = I. Zatem zmiennymi bazowymi są zmienne dodatkowe x 3, x 4, x 5, natomiast zmienne x 1, x 2 przyjmują wartość 0. Mamy więc B = {3, 4, 5}, B = {1, 2}. Wartości z j obliczymy ze wzoru z j = c B h j, j N 1,5. Ponieważ c B = 0, więc z j = 0 dla j N 1,5 i macierz c z nie jest nieujemna. Tablica sympleksowa dla początkowego rozwiązania bazowego ma zatem postać tabeli 9. (44) Tablica 9: Pierwsza tablica sympleksowa c j -2-3 0 0 0 c B zmienne bazowe h 1 h 2 h 3 h 4 h 5 h 0 0 x 3 2 2 1 0 0 14 0 x 4 1 2 0 1 0 8 0 x 5 4 0 0 0 1 16 z j 0 0 0 0 0 0 c j z j -2-3 0 0 0 Kryterium wejścia: wyznaczamy indeks k B, dla którego c k z k jest najmniejszym wyrazem macierzy c z. Jest nim c 2 z 2 = 3. Tak więc k = 2, czyli w drugiej iteracji wprowadzimy zmienną bazową x 2. Aby ustalić, w miejsce której z dotychczasowych zmiennych bazowych ją wprowadzić, należy podzielić wyrazy macierzy h 0 przez dodatnie wyrazy macierzy h 2 i wybrać indeks l B, dla którego ten iloraz jest najmniejszy (kryterium wyjścia). W tym przypadku spośród dwóch (nie należy obliczać h 30 h 32, gdyż h 32 = 0) ilorazów 14 i 8 najmniejszy odpowiada zmiennej x 2 2 4. A zatem l = 4, czyli w drugiej iteracji w tablicy sympleksowej zmiennymi bazowymi są x 3, x 2, x 5, a B 2,4 = (B \ {4}) {2} = {3, 2, 5}. Poszczególne elementy tej tablicy można obliczyć stosując przekształcenia (16)-(20). Druga tablica sympleksowa ma zatem postać tabeli 10. Macierz c z wciąż nie jest nieujemna. Z kryterium wejścia: k = 1. 16

Tablica 10: Druga tablica sympleksowa c j -2-3 0 0 0 c B zmienne bazowe h 1 h 2 h 3 h 4 h 5 h 0 0 x 3 1 0 1-1 0 6 1 1-3 x 2 1 0 0 4 2 2 0 x 5 4 0 0 0 1 16 z j 3-3 0 3 0-12 2 2 c j z j 1 3 0 0 0 2 2 Z kryterium wyjścia: l = 5, gdyż min{ h 30 h 31, h 20 h 21, h 50, 16 4 } = 4 = h 50 h 51. Zatem w trzeciej h 51 } = min{ 6, 4 1 1 2 iteracji w tablicy sympleksowej zmiennymi bazowymi są x 3, x 2, x 1, a B 1,5 = (B \ {5}) {1} = {3, 2, 1}. Trzecia tablica sympleksowa ma zatem postać tabeli 11. Macierz c z jest nieujemna, koniec działania algorytmu sympleks. Tablica 11: Trzecia tablica sympleksowa c j -2-3 0 0 0 c B zmienne bazowe h 1 h 2 h 3 h 4 h 5 h 0 0 x 3 0 0 1-1 1 2 4 1-3 x 2 0 1 0 1 2 2 8 1-2 x 1 1 0 0 0 4 4 z j -2-3 0 3 1-14 2 8 3 1 c j z j 0 0 0 2 8 Przykład 5 Sporządzić najtańszą mieszankę zawierającą co najmniej 2 jednostki składnika A, co najmniej 4 jednostki składnika B i co najmniej 3 jednostki składnika C. Mieszankę tę można sporządzić z trzech produktów: P 1, P 2 i P 3, których ceny jednostkowe wynoszą odpowiednio 240, 300 i 200. W poniższej tabeli na przecięciu odpowiednich wierszy i kolumn podane są zawartości odpowiednich składników w jednostkach poszczególnych produktów. P 1 P 2 P 3 minimalne ilości A 1 2 1 2 B 4 1 1 4 C 3 5 1 3 ceny 240 300 200 Oznaczając symbolami x 1, x 2 i x 3 ilości odpowiednich produktów P 1, P 2 i P 3 użytych do 17

sporządzenia mieszanki, otrzymujemy problem 240x 1 + 300x 2 + 200x 3 min x 1 + 2x 2 + x 3 2 4x 1 + x 2 + x 3 4 3x 1 + 5x 2 + x 3 3 x 1, x 2, x 3 0. Odejmując od lewych stron nierówności nieujemne zmienne dodatkowe x 4, x 5 problem PL w postaci standardowej i x 6, otrzymamy 240x 1 + 300x 2 + 200x 3 min x 1 +2x 2 +x 3 x 4 = 2 4x 1 +x 2 +x 3 x 5 = 4 3x 1 +5x 2 +x 3 x 6 = 3 x j 0, j = 1,..., 6. Zwróćmy uwagę na interpretację zmiennych dodatkowych. Mamy np. x 4 = x 1 + 2x 2 + x 3 2, gdzie x 1 + 2x 2 + x 3 oznacza ilość składnika A w mieszance, zaś 2 jest minimalną ilością tego składnika. Zatem x 4 oznacza nadwyżkę (ponad minimalną ilość) zawartości składnika A w mieszance. Otrzymana postać standardowa nie jest postacią bazową, gdyż macierz współczynników w układzie równań nie zawiera macierzy jednostkowej. Możemy stworzyć macierz jednostkową w macierzy współczynników układu równań, dodając do lewych stron tych równań odpowiednie zmienne nieujemne x 7, x 8 i x 9. Jednak pisząc np. pierwsze równanie w postaci x 1 + 2x 2 + x 3 x 4 + x 7 = 2 naruszamy równanie x 1 + 2x 2 + x 3 x 4 = 2 o ile x 7 > 0. Musimy więc zagwarantować, aby w rozwiązaniu optymalnym zmienne x 7, x 8 i x 9 przyjęły wartości 0. Możemy to zrobić, przyporządkowując im bardzo wysokie koszty jednostkowe. Oznaczmy te koszty przez M, gdzie M oznacza wystarczająco dużą liczbę. Otrzymamy problem PL w postaci bazowej względem zbioru B = {7, 8, 9}, A B = (a 7 a 8 a 9 ) = I 240x 1 + 300x 2 + 200x 3 + Mx 7 + Mx 8 + Mx 9 min x 1 +2x 2 +x 3 x 4 +x 7 = 2 4x 1 +x 2 +x 3 x 5 +x 8 = 4 3x 1 +5x 2 +x 3 x 6 +x 9 = 3 x j 0, j N 1,9. Teraz zadanie to możemy rozwiązać za pomocą algorytmu sympleks. Mamy B = {7, 8, 9}, więc c B = {M, M, M}. Wartości z j obliczymy ze wzoru z j = c B h j, j N 1,9. Tablica sympleksowa dla początkowego rozwiązania bazowego ma zatem postać tabeli 12. Macierz c z nie jest nieujemna. Kryterium wejścia: wyznaczamy indeks k B, dla którego c k z k jest najmniejszym wyrazem macierzy c z. Jest nim c 1 z 1 = 8M +240. Tak więc k = 1, czyli w drugiej iteracji wprowadzimy zmienną bazową x 1. Aby ustalić, w miejsce której z dotychczasowych zmiennych bazowych ją wprowadzić, należy podzielić wyrazy macierzy h 0 przez dodatnie wyrazy macierzy h 1 i wybrać indeks l B, dla którego ten iloraz jest najmniejszy (kryterium wyjścia). Ponieważ min{ h 70 h 71, h 80 h 81, h 90 h 91 } = min{ 2, 4, 3} = 1 = h 80 1 4 3 h 81 = h 90 h 91, więc kryterium wyjścia nie rozstrzyga jednoznacznie, która zmienna opuszcza bazę. Wybierzmy jedną z nich, np. x 9. Otrzymaliśmy zdegenerowane bazowe rozwiązanie dopuszczalne, gdyż x 8 = 0. Mamy 18 (45) (46)

Tablica 12: Pierwsza tablica sympleksowa c j 240 300 200 0 0 0 M M M c B x[b] B h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 h 0 M x 7 1 2 1-1 0 0 1 0 0 2 M x 8 4 1 1 0-1 0 0 1 0 4 M x 9 3 5 1 0 0-1 0 0 1 3 z j 8M 8M 3M -M -M -M M M M 9M c j z j -8M -8M -3M M M M 0 0 0 +240 +300 +200 Tablica 13: Druga tablica sympleksowa c j 240 300 200 0 0 0 M M M c B x[b] B h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 h 0 1 2 1 M x 7 0-1 0 1 0 1 1 3 3 3 3 M x 8 0 17 1 4 0-1 0 1 4 0 3 3 3 3 5 1 240 x 1 1 0 0 1 1 0 0 1 3 3 3 3 z j 240 16M 1M -M -M 5M M M 5M M+240 3 3 3 3 +400 +80-80 +80 16 c j z j 0 M M 5M 0 0 8 3 3 3 3-100 +120 +80-80 l = 9, k = 1 oraz B 1,9 = {7, 8, 1}. Pozostałe elementy drugiej tablicy sympleksowej (tabela 13) obliczymy stosując przekształcenia (16)-(20). Macierz c z wciąż nie jest nieujemna. Z kryterium wejścia k = 6. Z kryterium wyjścia mamy l = 8 ponieważ min{ h 70 h 76, h 80 0 = h 80 h 86 } = min{ 1 1, 0 4 } = 3 3 h 16, gdyż h 16 < 0. A zatem B 6,8 = {7, 6, 1} i otrzymujemy tabelę 14. h 86, a nie należy obliczać h 10 Macierz c z wciąż nie jest nieujemna. W kolejnej iteracji wprowadzamy zmienną x 2 w miejsce x 7, gdyż najmniejszym wyrazem macierzy c z jest c 2 z 2 = 7M + 240, min{ h 70 4 h 72, h 10 h 12 } = min{ 1 7 } = 4 = h 10 h 17 (nie należy obliczać h 10 h 62, gdyż h 62 < 0). Otrzymujemy B 2,7 = {2, 6, 1}. Stosujemy przekształcenia elementarne i otrzymujemy tabelę 15. Macierz c z jest nieujemna, koniec działania algorytmu sympleks. Otrzymaliśmy zatem rozwiązanie optymalne problemu x 1 = 6, x 7 2 = 4, x 7 3 = x 4 = x 5 = 0, x 6 = 17, x 7 7 = x 8 = x 9 = 0. Do sporządzenia mieszanki należy użyć 6 jednostki produktu P 7 1 i 4 jednostki produktu P 7 2. Mieszanka zawiera minimalne ilości składników A i B wynoszące odpowiednio 2 i 4 oraz zawiera 17 jednostki składnika C ponad minimalną ilość wynoszącą 3. Koszt takiej mieszanki wynosi 240 6 +300 4 +200 0 = 7 7 7 377 1 zł. 7 4, 1 1 4 19

Tablica 14: Trzecia tablica sympleksowa c j 240 300 200 0 0 0 M M M c B x[b] B h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 h 0 7 3 1 M x 7 0-1 0 1 1 0 1 4 4 4 4 0 x 6 0 17 1 0 3 3 1 0-1 0 4 4 4 4 1 1 240 x 1 1 0 1 1 0 0 0 1 4 4 4 4 7 z j 240 3 4 4 4 4 +60 +60-60 +60 c j z j 0 7M 3 M 1M 0 0 5 4 4 4 4 +240 +140 +60-60 Tablica 15: Czwarta tablica sympleksowa c j 240 300 200 0 0 0 M M M c B x[b] B h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 h 0 3 300 x 2 0 1 4 1 4 0 1 4 0 7 7 7 7 7 7 11 0 x 6 0 0 17 1 17 1 17 1-1 7 7 7 7 7 7 1 1 240 x 1 1 0 2 0 1 2 6 0 7 7 7 7 7 7 z j 240 300 162 6 137 1 25 5 0 137 1 25 5 0 377 1 7 7 7 7 7 7 c j z j 0 0 37 1 137 1 25 5 0 M M M 7 7 7 137 1 25 5 7 7 20