1 Podstawowe pojęcia. 1.1 Co to jest programowanie liniowe? Łukasz Kowalik, Wstęp do programowania liniowego 1

Wielkość: px
Rozpocząć pokaz od strony:

Download "1 Podstawowe pojęcia. 1.1 Co to jest programowanie liniowe? Łukasz Kowalik, Wstęp do programowania liniowego 1"

Transkrypt

1 Łukasz Kowalik, Wstęp do programowania liniowego 1 1 Podstawowe pojęcia 1.1 Co to jest programowanie liniowe? Program liniowy (w skrócie PL 1 ) jest to problem minimalizacji/maksymalizacji liniowej funkcji celu o n argumentach x 1, x 2,..., x n przy zachowaniu pewnej liczby równości lub nierówności liniowych (będziemy je nazywać ograniczeniami) zawierających zmienne x i. Przykład: zminimalizuj x 1 + 2x 2 z zachowaniem warunków x 2 x x 1 + x 2 4 2x 2 + x 1 0 x 2 0 Za pomocą programów liniowych można wyrazić bardzo wiele naturalnych problemów optymalizacyjnych. Dla przykładu, problem maksymalnego przepływu w sieci o n wierzchołkach, źródle s, ujściu t, i funkcji przepustowości c : V 2 R można wyrazić za pomocą następującego programu liniowego o V 2 zmiennych (dla każdej pary wierzchołków v, w mamy zmienne f vw i f wv odpowiadające przepływowi od v do w i odwrotnie) i 2 V 2 + V 2 ograniczeniach: zmaksymalizuj v V f sv z zachowaniem warunków f vw c(v, w) v, w V f vw = f wv v, w V w V f vw = 0 v V \ {s, t} Inny przykład: znajdowanie długości najkrótszej ścieżki od s do t w grafie G = (V, E) z funkcją w : E R opisującą długości krawędzi. Tu dla każdego wierzchołka v mamy zmienną d v. Dla wierzchołków na najkrótszej ścieżce od s do t zmienna d v będzie odpowiadać odległości od s do v. zmaksymalizuj d t z zachowaniem warunków d v d u + w(u, v) (u, v) E d s = 0 Zadanie. Udowodnij, że ten program faktycznie jest równoważny problemowi najkrótszej ścieżki. Rozwiazanie. Dowód można przedstawić w następujący nieformalny sposób: wyobraźmy sobie że mamy fizyczny model grafu, w którym wierzchołki (powiedzmy metalowe kulki) są połączone sznurkami o odpowiednich długościach. Żeby znaleźć odległość od s do t chwytamy za kulki odpowiadające tym wierzchołkom i staramy się je maksymalnie od siebie oddalić (aż do całkowitego napięcia niektórych sznurków). 1 w tekstach anglojęzycznych powszechnie używany jest skrót LP

2 Łukasz Kowalik, Wstęp do programowania liniowego Terminologia, postać kanoniczna i dopełnieniowa Rozważmy PL o n zmiennych x 1,..., x n. Wartości zmiennych możemy utożsamiać z wektorem x = (x 1,..., x n ) R n. Zauważmy też, że liniową funkcję celu n j=1 c jx j możemy zapisać krócej jako c T x dla wektora c = (c 1,..., c n ). Będziemy utożsamiać tę funkcję z wektorem c. x R n jest rozwiazaniem dopuszczalnym 2 PL gdy x spełnia wszystkie ograniczenia. x R n jest rozwiazaniem optymalnym PL gdy x jest rozwiązaniem dopuszczalnym i optymalizuje funkcję celu, tzn. jeśli dla dowolnego dopuszczalnego y R n jest c T x c T y w przypadku gdy PL jest minimalizacyjny (c T x c T y gdy maksymalizacyjny). PL jest dopuszczalny gdy istnieje rozwiązanie dopuszczalne, w przeciwnym przypadku jest sprzeczny 3. PL jest nieograniczony gdy jest dopuszczalny ale nie ma rozwiązań optymalnych, tzn. dla PL minimalizacyjnego dla dowolnego λ R istnieje rozwiązanie dopuszczalne x takie, że c T x < λ. Będziemy posługiwać się trzema wygodnymi postaciami programów liniowych: kanoniczną, standardową i dopełnieniową Postać kanoniczna Postać kanoniczna jest najbardziej ogólna z trzech rozważanych tu postaci. Program w postaci kanonicznej wygląda następująco: zmaksymalizuj n j=1 c jx j z zachowaniem warunków n j=1 a ijx j b i i = 1,..., m gdzie {a ij, b i, c j } są dane. Wygodniej będzie nam używać zapisu macierzowego: zmaksymalizuj z zachowaniem warunków gdzie c R n, b R m, A M m n [R]. c T x Ax b Lemat 1. Każdy PL można sprowadzić do postaci kanonicznej. Dowód. Zadanie min c T x zamieniamy na max ( c) T x. Równości a T i x = b i zamieniamy na parę a T i x b i, a T i x b i. Nierówności a T i x b i zamieniamy na ( a i ) T x b i. 2 ang. feasible solution 3 ang. infeasible 4 W literaturze panuje niemały bałagan dotyczący terminologii postaci PL. W szczególności, w wielu tekstach postać dopełnieniowa (ang. augmented) jest nazywana standardową (standard). Dokonaliśmy tu takiego wyboru, ponieważ słowo dopełnieniowa więcej mówi o naturze tej postaci, natomiast większość naturalnych problemów algorytmicznych zapisuje się standardowo w postaci, którą nazwiemy standardową. Wreszcie, ta terminologia jest używana w Cormenie i Vaziranim

3 Łukasz Kowalik, Wstęp do programowania liniowego Postać standardowa Programy liniowe modelujące problemy algorytmiczne bardzo często są w następującej postaci (jest to szczególny przypadek postaci kanonicznej): zmaksymalizuj z zachowaniem warunków c T x Ax b x 0 Lemat 2. Każdy PL można sprowadzić do postaci standardowej. Dowód. Możemy założyć, że mamy już PL w postaci kanonicznej. Aby zapewnić nieujemność każdej zmiennej, dla każdej zmiennej x i wprowadzamy parę zmiennych x + i i x i i każde wystąpienie x i w PL (także w funkcji celu) zastępujemy przez x + i x i. Dodajemy też x+ i 0 i x i 0. Czasem nie chcemy sztucznie zamieniać problemu minimalizacji na maksymalizację przez odwrócenie funkcji celu. Postać standardowa w wersji minimalizacyjnej wygląda następująco: zminimalizuj z zachowaniem warunków c T x Ax b x Postać dopełnieniowa Program w postaci dopełnieniowej (w wersji maksymalizacyjnej) wygląda następująco: zmaksymalizuj c T x z zachowaniem warunków Ax = b i = 1,..., m x 0 gdzie c R n, b R m, A M m n [R]. Zauważmy, że z dokładnością do zamiany równości na pary nierówności możemy powiedzieć, że PL w postaci dopełnieniowej jest w postaci standardowej. Lemat 3. Każdy PL można sprowadzić do postaci dopełnieniowej. Dowód. Możemy założyć, że mamy już PL w postaci standardowej. Dla każdej nierówności a T i x b i wprowadzamy zmienną dopełnieniową 5 s i i nierówność zastępujemy przez a T i x s i = b i oraz s i 0. 5 ang. slack variable

4 Łukasz Kowalik, Wstęp do programowania liniowego 4 2 Geometria programów liniowych Przypomnijmy: zbiór punktów spełniających a T x = b, a R n, b R to hiperpłaszczyzna, zbiór punktów spełniających a T x b to półprzestrzeń, zbiór rozwiązań dopuszczalnych PL w postaci kanonicznej Ax b to przecięcie półprzestrzeni, czyli wielościan 6. Dla przykładu, zbiór rozwiązań dopuszczalnych PL z rozdziału 1.1 jest czworokątem (w 2 wymiarach hiperpłaszczyzny to proste, półprzestrzenie to półpłaszczyzny, a wielościany to wielokąty). Zauważmy, że rozwiązanie optymalne to najdalszy punkt wielościanu w kierunku wektora funkcji celu (dla problemu maksymalizacyjnego; dla minimalizacyjnego w kierunku wektora odwrotnego). Zauważmy, że zbiór rozwiązań PL jest przecięciem zbiorów wypukłych (półprzestrzeni, hiperpłaszczyzn) a więc jest wypukły. 2.1 Struktura rozwiazań optymalnych Zdefiniujemy teraz trzy naturalne pojęcia związane z programami liniowymi i ich geometryczną interpretacją. Za chwilę pokażemy, że są one równoważne. Wierzchołkiem wielościanu P nazywamy dowolny punkt x P, który jest jedynym rozwiązaniem optymalnym dla pewnej funkcji celu c. Punktem ekstremalnym wielościanu P nazywamy dowolny punkt x P, który nie jest wypukłą kombinacją dwóch innych punktów y, z P. (Przypomnijmy, że wypukła kombinacja y i z to dowolny punkt postaci λy + (1 λ)z dla pewnego λ [0, 1].) Bazowe rozwiazanie dopuszczalne (brd) PL o n zmiennych to rozwiązanie dopuszczalne x R n takie, że istnieje n liniowo niezależnych ograniczeń (w sensie wektorów współczynników przy x i, tzn. x 1 +2x 2 1 i x 1 +2x 2 2 są liniowo zależne), które dla x są spełnione z równością 7. Na przykład (0, 0) i ( 2, 8 ) są brd programu z rozdziału W poniższych lematach rozważamy dowolny program liniowy oznaczamy przez P wielościan jego rozwiązań dopuszczalnych. Zakładamy, że jest on dany w postaci max c T x, Ax b (sprowadzenie dowolnego programu do takiej postaci nie zmienia wielościanu rozwiązań dopuszczalnych). Lemat 4. Jeśli x jest wierzchołkiem P to x jest punktem ekstremalnym. 6 ang. polyhedron 7 ang. tight

5 Łukasz Kowalik, Wstęp do programowania liniowego 5 Dowód. Niech c będzie funkcją celu taką, że x jest jedynym rozwiązaniem optymalnym LP dla funkcji celu c. Załóżmy, że x = λy + (1 λ)z dla pewnych y, z P oraz λ [0, 1]. Ponieważ x jest jedyny optymalny więc c T y, c T z < c T x. Ale wówczas, z liniowości c c T x = λc T y + (1 λ)c T z < λc T x + (1 λ)c T x = c T x. Lemat 5. Jeśli x jest punktem ekstremalnym P to x jest bazowym rozwiazaniem dopuszczalnym. Dowód. Z definicji punktu ekstremalnego x jest dopuszczalny. Załóżmy, że nie jest brd, tzn. że nie istnieje n liniowo niezależnych ograniczeń spełnionych z równością dla x. Intuicyjnie, oznacza to, że wokół x jest nieco luzu, tzn. jest pewien wektor d (liniowo niezależny od wektorów ograniczeń spełnionych z równością), wzdłuż którego możemy się przemieszczać z x w przód i w tył pozostając w P. Istotnie, pokażemy, że x jest kombinacją wypukłą dwóch punktów w P. Niech T = {i a T i x = b i }. Wiemy, że {a i i T } nie rozpina R n, tzn. rank[a i, i T ] < n. Stąd układ równań (jednorodny) a T i d = 0 i T ma przestrzeń rozwiązań wymiaru n rank[a i i T ] 1. Czyli istnieje d 0 który jest rozwiązaniem tego układu. Pokażemy, że dla pewnego małego ɛ > 0, x ± ɛd P, czyli będzie sprzeczność (bo x jest ekstremalny). Istotnie, jeśli i T to dla dowolnego ɛ, a T i (x ± ɛd) = b i. Dla i T mamy a T i x > b i, a więc na pewno można wybrać dostatecznie małe ɛ, żeby a T i (x ± ɛd) b i dla każdego i T. Lemat 6. Jeśli x jest bazowym rozwiazaniem dopuszczalnym PL to x jest wierzchołkiem P. Dowód. Niech T = {i a T i x = b i }. Podamy funkcję celu c, przy której x jest jedynym rozwiązaniem optymalnym: c = i T a i. Dla dowolnego y P mamy c T y = i T a T i y i T b i = c T x, (czyli x jest rozwiązaniem optymalnym) przy czym równość zachodzi tylko gdy dla każdego i T, a T i y = b i, a to jest układ którego jedynym rozwiązaniem jest x (bo rank[a i i T ] = n). Wniosek 1. Dla dowolnego programu liniowego sa równoważne: (i) x jest wierzchołkiem, (ii) x jest punktem ekstremalnym, (iii) x jest bazowym rozwiazaniem dopuszczalnym. Twierdzenie 1. Każdy ograniczony PL w postaci standardowej max c T x, Ax b, x 0 ma rozwiazanie optymalne, które jest punktem ekstremalnym.

