Zbiór rozwiązań dopuszczalnych programu liniowego Zbiór rozwiązań dopuszczalnych programu linowego to taki zbiór, który spełnia warunki ograniczające (funkcyjne oraz brzegowe) programu liniowego. Przy wyznaczaniu zbioru rozwiązań dopuszczalnych metodą geometryczną może wystąpić jeden z pięciu przypadków: 1. Zbiór rozwiązań dopuszczalnych jest ograniczony i stanowi wielobok wypukły. 2. Zbiór rozwiązań dopuszczalnych jest ograniczony i stanowi odcinek. 3. Zbiór rozwiązań dopuszczalnych jest punktem. 4. Zbiór rozwiązań dopuszczalnych jest zbiorem pustym. 5. Zbiór rozwiązań dopuszczalnych jest zbiorem nieograniczonym. Jeżeli zbiór rozwiązań dopuszczalnych stanowi wielobok wypukły, odcinek oraz punkt, to można wyznaczyć rozwiązanie optymalne. Jeżeli zbiór rozwiązań dopuszczalnych jest zbiorem pustym oraz zbiorem nieograniczonym, to nie można wyznaczyć rozwiązania optymalnego. Postać macierzowa programu liniowego Postać standardowego zadania MAKSYMALIZACJI programu liniowego: Zmienne decyzyjne Warunki ograniczające x 1, x 2,, x n a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2... Funkcja celu a m1 x 1 + a r2 x 2 + + a mn x n b m x 1, x 2,, x n 0 Artur Piątkowski WZ UW Strona 1
F(x 1, x 2,, x n ) = c 1 x 1 + c 2 x 2 + + c n x n MAX Każdy program liniowy można zapisać w postaci macierzowej. Postać macierzowa standardowego programu maksymalizacji jest następująca: Ax b x 0 cx MAX Gdzie a 11 a 12 a 1n x 1 b 1 a 21 a 22 a 2n x 2 b A = [ ], x = [ ], b = [ 2 ], c = [c 1 c 2,, c n ] a m1 a m2 a mn x n b m Postać macierzowa standardowego programu minimalizacji jest następująca Gdzie Ax b x 0 cx MIN a 11 a 12 a 1n x 1 b 1 a 21 a 22 a 2n x 2 b A = [ ], x = [ ], b = [ 2 ], c = [c 1 c 2,, c n ] a m1 a m2 a mn x n b m A jest macierzą M x N współczynników stojących po lewej stronie układu warunków funkcyjnych. x jest macierzą kolumnową zmiennych decyzyjnych, o wymiarach N x 1. b jest macierzą kolumnową wyrazów wolnych układu warunków funkcyjnych, o wymiarach M x 1. c jest macierzą wierszową współczynników funkcji celu, o wymiarach 1 x N. Dualizm w programowaniu liniowym Do każdego programu liniowego, który można uznać za program pierwotny (prymalny), można stworzyć program dualny. Uznajmy postać macierzową standardowego programu maksymalizacji za program pierwotny (prymalny). Artur Piątkowski WZ UW Strona 2
Program pierwotny (prymalny) Ax b x 0 cx MAX Program dualny A T y c T y 0 b T y MIN Gdzie a 11 a 21 a m1 y 1 c 1 A T a 12 a 22 a m2 y 2 = [ ], y = [ ], c T c 2 = [ ], b T = [b 1 b 2,, b n ] a 1n a 2n a mn y m c m Program dualny jest odrębnym programem, z nowymi, nie występującymi w programie pierwotnym zmiennymi decyzyjnymi. y jest M-elementową macierzą kolumnową nowych zmiennych decyzyjnych (zmiennych dualnych). A T jest macierzą transponowaną względem macierzy współczynników warunków funkcyjnych zadania prymalnego. c T jest macierzą transponowaną względem macierzy współczynników funkcji celu zadania prymalnego. b T jest macierzą transponowaną względem macierzy wyrazów wolnych układów warunków ograniczających zadania prymalnego. Program dualny do standardowego zagadnienia maksymalizacji jest standardowym zagadnieniem minimalizacji. Program dualny do standardowego zagadnienia minimalizacji jest standardowym zagadnieniem maksymalizacji. Istnieją problemy decyzyjne, w których występują więcej niż dwie zmienne decyzyjne. Do rozwiązania takiego problemu można wykorzystać zależność pomiędzy programem pierwotnym i dualnym Artur Piątkowski WZ UW Strona 3
ZADANIE 1 Zakład FIATA w Bielsku-Białej produkuje pięć modeli samochodów: Fiata Pandę, Fiata 500, Fiata Punto, Fiata Doblo oraz Fiata Freemont. W procesie produkcji tych modeli zużywa się wiele środków produkcji, spośród których dwa (gumowe przewody układu chłodzenia i śruby do felg) są limitowane. Limity te wynoszą: gumowe przewody układu chłodzenia - 147 000 sztuk, natomiast śruby do felg - 120 000 sztuk. Nakłady limitowanych środków produkcji na poszczególne modele Fiata zamieszczono w poniższej tabeli. Tabela 1. Nakłady limitowanych środków produkcji na poszczególne modele Fiata. Środki produkcji Gumowe przewody układu chłodzenia Jednostkowe nakłady Fiat Panda Fiat 500 Fiat Punto Fiat Doblo Fiat Freemont 7 13 9 23 14 Śruby do felg 12 8 10 8 14 Cena sprzedaży (w tys. zł) Fiata Pandy wynosi 31, Fiata 500 41, Fiata Punto 37, Fiata Doblo 53, Fiata Freemont 98. Zbudować program pierwotny do powyższego zadania oraz program dualny względem programu pierwotnego (prymalnego). ROZWIĄZANIE Na początku należy zbudować model matematyczny (program prymalny), który opisuje przedstawioną sytuację. PROGRAM PRYMALNY Zmienne decyzyjne x 1 wielkość produkcji Fiata Pandy x 2 wielkość produkcji Fiata 500 x 3 wielkość produkcji Fiata Punto Artur Piątkowski WZ UW Strona 4
x 4 wielkość produkcji Fiata Doblo x 5 wielkość produkcji Fiata Freemont Warunki ograniczające 7x 1 + 13x 2 + 9x 3 + 23x 4 + 14x 5 147 000 12x 1 + 8x 2 + 10x 3 + 8x 4 + 14x 5 120 000 x 1, x 2, x 3, x 4, x 5 0 Funkcja celu F(x 1, x 2, x 3, x 4, x 5 ) = 31x 1 + 41x 2 + 37x 3 + 53x 4 + 98x 5 MAX W programie prymalnym (pierwotnym) występują dwa warunki funkcyjne oraz pięć zmiennych decyzyjnych. W takim wypadku w programie dualnym będzie pięć warunków funkcyjnych oraz dwie NOWE zmienne decyzyjne (zmienne dualne). Oznaczmy je y 1 oraz y 2. Pierwszym krokiem w konstrukcji programu dualnego jest transpozycja macierzy współczynników warunków ograniczających zadania prymalnego. 7 13 9 23 14 A = [ 12 8 10 8 14 ] 7 13 A T = 9 23 [ 14 12 8 10 8 14] Macierz A T jest macierzą współczynników warunków funkcyjnych zadania dualnego. Następnie konstruujemy program dualny. PROGRAM DUALNY Warunki ograniczające 7y 1 + 12y 2 31 13y 1 + 8y 2 41 9y 1 + 10y 2 37 Artur Piątkowski WZ UW Strona 5
23y 1 + 8y 2 53 14y 1 + 14y 2 98 y 1, y 2 0 Funkcja celu G(y 1, y 2 ) = 147 000y 1 + 120 000y 2 MIN Powyższy program dualny można rozwiązać geometrycznie, ponieważ składają się na niego dwie zmienne decyzyjne y 1, y 2 oraz pięć ograniczeń funkcyjnych. Cechy charakterystyczne dualizmu w programowaniu liniowym Na podstawie powyższego przykładu można wyciągnąć ogólne wnioski dotyczące dualizmu w programowaniu liniowym: 1. Dla każdego pierwotnego programu liniowego można, w oparciu o jego parametry, zbudować inny program liniowy, który nazywamy dualnym do zagadnienia pierwotnego (prymalnego). 2. W zadaniu dualnym występuje tyle zmiennych decyzyjnych y i, ile warunków funkcyjnych w zadaniu prymalnym. 3. W zadaniu dualnym macierz współczynników warunków funkcyjnych jest macierzą transponowaną względem macierzy współczynników funkcyjnych zadania prymalnego. 4. Warunki ograniczające w zadaniu dualnym są nierównościami o zwrocie przeciwnym do kierunku nierówności warunków ograniczających zadania prymalnego. 5. W zadaniu dualnym wyrazy wolne warunków ograniczających są równe współczynnikom funkcji celu zadania prymalnego. 6. Współczynniki funkcji celu programu dualnego są równe wyrazom wolnym warunków funkcyjnych zadania prymalnego. 7. Kryterium optymalizacyjne zadania dualnego jest przeciwne do kryterium optymalizacyjnego zadania prymalnego. 8. Ograniczenia brzegowe (trywialne) zadania dualnego również dotyczą nieujemności zmiennych decyzyjnych: y 1, y 2,... y m, 0 Artur Piątkowski WZ UW Strona 6
9. Jeżeli program dualny posiada rozwiązanie optymalne, to program prymalny również posiada rozwiązanie optymalne. Zachodzi wtedy równość: F MAX = G MIN Powyższe cechy charakterystyczne dotyczą budowy programów dualnych, w których warunki funkcyjne są wyrażone w jednolitej formie (jako układ nierówności o określonym kierunku). Tego typu zagadnienia noszą nazwę symetrycznych zagadnień dualnych. Literatura 1. Guzik B. (2009). Wstęp do badań operacyjnych. Wydawnictwo Uniwersytetu Ekonomicznego, Poznań. 2. Kukuła K. (1999). Badania operacyjne w przykładach i zadaniach. PWN, Warszawa. 3. Lipiec-Zajchowska M. Wspomaganie procesów decyzyjnych. Tom III. Badania Operacyjne, Wyd. C.H. Beck, Warszawa 2003. 4. Radzikowski W. (1994). Badania operacyjne w zarządzaniu. Wydawnictwa Uniwersytetu Warszawskiego, Warszawa. 5. Sikora W. (2008). Badania operacyjne. PWE, Warszawa. Artur Piątkowski WZ UW Strona 7