Justyna Kosakowska i Piotr Malicki. Badania operacyjne. (Kurs letni 2009) Materiały dydaktyczne dla studentów I-go roku matematyki

Podobne dokumenty
Badania operacyjne- programowanie liniowe

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

Programowanie liniowe

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

Teoretyczne podstawy programowania liniowego

Programowanie liniowe metoda sympleks

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

Programowanie liniowe

Programowanie liniowe. Tadeusz Trzaskalik

Programowanie liniowe metoda sympleks

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

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

Algorytm simplex i dualność

Optymalizacja ciągła

Programowanie liniowe

Rozdział 1 PROGRAMOWANIE LINIOWE

Grzegorz Bobiński. Wykład monograficzny Programowanie Liniowe i Całkowitoliczbowe

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

Programowanie liniowe

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Programowanie liniowe metoda sympleks

Macierze. Rozdział Działania na macierzach

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

Definicja problemu programowania matematycznego

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

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

Programowanie liniowe

Wektory i wartości własne

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Wektory i wartości własne

Krzywe Freya i Wielkie Twierdzenie Fermata

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

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

Zagadnienia brzegowe dla równań eliptycznych

Zadania z algebry liniowej - sem. I Przestrzenie liniowe, bazy, rząd macierzy

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Baza w jądrze i baza obrazu ( )

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

2. Układy równań liniowych

Rozdział 6. Ciągłość. 6.1 Granica funkcji

ZAGADNIENIE TRANSPORTOWE

1 Macierz odwrotna metoda operacji elementarnych

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Zbiory wypukłe i stożki

Przestrzenie liniowe

ZAGADNIENIE TRANSPORTOWE(ZT)

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

jest ciągiem elementów z przestrzeni B(R, R)

Rozwiazywanie układów równań liniowych. Ax = b

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

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011).

Układy równań liniowych

1 Przykładowe klasy zagadnień liniowych

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Układy równań liniowych

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

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

Zdzisław Dzedzej. Politechnika Gdańska. Gdańsk, 2013

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

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

Własności wyznacznika

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

TOZ -Techniki optymalizacji w zarządzaniu

Elementy Modelowania Matematycznego

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

DB Algebra liniowa semestr zimowy 2018

Układy równań liniowych. Krzysztof Patan

Wykład 5. Metoda eliminacji Gaussa

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Zaawansowane metody numeryczne

Rozwiązania, seria 5.

1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.

13 Układy równań liniowych

Układy równań i równania wyższych rzędów

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ. 1. Ciała

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

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

Elementy modelowania matematycznego

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Laboratorium Metod Optymalizacji

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Metoda simpleks. Gliwice

Elementy Modelowania Matematycznego

Równania różniczkowe. Notatki z wykładu.

Algebra liniowa z geometrią

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

Wektor, prosta, płaszczyzna; liniowa niezależność, rząd macierzy

1 Zbiory i działania na zbiorach.

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

Przestrzenie wektorowe

2. Definicja pochodnej w R n

Dwa równania kwadratowe z częścią całkowitą

Wykład 14. Elementy algebry macierzy

Rozdział 1. Wektory losowe. 1.1 Wektor losowy i jego rozkład

Metody numeryczne I Równania nieliniowe

Ekonometria - ćwiczenia 10

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

Transkrypt:

Justyna Kosakowska i Piotr Malicki Badania operacyjne (Kurs letni 2009) Materiały dydaktyczne dla studentów I-go roku matematyki Wydział Matematyki i Informatyki Uniwersytet Mikołaja Kopernika Toruń 2009 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Podczas przygotowywania niniejszych notatek korzystaliśmy z następującej literatury: [] M. S. Bazaraa, C. M. Shetty, Nonlinear Programming Theory and Algorithms, New York 979. [2]T.H.Cormen,Ch.E.Leiserson,R.L.Rivest, Wprowadzeniedo algorytmów, WN-T, Warszawa 200. [3] M. M. Sysło, Algorytmy, WSiP, Warszawa 997. [4] M. M. Sysło, N. Deo, J. S. Kowalik, Algorytmy optymalizacji dyskretnej, PWN, Warszawa 995. Literatura uzupełniająca: [] R. Faure, J.-P. Boss, A. Le Garff, Badania operacyjne, PWN 982. [2] S. I. Gass, Programowanie liniowe, PWN 980. [3] K. Manteuffel, E. Seiffart, Wstęp do algebry liniowej i programowania liniowego, PWN 975.

SPIS TREŚCI 3 Spis treści Programowanie liniowe 4. Wstęp... 4.2 Zbiorywypukłeiichwłasności... 6.3 Punktyiwektoryekstremalne... 2.4 Metodasympleksowa... 22.4. Dualnametodaprogramowanialiniowego... 29.5 Elementyprogramowaniacałkowitoliczbowego... 3 2 Strategie zachłanne 39 2. Problemwyboruzajęć... 40 2.2 Problemplecakowy... 42 3 Programowanie dynamiczne 44 3. Problemplecakowy-programowaniedynamiczne... 45 4 Grafy- podstawowe definicje 49 4. Reprezentacjegrafów... 53 4.. Macierzesąsiedztwa... 53 4..2 Listysąsiedztwa... 54 5 Minimalne drzewa rozpinające 55 5. AlgorytmKruskala... 56 6 Problem najkrótszych dróg 60 6. AlgorytmDijkstry... 6 6.2 AlgorytmBellmana-Forda... 65

. PROGRAMOWANIE LINIOWE 4. Programowanie liniowe.. Wstęp W roku 827 matematyk francuski J.B.J. Fourier opublikował metodę rozwiązywania układu nierówności liniowych. Publikacja ta jest zwykle uważana za początek programowania liniowego. W 939 roku rosyjski matematyk L.V. Kantorovich sformułował problem przydziału środków jako problem programowania liniowego. Mniej więcej w tym samym okresie duński ekonomista T.C. Koopmans sformułował model programowania liniowego dla pewnych klasycznych zagadnień występujących w ekonomii. W czasie trwania II wojny światowej modele programowania liniowego były stosowane do rozwiązywania problemów związanych z planowaniem wojskowym. W roku 947 matematyk amerykański G.B. Dantzig odkrył metodę sympleks. Zbiegło się to z rozwojem komputeryzacji, a zatem z możliwością zastosowania metod programowania liniowego do rozwiązywania problemów występujących w rzeczywistości. W roku 975 Kantorovich oraz Koopmans otrzymali za swoje prace nagrodę Nobla w dziedzinie nauk ekonomicznych. Przykład.. Załóżmy, że pewna firma produkuje dwa rodzaje zapałek: grillowe(długie) i normalne(krótkie). Zysk z każdego pudła zapałek grillowych wynosi 300 EUR, a z każdego pudła zapałek normalnych wynosi 200 EUR. Firma posiada jedną maszynę robiącą długie lub krótkie zapałki. Maszyna ta może wyprodukować w jednym roku maksymalnie 900 000 pudeł zapałek długich lub krótkich. Do produkcji zapałek firma potrzebuje drewna oraz pudeł. Do otrzymania jednego pudła zapałek grillowych potrzeba 3 m 3 drewna,natomiastdootrzymaniajednegopudłazapałeknormalnychpotrzebam 3 drewna.firmaposiada 800000m 3 drewnanaroknastępny, ponadtonaszafirmama700000pudełnazapałkigrilloweoraz600000pudeł na zapałki normalne. Naszym celem jest zmaksymalizowanie zysków firmy w roku następnym, przy czym zakładamy, że firma może sprzedać wszystko co wyprodukuje. Zapiszmypowyższyproblemzapomocąnierówności.Niech x oraz x 2 oznaczają odpowiednio ilość pudeł( 00 000) zapałek długich oraz ilość pudeł( 00 000) zapałek krótkich wyprodukowanych w roku następnym. Zysk z jednegopudłazapałekdługichwynosi300eur(3 00EUR),zatemzyskzx pudełzapałekdługichwynosi 3x (stueurojednostek).podobniezyskzx 2

. PROGRAMOWANIE LINIOWE 5 pudełzapałekkrótkichwynosi 2x 2 (stueurojednostek).przyformułowaniu naszego zagadnienia musimy wziąć pod uwagę następujące ograniczenia: wydajnośćmaszynyjestograniczonaprzez9( 00000)pudełnarok, czyli x + x 2 9; ograniczeniezwiązanezilościądrewna,to 3x + x 2 8; ograniczeniezwiązanezilościądostępnychpudeł,to x 7, x 2 6; ograniczeniezwiązanezsensownościąrozważań,to x 0, x 2 0. Możemy teraz napisać model dla naszej firmy: przy warunkach: max(3x + 2x 2 ) x + x 2 9, 3x + x 2 8, x 7, x 2 6, x, x 2 0. Jest to przykład modelu programowania liniowego(w skrócie PL-modelu). Funkcję 3x + 2x 2 nazywamyfunkcjącelu.wdalszejczęściwypracujemy metody ogólne, pozwalające rozwiązywać podobne problemy. Powyższy problem rozwiążmy graficznie.

