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

Podobne dokumenty
Elementy Modelowania Matematycznego

Programowanie matematyczne

PROGRAMOWANIE KWADRATOWE

Definicja problemu programowania matematycznego

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

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

Elementy Modelowania Matematycznego

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

Metoda Karusha-Kuhna-Tuckera

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

Programowanie liniowe

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

Programowanie liniowe

Ekonometria - ćwiczenia 10

Programowanie liniowe. Tadeusz Trzaskalik

Standardowe zadanie programowania liniowego. Gliwice 1

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Metody systemowe i decyzyjne w informatyce

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

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

ZAGADNIENIE TRANSPORTOWE

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

Funkcje dwóch zmiennych

WPROWADZENIE DO EKONOMII MENEDŻERSKIEJ.

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

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

Rozdział 1 PROGRAMOWANIE LINIOWE

Metody Ilościowe w Socjologii

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

13. Funkcje wielu zmiennych pochodne, gradient, Jacobian, ekstrema lokalne.

Programowanie liniowe

4. PROGRAMOWANIE LINIOWE

PRZEWODNIK PO PRZEDMIOCIE

1 Pochodne wyższych rzędów

II. FUNKCJE WIELU ZMIENNYCH

Wielokryteriowa optymalizacja liniowa

= Zapiszemy poniższy układ w postaci macierzy. 8+$+ 2&=4 " 5 3$ 7&=0 5$+7&=4

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

Programowanie liniowe

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

Schemat programowania dynamicznego (ang. dynamic programming)

3. FUNKCJA LINIOWA. gdzie ; ół,.

Programowanie liniowe

BADANIA OPERACYJNE i teoria optymalizacji. Prowadzący: dr Tomasz Pisula Katedra Metod Ilościowych

Programowanie liniowe

Optymalizacja procesów technologicznych przy zastosowaniu programowania liniowego

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

Rozwiązanie Powyższe zadanie możemy przedstawić jako następujące zagadnienie programowania liniowego:

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

D. Miszczyńska, M.Miszczyński KBO UŁ, Badania operacyjne [1]

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Teoretyczne podstawy programowania liniowego

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji

OPTYMALIZACJA W LOGISTYCE

Metoda simpleks. Gliwice

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

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

Wielokryteriowa optymalizacja liniowa cz.2

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

c j x x

Poziom przedmiotu: II stopnia. Liczba godzin/tydzień: 2W, 2L, 1C PRZEWODNIK PO PRZEDMIOCIE

Elementy modelowania matematycznego

1 Przykładowe klasy zagadnień liniowych

PROGRAMOWANIE NIELINIOWE

Sterowanie optymalne

Instytut Konstrukcji i Eksploatacji Maszyn Katedra Logistyki i Systemów Transportowych. Badania operacyjne. Dr inż.

Badania Operacyjne Ćwiczenia nr 1 (Materiały)

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

Badania operacyjne. Dr Michał Kulej. Pokój 509, budynek B4 Forma zaliczenia wykładu: egzamin pisemny.

Pochodną funkcji w punkcie nazywamy granicę ilorazu różnicowego w punkcie gdy przyrost argumentu dąży do zera: lim

Zagadnienia optymalizacji Problems of optimization

1 Wartości własne oraz wektory własne macierzy

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

RÓŻNICZKOWANIE FUNKCJI WIELU ZMIENNYCH: rachunek pochodnych dla funkcji wektorowych. Pochodne cząstkowe funkcji rzeczywistej wielu zmiennych

Programowanie nieliniowe

wszystkich kombinacji liniowych wektorów układu, nazywa się powłoką liniową uk ładu wektorów

PRZEWODNIK PO PRZEDMIOCIE

Zadania z ekonomii matematycznej Teoria produkcji

Excel - użycie dodatku Solver

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

Metody optymalizacji. notatki dla studentów matematyki semestr zimowy 2015/2016

Wykład 4 Przebieg zmienności funkcji. Badanie dziedziny oraz wyznaczanie granic funkcji poznaliśmy na poprzednich wykładach.

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

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

Programowanie liniowe metoda sympleks

OPTYMALIZACJA PROCESÓW LOGISTYCZNYCH

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

Karta (sylabus) przedmiotu

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

Opis przedmiotu. Karta przedmiotu - Badania operacyjne Katalog ECTS Politechniki Warszawskiej

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

Programowanie celowe #1

KURS FUNKCJE WIELU ZMIENNYCH

Badania operacyjne. Dr hab. inż. Adam Kasperski, prof. PWr. Pokój 509, budynek B4 Materiały do zajęć dostępne na stronie:

Wykład z modelowania matematycznego. Algorytm sympleks.

OPTYMALIZACJA DYSKRETNA