6 Łukasz Kowalik, Wstęp do programowania liniowego 6 Dowód. Niech x będzie rozwiązaniem optymalnym PL. Jeśli x jest ekstremalny koniec. W przeciwnym przypadku pokażemy jak przejść od x do punktu ekstremalnego o tej samej wartości funkcji celu (używając analogii trójwymiarowej, przesuniemy się z x wewnątrz wielościanu do ściany wielościanu, następnie ze środka ściany do krawędzi, a z krawędzi do wierzchołka). Oznaczmy przez P wielościan rozwiązań dopuszczalnych. Skoro x nie jest punktem ekstremalnym, to istnieje y 0 taki że x + y, x y P. Po pierwsze zauważmy, że przesuwając się wzdłuż wektora y nie zmieniamy wartości funkcji celu. Istotnie, gdyby c T y > 0 to c T (x + y) > c T x, natomiast gdyby c T y < 0 to c T (x y) > c T x, czyli w obu przypadkach dostajemy sprzeczność z założniem że x jest optymalny. Skoro c T y = 0 to dla dowolnego α, c T (x + αy) = c T x. Rozważmy teraz dowolne ograniczenie spełnione z równością, czyli (a i ) T x = b i. Teraz zauważmy, że skoro (a i ) T (x + y) b to (a i ) T y 0. Podobnie skoro (a i ) T (x y) b to (a i ) T y 0. Stąd (a i ) T y = 0 a nawet (a i ) T (αy) = 0 dla dowolnego α R. Czyli jeśli i-te ograniczenie jest spełnione z równością, to po przesunięciu się wzdłuż y dalej tak będzie, tzn. (a i ) T (x + αy) = b i. Geometrycznie, odpowiada to spostrzeżeniu, że jeśli x jest na krawędzi (ścianie,...), to posuwając się wzdłuż y dalej pozostajemy na krawędzi (ścianie,...). Niech teraz λ = max{α x + αy P oraz x αy P}. Weźmy j takie, że y j 0. Zauważmy, że jeśli x j = 0 to y j = 0 (wpp. x j + y j < 0 lub x j y j < 0, czyli x + y P lub x y P), a więc musi być x j 0. Oznacza to, że dla dostatecznie dużego α, x j + αy j = 0 lub x j αy j = 0, czyli λ jest dobrze określone. Zauważmy, że w rozwiązaniu dopuszczalnym x + λy rośnie liczba ograniczeń spełnionych z równością. To implikuje, że powyższą operację wykonamy co najwyżej n + m razy zanim dojdziemy do punktu ekstremalnego. Wniosek 2. Istnieje algorytm (brutalny), który rozwiazuje PL w postaci standardowej o n zmiennych i m ograniczeniach w czasie O( ( m n) n 3 ). Dowód. Żeby rozwiązać LP w postaci standardowej wystarczy sprawdzić wszystkie wierzchołki wielościanu i wybrać wierzchołek o najmniejszej wartości funkcji celu. Wierzchołków jest tyle co bazowych rozwiązań dopuszczalnych, czyli ( m n). Aby znaleźć taki wierzchołek wystarczy rozwiązać układ odpowiednich n liniowo niezależnych równań. (Uwaga. W powyższym twierdzeniu m oznacza liczbę ograniczeń, a nie liczbę wierszy macierzy A. Jeśli tę liczbę wierszy oznaczymy przez r to m = r + n). 3 Algorytmy programowania liniowego Pierwszym algorytmem programowania liniowego był algorytm simplex, opublikowany przez George a Dantziga w 1947 roku. Algorytm ten najpierw znajduje pewien wierzchołek wielościanu rozwiązań dopuszczalnych, a następnie w pętli przemieszcza się wzdłuż krawędzi do jednego z sąsiednich wierzchołków tak, aby poprawić wartość funkcji celu. Niestety okazuje się, że jego pesymistyczna złożoność jest wykładnicza. Doskonale zachowuje się on jednak dla rzeczywistych danych i jest powszechnie stosowany w praktyce.

7 Łukasz Kowalik, Wstęp do programowania liniowego 7 Kolejny przełom nastąpił w 1979 kiedy to Leonid Khachiyan opublikował tzw. metodę elipsoidalną, czyli algorytm wielomianowy o złożoności O(n 4 L), gdzie L jest ograniczone z góry przez długość zapisu binarnego danych (macierzy A, wektorów b i c). Istnieją implementacje tego algorytmu, jednakże źle sprawdzają się w praktyce. W 1984 roku zupełnie inne podejście zaproponował Narendra Karmarkar. Jego metoda punktu wewnętrznego osiąga złożoność O(n 3.5 L) i została poprawiona przez kolejnych autorów do O(n 3 L). Podobno niektóre implementacje niektórych wersji tego algorytmu zachowują się bardzo dobrze dla rzeczywistych danych (porównywalnie albo lepiej niż algorytm simplex). Mimo to, nawet ten algorytm jest rzadko stosowany praktyce. 3.1 Algorytm simplex W poprzednim rozdziale zauważyliśmy już, że poszukując rozwiązań optymalnych można ograniczyć się do wierzchołków wielościanu. Algorytm simplex korzysta z tej obserwacji i realizuje podejście local search. Dokładniej, algorytm zaczyna od dowolnego wierzchołka wielościanu i w każdej kolejnej iteracji próbuje przemieścić się do takiego sąsiedniego wierzchołka, że wartość funkcji celu poprawia się (lub przynajmniej nie pogarsza). Opiszemy teraz algorytm simplex na przykładzie konkretnego programu liniowego: max 3x 1 + x 2 + 2x 3 x 1 + x 2 + 3x x 1 + 2x 2 + 5x x 1 + x 2 + 2x 3 36 x 1, x 2, x 3 0. Zauważmy, że jest to program w postaci standardowej (w wersji maksymalizacyjnej), oraz wszystkie wyrazy wolne z prawych stron nierówności są nieujemne. Dzięki temu łatwo znaleźć dla niego rozwiązanie dopuszczalne rozwiązanie zerowe: x 1 = 0, x 2 = 0, x 3 = 0. Zapiszmy teraz ten program w postaci dopełnieniowej, wprowadzając zmienną dopełnieniową dla każdej nierówności (z wyłączeniem warunków nieujemnościowych). Dodatkowo funkcję celu zastąpmy nową zmienną z: max z z = 3x 1 + x 2 + 2x 3 x 4 = 30 x 1 x 2 3x 3 x 5 = 24 2x 1 2x 2 5x 3 x 6 = 36 4x 1 x 2 2x 3 x 1, x 2, x 3, x 4, x 5, x 6 0. Nasze rozwiązanie dopuszczalne, rozszerzone o zmienne dopełnieniowe ma teraz następującą postać: x 1 = 0, x 2 = 0, x 3 = 0, x 4 = 30, x 5 = 24, x 6 = 36.