. PROGRAMOWANIE LINIOWE 6 Obszarwyznaczonyprzezpunkty [ ] 0, v, v 2, v 3, v 4 nazywamydopuszczalnym, zawiera on punkty spełniające ograniczenia. Same zaś x punkty x 2 0, v, v 2, v 3, v 4 nazywamywierzchołkamiobszarudopuszczalnego.łatwo [ ] [ ] [ ] [ ] 6 4, 5 3 0 policzyć,że v =, v 0 2 =, v 4, 5 3 =, v 6 4 =. Zauważmy, że nierówność x 7niemawpływunaobszardopuszczalny.Szkicującfunkcjęcelu [ ] 4, 5 6 widzimy,żeosiągaonawartośćmaksymalnądlawierzchołka v 2 =. 4, 5 Wartość funkcji celu w tym wierzchołku wynosi 22, 5, zatem maksymalny zyskdlafirmywynosi22500eur..2. Zbiory wypukłe i ich własności Definicja.2.Niepustyzbiór S R n nazywamywypukłym,jeślidla dowolnychdwóchelementów x, x 2 Sorazdowolnego λ [0, ]zachodzi λx + ( λ)x 2 S. Przykład.3.(i)PłaszczyznawR 3, S = {(x, x 2, x 3 ) R 3 ; 2x + x 2 3x 3 = 7}lubogólniejhiperpłaszczyznawR n, S = {c T x = α},gdzie 0 c R n, α R. (ii)półprzestrzeńwr 3, S = {(x, x 2, x 3 ) R 3 ; 2x + x 2 3x 3 7}lub ogólniejpółprzestrzeńwr n, S = {c T x α},gdzie 0 c R n, α R. (iii) Zbiór S pochodzący z Przykładu. S = [ x x 2 ] R 2 ; 3 0 0 [ x x 2 ] 9 [ ] 8 7, x x 2 6 [ 0 0 ] Uwaga.4.(i)Niech S, S 2 R n będązbioramiwypukłymi.wówczas zbiory S +S 2 = {x +x 2 ; x S, x 2 S 2 }, S S 2 = {x x 2 ; x S, x 2 S 2 }sąrównieżzbioramiwypukłymi. (ii)niech S t R n, t Tbędązbioramiwypukłymi.Wówczaszbiór t T S t jest również wypukły. Definicja.5.Niech S R n.otoczkąwypukłązbioru SnazywamynajmniejszyzbiórwypukływR n zawierający Sioznaczamygoprzez conv (S)..

. PROGRAMOWANIE LINIOWE 7 conv (S) Lemat.6.Dowolnyzbiór S R n posiadaotoczkęwypukłą. Dowód.Niech S R n, A = {T R n ; S T, T wypukły}.odnotujmy,że A =,bo R n A.Definiujemy T A T =conv (S).Mamy S T A T,bo T AS T.Ponadto T A T,ponieważzzałożenia S.Zfaktu,żedowolnyzbiór T Ajestwypukły,dostajemyżezbiór T A Tjestwypukły.Załóżmy,że T A Tniejestnajmniejszymzbiorem wypukłymzawierającym S.Wówczasistniejezbiórwypukły T 0 zawierający Staki,że T A T T 0.Otrzymujemyzatemsprzeczność,bo T 0 A(czyli T A T T 0). Twierdzenie.7.Niech S R n.wówczas x conv (S)wtedyi tylkowtedy,gdyistnieją x, x 2,...,x k S, λ, λ 2,...,λ k 0, k λ i = takie,że x = k λ ix i. Dowód.Dlaustalonego S R n oznaczmy { } k C(S) = x R n ; x,x 2,...,x k S λ,...,λ k 0, P k λ x = λ i x i. Abywykazaćinkluzjęconv (S) C(S)wystarczypokazać,że S C(S)oraz żezbiór C(S)jestwypukły.Oczywiście S C(S),ponieważjeśli x S,to x = x(k =, λ =, x = x). Pokażemy, że C(S) jest zbiorem wypukłym. Niech v, w C(S). Istnieją zatem v, v 2,...,v k, w, w 2,...,w l Soraz λ, λ 2,...,λ k, µ, µ 2,...,µ l 0

. PROGRAMOWANIE LINIOWE 8 takie,że v = k λ iv i, w = l µ iw i oraz k λ i =, l µ i =. Musimywykazać,żedladowolnego t [0, ], tv + ( t)w C(S).Mamy tv + ( t)w = t k λ i v i + ( t) l µ i w i = k tλ i v i + l ( t)µ i w i. Jesttokombinacjaliniowawektorów v, v 2,...,v k, w, w 2,...,w l Soraz tλ i 0dla i =, 2,..., k, ( t)µ i 0dla i =, 2,...,l.Ponadto k tλ i + l ( t)µ i = t k λ i + ( t) l µ i = t + t =. ostatecznie otrzymujemy, że conv (S) C(S). Pozostała nam jeszcze do udowodnienia inkluzja C(S) conv (S). Niech S T R n będziedowolnymzbioremwypukłym.pokażemy,że C(S) T. Weźmy x C(S),zatem x = k λ ix i, x i S, k λ i =.Dowódfaktu, że x Tprzeprowadzimyindukcyjniezewzględuna k. Jeśli k =,to x = x S T.Czyli x T.Załóżmy,że x Tdla k. Wówczas x = k k k λ i λ i x i = λ i x i + λ k x k = ( λ k ) x i + λ k x k = λ k k λ i ( λ k ) x i + λ k x k. λ k Możemyzałożyć,że λ k (wprzeciwnymrazie k = ).Zauważmy,że element x = k λ i λ k x i należydo T,gdyż k λ k i = λ i = λ k = λ k λ k λ k oraz x i S.Zatem x = ( λ k )x +λ k x k,gdzie x T, x k S Tnależydo T, ponieważ T jest zbiorem wypukłym. Z dowolności T dostajemy C(S) conv (S). Ostatecznie otrzymujemy równość C(S) = conv (S). Definicja.8.Otoczkęwypukłąskończonegozbioru {x, x 2,..., x k } R n nazywamywielościanem.jeśliponadtowektory x 2 x, x 3 x,...,x k x sąliniowoniezależne,towielościannazywamysympleksem.

. PROGRAMOWANIE LINIOWE 9 wielościan sympleks Twierdzenie.9(Carathe odory).niech S R n będziedowolnym zbiorem.wówczas x conv (S)wtedyitylkowtedy,gdyistnieją x, x 2,..., x n+ Stakie,że x conv ({x, x 2,...,x n+ }). Dowód.Oczywiściejeżeliistniejąelementy x, x 2,...,x n+ Stakie,że x conv ({x, x 2,...,x n+ }),to x conv (S). Niech x conv (S).Wówczas x = k λ ix i,przyczym x, x 2,...,x k S, λ, λ 2,...,λ k 0, k λ i =.Jeżeli k n+,toodpowiedniaimplikacja jestprawdziwaztwierdzenia.7.jeśli k > n +,towektorów x 2 x, x 3 x,..., x k x jestconajmniej n +,zatemsąoneliniowozależne(w R n ). Dlategoistniejąliczby µ i R, i = 2, 3,..., ktakie,że k i=2 µ i(x i x ) = 0 oraz k i=2 µ2 i 0.Niech µ = k i=2 µ i.wówczas k µ i x i = µ x + k k µ i x i = µ i x + i=2 i=2 k µ i x i = i=2 k µ i (x i x ) = 0. i=2 Ponadto k µ i = 0oraz k µ2 i 0.Rozpatrzmyzbiór A = { λ i µ i ; µ i > 0}. Zauważmy,że A (istnieje i {, 2,..., k},dlaktórego µ i > 0,ponieważ jeślidlakażdego i 2, µ i 0,to µ > 0).Niech dlapewnego s {, 2,..., k}.mamy α = min{ λ i µ i ; µ i > 0} = λ s µ s > 0 x = k λ i x i + 0 = k k λ i x i α µ i x i = k (λ i αµ i )x i.

. PROGRAMOWANIE LINIOWE 0 Jeśli µ i 0,to λ i αµ i > 0.Jeśli µ i > 0,to λ i µ i λs µ s = α.czyli λ i αµ i 0. Ponadto k k k (λ i αµ i ) = λ i α µ i = α0 =. Równocześnie λ s αµ s = λ s λs µ s µ s = 0.Wobecpowyższychzależności x = k,i s (λ i αµ i )x i,czyli x conv ({(x i ) i, i k, i s}).zatem x posiada przedstawienie w postaci wypukłej kombinacji k elementów zezbioru S.Jeżeli k > n +,topostępujemyanalogicznie.procesten kontynuujemy, dopóty dopóki x nie okaże się wypukłą kombinacją n + elementów ze zbioru S. Twierdzenie.0.Niech S R n będziezbioremwypukłymtakim,że S = Sorazniech y S.Wówczasistniejedokładniejedenpunkt x S taki,żeodległość yod xjestminimalna,tzn. y x = min x S { y x }. Ponadto punkt x jest jedynym punktem zbioru S spełniającym nierówność: (x x) T (x y) 0dlawszystkich x S. Dowód.Niech γ = inf x S { y x }.Ponieważzbiór Sjestdomknięty, to γ > 0.Rzeczywiście,gdyby γ = 0,toistniałbyciąg (x n ) Staki,że lim n x n = y,czyli y Siwkonsekwencji y S,codajesprzeczność. Wobectegoistniejeciąg (x n ) Staki,że lim n x n y = γ.pokażemy, żeciąg (x n )jestzbieżny.niech k, n N.Mamy x k x n 2 = x k y (x n y) 2 = 2 x k y 2 +2 y x n 2 x k +x n 2y 2 = 2 x k y 2 + 2 x n y 2 4 x k + x n 2 y Ponieważ x k, x n S,to x k+x n S.Zokreślenia γmamy x k+x n y 2 γ 2. 2 2 Stąd x k x n 2 2 x k y 2 + 2 x n y 2 4γ 2. Wiemy,że lim k x k y = γ,czyli lim k x k y 2 = γ 2.Istniejezatem Ntakie,żedla m N x m y 2 < γ 2 + ε 4. Stąddla k, n N x k x n 2 < 2γ 2 + ε 2 + 2γ2 + ε 2 4γ2 = ε. 2.