Programowanie liniowe

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

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

Transkrypt:

Spis treści Elementy Modelowania Matematycznego Wykład 7 i całkowitoliczbowe Romuald Kotowski Katedra Informatyki Stosowanej PJWSTK 2009

Spis treści Spis treści 1 Wstęp 2 3

Spis treści Spis treści 1 Wstęp 2 3

Spis treści Spis treści 1 Wstęp 2 3

Wstęp Przypomnijmy: Programowanie matematyczne to problem optymalizacyjny. Zadanie brzmi: Dokonaj maksymalizacji (minimalizacji) funkcji f (x) przy nałożonych warunkach: g(x) 0, ( 0) h(x) = 0 gdzie x X R n, zaś f, g i h są funkcjami zdefiniowanymi na tym podzbiorze. Nałożone warunki nazywane są warunkami ograniczającymi, natomiast funkcja f to funkcja celu. Rozwiązania tego problemu nazywamy rozwiązaniami optymalnymi.

Wstęp Nie istnieje jeden efektywny algorytm rozwiązania problemu programowania matematycznego, dlatego problemy należące do różnych klas rozwiązywane są różnymi metodami. Oto najważniejsze z nich: programowanie liniowe programowanie całkowitoliczbowe programowanie zero-jedynkowe programowanie celowe programowanie kwadratowe programowanie nieliniowe programowanie dynamiczne programowanie sieciowe Programowanie matematyczne znalazło szerokie zastosowanie w teorii decyzji, np. przy optymalizacji struktury kosztów produkcji.

Wstęp Przykład: Do produkcji opakowań potrzebny jest karton i folia aluminiowa, przy czym dostępne są dwie metody produkcji (A i B). W metodzie A zużywamy 0,5 jednostki kartonu i 0,45 jednostki folii. W metodzie B zużywamy odpowiednio 0,6 i 0,5 jednostek produktów. Maksymalna dzienna produkcja jedną i drugą metodą wynosi 200 opakowań. Opakowanie wyprodukowane metodą A przynosi nam zysk w wysokości 1,5 zł, zaś metodą B 1,8 zł. Jednocześnie jesteśmy w stanie dostarczyć dziennie do fabryki 200 jednostek kartonu i 300 jednostek folii. Jaki plan produkcji należy przyjąć, aby zysk z przedsięwzięcia był największy?

Wstęp Przykład: sformułowanie matematyczne Formułujemy zadanie programowania matematycznego: Niech x A i x B oznaczają odpowiednio liczbę jednostek wyprodukowanych metodą A i B. Zysk można opisać funkcją: f (x) = 1, 5zł x A + 1, 8zł x B Dziennie zużyjemy 0, 5 x A + 0, 6 x B jednostek kartonu i 0, 45 x A + 0, 5 x B jednostek folii.

Wstęp Przykład: sformułowanie matematyczne Zapisujemy warunki oraz funkcję celu: zmaksymalizować Warunki ograniczające: f (x) = 1, 5zł x A + 1, 8zł x B 0, 5 x A + 0, 6 x B 200, 0, 45 x A + 0, 5 x B 300 xa 200, x B 200, xa 0, x B 0 Rozwiązanie optymalne: należy wyprodukować 196 jednostek metodą A i 170 jednostek metodą B. Osiągniemy wtedy maksymalny zysk 600 zł.

Zadanie programowania nieliniowego są identyczne jak dla programowania liniowego, ale w przeciwieństwie do programowania liniowego, nie istnieje jeden uniwersalny algorytm rozwiązywania zadań programowania nieliniowego. Wynika to z faktu iż funkcje nieliniowe stanowią (w pewnym sensie) dużo bardziej obszerną rodzinę funkcji niż funkcje liniowe funkcją nieliniową jest każda funkcja, która nie jest liniowa.

Zadanie programowania nieliniowego Funkcje nieliniowe charakteryzują się następującymi cechami, które mogą utrudniać obliczenia: występowanie tzw. ekstremów lokalnych (lokalne minima lub maksima), występowanie tzw. punktów siodłowych, czyli takich, dla których funkcja osiąga maksimum dla jednej zmiennej, a minimum dla innej (na wykresie funkcji 2 zmiennych wyglądają one jak przełęcz lub siodło - stąd nazwa), nieciągłości ( przerwy w wykresach), osobliwości (funkcja dąży do plus lub minus nieskończoności dla skończonej wartości argumentu). Wszystko to powoduje, że poszukiwanie rozwiązania konkretnych zadań programowania nieliniowego zależy od szczególnej postaci tego zadania.