8 Łukasz Kowalik, Wstęp do programowania liniowego 8 Podczas działania algorytmu, w kolejnych krokach będziemy zmieniać nasz program liniowy. Mimo, iż ograniczenia będą się zmieniać, zawsze będą one opisywać ten sam wielościan (tzn. zbiór rozwiązań dopuszczalnych). W każdym kroku nasz program liniowy będzie miał szczególną postać, która w sposób jednoznaczny będzie wyznaczać pewien wierzchołek wielościanu najlepsze dotąd znalezione rozwiązanie. Podamy teraz niezmiennik, który opisuje postać tych programów. Niezmiennik sformułujemy dla dowolnego programu (a nie tylko powyższego przykładu). Załóżmy, że początkowy program w postaci dopełnieniowej ma m równości, oraz zawiera zmienne x 1,..., x n+m (gdzie x n+1,..., x n+m są zmiennymi dopełnieniowymi). Niezmiennik 1. Zbiór zmiennych {x 1,..., x n+m } dzieli się na dwa rozłączne zbiory: m zmiennych bazowych i n zmiennych niebazowych. Oznaczmy zbiór indeksów zmiennych bazowych przez B = {B 1,..., B m } (baza) i zmiennych niebazowych przez N = {N 1,..., N n }. Program zawiera: równanie postaci z = v + n j=1 c jx Nj ; dla każdego i = 1,..., m równanie postaci x Bi = b i + n j=1 a i,jx Nj, gdzie b i 0; dla każdego i = 1,..., n + m nierówność x i 0, gdzie v, c j, b j, a i,j są stałymi. W rozważanym przez nas przykładzie, powyższy niezmiennik jest spełniony dla N = {1, 2, 3} oraz B = {4, 5, 6}. Fakt 1. Jeśli spełniony jest niezmiennik 1, to rozwiązanie (x 1,..., x n+m ) postaci { 0 gdy i N x i = gdy i = B j dla pewnego j = 1,..., n b j jest bazowym rozwiązaniem dopuszczalnym o wartości funkcji celu v. Proof. Łatwo sprawdzić, że tak zdefiniowane rozwiązanie jest rozwiązaniem dopuszczalnym o wartości funkcji celu v. Aby pokazać, że jest to bazowe rozwiązanie dopuszczalne musimy wskazać n + m liniowo niezależnych ograniczeń spełnionych z równością. W tym celu, dla każdego i B wybieramy (jedyną) równość zawierającą x i oraz dla każdego i N nierówność x i 0. Z powyższego faktu wynika, że o ile spełniony jest niezmiennik, to faktycznie znajdujemy się w wierzchołku aktualnego progamu w postaci dopełnieniowej. Łatwo sprawdzić też, że po zignorowaniu zmiennych dopełnieniowych otrzymamy wierzchołek odpowiadającego programu w postaci standardowej, a więc faktycznie algorytm będzie generował wierzchołki wielościanu oryginalnego programu liniowego. Wróćmy do algorytmu simplex. Naszym celem jest zwiększenie zmiennej z. W tym celu spójrzmy na dowolną zmienną niebazową z dodatnim współczynnikiem w funkcji celu. W

9 Łukasz Kowalik, Wstęp do programowania liniowego 9 tym przypadku możemy wybrać dowolną zmienną z x 1, x 2, x 3 wybierzmy x 1. Oczywiście powiększając x 1 powiększamy z. Jak bardzo możemy powiększyć x 1, zachowując wszystkie ograniczenia? Dopóki zmienne bazowe pozostają nieujemne, a więc: x 1 := min{ 30 1, 24 2, 36 4 } = 36 4 = 9. Po takiej operacji przynajmniej jedna zmienna bazowa (w tym przypadku x 6 ) przyjmuje wartość 0. To pozwala na zmianę bazy (a w konsekwencji zmianę wierzchołka, w którym jesteśmy): zmienna x 1 wchodzi do bazy (jest zmienna wchodzac a), a zmienna x 6 wychodzi z bazy (zmienna wychodzaca). Operacja wymiany bazy (ang. pivot) przebiega w dwóch krokach: 1. Rozwiąż równanie zawierające zmienną wychodzącą ze względu na zmienną wchodzącą. W tym przypadku otrzymujemy: x 1 = x x x wstaw wynik zamiast x 1 z prawej strony wszystkich równań (czyli uaktualnij współczynniki przy zmiennych niebazowych i wyrazy wolne). W tym przypadku otrzymujemy: z = x x x 6 x 1 = x x x 6 x 4 = x x x 6 x 5 = x 2 4x x 6. Fakt 2. Po operacji wymiany bazy otrzymujemy program liniowy o tym samym zbiorze rozwiązań dopuszczalnych. Otrzymaliśmy rozwiązanie (9, 0, 0, 21, 6, 0) o wartości funkcji celu 27. Wykonajmy kolejną operację wymiany bazy. Teraz jako zmienną wchodzącą możemy wybrać już tylko jedną z dwóch: x 2 lub x 3, bo tylko te zmienne mają dodatnie współczynniki w funkcji celu. Wybierzmy x 3. Podobnie jak poprzednio: x 3 := min { 9 1 2, 21 5, 6 } = = A więc x 5 wychodzi z bazy. Otrzymujemy nowy program: z = x x x 16 6 x 1 = 33 1 x x x 16 6 x 3 = 3 3x x x 8 6 x 4 = x x x Teraz jedynym kandydatem do wejścia do bazy jest x 2. Zauważmy, że w ostatnim równaniu współczynnik przed x 2 jest dodatni. Oznacza to, że zwiększając x 2 możemy też zwiększać x 4 zachowując ostatnią równość zawsze spełnioną. A więc przy wyborze zmiennej wychodzącej nie bierzemy pod uwagę x 4 : { 33 3 } x 2 := min 1, 3 = 3 =

10 Łukasz Kowalik, Wstęp do programowania liniowego 10 Uwaga. Zastanówmy się jednak przez chwilę, co by było, gdybyśmy nie mieli czego wziąć do minimum, tzn. gdyby istniała zmienna z dodatnim współczynnikiem w funkcji celu i nieujemnymi współczynnikami w pozostałych równaniach? Wtedy powiększając tę zmienną moglibyśmy otrzymać rozwiązanie dopuszczalne o dowolnie wysokiej wartości fukcji celu. W takiej sytuacji algorytm simplex zwraca komunikat PROGRAM NIEOGRANICZONY i kończy działanie. Wracając do naszego programu liniowego, otrzymujemy: z = x x x 6 x 1 = x x x 6 x 2 = x x x 6 x 4 = x x 5 + 0x 6. Otrzymaliśmy więc sytuację, gdy nie możemy wykonać operacji wymiany bazy ponieważ wszystkie współczynniki w funkcji celu są ujemne. Jest jednak jasne, że musieliśmy w ten sposób dostać rozwiązanie optymalne programu, ponieważ dla dowolnych nieujemnych wartości zmiennych wartość funkcji celu naszego programu nie może przekroczyć aktualnej, czyli 28. Ponieważ w kolejnych krokach algorytmu otrzymywaliśmy równoważne programy liniowe o tym samym zbiorze rozwiązań dopuszczalnych, jest to także rozwiązanie optymalne oryginalnego programu. Odnotujmy te rozważania jako fakt: Fakt 3. Jeśli w pewnym kroku algorytmu simplex wszystkie współczynniki (przy zmiennych niebazowych) w funkcji celu są ujemne, to znalezione bazowe rozwiązanie dopuszczalne jest optymalnym rozwiązaniem oryginalnego programu. W naszym przypadku dostaliśmy rozwiązanie (x 1, x 2, x 3 ) = (8, 4, 0) o wartości funkcji celu 28. W tej chwili zasada działania algorytmu simplex i jego częściowa poprawność (tzn. poprawność pod warunkiem zatrzymania się programu) powinny być już jasne. Zajmijmy się jeszcze przez chwilę właśnie kwestią warunku stopu i złożoności obliczeniowej Pseudokod Podsumujmy teraz powyższe rozważania podając pseudokod algorytmu Simplex. Stosujemy oznacznia takie jak w niezmienniku 1 1. Sprowadź PL do postaci dopełnieniowej. 2. Znajdź równoważny PL taki, żeby spełniony był niezmiennik Dopóki istnieje j {1,..., n} takie, że c j > 0 (c j = współczynnik przed x Nj w aktualnej funkcji celu), 3.1. Wybierz takie j (x Nj jest zmienną wchodzącą) Jeśli dla każdego i = 1,..., m, jest a i,j 0 (tzn. dla każdego równania współczynnik przed x Nj jest nieujemny) zwróć PROGRAM NIEOGRANICZONY.

11 Łukasz Kowalik, Wstęp do programowania liniowego wpp., wybierz i takie, że b i a i,j 3.4. wykonaj operację Pivot (j,i) = min{ b i a i,j a i,j < 0} (x Bi jest zmienną wychodzącą). 4. Zwróć rozwiązanie postaci: dla każdego i = 1,..., n, { 0 gdy i N x i = b j gdy i = B j dla pewnego j = 1,..., m. Podamy teraz pseudokod operacji Pivot(in,out), realizującej usunięcie z bazy x Bout i dodanie do niej x Nin. Przy implementacji, wygodnie jest przechowywać wszystkie stałe w jednej tablicy a i,j, gdzie i {0,..., m}, j {0,..., n}, oraz przyjmujemy że a 0,0 = v, a 0,j = c j dla j = 1,..., n oraz a i,0 = b i dla i = 1,..., m (wartości a i,j dla i, j 1 mają takie same znaczenie jak wcześniej). 1: α := a out,in 2: for j = 0,..., n do 3: a out,j := a out,j /( α) 4: a out,in := 1/α 5: for i {1,..., m} \ {out} do 6: β := a i,in 7: a i,in := 0 8: for j = 0,..., n do 9: a i,j := a i,j + β a out,j 10: B out :=: N in Warunek stopu i reguła Blanda Jest jasne, że jeśli przy kolejnych operacjach wymiany bazy zawsze otrzymujemy większą (lub, w przypadku minimalizacji, mniejszą) wartość funkcji celu to algorytm musi się zakończyć po prostu dlatego, że jest ograniczona liczba wierzchołków wielościanu. Poprzednik tej implikacji niestety nie zawsze jest jednak spełniony. Dla przykładu, rozważmy następujący program: z = 4 + 2x 1 x 2 4x 4 x 3 = x 4 x 5 = 2x 1 + 4x 2 + 3x 4 x 6 = + x 1 3x 2 + 2x 4. Mamy B = {3, 5, 6}, N = {1, 2, 4}, x = (0, 0, 1, 0, 0, 0) oraz funkcja celu ma wartość z = 2 4. Jako zmienną wchodzącą możemy wybrać jedynie x 1, natomiast jako zmienną wychodzącą jedynie x 5. Po wymianie bazy otrzymujemy: z = 4 + 3x 2 x 4 x 5 x 1 = + 2x x x 5 x 3 = x 4 x 6 = x x x 5.

12 Łukasz Kowalik, Wstęp do programowania liniowego 12 Mamy B = {1, 3, 6}, N = {2, 4, 5}, x = (0, 0, 1, 0, 0, 0) oraz funkcja celu ma wartość 2 z = 4. Widzimy, że chociaż zmieniła się baza, bazowe rozwiązanie dopuszczalne pozostało to samo (w szczególności wartość funkcji celu się nie zmieniła). Może być to powodem poważnych kłopotów, a nawet zapętlenia się algorytmu. Początkowo ten problem ignorowano (!), gdyż w praktycznych zastosowaniach pojawia się on niezwykle rzadko. W 1977 (czyli w 30 lat od powstania algorytmu simplex) Robert Bland zaproponował niezwykle prostą heurystykę, o której można pokazać (dowód nie jest bardzo trudny, lecz pominiemy go tutaj), że gwarantuje zakończenie algorytmu. Twierdzenie 2 (Reguła Blanda). Jeśli podczas wymiany bazy: spośród możliwych zmiennych wchodzacych wybierana jest zmienna o najmniejszym indeksie oraz, spośród możliwych zmiennych wychodzacych wybierana jest zmienna o najmniejszym indeksie 8 to algorytm simplex kończy swoje działanie. Zapętlenie się algorytmu simplex jest równoważne powrotowi do tej samej bazy. Ponieważ dla programu o m zmiennych bazowych i n zmiennych niebazowych mamy O( ( ) n+m n ) możliwych baz, więc algorytm simplex z regułą Blanda wykonuje O( ( ) n+m n ) operacji wymiany bazy (przy każdej z nich wykonuje się O(nm) operacji arytmetycznych). Z drugiej strony, odnotujmy, że Fakt 4. Istnieją przykłady programów liniowych, dla których algorytm simplex działa w czasie Ω(2 n ). Mimo to, następujący problem pozostaje otwarty. Problem 1. Czy istnieja reguły wyboru zmiennej wchodzacej i wychodzacej, dla których algorytm simplex działa w czasie wielomianowym? Jak na razie, najlepsze co udało się uzyskać, to reguły działające w oczekiwanym czasie 2Õ( n) [Kalai STOC 92, Math. Prog. 1997, Matousek, Sharir, Welzl Algorithmica 1996] Znajdowanie poczatkowego bazowego rozwiazania dopuszczalnego Do wyjaśnienia pozostała jeszcze jedna kwestia. Zakładaliśmy, że program jest postaci max c T x, Ax b, x 0, oraz że b 0. Wtedy łatwo jest znaleźć równoważny program w postaci dopełnieniowej, który spełnia niezmiennik 1 (innymi słowy: pierwsze bazowe rozwiązanie dopuszczalne). Teraz opiszemy jak to zrobić w przypadku ogólnym. Rozwiązanie będzie dość zaskakujące: żeby znaleźć pierwsze bazowe rozwiązanie dopuszczalne użyjemy algorytmu simplex. 8 zauważmy, że może być wiele możliwych zmiennych wychodzących, gdy w wielu równaniach iloraz wyrazu wolnego i współczynnika przy zmiennej wchodzącej jest taki sam

13 Łukasz Kowalik, Wstęp do programowania liniowego Sprowadź program do postaci dopełnieniowej: max 0 + c 1 x c n x n x n+1 = b 1 + a 11 x a 1n x n x n+2 = b 2 + a 21 x a 2n x n. x n+m = b m + a m1 x a mn x n x i 0 (1) 2. Dodaj nową zmienną x 0 i zbuduj nowy program: min x 0 x n+1 = b 1 + a 11 x a 1n x n + x 0 x n+2 = b 2 + a 21 x a 2n x n + x 0.. x n+m = b m + a m1 x a mn x n + x 0 x i 0 (2) 3. Przyjmij N = {0,..., n}, oraz B = {n + 1,..., n + m}. Powyższy PL prawie spełnia niezmiennik, brakuje tylko warunku b i 0 dla każdego i. 4. Wybierz k takie, że b k = min i {b i }. Za pomocą operacji Pivot, usuń z bazy x k i wprowadź do bazy x 0. Otrzymujemy nowy PL: min b k a k1 x 1... a kn x n + x n+k i k x n+i = b i b k + (a i1 a k1 )x (a in a kn )x n + x n+k x 0 = b k a k1 x 1... a kn x n + x n+k x i 0 (3) 5. Zauważmy, że program (3) jest równoważny programowi (2) oraz spełnia niezmiennik 1. Za pomocą algorytmu simplex znajdujemy rozwiązanie optymalne x. (Zauważmy, że program (2) jest ograniczony: wartością funkcji celu jest wartość x 0, która jest nieujemna.) W używanym algorytmie simplex dokonujemy jednak małej modyfikacji w regule wyboru zmiennej wychodzacej: jeśli x 0 może opuścić bazę, to ją opuszcza. 6. Jeśli otrzymaliśmy x 0 > 0 zwracamy informację PROGRAM SPRZECZNY. Istotnie, gdyby istniało rozwiązanie dopuszczalne x programu (1), to (0, x) byłoby rozwiązaniem dopuszczalnym programu (2) o wartości funkcji celu Jeśli otrzymaliśmy x 0 = 0 oraz x 0 jest niebazowa, wystarczy z ostatniego PL wygenerowanego przez algorytm simplex usunąć zmienne x 0. Otrzymujemy wtedy program równoważny programowi (1), który spełnia niezmiennik 1

14 Łukasz Kowalik, Wstęp do programowania liniowego Pozostaje przypadek, gdy otrzymaliśmy x 0 = 0 oraz x 0 jest bazowa. Pokażemy, że jest to niemożliwe. Rozważmy ostatnią operację Pivot. Powiedzmy, że zmienną wchodzącą było x j, a wychodzącą x i, dla pewnego i j. Przed wykonaniem operacji Pivot zarówno x i jak i x 0 były bazowe, a więc na podstawie niezmiennika 1 odpowiadały im dwa równania: x 0 = b a 0j x j x i = b i a ij x j. Po wykonaniu operacji Pivot, równanie zawierające x 0 ma postać b i x 0 = b 0 + a 0j + a a 0lx Nl. ij l N Wiemy jednak, że po tej operacji wyraz wolny w tym równaniu jest równy 0, a więc Ponieważ x i została wybrana jako zmienna wychodząca, więc b i a ij = b 0 a 0j. b 0 a 0j b i a ij = min{ b l a lj a lj < 0}. Wówczas także = min{ b l a lj a lj < 0}, czyli zmienna x 0 również była kandydatem do opuszczenia bazy, a więc zgodnie z naszą regułą, musiała ją opuścić i cała rozważana sytuacja nie mogła mieć miejsca. 4 Programowanie całkowitoliczbowe Program (liniowy) całkowitoliczbowy to program liniowy z dodatkowym wymaganiem, aby wartości wszystkich zmiennych były całkowitoliczbowe. Ten z pozoru niewinny warunek całkowicie zmienia złożoność problemu: większość naturalnych problemów NP-trudnych można bardzo łatwo wyrazić jako liniowe programy całkowitoliczbowe, np. problem pokrycia wierzchołkowego w grafie G = (V, E) jest równoważny programowi: min v V x v x u + x v 1 dla każdego uv E (4) x v {0, 1} dla każdego v V, ponieważ ostatni warunek możemy zastąpić przez koniunkcję 0 x v 1 i x v Z. Jeśli min zastąpimy przez max, a przez otrzymamy z kolei problem najmniejszego zbioru niezależnego. Wniosek 3. Problem programowania liniowego całkowitoliczbowego jest NP-trudny. 4.1 Unimodularność Mówimy, że macierz A jest całkowicie unimodularna jeśli dla każdej podmacierzy A macierzy A, mamy det A { 1, 0, 1}. Twierdzenie 3. Jeśli wektor b jest calkowitoliczbowy i macierz A jest całkowicie unimodularna to program Ax b ma wierzchołki całkowitoliczbowe.

15 Łukasz Kowalik, Wstęp do programowania liniowego 15 Proof. Ćwiczenie. Wskazówka: skorzystaj z tego, że wierzchołki są bazowymi rozwiązaniami dopuszczalnymi oraz ze wzorów Cramera. Zauważmy, że jeśli mamy pewien problem który jest równoważny liniowemu programowi całkowitoczbowemu (I), o całkowitych wyrazach wolnych, oraz jeśli pokażemy, że macierz tego programu jest unimodularna, to możemy: 1. zignorować warunek całkowitoliczbowości otrzymując program liniowy (L), 2. rozwiązać (L) w czasie wielomianowym (np. metodą elipsoidalną) otrzymując rozwiązanie optymalne x, 3. znaleźć wierzchołek x o wartości funkcji celu takiej samej jak dla x (wielomianowo, np. tak jak w dowodzie twierdzenia 1) 4. zwrócić x jako rozwiązanie programu całkowitoliczbowego (I). P. Unimodularność jest użytecznym narzędziem w dowodzeniu, że dany problem leży w klasie 5 Dualność 5.1 Motywacja: certyfikat optymalności Dla niektórych problemów znane są algorytmy, które wraz z rozwiązaniem generują tzw. certyfikat poprawności, czyli dodatkową informację z pomocą której możemy łatwo (tzn. algorytmem, który jest nie tylko wielomianowy, ale również istotnie prostszy od algorytmu generującego rozwiązanie) sprawdzić, czy zwrócone rozwiązanie jest poprawne (lub optymalne w przypadku problemów optymalizacyjnych). Algorytmy te określane są mianem algorytmów certyfikuja- cych. Oto kilka przykładów. Algorytm sprawdzający, czy dany graf jest dwudzielny może zwracać 2-kolorowanie takiego grafu lub cykl nieparzysty. Algorytm znajdowania maksymalnego przepływu wraz z przepływem może zwracać minimalny przekrój. Istnieje algorytm testujący planarność grafów, który zwraca rysunek na płaszczyźnie bez przecięć krawędzi lub podgraf homeomorficzny z K 3,3 lub K 5. Algorytmy certyfikujące oprócz znaczenia teoretycznego (aby generować takie certyfikaty należy dobrze zrozumieć problem) mają dużą wartość praktyczną: pomyślmy choćby o testowaniu poprawności kodu. Czy dla programowania liniowego istnieją certyfikaty poprawności? Rozważmy decyzyjną wersję problemu programowania liniowego: mając dany (minimalizacyjny) PL i liczbę δ rozstrzygnąć, czy istnieje dopuszczalny x taki, że c T x δ. Załóżmy dla uproszczenia, że nasz program jest ograniczony. Wraz z odpowiedzią TAK algorytm certyfikujący może zwrócić współrzędne x (można nawet pokazać, że te współrzędne można reprezentować w pamięci wielomianowej względem rozmiaru danych). A więc istnieje certyfikat pozytywny. Z punktu widzenia teorii złożoności, dowodzi to, że problem jest w klasie NP. W dodatku algorytm weryfikacji certyfikatu jest banalny: po prostu sprawdzamy odpowiednie nierówności. Czy możemy podać certyfikat

16 Łukasz Kowalik, Wstęp do programowania liniowego 16 negatywny, tzn. certyfikat poprawności dla odpowiedzi NIE? Gdyby ten certyfikat był również krótki, mielibyśmy dowód, że programowanie liniowe jest w klasie co-np. W tym rozdziale przedstawimy pojęcie dualności programowania liniowego, które dostarcza odpowiedzi na powyższe pytania. 5.2 Poszukiwanie górnego ograniczenia Rozważmy następujący PL w postaci standardowej: zmaksymalizuj 3x 1 x 2 + 2x 3 z zachowaniem warunków x 1 x x 3 4 4x 1 + 2x 2 + 3x 3 20 x 1, x 2, x 3 0 (5) Łatwo sprawdzić, że punkt (x 1 = 2, x 2 = 0, x 3 = 4) jest rozwiązaniem dopuszczalnym o wartości funkcji celu 14. Zauważmy, że skoro x 1, x 2, x 3 0, to 3x 1 4x 1, a także x 2 2x 2 oraz 2x 3 3x 3. Stąd, 3x 1 x 2 + 2x 3 4x 1 + 2x 2 + 3x Dostaliśmy górne ograniczenie! W tym przypadku możemy zauważyć nawet więcej. Ponieważ , oraz , więc 3x 1 x 2 + 2x 3 x 1 x x (4x x 2 + 3x 3 ) = Udowodniliśmy (choć, trzeba przyznać, dość fartownie), że wartość funkcji celu nigdy nie przekracza 14, a więc mamy certyfikat optymalności, w dodatku bardzo krotki (kilka nierówności) i prosty do sprawdzenia. Możemy to rozumowanie uogólnić: można brać dowolne kombinacje liniowe nierówności t.ż.: współczynniki kombinacji liniowej są nieujemne (bo inaczej odwrócą się kierunki nierówności), dla dowolnego i, współczynnik funkcji celu przy x i jest ograniczony z góry przez odpowiednią kombinację liniową współczynników przy x i w nierównościach. Można to zapisać za pomocą programu liniowego: zminimalizuj 4y y 2 z zachowaniem warunków y 1 + 4y 2 3 y 1 + 2y y 1 + 3y 2 2 y 1, y 2 0. (6) Powyższy program będziemy nazywać programem dualnym do programu (5). Ogólnie, dla programu (będziemy go nazywać programem prymalnym)

17 Łukasz Kowalik, Wstęp do programowania liniowego 17 zmaksymalizuj z zachowaniem warunków program dualny ma postać: n j=1 c jx j n j=1 a ijx j b i i = 1,..., m x j 0 j = 1,..., n (7) zminimalizuj z zachowaniem warunków m i=1 b iy i m i=1 a ijy i c j j = 1,..., n y i 0 i = 1,..., m. Zauważmy, że macierz współczynników ograniczeń programu (8) jest transpozycją macierzy dla programu (7) (porównaj też dla programów (5) i (6)). Daje to niezwykle prosty, mechaniczny sposób konstruowania programu dualnego. Mianowicie dla programu (8) program dualny ma postać: zmaksymalizuj z zachowaniem warunków c T x Ax b x 0 (9) zminimalizuj z zachowaniem warunków b T y A T y c y 0 Dualność jest relacją symetryczną, tzn. mówimy także, że (7) jest dualny do (8). Innymi słowy, program dualny do programu dualnego to program prymalny. 5.3 Słaba dualność i komplementarne warunki swobody Pozostańmy przy programach w postaci standardowej. Z konstrukcji programu dualnego wynika następujący fakt (dla porządku podamy jednak dowód). Twierdzenie 4 (słaba dualność). Niech x i y będa dowolnymi rozwiazaniami dopuszczalnymi odpowiednio programów (7) i (8). Wówczas c T x b T y. Proof. Ponieważ dla każdego j = 1,..., n, mamy x j 0 oraz m i=1 a ijy i c j, więc ( m ) c j x j a ij y i x j j = 1,..., n. (11) i=1 Podobnie, ponieważ dla każdego i = 1,..., m, mamy y i 0 oraz n j=1 a ijx j b i, więc ( n ) a ij x j y i b i y i i = 1,..., m. (12) j=1 (10)

18 Łukasz Kowalik, Wstęp do programowania liniowego 18 Stąd, c T x = n c j x j j=1 ( n m ) a ij y i x j = j=1 i=1 ( m n ) a ij x j y i i=1 j=1 m b i y i = b T y. (13) i=1 Zastanówmy się, kiedy rozwiązania optymalne programu prymalnego (7) i dualnego (8) spotykają się, czyli c T x = b T y. Z dowodu twierdzenia 4 widzimy, że jest tak wtedy i tylko wtedy gdy obie nierówności w (13) są równościami. Tak może się wydarzyć tylko wtedy, gdy gdy wszystkie nierówności w (11) i (12) są równościami. To dowodzi następującego twierdzenia: Twierdzenie 5. Niech x i y będa rozwiazaniami dopuszczalnymi odpowiednio dla zadania prymalnego i dualnego w postaci standardowej. Rozwiazania x i y sa oba optymalne wtedy i tylko wtedy gdy (i) prymalne komplementarne warunki swobody dla każdego j = 1,..., n albo x j = 0 albo m i=1 a ijy i = c j. (albo x j = 0 albo j-ta nierówność programu dualnego jest spełniona z równościa.) (ii) dualne komplementarne warunki swobody dla każdego i = 1,..., m albo y i = 0 albo n j=1 a ijx j = b i. (albo y i = 0 albo i-ta nierówność programu prymalnego jest spełniona z równościa.) 5.4 Programy dualne do ogólnych programów liniowych Nawet gdy program nie jest w postaci standardowej możemy napisać program dualny, kierując się tą samą zasadą: poszukujemy jak najlepszego górnego ograniczenia na wartość funkcji celu. Zobaczmy np. co się dzieje, gdy program zawiera równość: zmaksymalizuj 3x 1 x 2 + 2x 3 z zachowaniem warunków x 1 x x 3 4 4x 1 2x 2 3x 3 = 20 x 1, x 2, x 3 0 Podobnie jak poprzednio, dodając pierwszy warunek pomnożony przez y 1 = 1 do drugiego warunku pomnożonego przez y 2 = 1 dostajemy ograniczenie górne równe 14. Zauważmy, że 2 w kombinacji liniowej warunków, współczynniki dla nierówności muszą być nieujemne, natomiast dla równości mogą być dowolne (w tym przypadku wybraliśmy ujemny). Program dualny wygląda następująco: zminimalizuj 4y y 2 (14) z zachowaniem warunków y 1 + 4y 2 3 y 1 + 2y y 1 + 3y 2 2 y 1 0. (15)

19 Łukasz Kowalik, Wstęp do programowania liniowego 19 A co by się stało, gdyby w programie prymalnym dodatkowo mogły się pojawiać zmienne bez warunku nieujemności? Rozważmy np. zmaksymalizuj 3x 1 x 2 + 2x 3 z zachowaniem warunków x 1 x x 3 4 4x 1 + 2x 2 + 3x 3 = 20 x 1, x 3 0 Wówczas nie możemy już napisać, że 3x 1 x 2 + 2x 3 4x 1 + 2x 2 + 3x 3, gdyż niekoniecznie x 2 2x 2. Jeśli jednak pomnożymy pierwszą nierówność przez 3 i dodamy do drugiej, dostaniemy: (16) 3x 1 x 2 + 2x 3 3(x 1 x x 3) + 4x 1 + 2x 2 + 3x = 32, gdyż 3x 1 7x 1, x 2 = x 2 oraz 2x 3 3x 3. Znalezienie najlepszej kombinacji liniowej warunków odpowiada programowi: zminimalizuj 4y y 2 z zachowaniem warunków y 1 + 4y 2 3 y 1 + 2y 2 = y 1 + 3y 2 2 y 1 0. (17) Ogólnie, program dualny konstruujemy zgodnie z poniższą zasadą: PRYMALNY DUALNY f. celu max c T x f.celu min b T y i-ty warunek n j=1 a ijx j b i i-ta zmienna y i 0 i-ty warunek n j=1 a ijx j = b i i-ta zmienna y i nieograniczone. j-ta zmienna x j 0 j-ty warunek m i=1 a ij c j j-ta zmienna x j nieograniczone j-ty warunek m i=1 a ij = c j Można łatwo sprawdzić, że program dualny zbudowany zgodnie z powyższymi wytycznymi również spełnia twierdzenie o słabej dualności (a także twierdzenie o silnej dualności, które udowodnimy w kolejnym punkcie). 5.5 Silna dualność Twierdzenie o słabej dualności można również wyrazić w następujący sposób:

20 Łukasz Kowalik, Wstęp do programowania liniowego 20 Wniosek 4 (słaba dualność). Jeśli z jest wartościa funkcji celu rozwiazania optymalnego prymalnego minimalizacyjnego PL, natomiast w jest wartościa funkcji celu rozwiazania optymalnego programu dualnego, to z w. Wynika stąd w szczególności, że gdy z = w, to rozwiązanie optymalne programu dualnego jest certyfikatem optymalności naszego rozwiązania programu prymalnego. Okazuje się, że tak jest zawsze! Twierdzenie 6 (silna dualność). Jeśli z jest wartościa funkcji celu rozwiazania optymalnego prymalnego PL, natomiast w jest wartościa funkcji celu rozwiazania optymalnego programu dualnego, to z = w. Proof. Dla uproszczenia przeprowadzimy dowód dla przypadku programu w maksymalizacyjnej postaci standardowej (dowód dla ogólnej postaci jest analogiczny). Oto program prymalny: oraz program dualny: zmaksymalizuj z zachowaniem warunków c T x Ax b x 0, (18) zminimalizuj z zachowaniem warunków b T y A T y c y 0. Niech x będzie rozwiązaniem optymalnym programu prymalnego (18). Ze słabej dualności, wystarczy pokazać rozwiązanie dopuszczalne y programu dualnego (19) t.ż. c T x = b T y. Uruchamiamy alorytm simplex na programie (18). W pierwszej iteracji algorytm simplex buduje program (19) zmaksymalizuj z zachowaniem warunków z z = n j=1 c jx j x n+i = b i n j=1 a ijx j i = 1,..., m x j 0 j = 1,..., n + m. (20) Rozważmy program z ostatniej iteracji algorytmu simplex. zmaksymalizuj z zachowaniem warunków z z = v + j N c jx j x i = b i j N a ijx j i B x j 0 j = 1,..., n + m. (21) Ponieważ program prymalny jest ograniczony, więc dla każdego j N, c j 0 oraz algorytm simplex zwraca rozwiązanie optymalne x takie, że x i = { 0 gdy i N b i gdy i B. (22)

21 Łukasz Kowalik, Wstęp do programowania liniowego 21. Określimy teraz pewne rozwiązanie programu dualnego (19): { c y i := n+i gdy n + i N 0 w p. p.. Pokażemy teraz, że y jest dopuszczalny o wartości funkcji celu równej c T x. Określamy c j := 0 dla j B. Wówczas pierwszy warunek programu (21) możemy zapisać jako z = v + n+m j=1 c jx j. Weźmy dowolne (x 1,..., x n ) R n 0. Określmy x n+i = b i n j=1 a ijx j oraz z = n j=1 c jx j. Wówczas (z, x 1,..., x n+m ) jest rozwiązaniem dopuszczalnym programu (20). Ponieważ program (21) jest równoważny (20) (tzn. powstaje z (20) na drodze ciągu operacji elementarnych), więc (z, x 1,..., x n+m ) jest również rozwiązaniem dopuszczalnym programu (21). Z faktu, iż w obu programach spełnione są warunki zawierające zmienną z mamy, iż: n c j x j = v + j=1 = v + = v + n+m j=1 c jx j n c jx j + j=1 n c jx j + j=1 m i=1 c n+ix n+i m ( y i )(b i i=1 n a ij x j ). Po przegrupowaniu dostajemy, że dla dowolnego (x 1,..., x n ) R n 0, ( ) ( ) n m n m c j x j = v y i b i + c j + y i a ij x j. (24) j=1 i=1 Podstawiamy (x 1,..., x n ) = (0,..., 0) i mamy v = m i=1 y ib i. Ponieważ c T x = v, więc c T x = b T y. Pozostaje pokazać dopuszczalność y. W tym celu rozważmy dowolne k {1,..., n}. Podstawiamy x j = [j = k] dla każdego j = 1,..., n. Otrzymujemy m m c k = (v i=1 } {{ } =0 j=1 y i b i ) + c k }{{} 0 + i=1 i=1 j=1 (23) y i a ik, (25) co implikuje m i=1 y ia ik c k dla każdego k, czyli A T y c. Zauważmy, że ponieważ c j 0 dla każdego j, więc y 0. Pokazaliśmy zatem, że y jest rozwiązaniem dopuszczalnym programu (19) o wartości funkcji celu c T x, co kończy dowód. Z powyższego dowodu wynika, że algorytm simplex znajduje równocześnie rozwiązania optymalne programu prymalnego i dualnego. W niektórych sytuacjach możemy uzyskać skrócenie czasu działania algorytmu stosując tzw. dualny algorytm simplex, tzn. uruchamiać algorytm simplex dla programu dualnego.

22 Łukasz Kowalik, Wstęp do programowania liniowego Zastosowania dualności Lemat Farkasa Przypomnijmy, że dla układów równań prawdziwa jest następująca elegancka własność: Lemat 7. Sa równoważne: (i) istnieje x taki, że Ax = b, (ii) nie istnieje y taki, że y T A = 0 oraz y T b 0. Innymi słowy, albo układ ma rozwiązanie, albo istnieje taka kombinacja liniowa y jego równań, która prowadzi do sprzeczności. Odpowiednik tego faktu dla programów liniowych nosi nazwę Lemat Farkasa. Lemat 8 (Farkasa). Sa równoważne: (i) istnieje x taki, że Ax b, (ii) nie istnieje y 0 taki, że A T y = 0 oraz y T b < 0. Dowód. Rozważmy program liniowy: zmaksymalizuj 0 z zachowaniem warunków Ax b x nieograniczony (26) Napiszmy program dualny zgodnie z zasadami z punktu 5.4. zminimalizuj b T y z zachowaniem warunków A T y = 0 y 0. (27) (i) (ii). Jeśli istnieje x taki, że Ax b, to program prymalny (26) jest dopuszczalny i ma rozwiązanie optymalne o koszcie 0. Z twierdzenia o (słabej) dualności, program dualny nie ma rozwiązań dopuszczalnych o wartości funkcji celu < 0. (ii) (i). Jeśli nie istnieje y 0 taki, że A T y = 0 oraz y T b < 0, oznacza to, że y = 0 jest rozwiązaniem optymalnym programu dualnego (27). Z twierdzenia o (silnej) dualności program prymalny ma rozwiązanie optymalne, a więc układ nierówności Ax b jest niesprzeczny. Co ciekawe, twierdzenie o silnej dualności można łatwo otrzymać jako wniosek z lematu Farkasa (który również można udowodnić niezależnie, na gruncie geometrii i algebry liniowej). Poniżej pokazujemy dowód twierdzenia o dualności (dla urozmaicenia w wersji dla postaci dopełnieniowej). Twierdzenie 7 (silna dualność). Jeśli z jest wartościa funkcji celu c rozwiazania optymalnego prymalnego minimalizacyjnego PL w postaci dopełnieniowej A T x = b, x 0, natomiast w jest wartościa funkcji celu rozwiazania optymalnego programu dualnego, to z = w.

23 Łukasz Kowalik, Wstęp do programowania liniowego 23 Dowód. Ze słabej dualności, z w. Załóżmy, że z > w. Wtedy {y A T y c, b T y z} =. Z lematu Farkasa mamy, że [ ] [ ] [ ] x x c istnieje 0 takie, że [A b] = 0 oraz [x q] < 0. q q z Stąd x 0, q 0, Ax = bq oraz c T x < qz. Rozważamy dwa przypadki w zależności od q. Jeśli q > 0, to mamy A x = b, x 0 oraz q q ct x < z czyli x jest rozwiązaniem dopuszczalnym o mniejszej wartości funkcji celu niż z, sprzeczność. q q Jeśli q = 0, to Ax = 0 i c T x < 0. Niech x będzie rozwiązaniem dopuszczalnym takim, że c T x = z. Wówczas A(x + x) = b oraz x + x 0 ale c T (x + x) < c T x = z, ponownie sprzeczność Twierdzenie Königa-Egervary ego Wiele z klasyczynych twierdzeń mini-maksowych okazuje się być szczególnymi przypadkami twierdzenia o dualności programów liniowych. Dla przykładu, pokażemy, że jest tak dla twierdzenia Königa-Egervary ego. Rozważmy problem maksymalnego skojarzenia w danym grafie G = (V, E). Problem ten możemy łatwo sformułować jako zadanie programowania liniowego całkowitoliczbowego. max e E x e vw E x vw 1 dla każdego v V x e {0, 1} dla każdego e E. Relaksacja tego programu wygląda następująco: (28) max e E x e vw E x vw 1 dla każdego v V x e 0 dla każdego e E. (29) Zauważmy, że w powyższym programie mogliśmy opuścić warunek x e 1, gdyż i tak jest on spełniony dla każdego rozwiązania dopuszczalnego programu (29). Twierdzenie 8. Jeśli G jest dwudzielny, to macierz programu (29) jest unimodularna. Dowód. Ćwiczenie. Rozważmy program dualny: min v V y v y u + y v 1 dla każdego uv E y v 0 dla każdego v V. W powyższym programie moglibyśmy dodać warunek y v 1: i tak jest on spełniony dla każdego rozwiązania optymalnego programu (30). Ponieważ macierz programu (30) jest transpozycją macierzy programu (29), więc również jest unimodularna. Stąd program (30) (30)

24 Łukasz Kowalik, Wstęp do programowania liniowego 24 ma rozwiązanie optymalne, które jest również rozwiązaniem optymalnym programu całkowitoliczbowego min v V y v y u + y v 1 dla każdego uv E (31) y v {0, 1} dla każdego v V. Z kolei zauważamy, że powyższy program jest równoważny problemowi znalezienia najmniejszego pokrycia wierzchołkowego grafu G. Na podstawie twierdzenia o silnej dualności otrzymujemy Twierdzenie 9 (König, Egervary). W grafie dwudzielnym rozmiar największego skojarzenia jest równy liczności najmniejszego pokrycia wierzchołkowego Twierdzenie minimaksowe von Neumanna Rozważmy następującą (niektórym czytelnikom być może znaną z dzieciństwa?) grę. Mamy dwóch graczy, każdy z nich niezależnie wybiera jedną z trzech opcji: nożyczki, papier lub kamień a następnie równocześnie ujawniają sobie swoje wybory. Jeśli wybrali to samo, gra kończy się remisem. W przeciwnym przypadku wygrywa jeden z graczy zgodnie z zasadą: nożyczki wygrywają z papierem (tną go!), papier wygrywa z kamieniem (bo kamień można zawinąć w papier!), kamień wygrywa z nożyczkami (tępi je!). Możemy uogólnić tę grę w następujący sposób. Dana jest dowolna (niekoniecznie kwadratowa) macierz A = [a ij ] liczb rzeczywistych oraz dwóch graczy: W (gracz wierszowy) i K (gracz kolumnowy). Gracz W wybiera wiersz w macierzy A, natomiast gracz K niezależnie wybiera kolumnę k macierzy A. Następnie równocześnie ujawniają sobie swoje wybory i gracz W dostaje od gracza K a wk złotych. Jest to tzw. gra o sumie zerowej (tzn. suma zysków graczy wynosi 0). Dla przykładu, następująca macierz odpowiada grze w nożyczki, papier i kamień (zakładamy, że wiersz/kolumna 1 odpowiada nożyczkom, 2 papierowi, 3 kamieniowi): A = (32) A oto inna gra o sumie zerowej, której będziemy używać jako przykład w dalszej części wykładu. [ ] 4 1 A =. (33) 1 2 Jak mogą wyglądać strategie w grze tego typu? Powiedzmy, że W wybiera wiersz 2. Taką strategię (wybór konkretnego wiersza/kolumny) nazywamy czysta. Taka strategia ma pewną wadę: gdy przeciwnik (np. po wielu rozegranych rozgrywkach) domyśli się, że zawsze wybieramy wiersz 2, zacznie wybierać kolumnę 1: wówczas W zawsze wygrywa tylko 1. Oczywiście wówczas, czyli gdy K wybiera zawsze 1, to W opłaca się zmienić stategię i wybierać wiersz 1. Ale wówczas strategię zmieni również K itd. Innymi słowy, jeśli obaj gracze mają ustaloną jakąś

25 Łukasz Kowalik, Wstęp do programowania liniowego 25 strategię czystą, to jednemu z nich opłaca się zmienić swoją strategię. (Mówimy wtedy, że nasza gra nie ma equilibrium Nasha w strategiach czystych.) Rozważymy jednak bardziej wyrafinowane strategie. Strategia mieszana gracza W nazywamy dowolny rozkład prawdopodobieństwa na wierszach macierzy A. Np. gracz W mógłby z prawdopobieństewm p 1 = 1 wybierać wiersz 1 i z prawdopobieństewm p 3 2 = 2 wybierać wiersz 3 2. (Analogicznie definiujemy strategię mieszaną dla gracza K). Jak wygląda optymalna strategia mieszana dla W? Gracz W maksymalizuje wartość oczekiwaną swojej wygranej. Gracz K ma do wyboru 2 ruchy. Gdy wybierze kolumnę 1, wartość oczekiwana kwoty, którą zapłaci graczowi W wynosi 4 p 1 +1 p 2. Gdy wybierze kolumnę 2, ta wartość wynosi ( 1) p 1 +2 p 2. Gracz K chce zapłacić jak najmniej, a więc wybierze bardziej korzystną opcję i zapłaci min{4p 1 +p 2, p 1 +2p 2 }. Teoretycznie K mógłby grać przeciwko W również używając strategii mieszanej. Zauważmy jednak że jeśli, tak jak w powyższej analizie, K zna p 1 i p 2 to opłaca mu się grać jedną z 2 strategii czystych, tzn. min q1 +q 2 =1(q 1 (4p 1 + p 2 ) + q 2 ( p 1 + 2p 2 )) = min{4p 1 + p 2, p 1 + 2p 2 }. Stąd, q 1,q 2 0 chcąc mieć optymalną strategię dla W musimy rozwiązać następujące zadanie: max min{4p 1 + p 2, p 1 + 2p 2 } p 1 + p 2 = 1 p i 0 dla i = 1, 2. Łatwo widać, że rozwiązanie spełnia równanie 4p 1 +p 2 = p 1 +2p 2, a więc p 1 = 1 6, p 2 = 5 6. Taka strategia mieszana gwarantuje graczowi W wygraną o wartości 3 2. A jaka jest optymalna strategia (q 1, q 2 ) dla gracza K? Z analogicznego rozumowania jak dla W dostajemy min max{4q 1 q 2, q 1 + 2q 2 } q 1 + q 2 = 1 q i 0 dla i = 1, 2. Znów widzimy, że rozwiązanie spełnia równanie 4q 1 q 2 = q 1 + 2p 2, a więc q 1 = q 2 = 1. 2 Taka strategia mieszana gwarantuje graczowi K wygraną o wartości 3. Czyli tyle samo co 2 dla gracza W! Oznacza to, że jeśli W i K obiorą znalezione przez nas strategie, żadnemu z nich nie będzie opłacało się zmienić jego strategii. (Taką sytuację nazywamy equilibrium Nasha.) Czy otrzymany wynik jest przypadkowy? Oczywiście nie, co potwierdza słynne twierdzenie minimaksowe von Neumanna Twierdzenie 10. W każdej 2-osobowej grze o sumie zerowej, istnieja strategie dla graczy W i K oraz liczba V R taka, że strategia gracza W gwarantuje mu wygrana V niezależnie od strategii K oraz strategia K gwarantuje mu wygrana V niezależnie od strategii W. Innymi słowy, dla dowolnej macierzy A o wymiarach n m, max min p j q i a ji = min max p j q i a ji. (36) pj =1 qi =1 qi =1 pj =1 p j 0 q i 0 q i 0 1 i m 1 j n p j 0 1 i m 1 j n (34) (35)

Algorytm simplex i dualność

Algorytm simplex i dualność Algorytm simplex i dualność Łukasz Kowalik Instytut Informatyki, Uniwersytet Warszawski April 15, 2016 Łukasz Kowalik (UW) LP April 15, 2016 1 / 35 Przypomnienie 1 Wierzchołkiem wielościanu P nazywamy

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Łukasz Kowalik Instytut Informatyki, Uniwersytet Warszawski April 8, 2016 Łukasz Kowalik (UW) LP April 8, 2016 1 / 15 Problem diety Tabelka wit. A (µg) wit. B1 (µg) wit. C (µg) (kcal)

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Maciej Drwal maciej.drwal@pwr.wroc.pl 1 Problem programowania liniowego min x c T x (1) Ax b, (2) x 0. (3) gdzie A R m n, c R n, b R m. Oznaczmy przez x rozwiązanie optymalne, tzn.

Bardziej szczegółowo

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

Układy równań i nierówności liniowych Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +

Bardziej szczegółowo

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

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): może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję

Bardziej szczegółowo

Układy równań liniowych

Układy równań liniowych Układy równań liniowych Niech K będzie ciałem. Niech n, m N. Równanie liniowe nad ciałem K z niewiadomymi (lub zmiennymi) x 1, x 2,..., x n K definiujemy jako formę zdaniową zmiennej (x 1,..., x n ) K

Bardziej szczegółowo

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

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

Bardziej szczegółowo

Teoretyczne podstawy programowania liniowego

Teoretyczne podstawy programowania liniowego Teoretyczne podstawy programowania liniowego Elementy algebry liniowej Plan Kombinacja liniowa Definicja Kombinacja liniowa wektorów (punktów) x 1, x 2,, x k R n to wektor x R n k taki, że x = i=1 λ i

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2010 Mirosław Sobolewski (UW) Warszawa, 2009 1 / 15 Homo oeconomicus=

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2015 Mirosław Sobolewski (UW) Warszawa, 2015 1 / 16 Homo oeconomicus=

Bardziej szczegółowo

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

13 Układy równań liniowych

13 Układy równań liniowych 13 Układy równań liniowych Definicja 13.1 Niech m, n N. Układem równań liniowych nad ciałem F m równaniach i n niewiadomych x 1, x 2,..., x n nazywamy koniunkcję równań postaci a 11 x 1 + a 12 x 2 +...

Bardziej szczegółowo

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks Programowanie liniowe metoda sympleks Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2009 Mirosław Sobolewski (UW) Warszawa, 2009 1 / 13

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Badania operacyjne Problem Model matematyczny Metoda rozwiązania Znaleźć optymalny program produkcji. Zmaksymalizować 1 +3 2 2 3 (1) Przy ograniczeniach 3 1 2 +2 3 7 (2) 2 1 +4 2 12 (3) 4 1 +3 2 +8 3 10

Bardziej szczegółowo

Programowanie liniowe. Tadeusz Trzaskalik

Programowanie liniowe. Tadeusz Trzaskalik Programowanie liniowe Tadeusz Trzaskalik .. Wprowadzenie Słowa kluczowe Model matematyczny Cel, środki, ograniczenia Funkcja celu funkcja kryterium Zmienne decyzyjne Model optymalizacyjny Układ warunków

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metody kierunków poparwy (metoda Newtona-Raphsona, metoda gradientów sprzężonych) Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.03.2019 1

Bardziej szczegółowo

TOZ -Techniki optymalizacji w zarządzaniu

TOZ -Techniki optymalizacji w zarządzaniu TOZ -Techniki optymalizacji w zarządzaniu Wykład dla studentów II roku studiów II stopnia na kierunku Zarządzanie Semestr zimowy 2009/2010 Wykładowca: prof. dr hab. inż. Michał Inkielman Wykład 2 Optymalizacja

Bardziej szczegółowo

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

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

PROGRAMOWANIE KWADRATOWE

PROGRAMOWANIE KWADRATOWE PROGRAMOWANIE KWADRATOWE Programowanie kwadratowe Zadanie programowania kwadratowego: Funkcja celu lub/i co najmniej jedno z ograniczeń jest funkcją kwadratową. 2 Programowanie kwadratowe Nie ma uniwersalnej

Bardziej szczegółowo

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

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 Metoda Simpleks Jak wiadomo, problem PL z dowolną liczbą zmiennych można rozwiązać wyznaczając wszystkie wierzchołkowe punkty wielościanu wypukłego, a następnie porównując wartości funkcji celu w tych

Bardziej szczegółowo

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks Programowanie liniowe metoda sympleks Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW 13. wykład z algebry liniowej Warszawa, styczeń 2018 Mirosław Sobolewski (UW) Warszawa, 2018 1 /

Bardziej szczegółowo

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks Programowanie liniowe metoda sympleks Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2012 Mirosław Sobolewski (UW) Warszawa, 2012 1 / 12

Bardziej szczegółowo

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

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego. . Metoda eliminacji. Treść wykładu i ich macierze... . Metoda eliminacji. Ogólna postać układu Układ m równań liniowych o n niewiadomych x 1, x 2,..., x n : a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21

Bardziej szczegółowo

Algebra liniowa z geometrią

Algebra liniowa z geometrią Algebra liniowa z geometrią Maciej Czarnecki 15 stycznia 2013 Spis treści 1 Geometria płaszczyzny 2 1.1 Wektory i skalary........................... 2 1.2 Macierze, wyznaczniki, układy równań liniowych.........

Bardziej szczegółowo

Metoda simpleks. Gliwice

Metoda simpleks. Gliwice Sprowadzenie modelu do postaci bazowej Sprowadzenie modelu do postaci bazowej Przykład 4 Model matematyczny z Przykładu 1 sprowadzić do postaci bazowej. FC: ( ) Z x, x = 6x + 5x MAX 1 2 1 2 O: WB: 1 2

Bardziej szczegółowo

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO ZAGADNIENIA PROGRAMOWANIA LINIOWEGO Maciej Patan Uniwersytet Zielonogórski WSTĘP często spotykane w życiu codziennym wybór asortymentu produkcji jakie wyroby i w jakich ilościach powinno produkować przedsiębiorstwo

Bardziej szczegółowo

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO D. Miszczyńska, M.Miszczyński KBO UŁ GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO Gra w sensie niżej przedstawionym to zasady którymi kierują się decydenci. Zakładamy, że rezultatem gry jest wypłata,

Bardziej szczegółowo

Układy równań liniowych

Układy równań liniowych Układy równań liniowych ozważmy układ n równań liniowych o współczynnikach a ij z n niewiadomymi i : a + a +... + an n d a a an d a + a +... + a n n d a a a n d an + an +... + ann n d n an an a nn n d

Bardziej szczegółowo

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

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

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

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ... Wykład 15 Układy równań liniowych Niech K będzie ciałem i niech α 1, α 2,, α n, β K. Równanie: α 1 x 1 + α 2 x 2 + + α n x n = β z niewiadomymi x 1, x 2,, x n nazywamy równaniem liniowym. Układ: a 21 x

Bardziej szczegółowo

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

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Uwarunkowanie zadania numerycznego Niech ϕ : R n R m będzie pewna funkcja odpowiednio wiele

Bardziej szczegółowo

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

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1 W. Guzicki Próbna matura, grudzień 01 r. poziom rozszerzony 1 Próbna matura rozszerzona (jesień 01 r.) Zadanie 18 kilka innych rozwiązań Wojciech Guzicki Zadanie 18. Okno na poddaszu ma mieć kształt trapezu

Bardziej szczegółowo

Rozwiązania, seria 5.

Rozwiązania, seria 5. Rozwiązania, seria 5. 26 listopada 2012 Zadanie 1. Zbadaj, dla jakich wartości parametru r R wektor (r, r, 1) lin{(2, r, r), (1, 2, 2)} R 3? Rozwiązanie. Załóżmy, że (r, r, 1) lin{(2, r, r), (1, 2, 2)}.

Bardziej szczegółowo

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

Wykład z równań różnicowych Wykład z równań różnicowych 1 Wiadomości wstępne Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp. Zamiast tego pisać będziemy x (n), y (n) itp.

Bardziej szczegółowo

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

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505. doc. dr Beata Pułska-Turyna Zakład Badań Operacyjnych Zarządzanie B506 mail: turynab@wz.uw.edu.pl mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505. Tel.: (22)55 34 144 Mail: student@pgadecki.pl

Bardziej szczegółowo

Elementy Modelowania Matematycznego

Elementy Modelowania Matematycznego Elementy Modelowania Matematycznego Wykład 6 Metoda simpleks Spis treści Wstęp Zadanie programowania liniowego Wstęp Omówimy algorytm simpleksowy, inaczej metodę simpleks(ów). Jest to stosowana w matematyce

Bardziej szczegółowo

Indukcja matematyczna. Zasada minimum. Zastosowania.

Indukcja matematyczna. Zasada minimum. Zastosowania. Indukcja matematyczna. Zasada minimum. Zastosowania. Arkadiusz Męcel Uwagi początkowe W trakcie zajęć przyjęte zostaną następujące oznaczenia: 1. Zbiory liczb: R - zbiór liczb rzeczywistych; Q - zbiór

Bardziej szczegółowo

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

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory; Wykłady 8 i 9 Pojęcia przestrzeni wektorowej i macierzy Układy równań liniowych Elementy algebry macierzy dodawanie, odejmowanie, mnożenie macierzy; macierz odwrotna dr Mariusz Grządziel 15,29 kwietnia

Bardziej szczegółowo

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

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę

Bardziej szczegółowo

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

Wprowadzenie do badań operacyjnych - wykład 2 i 3 Wprowadzenie do badań operacyjnych - wykład 2 i 3 Hanna Furmańczyk 14 listopada 2008 Programowanie liniowe (PL) - wszystkie ograniczenia muszą być liniowe - wszystkie zmienne muszą być ciągłe n j=1 c j

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

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

Definicja i własności wartości bezwzględnej. Równania i nierówności z wartością bezwzględną. Rozwiązywanie układów dwóch (trzech) równań z dwiema (trzema) niewiadomymi. Układy równań liniowych z parametrem, analiza rozwiązań. Definicja i własności

Bardziej szczegółowo

ZAGADNIENIE TRANSPORTOWE

ZAGADNIENIE TRANSPORTOWE ZAGADNIENIE TRANSPORTOWE ZT jest specyficznym problemem z zakresu zastosowań programowania liniowego. ZT wykorzystuje się najczęściej do: optymalnego planowania transportu towarów, przy minimalizacji kosztów,

Bardziej szczegółowo

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

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA? /9/ Zagadnienie transportowe Optymalizacja w procesach biznesowych Wykład --9 Plan wykładu Przykład zagadnienia transportowego Sformułowanie problemu Własności zagadnienia transportowego Metoda potencjałów

Bardziej szczegółowo

1 Układy równań liniowych

1 Układy równań liniowych II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie

Bardziej szczegółowo

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik Programowanie liniowe całkowitoliczbowe Tadeusz Trzaskalik .. Wprowadzenie Słowa kluczowe Rozwiązanie całkowitoliczbowe Założenie podzielności Warunki całkowitoliczbowości Czyste zadanie programowania

Bardziej szczegółowo

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

1 Zbiory i działania na zbiorach.

1 Zbiory i działania na zbiorach. Matematyka notatki do wykładu 1 Zbiory i działania na zbiorach Pojęcie zbioru jest to pojęcie pierwotne (nie definiuje się tego pojęcia) Pojęciami pierwotnymi są: element zbioru i przynależność elementu

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /15 Matematyka dyskretna Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl 7/15 Rachunek różnicowy Dobrym narzędziem do obliczania skończonych sum jest rachunek różnicowy. W rachunku tym odpowiednikiem operatora

Bardziej szczegółowo

Baza w jądrze i baza obrazu ( )

Baza w jądrze i baza obrazu ( ) Przykład Baza w jądrze i baza obrazu (839) Znajdź bazy jądra i obrazu odwzorowania α : R 4 R 3, gdzie α(x, y, z, t) = (x + 2z + t, 2x + y 3z 5t, x y + z + 4t) () zór ten oznacza, że α jest odwzorowaniem

Bardziej szczegółowo

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne. Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne. Definicja. Niech a i b będą dodatnimi liczbami rzeczywistymi i niech a. Logarytmem liczby b przy podstawie

Bardziej szczegółowo

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH Transport, studia I stopnia rok akademicki 2011/2012 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Uwagi wstępne Układ liniowych równań algebraicznych można

Bardziej szczegółowo

3. FUNKCJA LINIOWA. gdzie ; ół,.

3. FUNKCJA LINIOWA. gdzie ; ół,. 1 WYKŁAD 3 3. FUNKCJA LINIOWA FUNKCJĄ LINIOWĄ nazywamy funkcję typu : dla, gdzie ; ół,. Załóżmy na początek, że wyraz wolny. Wtedy mamy do czynienia z funkcją typu :.. Wykresem tej funkcji jest prosta

Bardziej szczegółowo

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

Rozwiazywanie układów równań liniowych. Ax = b Rozwiazywanie układów równań liniowych Ax = b 1 PLAN REFERATU: Warunki istnienia rozwiazań układu Metoda najmniejszych kwadratów Metoda najmniejszych kwadratów - algorytm rekurencyjny Rozwiazanie układu

Bardziej szczegółowo

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

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych Arytmetyka liczb całkowitych Wykład 1 Na początku zajmować się będziemy zbiorem liczb całkowitych Z = {0, ±1, ±2,...}. Zakładamy, że czytelnik zna relację

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

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

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne. Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne. Funkcja homograficzna. Definicja. Funkcja homograficzna jest to funkcja określona wzorem f() = a + b c + d, () gdzie współczynniki

Bardziej szczegółowo

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE 6. Ćwiczenia komputerowe Ćwiczenie 6.1

Bardziej szczegółowo

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać układu równań liniowych Układ liniowych równań algebraicznych

Bardziej szczegółowo

Układy równań liniowych. Krzysztof Patan

Układy równań liniowych. Krzysztof Patan Układy równań liniowych Krzysztof Patan Motywacje Zagadnienie kluczowe dla przetwarzania numerycznego Wiele innych zadań redukuje się do problemu rozwiązania układu równań liniowych, często o bardzo dużych

Bardziej szczegółowo

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

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem Rozdział 6 Równania liniowe 6 Przekształcenia liniowe Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem F Definicja 6 Funkcję f : X Y spełniającą warunki: a) dla dowolnych x,

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Ekonometria - ćwiczenia 10

Ekonometria - ćwiczenia 10 Ekonometria - ćwiczenia 10 Mateusz Myśliwski Zakład Ekonometrii Stosowanej Instytut Ekonometrii Kolegium Analiz Ekonomicznych Szkoła Główna Handlowa 14 grudnia 2012 Wprowadzenie Optymalizacja liniowa Na

Bardziej szczegółowo

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE 2.2 Ćwiczenia komputerowe Ćwiczenie

Bardziej szczegółowo

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

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1 A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe ZAGADNIENIE TRANSPORTOWE(ZT) Danychjest pdostawców,którychpodażwynosi a,a 2,...,a p i qodbiorców, którychpopytwynosi b,b 2,...,b

Bardziej szczegółowo

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

3. Wykład Układy równań liniowych. 31 Układy równań liniowych 3 Wykład 3 Definicja 31 Niech F będzie ciałem Układem m równań liniowych o niewiadomych x 1,, x n, m, n N, o współczynnikach z ciała F nazywamy układ równań postaci: x 1 + +

Bardziej szczegółowo

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: Ciągi rekurencyjne Zadanie 1 Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: w dwóch przypadkach: dla i, oraz dla i. Wskazówka Należy poszukiwać rozwiązania w postaci, gdzie

Bardziej szczegółowo

2. Układy równań liniowych

2. Układy równań liniowych 2. Układy równań liniowych Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2017/2018 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 2. Układy równań liniowych zima 2017/2018 1 /

Bardziej szczegółowo

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

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa. VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa. W rozdziale tym zajmiemy się dokładniej badaniem stabilności rozwiązań równania różniczkowego. Pojęcie stabilności w

Bardziej szczegółowo

1 Przykładowe klasy zagadnień liniowych

1 Przykładowe klasy zagadnień liniowych & " 1 PRZYKŁADOWE KLASY ZAGADNIEŃ LINIOWYCH 1 1 Przykładowe klasy zagadnień liniowych Liniowy model produkcji Zakład może prowadzić rodzajów działalności np. produkować różnych wyrobów). Do prowadzenia

Bardziej szczegółowo

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 (12p.)Niech n 3k > 0. Zbadać jaka jest najmniejsza możliwa liczba krawędzi w grafie, który ma dokładnie n wierzchołków oraz dokładnie k składowych, z których

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

Bardziej szczegółowo

Wykład 14. Elementy algebry macierzy

Wykład 14. Elementy algebry macierzy Wykład 14 Elementy algebry macierzy dr Mariusz Grządziel 26 stycznia 2009 Układ równań z dwoma niewiadomymi Rozważmy układ równań z dwoma niewiadomymi: a 11 x + a 12 y = h 1 a 21 x + a 22 y = h 2 a 11,

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Liczby zespolone. x + 2 = 0.

Liczby zespolone. x + 2 = 0. Liczby zespolone 1 Wiadomości wstępne Rozważmy równanie wielomianowe postaci x + 2 = 0. Współczynniki wielomianu stojącego po lewej stronie są liczbami całkowitymi i jedyny pierwiastek x = 2 jest liczbą

Bardziej szczegółowo

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

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2 Leszek Sochański Arkusz przykładowy, poziom podstawowy (A1) Zadanie 1. Wykresem funkcji kwadratowej f jest parabola o wierzchołku 5,7 Wówczas prawdziwa jest równość W. A. f 1 f 9 B. f 1 f 11 C. f 1 f 1

Bardziej szczegółowo

Definicja problemu programowania matematycznego

Definicja problemu programowania matematycznego Definicja problemu programowania matematycznego minimalizacja lub maksymalizacja funkcji min (max) f(x) gdzie: x 1 x R n x 2, czyli: x = [ ] x n przy ograniczeniach (w skrócie: p.o.) p.o. g i (x) = b i

Bardziej szczegółowo

Jak łatwo zauważyć, zbiór form symetrycznych (podobnie antysymetrycznych) stanowi podprzestrzeń przestrzeni L(V, V, K). Oznaczamy ją Sym(V ).

Jak łatwo zauważyć, zbiór form symetrycznych (podobnie antysymetrycznych) stanowi podprzestrzeń przestrzeni L(V, V, K). Oznaczamy ją Sym(V ). Odwzorowania n-liniowe; formy n-liniowe Definicja 1 Niech V 1,..., V n, U będą przestrzeniami liniowymi nad ciałem K. Odwzorowanie G: V 1 V n U nazywamy n-liniowym, jeśli dla każdego k [n] i wszelkich

Bardziej szczegółowo

Zaawansowane metody numeryczne

Zaawansowane metody numeryczne Wykład 10 Rozkład LU i rozwiązywanie układów równań liniowych Niech będzie dany układ równań liniowych postaci Ax = b Załóżmy, że istnieją macierze L (trójkątna dolna) i U (trójkątna górna), takie że macierz

Bardziej szczegółowo

CIĄGI wiadomości podstawowe

CIĄGI wiadomości podstawowe 1 CIĄGI wiadomości podstawowe Jak głosi definicja ciąg liczbowy to funkcja, której dziedziną są liczby naturalne dodatnie (w zadaniach oznacza się to najczęściej n 1) a wartościami tej funkcji są wszystkie

Bardziej szczegółowo

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska Funkcje liniowe i wieloliniowe w praktyce szkolnej Opracowanie : mgr inż. Renata Rzepińska . Wprowadzenie pojęcia funkcji liniowej w nauczaniu matematyki w gimnazjum. W programie nauczania matematyki w

Bardziej szczegółowo

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Metoda eliminacji Gaussa. Autorzy: Michał Góra Metoda eliminacji Gaussa Autorzy: Michał Góra 9 Metoda eliminacji Gaussa Autor: Michał Góra Przedstawiony poniżej sposób rozwiązywania układów równań liniowych jest pewnym uproszczeniem algorytmu zwanego

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /15 Matematyka dyskretna Andrzej Łachwa, UJ, 2015 andrzej.lachwa@uj.edu.pl 3/15 Indukcja matematyczna Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej

Bardziej szczegółowo

UKŁADY RÓWNAŃ LINIOWYCH

UKŁADY RÓWNAŃ LINIOWYCH Wykłady z matematyki inżynierskiej JJ, 08 DEFINICJA Układ m równań liniowych z n niewiadomymi to: ( ) 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 a m1 x 1 + a m2 x 2 +

Bardziej szczegółowo

1 Nierówność Minkowskiego i Hoeldera

1 Nierówność Minkowskiego i Hoeldera 1 Nierówność Minkowskiego i Hoeldera Na państwa użytek załączam precyzyjne sformułowania i dowody nierówności Hoeldera i Minkowskiego: Twierdzenie 1.1 Nierówność Hoeldera). Niech p, q będą takimi liczbami

Bardziej szczegółowo

Przestrzenie wektorowe

Przestrzenie wektorowe Rozdział 4 Przestrzenie wektorowe Rozważania dotyczące przestrzeni wektorowych rozpoczniemy od kilku prostych przykładów. Przykład 4.1. W przestrzeni R 3 = {(x, y, z) : x, y, z R} wprowadzamy dwa działania:

Bardziej szczegółowo

Układy równań liniowych

Układy równań liniowych Układy równań liniowych Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW 1. wykład z algebry liniowej Warszawa, październik 2015 Mirosław Sobolewski (UW) Warszawa, wrzesień 2015 1 / 1

Bardziej szczegółowo

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

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski METODA SYMPLEKS Maciej Patan Uniwersytet Zielonogórski WSTĘP Algorytm Sympleks najpotężniejsza metoda rozwiązywania programów liniowych Metoda generuje ciąg dopuszczalnych rozwiązań x k w taki sposób,

Bardziej szczegółowo

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji Adam Kiersztyn Lublin 2014 Adam Kiersztyn () Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji maj 2014 1 / 24 Zanim przejdziemy

Bardziej szczegółowo

11. Gry Macierzowe - Strategie Czyste i Mieszane

11. Gry Macierzowe - Strategie Czyste i Mieszane 11. Gry Macierzowe - Strategie Czyste i Mieszane W grze z doskonałą informacją, gracz nie powinien wybrać akcję w sposób losowy (o ile wypłaty z różnych decyzji nie są sobie równe). Z drugiej strony, gdy

Bardziej szczegółowo

10. Wstęp do Teorii Gier

10. Wstęp do Teorii Gier 10. Wstęp do Teorii Gier Definicja Gry Matematycznej Gra matematyczna spełnia następujące warunki: a) Jest co najmniej dwóch racjonalnych graczy. b) Zbiór możliwych dezycji każdego gracza zawiera co najmniej