. PROGRAMOWANIE LINIOWE Zatem (x n )jestciągiemcauchy ego.zzupełności R n dostajemy,żeciąg (x n ) jestzbieżny.niech x = lim n x n,odnotujmyże x S,ponieważ S = S. Mamy y x = y lim x n = lim y x n = γ. n n Abypokazaćjedynośćzałóżmy,żeistniejeelement x Staki,że y x = γ.pokażemy,iż x = x.ponieważzbiór Sjestwypukły,to x+x S.Mamy 2 y x + x 2 = y 2 x 2 + y 2 x 2 2 y x + 2 y x = γ. Zokreślenia γwynika,że y x+x 2 = γ,ale 4 y x + x 2 2 + x x 2 = 2 y x 2 + 2 y x 2. Czyli 4γ 2 + x x 2 = 2γ 2 + 2γ 2,azatem x x = 0ix = x. Pokażemyteraz,że (x x) T (x y) 0dladowolnego x S.Weźmy x S,wówczas y x 2 y x 2 (xjestnajbliżej y).zbiór Sjestwypukły oraz x, x Szatemdla λ [0, ], λx + ( λ)x S.Mamyponadto y x 2 y x λ(x x) 2 = y x 2 +λ 2 x x 2 +2λ(y x) T (x x). Stąd λ 2 x x 2 + 2λ(x x) T (x y) 0idla λ > 0, λ x x 2 + 2(x x) T (x y) 0.Gdy λzmierzadozeraotrzymujemy (x x) T (x y) 0. Pokażemy teraz, że x jest jedynym punktem spełniającym powyższą nierówność.niech x Sorazniechdladowolnego x Szachodzi (x x ) T (x y) 0.Wówczas y x 2 = y x + x x 2 = y x 2 + x x 2 + 2(y x ) T (x x). Ponieważ x x 2 0oraz (x x ) T (x y) 0,to y x 2 y x 2 dladowolnego x S.Zatemostatecznie x = x,botylko xposiadatę własność. Twierdzenie..Niech S R n będziewypukłymidomkniętymzbioremorazniech y S.Wówczasistniejewektor c R n oraz α Rtakie,że c T y > αoraz c T x αdlakażdego x S.

. PROGRAMOWANIE LINIOWE 2 Dowód. Z Twierdzenia.0 wiemy, że istnieje w zbiorze S taki element x,że y x = min x S y x orazdladowolnego x S, (x x) T (y x) 0. Stąd x T (y x) x T (y x), y x 2 = (y x) T (y x) = y T (y x) x T (y x) y T (y x) x T (y x) = (y x) T (y x) = c T (y x), gdzie c = y x 0.Mamy c T y c T x + y x 2 dladowolnego x S. Niech α = sup{c T x; x S},wówczas c T y α + y x 2 > αoraz c T x α z definicji α. Niech X R n będziezbioremwypukłym.punkt x X nazywamy ekstremalnym, jeśli x,y X λ (0,) p = ( λ)x + λy x = y = p..3. Punkty ekstremalne i wektory kierunkowe ekstremalne Przykład.2. Oznaczmy przez E zbiór punktów ekstremalnych zbioru X. [ ] [ ] 9 [ ] [ x (i)dlazbioru X = R x 2 ; 3 x 2 0 8 x 2 7, x 0 pochodzącego z Przykładu., E =,,,,. x 2 0] {[ 0 ] [ ] [ ] [ 6 ] [ ]} 0 6 4, 5 3 0 0 0 4, 5 6 6 (ii) X = {(x, x 2 ) R 2 ; x 2 + x2 2 }, E = {(x, x 2 ) R 2 ; x 2 + x2 2 = }. Jeśli zbiór X jest domknięty i ograniczony, to dowolny punkt tego zbioru może być przedstawiony jako wypukła kombinacja punktów ekstremalnych. Wektor 0 v R n nazywamykierunkowymzbioru X,jeśli x X λ 0 x + λv X. Dwa wektory kierunkowe v, w zbioru X nazywamy równymi, jeśli λ>0 v = λw.