Zadanie programowania nieliniowego Niektóre zadania programowania nieliniowego można rozwiązać: przy pomocy specjalnego algorytmu, jeśli zadanie zalicza się do jednego z podtypów, dla których takie algorytmy są znane; metodą simpleks, jeżeli istnieje możliwość przekształcenia w zadanie programowania liniowego np. tzw. programowanie ilorazowe - omówione dalej; przekształcając do postaci zadania programowania liniowego całkowitoliczbowego przykładem może być zadanie transportowo-produkcyjne ze stałym kosztem uruchomienia produkcji czy zadanie optymalnej diety ze stałymi kosztami zakupu. W ogólnym przypadku nie ma niestety żadnej gwarancji, że rozwiązanie podane przez komputer jest choćby zbliżone do poprawnego.

Programowanie ilorazowe Zadanie programowania ilorazowego jest to maksymalizacja lub minimalizacja ilorazu dwóch funkcji liniowych przy ograniczeniach liniowych. Standardowa postać zadania programowania ilorazowego wygląda następująco: c 0 + c 1 x 1 + + c nx n d 0 + d 1 x 1 + + d nx n min max przy ograniczeniach a 11 x 1 + + a 1n x n b 1... a m1 x 1 + + a mnx n b m x 1 0,... x n 0 Jeśli d 0 + d 1 x 1 + + d nx n 0 dla (x 1,..., x n D to zadanie programowania ilorazowego można sprowadzić do zadania programowania liniowego.

Programowanie ilorazowe Wprowadźmy nowe zmienne: x 1 y 1 = d 0 + d 1 x 1 + + d n x n... x n y n = d 0 + d 1 x 1 + + d n x n 1 t = d 0 + d 1 x 1 + + d n x n Wtedy x i = y i t i poszukiwanie rozwiązania zadania programowania ilorazowego sprowadza się do rozwiązania następującego zadania programowania liniowego.

Programowanie ilorazowe Rozwiązywanie graficzne zadania programowania ilorazowego z dwiema zmiennymi wygląda analogicznie jak rozwiązywanie graficzne zadania programowania liniowego tzn. należy wykreślić w układzie współrzędnych zbiór rozwiązań dopuszczalnych, a następnie sprawdzać wartości funkcji celu dla współrzędnych wierzchołków. Niemniej jednak przekształcenie w zadanie programowania liniowego w podany wyżej sposób nie jest akurat w tym przypadku ułatwieniem, ponieważ przekształcenie to wprowadza dodatkową zmienną t, co prowadziłoby do konieczności sporządzenia wykresu 3-wymiarowego.

Programowanie ilorazowe Programowanie ilorazowe jest stosowane przy problemach decyzyjnych wymagających pogodzenia ze sobą dwóch sprzecznych kryteriów optymalności np. zysk pracochłonność max przychód koszty max koszty paszy dzienny przyrost masy zwierząt min

Inny podział postaci zadań programowania nieliniowego 1 Standardowa warunki ograniczające w postaci nierówności 2 Kanoniczna warunki ograniczające w postaci równości (z wyjątkiem warunków brzegowych)

Program nieliniowy w postaci kanonicznej Metoda mnożników Lagrange a 1 Sprawdzenie występowania ekstremum bezwarunkowego funkcji celu, spełniającego warunki ograniczające 2 Ewentualne przekształcenie funkcji celu do postaci Lagrange a i poszukiwanie bezwarunkowego ekstremum

Metoda mnożników Lagrange a Szukanie ekstremum bezwarunkowego 1. Funkcja celu f osiąga bezwarunkowe ekstremum w punkcie stacjonarnym w przypadku nieujemnej wartości wyznacznika macierzy drugich pochodnych funkcji celu f po poszczególnych zmiennych i ich kombinacjach. Ponadto wszystkie minory główne takiej macierzy muszą być dodatnie. 2. Współrzędne punktu stacjonarnego można otrzymać przyrównując do zera wartości pierwszych pochodnych cząstkowych funkcji celu f po poszczególnych zmiennych.

Metoda mnożników Lagrange a Szukanie ekstremum bezwarunkowego 2 f 2 f x 2 x 1 2 x 1 2 f x n x 1 2 f 2 f det x 1 x 2 2 f x2 2 x n x 2 2 f 2 f x 1 x n x 2 x n 2 f xn 2 f x 1 = 0, 0 f = 0,..., f = 0, x 2 x n

Metoda mnożników Lagrange a Funkcja Lagrange a Funkcja Lagrange a L wiąże funkcję celu f z funkcjami ograniczeń g i, dzięki użyciu wektora tzw. nieoznaczonych mnożników Lagrange a (λ). L(x; λ) = f (x) + λ g Dzięki wprowadzeniu funkcji L można zastąpić poszukiwania optymalnej warunkowej wartości funkcji celu f, poszukiwaniami odpowiadającej jej bezwarunkowej wartości optymalnej funkcji L.

Metoda mnożników Lagrange a Rozwiązanie optymalne Rozwiązanie optymalne otrzymuje się rozwiązując następujący układ równań, zawierający n + r równań (n liczba zmiennych decyzyjnych, r - liczba funkcji ograniczeń g i ): L x = 0, L λ = 0

Metoda mnożników Lagrange a Postać standardowa zagadnienia PNL Do rozwiązania można użyć: 1 metody mnożników Lagrange a; 2 twierdzenia Kuhna-Tuckera

Metoda mnożników Lagrange a Metoda mnożników Lagrange a Sposób postępowania podobny, jak w przypadku kanonicznej postaci zadania PNL. W celu przekształcenia równań w nierówności, wprowadza się zmienne bilansujące, tzw. zmienne nieistotne u 2. Rozwiązanie optymalne: x 1 + x 2 10 x 1 + x 2 + u 2 = 10 x 1 + x 2 10 x 1 + x 2 u 2 = 10 L x = 0, L λ = 0, L u = 0

Metoda mnożników Lagrange a Twierdzenie Kuhna-Tuckera f (x 1, x 2,... x n ) min g i ((x 1, x 2,... x n )) 0, i = 1, 2,..., r, (x 1, x 2,... x n ) 0 Warunki Kuhna-Tuckera L x 0, L(x, λ) = f (x) + λ g L x = 0, g(x) = 0, gλ = 0, x 0, λ 0 x

Metoda mnożników Lagrange a Twierdzenie Kuhna-Tuckera Oznaczenia: L x = ν, g(x) = w Zmodyfikowane warunki Kuhna-Tuckera L ν = 0, ν x = 0, g(x)+w = 0, w λ = 0, x 0, λ 0 x

Metoda mnożników Lagrange a Twierdzenie Kuhna-Tuckera Rozwiązanie optymalne można uzyskać rozpatrując wszystkie możliwe (spełniające ograniczenia) kombinacje wartości składowych wektorów: ν, λ, i w. W tym celu należy rozwiązać poszczególne układy równań, wynikające z warunków Kuhna-Tuckera.

W modelach programowania matematycznego zmiennych całkowitoliczbowych używa się m.in.: Do reprezentowania wielkości, które w swej naturze są całkowitoliczbowe, np. liczba produkowanych samochodów, samolotów, liczba budowanych domów, liczba zatrudnionych pracowników itp.

Do modelowania zmiennych decyzyjnych służących do wyboru decyzji ze zbioru możliwych decyzji. Są to najczęściej zmienne binarne. Np. { 1 należy zbudować magazyn δ = 0 nie budujemy lub też 0 0 nic nie budujemy γ = 1 należy zbudować magazyn A 2 należy zbudować magazyn A

Do wyrażenia pewnych stanów zmiennych ciągłych w modelach liniowych. Są to binarne zmienne wskaźnikowe. Do modelowania warunków logicznych w rzeczywistych zagadnieniach. Do modelowania niektórych nieliniowych zależności.

Zmienne wskaźnikowe δ zmienna wskaźnikowa związaną ze zmienną ciągłą x to zmienna binarna, której celem jest rozróżnienie pomiędzy stanem zmiennej x =, a stanem x > 0.

Zmienne wskaźnikowe Przykład. (Problem stałych kosztów). Niech x będzie ilością wytwarzanego produktu po kosztach jednostkowych C 1, a stałe koszty produkcji niech wynoszą C 2. Całkowity koszt K c wynosi zatem: { 0 jeśli x = 0 K c = C 1 x + C 2 jeśli x > 0 Koszt całkowity K c nie jest funkcją liniową. Wprowadzając zmienną wskaźnikową δ taką, że x > 0 δ = 1 otrzymujemy liniową funkcje celu K c (x) = C 1 x + C 2 δ

Zmienne wskaźnikowe Przykład. ((Problem optymalnej mieszaniny). Niech zmienne x A i x B reprezentują odpowiednio procentową zawartość składników A i B w mieszance. Dodatkowo, oprócz innych ograniczeń dających wyrazić się w liniowej postaci występuje ograniczenie: jeśli w mieszance wystąpi składnik A, to musi również w niej wystąpić składnik B. Wprowadzamy zmienną wskaźnikową δ taką, że x A > 0 δ = 1, czyli ograniczenie x A δ 0 Dodatkowo musimy wprowadzić warunek δ = 1 x B > 0 który modelujemy nierównością

Literatura Wstęp [1] H.P. Williams, Model building in mathematical programming, John Wiley and Sons, 1993 [2] F. Plastria, Formulating logical implications in combinatorial optimization, European Journal of Operational Research 140 (2002) 338-353

Koniec? Wstęp Koniec wykładu 7