Bardziej szczegółowo

Matematyka dyskretna dla informatyków

Matematyka dyskretna dla informatyków Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności

Bardziej szczegółowo

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

Algebra liniowa. Macierze i układy równań liniowych Algebra liniowa Macierze i układy równań liniowych Własności wyznaczników det I = 1, det(ab) = det A det B, det(a T ) = det A. Macierz nieosobliwa Niech A będzie macierzą kwadratową wymiaru n n. Mówimy,

Bardziej szczegółowo

TEORIA GIER W EKONOMII WYKŁAD 5: GRY DWUOSOBOWE KOOPERACYJNE O SUMIE NIESTAŁEJ

TEORIA GIER W EKONOMII WYKŁAD 5: GRY DWUOSOBOWE KOOPERACYJNE O SUMIE NIESTAŁEJ TEORI GIER W EKONOMII WYKŁD 5: GRY DWUOSOOWE KOOPERCYJNE O SUMIE NIESTŁEJ dr Robert Kowalczyk Katedra nalizy Nieliniowej Wydział Matematyki i Informatyki UŁ Gry dwumacierzowe Skończoną grę dwuosobową o

Bardziej szczegółowo

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

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F

Bardziej szczegółowo

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

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka

Bardziej szczegółowo

Matematyka A kolokwium 26 kwietnia 2017 r., godz. 18:05 20:00. i = = i. +i sin ) = 1024(cos 5π+i sin 5π) =

Matematyka A kolokwium 26 kwietnia 2017 r., godz. 18:05 20:00. i = = i. +i sin ) = 1024(cos 5π+i sin 5π) = Matematyka A kolokwium 6 kwietnia 7 r., godz. 8:5 : Starałem się nie popełniać błędów, ale jeśli są, będę wdzięczny za wieści o nich Mam też nadzieję, że niektórzy studenci zechcą zrozumieć poniższy tekst,

Bardziej szczegółowo

Przykładowe zadania z teorii liczb

Przykładowe zadania z teorii liczb Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę

Bardziej szczegółowo

Własności wyznacznika

Własności wyznacznika Własności wyznacznika Rozwinięcie Laplace a względem i-tego wiersza: n det(a) = ( 1) i+j a ij M ij (A), j=1 gdzie M ij (A) to minor (i, j)-ty macierzy A, czyli wyznacznik macierzy uzyskanej z macierzy

Bardziej szczegółowo