. PROGRAMOWANIE LINIOWE 3 Wektor kierunkowy v zbioru X nazywamy ekstremalnym, jeżeli w,w 2 λ,λ 2 >0 v = λ w + λ 2 w 2 λ>0 w = λw 2, gdzie w, w 2 sąwektoramikierunkowymizbiory X. Wdalszejczęścirozważaćbędziemyzbiory Xpostaci X = {x R n ; Ax = b, x 0},gdzie Aoznaczamacierzwymiaru m n, b R m.zakładamyponadto, że rz(a) = m. Niech A = [BN](po ewentualnej permutacji kolumn), gdzie Bjest m mmacierzą, N jest m (n m)macierzą,natomiast rz (B) = m.wtedy Ax = b, x 0 Bx B + Nx N = b, gdzie x B 0, x N 0.Niech Abędziejakwyżej.Wówczasprzez C(A)oznaczamy zbiór takich macierzy nieosobliwych B wymiaru m m, dla których istniejemacierz Nwymiaru m (n m)taka,że [BN]dasięuzyskaćz macierzy A poprzez przestawienie kolumn. Twierdzenie.3(o charakteryzacji punktów ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz(a) = [ m.punkt ] x[ ] Xjestpunktemekstremalnymwtedyitylkowtedy,gdy x = B b xb = dlapewnego B C(A)takiego,że B 0 x b 0. N [ ] B Dowód.Weźmy B C(A)takie,że B b 0.Niech x = b.zauważmy,że x X.Rzeczywiściedla A = [BN]mamy Ax = [BN] b [ 0 ] B = 0 b + N0 = b,zarazem x 0.Załóżmy,że x = λx + ( λ)x 2 dla x, x 2 X oraz λ (0, ).Niech x T = [x T, x T 2], x T 2 = [x T 2, x T 22].Wtedy [ B b 0 ] = λ [ x x 2 ] + ( λ) [ x2 Ponieważ x 2, x 22 0, λ (0, ), λ, λ > 0,tomamy x 2 = x 22 = 0. Ponadto, b = Ax = Bx,awięc x = B b.podobnie x 2 = B b.wobec równości x = x 2 = B bmamy x = x 2 = x,zatem xjestpunktem ekstremalnym w X. x 22 ].

. PROGRAMOWANIE LINIOWE 4 Niechteraz x R n będziepunktemekstremalnym.załóżmy,że x = [x, x 2,...,x k, 0, 0,..., 0] T,gdzie x i > 0dla i =, 2,..., k.pokażemy,że kolumny a, a 2,...,a k sąliniowoniezależne.gdybytakniebyło,toistniałyby liczby λ, λ 2,...,λ k R, k λ2 i 0takie,że k λ ia i = 0.Niech λ = [λ, λ 2,...,λ k, 0, 0,..., 0] T.Rozpatrzmywektory x () = x+rλ, x (2) = x rλ, gdzie r > 0, x (), x (2) 0.Zauważmy,że Ax (i) = k a j (x j + ( ) i rλ j ) = j= k k a j x j + ( ) i r a j λ j = b. j= j= Zatem x (), x (2) X,aponieważ r > 0,to x () x (2).Ponadto x = 2 x() + 2 x(2),coprzeczytemu,że xjestpunktemekstremalnym.zatemkolumny a, a 2,...,a k sąliniowoniezależne.czylizn kkolumnmożnawybrać m k kolumn tak, aby razem z pierwszymi k kolumnami tworzyły m liniowo niezależnychwektorów.załóżmy,żetymikolumnamisą a k+, a k+2,...,a m. Wobectegomacierz Amożebyćzapisanawpostaci A = [BN],gdzie B = [a, a 2,...,a m ] C(A),rz (B) = m.mamy b = Ax = Bx B + Nx N = Bx B,a stąd x B = B b,czyli x = [ B b 0 ]. Wniosek.4.Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m.zbiór Xposiadaskończeniewielepunktów ekstremalnych. Dowód.Wynikazfaktu,że C(A) <. Twierdzenie.5(o istnieniu punktów ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m. Wówczas niepusty zbiór X posiada co najmniej jeden punkt ekstremalny. Dowód.Ustalmy x X.Niech x = [x, x 2,..., x k, 0, 0,..., 0] T,gdzie x i > 0, i =, 2,..., k.rozpatrzmykolumny a, a 2,..., a k macierzy A.Gdysą oneliniowoniezależne,topunkt xjestekstremalny.załóżmy,że a, a 2,...,a k sąliniowozależne,toznaczyistniejąliczby λ, λ 2,...,λ k R, k λ2 i 0 oraz k λ ia i = 0.Niech r = min,2,...,k { x i λ i ; λ i > 0} = x j λ j.możemyzałożyć, żezbiór i {, 2,..., k}takich,że λ i > 0jestniepusty.Niech x R n,gdzie { x i = xi rλ i dla i =, 2,..., k 0 dla i = k +, k + 2,...,n

. PROGRAMOWANIE LINIOWE 5. x 0,boinaczejdlapewnego j {, 2,..., k}mielibyśmy x j rλ j < 0,astąd r > x j λ j iotrzymujemysprzecznośćzminimalnością. 2. Ax = b,rzeczywiście Ax = k (x i rλ i )a i = k x ia i r k λ ia i = Ax = b.zatem x X. 3. x i 0 = 0dlapewnegoindeksu i 0 {, 2,..., k}.wiemy,żeistnieje i 0 {, 2,..., k}taki,że r = x i 0 λ i0.zatem x i 0 = x i0 rλ i0 = 0. Jeślikolumny a, a 2,...,a k bez a i0 sąliniowoniezależne,topunkt x jest ekstremalny. Lemat.6.Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m.wektor v R n jestwektoremkierunkowymniepustego zbioru Xwtedyitylkowtedy,gdy Av = 0iv 0, v 0. Dowód.Niech v R n będziewektoremkierunkowymzbioru X.Weźmy x X,wtedy x+v X.Mamy Av = A(x+v x) = A(x+v) Ax = b b = 0, bo v 0 jest wektorem kierunkowym. Załóżmyteraz,że Av = 0, v 0.Niech x X, λ > 0.Mamy A(x+λv) = Ax + λav = Ax = b.ponieważ x 0, λ > 0, v 0,to x + λv 0czyli x + λv X. Twierdzenie.7(o charakteryzacji kierunków ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m. Wektor v jest kierunkiem ekstremalnym zbioru X wtedy i tylko wtedy, gdy istnieją B C(A),kolumna a j macierzy Aniewystępującawmacierzy B oraz λ > 0takie,że (i) B a j 0, (ii) v = λ(( B a j ) T, e T j ) T,gdzie e j jestwektoremmającym n m współrzędnych z których tylko j-ta współrzędna jest różna od zera i równa się jeden. Dowód.Niech v = λ(( B a j ) T, e T j )T i B a j 0.Pokażemy,że vjest wektoremkierunkowym.zauważmy,że v 0, v 0oraz [ ] B Av = [BN]λ a j = λb( B a j ) + λne j = λ( a j + a j ) = 0. e j Zatem na mocy Lematu.6 wektor v jest kierunkowy. Niech v, v 2 będąwektoramikierunkowymiorazniech v = λ v + λ 2 v 2, gdzie λ, λ 2 > 0.Zauważmy,że n m współrzędnychwektora vjest

. PROGRAMOWANIE LINIOWE 6 równe 0.Zatemodpowiedniewspółrzędnewektorów v i v 2 sąrównieżzerowe iwektorytemogąbyćzapisanewpostaci v T = α [v T, et j ], vt 2 = α 2[v T 2, et j ], gdzie α, α 2 > 0.Wiemy,że Av = Av 2 = 0zatemmamy 0 = Av = [BN]α [v T, e T j ] T = α (Bv T + Ne T j ) = α (Bv T + a T j ), stąd v = B a j.podobnie v 2 = B a j,mamywięc v = v 2,aw konsekwencji v = λv 2,gdzie λ = α α 2.Ostatecznieotrzymujemy,żewektor v jest ekstremalny. Niech vbędziewektoremekstremalnym, v = [v, v 2,...,v k, 0,...,0, v j, 0,..., 0] T, v i > 0dla i =, 2,..., koraz i = j.pokażemy,żekolumny a, a 2,...,a k macierzy Asąliniowoniezależne.Załóżmy,żetakniejesttzn. istnieją λ, λ 2,...,λ k Rtakie,że k λ2 i 0, k λ ia i = 0. Niech λ = [λ, λ 2,..., λ k, 0, 0,..., 0] T.Rozpatrzmywektory v () = v+rλ, v (2) = v rλ,gdzie r > 0, v (), v (2) 0, r = min,2,...,k { v i λ i ; λ i > 0} = v j λ j. Zauważmy, że Av (i) = A(v + ( ) i rλ) = Av + ( ) i raλ = 0 + ( ) i r k a i λ i = 0, Ponieważ r > 0,to v () v (2) v.zatem v = 2 v() + 2 v(2),coprzeczytemu,że vjestwektoremekstremalnym.czylikolumny a, a 2,...,a k sąliniowo niezależne.dodatkoworz (A) = m,stąd k mwięcmożemywybrać m k wektorówzezbioru {a i ; i = k +, k + 2,..., m, i j},którerazemzkolumnami a, a 2,...,a k sąliniowoniezależne.oznaczmy B = [a, a 2,...,a m ] C(A).Zauważmy,że a j B,bo a, a 2,...,a k, a j sąliniowozależne.mamy 0 = Av = [BN]v = Bv B + Nv N = Bv B + a j v j,astąd v B = v j ( B a j ), czyli v = v j [ B a j e j ].Ponieważ v 0, v j > 0więc B a j 0. Wniosek.8.Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz(a) = m.zbiór Xposiadaskończeniewielekierunków ekstremalnych. Twierdzenie.9(oreprezentacji).Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = m.niech x, x 2,...,x k będą wszystkimipunktamiekstremalnymizbioru X,natomiast v, v 2,..., v l wszystkimi wektorami ekstremalnymi zbioru X. Wówczas x X wtedy i tylko

. PROGRAMOWANIE LINIOWE 7 wtedy,gdyistniejątakieliczby λ, λ 2,...,λ k 0,którychsumajestrówna jedenoraztakieliczby µ, µ 2,...,µ l 0,że x = k λ i x i + l µ i v i. Dowód. Niech Y = {x R n ; λ,λ 2,...,λ k 0, P k λ, µ,µ 2,...,µ l 0 x = k λ i x i + l µ i v i }. Pokażemy,że X = Y.Zauważmy,że Y,boztwierdzenia.5istniejeco najmniej jeden punkt ekstremalny. (i) Y X.Niech x Y, x = k λ ix i + l µ iv i, λ i, µ j 0, k λ i =, i =, 2,..., k, j =, 2,...,l.Mamy x = k λ ix i X.Niech x i = x i + µ iv i,gdzie x 0 = x.wówczas i x i Xczyli x = x l X. (ii) X Y.Zauważmy,że Y jestwypukłyidomknięty.załóżmy,że X \Y iniech z X \Y,czyli z Y.NamocyTwierdzenia.istnieją wówczas:wektor p R n i α > 0takie,że p T z > αoraz k ( ) p T ( λ i x i + l µ i v i ) α, dladowolnych λ i, µ j takich,że k λ i =, λ i, µ j 0, i =, 2,..., k, j =, 2,..., l.ponieważ µ j możnawybraćdowolnieduże,tonierówność ( ) jestprawdziwatylkowtedy,gdy p T v i 0dla i =, 2,..., l.kładąc µ i = 0 dlawszystkich i, λ i = iλ j = 0dla j idostajemyz( ),że p T x i α dla i =, 2,..., k.ponieważ p T z > α,to p T z > p T x i dladowolnego i.z powyższych rozważań wynika, że istnieje niezerowy wektor p, dla którego zachodzą następujące nierówności: ( ) p T z > p T x i dla i =, 2,..., k, ( ) p T v i 0 dla i =, 2,..., l. Rozważmy punkt ekstremalny x określony następująco: p T x = max i k pt x i.

. PROGRAMOWANIE LINIOWE 8 [ ] B Ponieważ x jest punktem ekstremalnym, to z Twierdzenia.3 x = b, 0 gdzie A = [BN]oraz B b 0.Ponieważ z X,to Az = boraz z 0. Zatem Bz B + Nz N = biz B = B (b Nz N ) = B b B Nz N.Niech z T = [zb T, zt N ].Z( )mamy pt z p T x > 0,ponadtoniech p T = [p T B, pt N ]. Wówczas 0 < p T z p T x = p T B z B + p T N z N p T B x B p T N x N = p T B (B b B Nz N )+ p T N p T BB b = p T BB b p T BB Nz N + p T N p T BB b = (p T N p T BB N)z N, bo z N 0, z X.Wobectegoistniejeindeks i 0 > mtaki,że z i0 > 0oraz p i0 p T B B a i0 > 0.Pokażemy,żenierówność B a i0 0niejestprawdziwa.Załóżmy,że B a i0 0.Wówczas vi T 0 = (( B a i0 ) T, e T i 0 ),gdzie e i0 jest wektorem o n m współrzędnych z jedynką(jako jedynym niezerowym elementem)namiejscuoindeksie i 0,jestekstremalnymwektoremkierunkowymzbioru XnamocyTwierdzenia.7.Z( )wynika,że p T v i0 0 czyli p i0 p T B B a i0 0,codajesprzeczność.Zatem B a i0 0.Zdefiniujmy wektor x następująco: [ ] [ ] B x = b B + λ a i0, 0 e i0 gdzie λ = min i m { b i y ij ; y ij > 0} = br y rj > 0, b = B b, y i0 = B a i0. Zauważmy, że x posiada nie więcej niż m dodatnich współrzędnych oraz x r = 0, x i0 = λ.wektor x X,ponieważmamy Ax = [BN]x = BB b + λ( BB a i0 + Ne i0 ) = BB b = b. Zauważmy,żeukład a, a 2,...,a r, a r+, a r+2,...,a m, a i0 jestliniowoniezależny.mamy y i0 = B a i0 zatem a i0 = By i0.wówczas a i0 = α a + α 2 a 2 + + α m a m oraz α r 0. Zatemzbiórwektorów {a, a 2,...,a m }\{a r }, a i0 jestliniowoniezależny.niech B = [a, a 2,...,a r, a r+, a r+2,...,a m, a i0 ].Mamy B C(A), A = [B, N], b = Ax = [B, N]x = Bx B + Nx N = Bx B.

. PROGRAMOWANIE LINIOWE 9 [ ] Stąd x B = B B b 0.Zatem x = b iztwierdzenia.3 xjestpunktem 0 ekstremalnym. Ponadto [ ] b p T x = [p T B, p T λyi0 N] = p T λe B(b λy i0 ) + p T Nλe i0 = p T Bb λp T By i0 + λp i0 = i0 = p T B B b + λ(p i0 p T B B a i0 ) = p T B x + λ(p i 0 p T B B a i0 ). Ponieważ λ > 0oraz p i0 p T B B a i0 > 0,to p T x > p T x i0.zatemskonstruowaliśmypunktekstremalny x,dlaktórego p T x > p T x,codajesprzeczność, ponieważ p T x = max i k p T x i. Wniosek.20(o istnieniu kierunkowych wektorów ekstremalnych). Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz(a) = m. Wówczas X posiada kierunkowy wektor ekstremalny wtedy i tylko wtedy, gdy X jest nieograniczony. Dowód. Oczywiście jeśli zbiór X posiada kierunkowy wektor ekstremalny, to X jest nieograniczony. Pokażemy implikację przeciwną. W tym celu załóżmy, że X nie posiada kierunkowych wektorów ekstremalnych. Niech x X, x = k λ ix i, k λ i =, λ i 0orazniech x, x 2,...,x k będą punktami ekstremalnymi. Mamy x = k λ i x i k λ i x i max i k { x i }. Zatem X jest ograniczony. Otrzymana sprzeczność dowodzi, że zbiór X posiada kierunkowy wektor ekstremalny. Twierdzenie.2.Niech X = {x R n ; Ax = b, x 0},gdzie A M m n (R), b R m,rz (A) = miniech x, x 2,..., x k będąwszystkimipunktamiekstremalnymi,zaś v, v 2,...,v l wszystkimiwektoramiekstremalnymi zbioru X, c R n.wówczas inf{c T x; x X} R j=,2,...,l c T v j 0.Jeżeli j=,2,...,l c T v j 0,to i {,2,...,k} inf{c T x; x X} = c T x i. Dowód. Z Twierdzenia.9 wiemy, że dowolny element x spełnia warunki Ax = b, x 0wtedyitylkowtedy,gdy x = k λ ix i + l j= µ jv j, λ i, µ j 0, k λ i =, i =, 2,..., k, j =, 2,..., l.zatem c T x = c T ( k λ ix i + l j= µ jv j ),gdzie λ i, µ j 0, k λ i =, i =, 2,..., k,

. PROGRAMOWANIE LINIOWE 20 j =, 2,..., l.jeślidlapewnego j, c T v j < 0,tonaszewyrażeniejestnieograniczone,ponieważ µ j możemywybraćdowolnieduże.zatem inf{c T x; x X} Rwtedyitylkowtedy,gdy c T v j 0dladowolnego j =, 2,..., l. Jeśli c T v j 0dladowolnego j =, 2,...,l,towceluosiągnięcianajmniejszejwartościmożemyprzyjąć µ j = 0dla j =, 2,..., l.zatem inf{c T ( k λ i x i + l k µ j v j )} = inf{c T λ i x i ; λ i 0, j= k λ i = }. Niech λ i0 = oraz λ i = 0dla i i 0,gdzieindeks i 0 jesttaki,że c T x i0 = min i k {c T x i }.Wówczas c T x i0 k λ ic T x i,cokończydowód. Niech X = {x R; Ax = b, x 0},gdzie A M m n (R), b R m, rz (A) = m.zajmiemysięszukaniem inf{c T x; x X}.Niech xbędziepunktem ekstremalnym zbioru X. Z Twierdzenia [ ].3 wiemy, że istnieje B [ C(A), ] B B b 0oraz A = [BN], x = b xb.weźmydowolny x X, x =. [ ] 0 x N xb Wówczas Ax = btzn. [BN] = b,skąddostajemy Bx B + Nx N = b. x N Zatem x B = B b B Nx N.Policzmy c T x c T x = c T Bx B + c T Nx N = c T B b c T BB Nx N + c T Nx N = c T Bx B + c T Nx N + Przypadek : c T BB Nx N + c T Nx N = c T x + (c T N c T BB N)x N. c T N ct B B N 0.Ponieważ x 0,to x N 0iwkonsekwencji c T x c T x. Zatem x jest szukanym punktem. Przypadek 2: c T N ct B B N 0.Wszczególnościniechdlapewnegoindeksu jbędzie c T j ct B B a j < 0(stąd c T x < c T x). Przypadek 2a:

. PROGRAMOWANIE LINIOWE 2 Zakładamy,że B a j 0.Wówczasbiorąc v j = [ B a j e j ],gdzie e j jest wektoremon mwspółrzędnychmającymjedynkęnamiejscu j,anapozostałych miejscach zero, otrzymujemy kierunkowy wektor ekstremalny. Wobectego x = x + v j, x X.Zrówności c T x = c T x + c T v j oraz c T x = c T x + (c T N ct B B N)x N dostajemy c T v j = (c T N ct B B N)x N = c T j ct B B a j < 0, czyli problem nie posiada rozwiązania. Przypadek 2b: [ ] B Zakładamy,że B a j 0.Weźmy v j = a j ioznaczmy y = B a j, b = B b.niech λ = min i m { b i y i ; y i > 0} = b i 0 y i0, x = x + λv j.pokażemy,że [ ] B x X.Wiemy,że Ax = b,natomiast Av j = [BN]v j = [BN] a j = a j + a j = 0,zatem Ax = b.musimyjeszczeudowodnić,że x 0.Dla i =, 2,..., mmamy e j e j x = x i + λ(v j ) i = (B b) i + b i 0 y i0 ( B a j ) i = b i b i 0 y i0 y i. Rozważmy dwa przypadki:.jeśli y i 0,tooczywiście x i 0, 2.jeśli y i > 0,to b i y i b i 0 y i0,astąd x i 0. Dla i = m +, m + 2,..., noraz i jmamy x i = 0.Dla i = jmamy x i = λ > 0. Wektor x posiada niezerowe współrzędne co najwyżej na miejscach, 2,..., i 0, i 0 +,..., m, j.pokażemy,że a, a 2,...,a i0, a i0 +,...,a m, a j są liniowo niezależne. Wówczas x będzie punktem ekstremalnym. Załóżmy, że i {,...,m,j}\{i 0 } α ia i = 0,mamy 0 = i {,...,m,j}\{i 0 } α i a i = i {,...,m}\{i 0 } α i a i +α j a j = i {,...,m}\{i 0 } α i a i +α j By = m = α i a i + α j y i a i = i {,...,m}\{i 0 } m (α i + α j y i )a i,

. PROGRAMOWANIE LINIOWE 22 gdzie α i0 = 0.Wtedy α i + α j y i = 0oraz α j y i0 = 0.Zatem α j = 0,astąd α i = 0. Niech B = [a, a 2,...,a i0, a i0 +,...,a m, a j ]oraz A = [B [ N ].Wówczas ] B Ax = b,stąd b = B x B +N x N = B x B,czyli x B = B btzn. b oraz 0 B b 0.Ponadto [ ] B c T x = c T (x + λv j ) = c T x + c T λv j = c T x + λc T a j = c T x+ e j.4. Metoda sympleksowa +λ(c T j ct B B a j ) c T x. Przypomnijmy,żechcemyzminimalizować c T xprzywarunkach Ax = b, x 0. Algorytm sympleks Krok.Wziąćdowolnypunktekstremalny xzbioru Xozmiennychbazowych x B. Krok2.Wyliczyć α = c T B B N c T N.Jeżeli α 0,tozakończyćalgorytm(punkt x jest szukanym punktem). W przeciwnym wypadku przejść do kroku 3. Krok 3. Wybrać maksymalną dodatnią współrzędną α. Niech tą współrzędnąbędzie α j,zatem α j = c T B B a j c T j.jeśli y j = B a j 0,to zakończyć algorytm(brak rozwiązania). W przeciwnym wypadku przejść do kroku 4. Krok 4. Skonstruować nowy punkt ekstremalny o zmiennych bazowych x B zgodniezopisanympowyżejprocesem.przejśćdokroku2. Przykład.22.Znaleźćminimumfunkcji f(x, x 2 ) = 2x 9x 2 przy warunkach x + x 2 6, x + 3x 2 3,

. PROGRAMOWANIE LINIOWE 23 x 0, x 2 0. Zmianawarunkówfunkcji f(x, x 2 ) = 2x 9x 2 : x + x 2 + x 3 = 6, x + 3x 2 + x 4 = 3, x 0, x 2 0, x 3 0, x 4 0, gdzie x 3, x 4 sązmiennymidopełniającymi.mamy [ ] [ ] 0 6 A =, b =, c = [2, 9, 0, 0] T. 3 0 3 [ ] 0 Szukamymacierzy B,dlaktórej B b 0.Weźmy B = [a 3, a 4 ] =, 0 wówczas B = Bi B b = b 0.Liczymy c T B B N c T N : [ ][ ] 0 c T B B N c T N = [0, 0] [2, 9] = [ 2, 9] 0. 0 3 [ ] 0,tokonstru- 3 [ ] [ ] 0 Obliczamy y 2 = B a 2 = = 0 3 ujemy nowy punkt ekstremalny. Mamy [ ].Ponieważ 3 { } { bi 6 λ = min ; y 2i > 0 = min i=3,4 y 2i i=3,4, 3 } =, 3 [ ] 0 0 0 e v 2 = 2 B, x = x + λv a 2 = 0 2 6 + = 5. 3 3 0 [ ] [ ] 0 Teraz B = [a 2, a 3 ] =,wówczas B 3 0 = 3. Ponownie liczymy 3 c T B B N c T N : [ ][ ] 0 c T B B N c T N = [ 9, 0] 3 0 [2, 0] = [, 3] 0. 3

. PROGRAMOWANIE LINIOWE 24 [ ][ ] [ ] [ ] 0 Obliczamy y = B a = 3 = 3 4.Ponieważ 3 4 0,to 3 3 3 konstruujemy kolejny punkt ekstremalny. Mamy { } { } bi 5 λ = min ; y i > 0 = min i=2,3 4 = 5 y i 4, 3 5 0 x = x + λv = 5 + 5 4 3 4 4 = 9 4 0. 3 0 0 0 [ ] [ 3 ] Terazprzyjmujemy B = [a, a 2 ] =,wobectego B 3 = 4 4. 4 4 Liczymy c T B B N c T N : [ 3 ][ ] c T B B N c T N = [2, 9] 4 4 0 [0, 0] = [ 3 0 4, 4 ] < 0. 4 4 Zatemkończymyobliczeniaiotrzymujemywartośćoptymalną f(x, x 2 ) = 2x 9x 2 = 2 5 4 99 4 = 5 4. Lemat.23.Niech B, B M m m (R)będąmacierzaminieosobliwymi różniącymisięjednąkolumną,tzn. B = [a, a 2,...,a l, a l, a l+,...,a m ], B = [a, a 2,...,a l, a k, a l+,...,a m ]orazniech B a k = y = [y, y 2,...,y m ] T. Wówczas B = FB,gdziemacierz Fposiadajedynkinagłównejprzekątnej, l-tąkolumnępostaci f l = y l [ y, y 2,..., y l,, y l+,..., y m ] T,a na pozostałych miejscach zera. Dowód. B = B + (a k a l )e T l = B + (a k Be l )e T l = B(I + B (a k Be l )e T l ) = B(I + (B a k e l )e T l ) = B(I + (y e l)e T l ),zatem B = (I + (y Ie l )e T l ) B. Trzebapokazać,że F = (I + (y Ie l )e T l ).Zauważmy,że I + (y Ie l )e T l jestmacierząjednostkowązl-tąkolumną y.ponadto det(i + (y Ie l )e T l ) = y l 0. Przykład.24.Znaleźćmaksimumfunkcji f(x, x 2 ) = x + 2x 2 przy warunkach x + x 2 5,

. PROGRAMOWANIE LINIOWE 25 x + x 2 0, 3x + 7x 2 27, x 0, x 2 0. Przeformułowanie i zmiana warunków funkcji: znaleźć minimum funkcji f(x, x 2 ) = x 2x 2 przywarunkach x + x 2 + x 3 = 5, x x 2 + x 4 = 0, 3x + 7x 2 + x 5 = 27, x 0, x 2 0, x 3 0, x 4 0, x 5 0, gdzie x 3, x 4, x 5 sązmiennymidopełniającymi.mamy 0 0 5 A = 0 0, b = 0, c = [, 2, 0, 0, 0] T. 3 7 0 0 27 Szukamymacierzy B,dlaktórej B b 0.Weźmy B = [a 3, a 4, a 5 ] = 0 0 0 0,wówczas B = Bi B b = b 0, x T = [0, 0, 5, 0, 27].Liczymy 0 0 c T B B N c T N : 0 0 c T BB N c T N = [0, 0, 0] 0 0 [, 2] = [, 2] 0. 0 0 3 7 0 0 Obliczamy y 2 = B a 2 = 0 0 =. Ponieważ 0, 0 0 7 7 7 to konstruujemy nowy punkt ekstremalny. Mamy { } { bi 5 λ = min ; y 2i > 0 = min i=3,4,5 y 2i, 27 } = 27 7 7, 0 0 0 [ ] e v 2 = 2 0 B, x = x + λv a 2 = 2 5 0 + 27 27 7 = 7 8 7 27. 7 27 7 0

. PROGRAMOWANIE LINIOWE 26 0 Terazzamiast B = [a 2, a 3, a 4 ] = 0, możemy rozważać łatwiejszą 7 0 0 0 dodalszychobliczeńmacierz B = [a 3, a 4, a 2 ] = 0.Mamy B = 0 0 7 0 0 8 5 FB 7 = F = 0 7, B 7 7 b = 0 0 7 = 27 7, l = 3, y l = 7. 27 0 0 0 0 27 7 7 7 Przykład.25. Przedstawimy rozwiązanie zagadnienia z Przykładu. wykorzystując tablice sympleksowe. Nasz PL-model ma następującą postać. Znaleźćmaksimumfunkcji f(x, x 2 ) = 3x + 2x 2 przywarunkach x + x 2 + x 3 = 9, 3x + x 2 + x 4 = 8, 3x + x 5 = 7, 3x 2 + x 6 = 6, x 0, x 2 0, x 3 0, x 4 0, x 5 0, x 6 0, gdzie x 3, x 4, x 5, x 6 sązmiennymidopełniającymi.mamy 0 0 0 9 A = 3 0 0 0 0 0 0 0, b = 8 7, c = [3, 2, 0, 0, 0, 0]T. 0 0 0 0 6 Tablica sympleksowa dla powyższego zagadnienia wygląda następująco: 3 2 0 0 0 0 0 0 0 0 9 3 0 0 0 8 0 0 0 0 7 0 0 0 0 6 Początkowymrozwiązaniemdopuszczalnymjest x = 0, x 2 = 0, x 3 = 9, 0 0 0 x 4 = 8, x 5 = 7, x 6 = 6.Ponadto B = [a 3, a 4, a 5, a 6 ] = 0 0 0 0 0 0, 0 0 0

. PROGRAMOWANIE LINIOWE 27 N = [a, a 2 ] = 3 0.Największymdodatnimwspółczynnikiemfunkcjicelujest 3,zatem x wchodzidonowychzmiennychbazowych.abysprawdzić, 0 która ze zmiennych opuszcza zbiór zmiennych bazowych liczymy odpowiednieminimum: min{ 9, 8, 7 } = 8 = 6.Zatem x 3 3 4opuszczazbiórzmiennych bazowych.mamyteraz B = [a, a 3, a 5, a 6 ]oraz N = [a 2, a 4 ]. 3 2 0 0 0 0 0 0 0 0 9 3 0 0 0 8 0 0 0 0 7 0 0 0 0 6 Stosując eliminację Gaussa oraz dokonując odpowiednich uproszczeń otrzymujemy następującą tablicę sympleksową: 0 0 0 0 8 2 0 0 0 3 3 3 0 0 0 6 3 3 0 0 0 3 3 0 0 0 0 6 Jedynymdodatnimwspółczynnikiemfunkcjicelujestteraz 2,czyli x 2 wchodzi do zbioru nowych zmiennych bazowych. Liczymy odpowiednie minimum: min{ 9 2, 8, 6 } = 9 2.Zatemzmienna x 3opuszczazbiórzmiennychbazowych. Mamyteraz B = [a, a 2, a 5, a 6 ]oraz N = [a 3, a 4 ]. 0 0 0 0 8 2 0 0 0 3 3 3 0 0 0 6 3 3 0 0 0 3 3 0 0 0 0 6 Stosując eliminację Gaussa oraz dokonując odpowiednich uproszczeń otrzymujemy następującą tablicę sympleksową:

. PROGRAMOWANIE LINIOWE 28 0 0 0 0 22 2 2 2 0 0 0 4 2 2 2 0 0 0 4 2 2 2 0 0 0 2 2 2 2 0 0 0 2 2 2 Ponieważ nie ma już dodatnich współczynników funkcji celu otrzymujemy wartośćoptymalną f(x, x 2 ) = 3x + 2x 2 = 3(4 2 ) + 2(4 2 ) = 22 2. Problem znalezienia pierwszego punktu ekstremalnego Przypomnijmy,żeszukamy min c T x,przyzałożeniach Ax = b, x 0,rz(A) = m, b R m. W podanym wcześniej algorytmie sympleks w kroku pierwszym zakładamy istnienie punktu ekstremalnego. Z Twierdzenia.3 wynika, że znalezienie początkowego punktu ekstremalnego związane jest z rozbiciem macierzy A namacierze Boraz Ntak,aby B b 0.WPrzykładach.22i.24mieliśmynapoczątku B = I, b 0. Dwuetapowy sposób znajdowania pierwszego punktu ekstremalnego(bazowego) Zakładamy,że b 0.Jeśli b i < 0,tomnożymyodpowiednierównanieprzez [ ] x -. Rozpatrzmy pomocnicze zagadnienie minimalizacji. Mamy [AI] = bi y szukamy następującego minimum ( ) min m y i, gdzie Ax + Iy = b, x 0, y 0.Dorozwiązaniazagadnienia ( )stosujemy metodę sympleks, ponieważ ma ono początkowe [ ] rozwiązanie dopuszczalne. 0 Zaczynamynastępująco B = I, B b =, x = 0, y = b.jeśliznajdziemy b optymalnerozwiązaniebazowedla ( ),takieże m y i = 0,tootrzymamy takżebazędającąrozwiązanie x B (czyli Ax = b).jeśli ( )posiadadodatnie

. PROGRAMOWANIE LINIOWE 29 minimum,toniemarozwiązaniadopuszczalnegodla Ax = b, x 0.Mamy Etap I- znalezienie rozwiązania dopuszczalnego dla Ax = b, x 0 lub stwierdzenie, że nie istnieje takie rozwiązanie. Etap II- użycie rozwiązania z etapu pierwszego do rozwiązania następującegozagadnienia:znaleźćminimum c T xprzywarunkach Ax b, x 0..4.. Dualna metoda programowania liniowego Szukamy maxy T bprzyzałożeniach y T A c T, y R m (niezakładasię, że y 0).Zauważmy,że y T b = y T Ax c T x, x 0.Wobectegojeżeli y T b = c T x, Ax = b, A T y c,to y, xsąrozwiązaniamioptymalnymidlaodpowiednichzagadnień(xdlaszukaniaminimum c T xprzywarunkach Ax = b, x 0,aydlaszukaniamaksimum y T bprzywarunkach y T A c T ). Twierdzenie.26. Jeśli jedno z zadań programowania liniowego(prymalne lub dualne) posiada skończone rozwiązanie, to takie rozwiązanie posiada drugie z tych zadań. Ponadto wartości funkcji celu obu powyższych zagadnień są takie same. Załóżmy,że x B = B b jestrozwiązaniem(dopuszczalnymioptymalnym)dlazagadnieniaprymalnego(min c T x, Ax = b, x 0).Wtedy y T = c T B B.Ponadtowiemy,że c T N ct B B N 0stąd c T B B N c T N.Okazujesię,żewektor y T = c T B B jestrozwiązaniemoptymalnymzagadnienia dualnego. Mamy y T A = y T [BN] = [c T BB B, c T BB N] [c T B, c T N] = c T jak również równość funkcji celu y T b = c T B B b = c T B x B = c T B x B + c T N x N = [ ] = [c T B, ct N ] xb = c T x. x N Zatemjeślizagadnienieprymalneposiadarozwiązanieoptymalne x B = B b, tozagadnieniedualnemarozwiązanieoptymalne y T = c T B B,któremożna bez trudności policzyć, ponieważ macierz odwrotna do bazy jest znana.

. PROGRAMOWANIE LINIOWE 30 Związek pomiędzy rozwiązaniami optymalnymi x oraz y podaje następujące twierdzenie. Twierdzenie.27(o różnicach dopełniających). Jeżeli x, y są odpowiednio punktami ekstremalnymi dla zagadnienia prymalnego i dualnego, to są one rozwiązaniami optymalnymi wtedy i tylko wtedy, gdy (i) i x i > 0 y T a i = c i (ii) i y T a i < c i x = 0, gdzie a i oznacza i-tąkolumnęmacierzy A. Algorytm dualny sympleks Danejestrozwiązaniebazowe x B = B btakie,żewektor y T = c T B B spełnianierówność c T N yt N 0. Krok.Jeśli x B 0,to x B jestrozwiązaniemoptymalnymiobliczenia sązakończone.wprzeciwnymraziewybraćujemnąskładową x B,niechtą składowąbędzieskładowaonumerze l(zmienna x l zostajeusuniętazezbioru zmiennych bazowych, a l-ta kolumna w macierzy A zostaje usunięta z bazy B). Krok2.Obliczyć b l a j = u lj dla j = m+, m+2,...,n,gdzie b l jest l-tym wierszemmacierzy B, a j j-tąkolumnąmacierzy A.Jeśliwszystkie u lj 0, to zagadnienie dualne nie ma skończonego rozwiązania. W przeciwnym razie dlawszystkich j = m +, m + 2,...,ntakich,że u lj < 0obliczyć oraz wyznaczyć Niech ε = z k c k u lk macierzy A). z j = y T a j = c T B B a j ε = min{ z j c j u lj ; u lj < 0}. (k-takolumnamacierzy Azastępujewbazie l-tąkolumnę Krok3.Obliczyćnowywektor y T wnastępującysposób: y T = y T εb l. Krok4.Uaktualnićodwrotnąmacierzbazową B orazobliczyćnowe rozwiązanie x B = B b. Krok 5. Wrócić do kroku pierwszego.

. PROGRAMOWANIE LINIOWE 3 Uwaga.28.Nowązmienną ymożnaobliczyćtakjakwkroku3lub wykorzystujączależność y T = c T B B potym,gdymacierz B zostałauaktualniona.wartośćdualnejfunkcjicelu y T bjestzwiększanawkażdejkolejnej iteracji. Procedura dualna sympleks zostaje zakończona po skończonej liczbie kroków,gdy x B 0..5. Elementy programowania całkowitoliczbowego Rozważmy zagadnienie optymalizacji z kawałkami liniowym ograniczeniem lub funkcją celu jednej zmiennej przedstawione na poniższym rysunku f(y) y y 2 y 3 y n-2 y n- y n y Dowolnawartość yleżącapomiędzy y oraz y n możebyćprzedstawiona wpostaciwypukłejkombinacjizmiennych y i oraz y i+ wnastępującysposób: y = λ i y i + λ i+ y i+,gdzie λ i + λ i+ =, λ i, λ i+ 0.Podobnie f(y) = λ i f(y i ) + λ i+ f(y i+ ).Zapomocązmiennychcałkowitoliczbowych możemywyrazić f(y)wcałymprzedziale [y, y n ]wnastępującysposób: gdzie n λ i y i = y, f(y) = n λ i f(y i ), n λ i =, λ i 0, i =, 2,..., n, λ x, λ i x i + x i, n i = 2, 3,..., n, λ n x n, x i =, x i = 0 lub x i =, i =, 2,..., n. Tylkojednazmienna x i możeprzyjąćwartośćrówną,astądtylko λ i oraz λ i+ mogąbyćniezerowe,czyli λ i + λ i+ =.Mamyzatemdoczynienia

. PROGRAMOWANIE LINIOWE 32 zezmiennymizero-jedynkowymi x, x 2,...,x n,któreokreślająprzedział zawierający yorazzezmiennymiciągłymi λ, λ 2,..., λ n,któredokładnie określają wartość y. Powyższa technika może być użyta do przybliżania funkcji nieliniowych funkcjami kawałkami liniowymi i do przekształcania zagadnień z nieliniowymi funkcjami celu do zagadnień całkowitoliczbowych programowania liniowego. W przypadku ogólnym nie można rozwiązywać zagadnień całkowitoliczbowych za pomocą metody sympleks i należy posługiwać się specjalnymi technikami obliczeniowymi. Poniżej przedstawimy jedną z nich, a mianowicie metodę dualną Gomory ego. Metoda ta jest bezpośrednim rozwinięciem dualnej metody sympleks. Różnica polega na tym, że w metodzie całkowitoliczbowej wiersz zawierający element główny jest generowany w każdej iteracji i wartość tego elementu wynosi-. Zapewnia to całkowitoliczbowość dualnej metody sympleksowej. Algorytm redukuje obszar dopuszczalności do takiego, aby jego wierzchołek optymalny był całkowitoliczbowy. Leksykograficzna postać dualnej metody sympleks Rozważmy następującą dualną tablicę sympleksową Zmienna Stała x m+ x m+2... x k... x n x 0 p 00 p 0,m+ p 0,m+2... p 0k... p 0n x p 0 p,m+ p,m+2... p k... p n...... x l p l0 p l,m+ p l,m+2... p lk... p ln...... x m p m0 p m,m+ p m,m+2... p mk... p mn x m+ 0 0... 0... 0 x m+2 0 0... 0... 0......... x k 0 0 0...... 0......... x n 0 0 0... 0... gdzie x l jestzmiennąopuszczającąbazę, x k zmiennąwchodzącądobazy, natomiast p lk jestelementemgłównym.powyższatablicaodpowiadazagadnieniu całkowitoliczbowemu w postaci:

. PROGRAMOWANIE LINIOWE 33 ( )znaleźćminimum x 0,przywarunkach x i = p i0 + j J p ij ( x j ), x i 0, x i Z, i =, 2,..., n, natomiast J jest zbiorem wskaźników niebazowych zmiennych. W powyższej tablicy wygodnie jest założyć, że pierwsze m zmiennych jest bazowych. Zapiszmy nasze zagadnienie w postaci wektorowej, mamy: znaleźćminimum x 0,przywarunkach x = p 0 + j J p j ( x j ), x i 0, x i Z, i =, 2,..., n. Wektor v 0 nazywamy leksykograficznie dodatnim(ujemnym), jeśli pierwsza jego niezerowa składowa jest dodatnia(ujemna). Gdy wektor v jest leksykograficzniedodatni(ujemny),topiszemy v > l 0(v < l 0).Wektor vjest leksykograficzniewiększy(mniejszy)odwektora w,jeżeli v w > l 0 (v w < l 0).Ciągwektorów v t, t =, 2,...nazywamyleksykograficznie malejącym(rosnącym),jeśli v t v t+ > l 0(v t v t+ < l 0).Zatemwleksykograficznym algorytmie dualnym zagadnienie ( ) przedstawiamy w sposób następujący: znaleźć leksykograficzne minimum x, przy warunkach x = p 0 + j J p j ( x j ), x 0. Zmienną x l opuszczającąbazęwyznaczasiętaksamojakwzwykłejmetodzie dualnej tzn. p l0 = min{p i0 ; p i0 < 0, i m}. Zmienną x wchodzącą do bazy znajdujemy za pomocą testu p lk p k = lex max{ p lj ; p lj < 0, m + j n}, gdzie lex max oznacza maksimum leksykograficzne. Przekształcenie elementarnewzględem p lk przekształcapowyższątablicęwnowątablicęzkolumnami ( ) p j = p j p lj p lk p k, dla j k, p k = p lk p k.

. PROGRAMOWANIE LINIOWE 34 Jeżeli początkowa tablica jest dualnie dopuszczalna w sensie leksykograficznym(tzn.wektory p j, j = m+, m+2,..., nsąleksykograficznieujemne), towzory ( )gwarantują,żenowewektorykolumnowe p j sąrównieżleksykograficznie ujemne. Uwaga.29.Możnapokazać,żerozwiązaniebazowe p 0 jestściślerosnące(w sensie leksykograficznym) w każdej iteracji oraz że żadna baza nie powtórzy się. Zarys metody dualnej Gomory ego. Metoda Gomory ego rozpoczyna działanie od tablicy całkowitoliczbowej i leksykograficzniedualniedopuszczalnegorozwiązania,toznaczywektory p j, j = m+, m+2,...,nsąleksykograficznieujemnedlazagadnieniaminimalizacji oraz dodatnie dla zagadnienia maksymalizacji. Algorytm jest następujący: Krok.Wybraćwierszonumerze r,wktórym p r0 < 0, r 0.Jestto wiersz generujący tzw. cięcie. Jeżeli wiersza takiego nie ma, to bieżące rozwiązanie jest optymalne. Krok2.Znaleźćkolumnę p k zelementemgłównym,którajestnajwiększa wsensieleksykograficznymwśródkolumn,dlaktórych p rj < 0.Jeślitakiej kolumny nie ma, to brak jest dopuszczalnego rozwiązania całkowitoliczbowego. Krok 3. Utworzyć nierówność(tzw. odcinającą) z wiersza r-tego, który nie jest spełniony przez bieżące rozwiązanie prymalne. Nowy wiersz jest dołączonynadoletablicyijesttowierszzelementemgłównymrównym-. Krok 4. Wykonać jedno przekształcenie elementarne dualnej metody sympleks. Krok 5. Usunąć dodany wiersz, który jest teraz trywialny(x = ( x)) iwrócićdokroku. Sposób otrzymania nierówności odcinającej

. PROGRAMOWANIE LINIOWE 35 Przypuśćmy, że wybrano wiersz o numerze r w tablicy dualnej, jako generujący cięcie(przez cięcie rozumiemy dodatkowe ograniczenie posiadające tę własność, że odcina część zbioru rozwiązań dopuszczalnych nie gubiąc przy tym żadnego rozwiązania całkowitoliczbowego) x r = p r0 + j J p rj ( x j ). Niech λ będzie liczbą dodatnią. Każda liczba p spełnia równość [ p (i) p = λ + R, λ] gdzieprzez [z]oznaczamyczęśćcałkowitąliczby zoraz 0 R < λ.po zastosowaniu (i) do wiersza generującego, otrzymujemy (ii) [ pr0 ] R j x j +R r x r = R 0 +λ( + [ prj ] [ ] ( x j )+ ( x r )) = R 0 +λx. λ λ λ j J j J Dla dowolnego nieujemnego rozwiązania spełniającego (ii) wartość [ pr0 ] (iii) x = + [ prj ] [ ] ( x j ) + ( x r ) λ λ λ j J musi być całkowita, ponieważ wszystkie współczynniki w (iii) są całkowite. Ponadto x 0,bo 0 R 0 < λijeśli xjestujemnąliczbącałkowitą,to R 0 + λx < 0.Jednakostatnianierównośćniejestmożliwa,ponieważlewa stronaw(ii)jestnieujemna.zatem x 0.Gdywybierzemy λ,wówczas nierówność x 0 uprości się do postaci (iv) [ pr0 λ ] + j J [ prj λ ] ( x j ) 0. Niech π rj = [ p rj ] λ,wówczascałkowitoliczbowecięciegomory egookreślone jest następująco: (v) x = π r0 + π rj ( x j ) 0. j J Ograniczenie (v) jest wierszem głównym, a x jest nową nieujemną zmienną dodatkową. Wyznaczymy teraz wartość λ.

. PROGRAMOWANIE LINIOWE 36 Wyznaczanie wartości λ. Krok.Znaleźćkolumnęgłówną ktak,aby p k = lex max{p j ; j J}, gdzie J = {j; p rj < 0, j 0},ar-tywierszgenerujecięcie. Krok2.Wyznaczyćnajwiększąliczbęcałkowitą e j,takąże Ponadtoniech e k =. e j p j l p k, j J, j k. Krok3.Przyjąć λ = max{λ j = p rj e j ; j J}. Uwaga.30.(i) Wyprowadzając zależność (iv) założyliśmy, że λ. Nierównośćtajestspełniona,ponieważ λ λ k = p rk.jeśli λ =, to wiersz generujący jest wierszem zawierającym element główny i nie ma nowego ograniczenia. (ii) Zgodnie z wyprowadzeniem, λ nie musi być całkowite. Wybierając taką wartość λ, otrzymamy jako element główny oraz wiersz główny, który dajenajwiększyleksykograficzniewzrostkolumny p 0. Całkowitoliczbowy algorytm dualny Gomory ego. Zakładamy,żekolumny p j, j = m +, m + 2,..., nsąleksykograficzniedualnie dopuszczalne. Krok.Jeśli p 0 0,torozwiązanieprymalnejestdopuszczalneioptymalne, a obliczenia się kończą. W przeciwnym razie wybrać taki wiersz generującycięcie,że p r0 < 0. Krok2.Znaleźćtakąkolumnęgłówną p k, m + k n,abybyłaonaleksykograficznienajwiększawśródkolumn,dlaktórych p rj < 0. Jeżeliwszystkie p rj 0,towówczasnieistniejedopuszczalnerozwiązanie całkowitoliczbowe. W przypadku przeciwnym przejść do kroku 3. Krok3.Dlakażdego j J, j kznaleźćnajwiększąliczbęcałkowitą e j taką,że e j p j p k.następniepodstawić e k = orazobliczyć λ = max{ p rj e j ; j J}.

. PROGRAMOWANIE LINIOWE 37 Krok 4. Do tablicy dualnej dołączyć ograniczenie x = π r0 + j J π rj ( x j ) 0. Krok 5. Wybrać jedno dualne przekształcenie elementarne używając π rk = jakoelementugłównego. Krok 6. Usunąć dodane ograniczenie, które stało się trywialne i wrócić dokroku. Uwaga.3. W kroku powyższego algorytmu do wyznaczenia wiersza generującegocięciemożnawybraćnajmniejsze p i0 < 0. Przykład.32.Znaleźćminimumfunkcji f(x, x 2 ) = x 0 = 3x + 5x 2 przy warunkach x 3 = 5 + x + 4x 2 0, x 4 = 7 + 3x + 2x 2 0, x, x 2, x 3, x 4 0, x, x 2, x 3, x 4 Z. Dualna tablica sympleksowa dla powyższego zagadnienia wygląda następująco: Zmienna Stała x x 2 x 0 0 3 5 x 3 5 4 x 4 7 3 2 Trywialne ograniczenia z pojedyńczym elementem równym- zostały pominięte.niechwierszemgenerującymbędziewiersz,któryzawiera x 4,akolumną głównąkolumnapierwsza(k = ).Wartości e j sąnastępujące e =, e 2 =. Zatem λ = max{ p rj e j ; j J} = max{ 3, 2 } = 3. Liczymy dodatkowe ograniczenie [ ] [ ] 7 3 x 5 = + ( x ) + 3 3 [ 2 x 5 = 3 + x + x 2 0. Nasza tablica ma następującą postać: 3 ] ( x 2 ) 0,

. PROGRAMOWANIE LINIOWE 38 Zmienna Stała x x 2 x 0 0 3 5 x 3 5 4 x 4 7 3 2 x 5 3 Wymieniamyterazzmienną x nazmienną x 5,czylijesttoprzekształcenie elementarnezelementemgłównym p 5 =.Mamy x 0 = 9+3x 5 +2x 2, x = 3+x 5 x 2, x 3 = 2+x 5 +3x 2, x 4 = 2+3x 5 x 2. Nowa tablica wygląda zatem następująco: Zmienna Stała x 5 x 2 x 0 9 3 2 x 3 x 3 2 3 x 4 2 3 Po usunięciu dodanego ograniczenia mamy: Zmienna Stała x x 2 x 0 9 3 2 x 3 2 3 x 4 2 3 Zauważmy,że p 0 < 0zatemnależyprowadzićobliczeniadalej.Zgodniez uwagą.3wierszemgenerującymjestterazwiersz,któryzawiera x 3,akolumnągłównąkolumnadruga(k = 2).Wartości e j sąnastępujące e =, e 2 =.Zatem λ = max{, 3 } = 3. Liczymy dodatkowe ograniczenie [ ] [ ] 2 x 5 = + ( x ) + 3 3 [ 3 x 5 = + x + x 2 0. Nasza tablica ma następującą postać: 3 ] ( x 2 ) 0,

2. STRATEGIE ZACHŁANNE 39 Zmienna Stała x x 2 x 0 9 3 2 x 3 2 3 x 4 2 3 x 5 Wymieniamyterazzmienną x 2 nazmienną x 5,czylijesttoprzekształcenie elementarnezelementemgłównym p 52 =.Mamy x 0 = +x + 2x 5, x 2 = x + x 5, x 3 = 2x + 3x 5, x 4 = +4x x 5. Nowa tablica wygląda zatem następująco: Zmienna Stała x x 5 x 0 2 x 2 x 3 2 3 x 4 4 Po usunięciu dodanego ograniczenia mamy: Zmienna Stała x x 2 x 0 2 x 3 2 3 x 4 4 Ponieważ p 0 > 0,torozwiązanieprymalnejestdopuszczalneioptymalne,co pozwalazakończyćwykonywaniealgorytmu.ostateczniemamy 3x + 5x 2 =,astądrozwiązaniemoptymalnymjest x = 2, x 2 =, x 3 = oraz x 4 =. 2. Strategie zachłanne Strategia zachłanna(ang. greedy) jest to metoda rozwiązywania pewnych problemów optymalizacyjnych. Polega ona na tym, że na każdym etapie rozwiązywania problemu wybiera opcję lokalnie optymalną. Strategia taka może, ale NIE MUSI prowadzić do optymalnego globalnego rozwiązania.

2. STRATEGIE ZACHŁANNE 40 Istnieje wiele problemów, w których strategia zachłanna daje rozwiązanie optymalne. Strategię zachłanną możemy stosować także wtedy, gdy nie daje ona gwarancji uzyskania optymalnego rozwiązania. Np. wtedy, gdy jesteśmy zainteresowani szybkim, przybliżonym, ale nie koniecznie optymalnym rozwiązaniem. 2.. Problem wyboru zajęć Mamydanyzbiór S = {,...,n}złożonyznzajęć,którymtrzebaprzydzielić salę wykładową. W sali mogą odbywać się w danej chwili co najwyżej jednezajęcia.każdezajęcia imająswójczasrozpoczęcia s i orazczaszakończenia f i.rozsądniejestzałożyć,że s i < f i.ponadtozakładamy,żezajęcia izajmująprzedziałczasowy [s i, f i ).Mówimy,żezajęcia ioraz jsązgodne, jeśli [s i, f i ) [s j, f j ) =. Problem wyboru zajęć polega na wyborze maksymalnego podzbioru A S parami zgodnych zajęć. Problem wyboru zajęć- rozwiązanie Postępujemywnastepującysposób.Najpierwwybieramyzajęcia a,które mająnajwcześniejszyczaszakończenia.jeżelimamyjużwybranezajęcia a,..., a k,tojakozajęcia a k+ wybieramyzezbioru S \ {a,...,a k }te,któresą zgodnezewszystkimi a,...,a k orazmająnajwcześniejszyczaszakończenia. Procedurę tę kontynuujemy aż do wyczerpania zajęć ze zbioru S. Otrzymany zbiór A = {a,...,a m }jestposzukiwanymmaksymalnymzbioremparami zgodnych zajęć. Zauważmy, że na każdym etapie wybierając zajęcia o najwcześniejszym czasie zakończenia pozostawiamy najwięcej wolnego czasu do wykorzystania. W tym sensie jest to strategia zachłanna. Problem wyboru zajęć- przykład Mamydane:salęwolnąwczasie 0orazzajęcia z,..., z 0 wrazzczasami rozpoczęcia oraz zakończenia podanymi w poniższej tabeli(w postaci s i f i ).