Programowanie liniowe

Slides:



Advertisements
Podobne prezentacje
Programowanie Liniowe 1
Advertisements

Czyli jak zrobić prezentację komputerową?
Zastosowanie osi symetrii i wielokątów w przyrodzie
Co można zwiedzić w WIELKIEJ BRYTANII Pamiętajmy o miejscach które możemy zwiedzić na przykład w WIELKIEJ BRYTANII. I też czym różni się ta wyspa od naszego.
Moja Prezentacja Aleksandra Skorupa.
Ułamki dziesiętne.
Dzień Zdrowego Śniadania Kraina Owocowa – Klasa IIA.
funkcja przyjmuje wartości dodatnie, a dla jakich ujemne?
FUNKCJA L I N I O W A Autorzy: Jolanta Kaczka Magdalena Wierdak
Rodzaje układów równań
Widzisz byłego prezydęta Clintona i jego następcę Gora? Nie... To są 2 twarze Clintona ale z innym uczesaniem. Co widzisz?
DYFRAKCJA ŚWIATŁA NA SIATCE DYNAMICZNEJ
Problem obiadu Przykład. Pan domu został słomianym wdowcem i postanowił sam ugotować sobie obiad. Porównamy je-go działanie z organizacją pracy jego żony.
Analiza matematyczna III. Funkcje Funkcje I – własności podstawowe
Analiza matematyczna III. Funkcje Funkcje II – własności podstawowe
III. Proste zagadnienia kwantowe
AUTOR :WOJTEK NOWIK REPORTER : PATRYK SORMAN LUK SMIS PIOTREK COLO (KOLO) MAX SOWT.
Elektronika cyfrowa Prezentacja Remka Kondrackiego.
Prąd Elektryczny.
Kolejna gra mająca na celu pokazanie świata kierowców ścigających się w nielegalnych ulicznych wyścigach podrasowanymi do granic możliwości samochodami.
Młodzież a wolontariat.. Opracowanie: Judyta Szłapa Urszula Buczek.
Powiedzmy, że jest i wracasz do domu samochodem (oczywiście sam) po niezwykle ciężkim dniu pracy. Jesteś naprawdę zmęczony i sfrustrowany.
Podstawy programowania
Mężczyzna, wiek 92 lata, drobny, o szlachetnym wyglądzie, dobrze ubrany i starannie ogolony, o porządnie uczesanych włosach, który się budzi każdego.
Takie liczby to: {... -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5,... }
Formatowanie i modyfikacja dokumentu tekstowego
Co każdy użytkownik komputera wiedzieć powinien
Można powiedzieć, że nasi dziadowie, jeżeli chodzi o kuchnię i gotowanie byli dużo bardziej ekologiczni niż my czy choćby nasi rodzice. Potrawy były zazwyczaj.
Nieformalne miejsca spotkań. ANKIETY Przeprowadziliśmy wśród uczniów gimnazjum ankietę na temat nieformalnych miejsc spotkań. Przedstawimy przykładowe.
Ach te baby... Ach te baby....
ALGORYTMY.
KONSTRUKCJE TRÓJKĄTÓW
Regresja krzywoliniowa
Uwaga !!! Uczniowie SP 32 w Toruniu ! Zapraszamy was i Wasze rodziny do wzięcia udziału w Festynie Zdrowia, który odbędzie się 31 maja 2013 roku podczas.
ALGORYTM.
Analiza stanu naprężenia
Wykonała Sylwia Kozber
Antonie de Saint-Exupery
Pęd Wielkością charakteryzującą ruch ciała jest prędkość. Zmiana ruchu, tzn. zmiana prędkości, wymaga pokonania oporu bezwładności. Miarą bezwładności.
Powrót do sukcesu Analiza przypadku Princessy (rola badań marketingowych podczas rozwoju produktu: ) Powrót do sukcesu Analiza przypadku Princessy.
System gospodarki rynkowej
xHTML jako rozszerzenie HTML
Instalacja serwera WWW na komputerze lokalnym
PHP Operacje na datach Damian Urbańczyk. Operacje na datach? Dzięki odpowiednim funkcjom PHP, możemy dokonywać operacji na datach. Funkcje date() i time()
HTML Podstawy języka hipertekstowego Damian Urbańczyk.
XHTML Odsyłacze tekstowe i graficzne Damian Urbańczyk.
Prezentacja dla klasy III gimnazjum Przedmiot: matematyka Dział: Funkcje Temat: Graficzna ilustracja układów równań (lekcja pierwsza)
Ruch jednostajny po okręgu Ciało porusza się ruchem jednostajnym oraz torem tego ruchu jest okrąg.
Optyka Widmo Światła Białego Dyfrakcja i Interferencja
Klaudia Sodzawiczny kl.3 AE Adrianna Kuwałek kl. 3 AE
Warsztaty C# Część 3 Grzegorz Piotrowski Grupa.NET PO
Opracowała: Iwona Kowalik
SKALA MAPY Skala – stosunek odległości na mapie do odpowiadającej jej odległości w terenie. Skala najczęściej wyrażona jest w postaci ułamka 1:S, np. 1:10.
1 Strategia dziel i zwyciężaj Wiele ważnych algorytmów ma strukturą rekurencyjną. W celu rozwiązania rozwiązania problemu algorytm wywołuje sam siebie.
Biznes Społecznie Odpowiedzialny My też mamy coś do powiedzenia! Ogólnopolski Konkurs CSR Biznes Społecznie Odpowiedzialny My też mamy coś do powiedzenia!
Budowa programu #include /*instrukcje preprocesora */ #include int main(void) { /*podstawowa funkcja programu */ int a=1; /*deklaracja i inicjalizacja.
Prostokątny układ współrzędnych na płaszczyźnie
Są w życiu chwile, kiedy tak bardzo odczuwamy brak obecności innych,
Próbna matura z matematyki Piotr Ludwikowski. Rozporządzenie MEN z dnia 30 kwietnia 2007 w sprawie warunków i sposobu oceniania, klasyfikowania i promowania.
ZŁUDZENIA OPTYCZNE Większe, mniejsze? Jest czy nie ma? Wygięte! ..?
Zadanie: przy pomocy algorytmu simplex rozwiązać następujące zadanie programowania liniowego: przy ograniczeniach: Autor: Michał KĘPIEŃ (I4X2S0)
Galvanic Spa System II This document is for use by Nu Skin Enterprises Europe staff and independent distributors. It is not to be circulated to members.
Psychologia w sprzedaży. Co wpływa na decyzje klienta? Załącznik do videocastu nr 2 Agata Matuszewska.
Temat 5: Elementy meta.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Magic Janusz ROŻEJ Komtech Sp. z o.o.
w/g Grzegorz Gadomskiego
Największym bólem w życiu nie jest śmierć, lecz bycie ignorowanym.
FORMY CZASOWNIKA ‘mieć = have got’
Zapis prezentacji:

Programowanie liniowe Wykład 3

Optymalizacja bez ograniczeń Optymalizacja z ograniczeniami Programowanie Liniowe Programowanie Nieliniowe programming – arch. planning Elementy optymalizacji z ograniczeniami: Zmienne decyzyjne [decision variables] Funkcja celu [objective function] Ograniczenia [constraints] Ograniczenia zmiennych [variable bounds]

Firma Rowerek Firma Rowerek produkuje ręcznie dwa rodzaje rowerów: Rowery górskie Ścigacze szosowe I chce wyznaczyć tempo produkcji każdego rodzaju roweru tak, aby zmaksymalizować zysk ze sprzedaży. Firma Rowerek zakłada, że może sprzedać wszystko co wyprodukowała. Dwa różne zespoły produkują różne rodzaje rowerów: Zespół od rowerów górskich max 2 rowery dziennie Zespół od ścigaczy szosowych max 3 rowery dziennie Do każdego typu roweru potrzebny jest jednakowa ilość czasu na maszynie do wykańczania metalu Maszyna może obrobić do 4 rowerów dziennie Księgowy szacuje, że rowery generują następujące zyski: Górski $15 Szosowy $10

Rozwiązanie Rozwiązanie intuicyjne: Produkujemy najwięcej górali jak się da (max 2) a resztę mocy przeznaczamy na szosowe (2). Tym samym generujemy łączny dzienny zysk równy $50. Programowanie liniowe (rozwiązanie musi się zgadzać z intuicją) Zmienne decyzyjne: liczba produkowanych górali x1 oraz szosowych x2 Zmienne te muszą być nieujemne x1≥0, x2≥0 Funkcja celu: max dzienny zysk: max Z=15x1+10x2 (w $ na dzień) Ograniczenia: Dzienny limit produkcji górali: x1≤2 (w rowerach na dzień) Dzienny limit produkcji szosowych: x2≤3 (w rowerach na dzień) Limit prod.maszyny do wykańczania metalu: x1+x2 ≤ 4 (w rowerach na dzień)

Ważne są wierzchołki Region dopuszczalny (feasible region) Linie jednakowego zysku to linie równoległe Zysk powiększa się w kierunku gradientu funkcji celu Wierzchołki “najbardziej wystają na zewnątrz” Optimum to wierzchołek bądź ściana razem z wierzchołkami Optymalny może być jeden wierzchołek lub dwa sąsiadujące ze sobą Jeśli dwa wierzchołki są optymalne, to linia je łącząca też jest optymalna

Założenia programowania liniowego Liniowy względem zmiennych decyzyjnych Własność addytywności i proporcjonalności Wyklucza krzywe, funkcje krokowe oraz czynniki interakcji, np. 5x1x2, koszty wystartowania start-up Zakłada, że zmienne przyjmują wartości rzeczywiste Wyklucza zmienne całkowitoliczbowe Programowanie w ogólności zakłada, że znane są wszystkie parametry Jednak można przeprowadzić analizę wrażliwości (sensitivity analysis)

Zadanie Programowania Liniowego (ZPL) w formie standardowej [the standard form LP] Charakterystyka: Funkcja celu maksymalizowana Wszystkie ograniczenia typu ≤ Wszystkie ograniczenia mają nieujemną prawą stronę Wszystkie zmienne są nieujemne Reprezentacja algebraiczna: Funkcja celu: m ograniczeń funkcjonalnych Ograniczenia nieujemności

W praktyce Solvery używane w praktyce wykorzystują różne rodzaje input formats: Bezpośrednia reprezentacja algebraiczna z ograniczeniami zapisanymi explicite Reprezentacja arkuszu kalkulacyjnego, ogólnie z kolumnami jako zmiennymi i wierszami jako ograniczeniami Język algebraiczny, który pozwala na wykorzystanie sum i indeksów przez co model zapisany jest bardzo kompaktowo – najlepsze w praktyce Indywidualne formaty

Model z 1963 roku Mamy dwie fabryki (Seattle i San Diego) i trzy rynki zbytu (New York, Chicago i Topeka) Uwzględniając popyt rynków zbytu oraz podaż fabryk celem jest minimalizacja kosztów transportu homogenicznego towaru pomiędzy fabrykami a rynkami zbytu

Parę definicji Rozwiązanie (solution) Rozwiązanie wierzchołkowe (cornerpoint solution) Dopuszczalne rozwiązanie wierzchołkowe (feasible cornerpoint solution) Sąsiadujące rozwiązania wierzchołkowe (adjacent cornerpoint solutions)

Kluczowe własności programu liniowego Punkt optymalny jest zawsze w dopuszczalnym rozwiązaniu wierzchołkowym Jeśli wartość funkcji celu dla danego dopuszczalnego rozwiązania wierzchołkowego jest wyższa lub równa wartości funkcji celu dla wszystkich sąsiadujących dopuszczalnych rozwiązań wierzchołkowych, to to rozwiązanie jest optymalne Jest skończona liczba dopuszczalnych rozwiązań wierzchołkowych Konsekwencje Szukaj tylko wśród wierzchołków Łatwo stwierdzić kiedy dany punkt jest optimum Jest zagwarantowane, że metoda osiągnie optimum

Metoda simplex Dwie fazy: Faza pierwsza (start-up) – znajdź jakiekolwiek dopuszczalne rozwiązanie wierzchołkowe dlatego ZPL w postaci standardowej jest wygodne, ponieważ początek układu współrzędnych zawsze jest dopuszczalnym rozwiązaniem wierzchołkowym Jeśli nie ma postaci standardowej, wymagana jest specjalna metoda, o której później Faza druga (iteracje) – przesuwaj się do sąsiadujących dopuszczalnych rozwiązań wierzchołkowych, które są lepsze od poprzedniego, aż nie będzie już lepszych

Algebraiczne znajdowanie wierzchołków Prawdziwe problemy mają miliony zmiennych Nie da się przedstawić graficznie Stąd potrzebny algebraiczny sposób Dla problemu w postaci standardowej trzeba zamienić ograniczenia w postaci nierówności w ograniczenia w postaci równości A następnie wyznaczyć rozwiązanie układu podzbioru równań Podzbiór – ponieważ zwykle wszystkie równości nie mogą jednocześnie zachodzić Potrzebujemy sposobu, aby pamiętać, które równania są obecnie wybrane do podzbioru (czyli aktywne) Rozwiązaniem powyższych problemów jest włączenie zmiennych luzu (slack variables), na przykład: x1 ≤ 2 zamieniamy na x1 + s1 = 2, gdzie s1 ≥ 0 jest zmienną luzu

Dla firmy Rowerek Problem w dwóch wymiarach jest teraz problemem w 5 wymiarach Zmienna luzu przyjmuje dodatnią wartość tylko wtedy, gdy dane ograniczenie nie jest aktywne Więcej terminologii Rozwiązanie rozszerzone (augmented solution): wartości wszystkich zmiennych łącznie ze zmiennymi luzu, np. optymalne rozwiązanie rozszerzone dla Rowerka to x1,x2,s1,s2,s3 = (2,2,0,1,0) Rozwiązanie bazowe (basic solution): rozszerzone rozwiązanie wierzchołkowe (może być dopuszczalne lub niedopuszczalne), np. (2,3,0,0,-1) jest rozwiązaniem bazowym niedopuszczalnym Dopuszczalne rozwiązanie bazowe (basic feasible solution), dopuszczalne rozszerzone rozwiązanie wierzchołkowe np. (0,3,2,0,1)

Ustalanie wartości dla zmiennych Stopnie swobody (degrees of freedom df) df = (liczba zmiennych w postaci równania) - (liczba niezależnych równań) Metoda simplex automatycznie przyporządkuje wartość zero (odpowiednie ograniczenie jest aktywne) dla df sposród zmiennych a następnie wyznaczy wartości pozostałych zmiennych x1=0 znaczy, że ograniczenie x1 ≥ 0 jest aktywne x2=0 znaczy, że ograniczenie x2 ≥ 0 jest aktywne s1=0 znaczy, że ograniczenie x1 ≤ 2 jest aktywne s2=0 znaczy, że ograniczenie x2 ≤ 3 jest aktywne s3=0 znaczy, że ograniczenie x1+x2 ≤ 4 jest aktywne W naszym przykładzie df=2, zatem simplex przyporządkuje dwóm spośród pięciu zmiennych wartość 0.

Niebazowa, wartość zmiennej do zera, ograniczenie aktywne Ostatnie uwagi terminologiczne: Zmienna niebazowa (nonbasic variable): zmienna, której metoda simplex obecnie przyporządkowuje wartość 0 Zmienna bazowa (basic variable): zmienna, której metoda simplex obecnie nie przyporządkowuje wartości 0 W postaci standardowej dodatnie Ale mogą być zerowe w specjalnych okolicznościach Baza (a basis): Zbiór obecnych zmiennych bazowych Niebazowa, wartość zmiennej do zera, ograniczenie aktywne Możemy zgadnąć bazę, ale trzeba uważać, ponieważ Możemy dostać niedopuszczalny wierzchołek (rysunek wcześniej) Możemy nawet nie dostać wierzchołka w ogóle (rysunek poniżej)

Przejście do lepszego dopuszczalnego rozwiązania bazowego Wierzchołek sąsiadujący jest dobrym kandydatem, ponieważ: W dwóch sąsiadujących wierzchołkach zbiór bazowy oraz niebazowy są identyczne za wyjątkiem jednego elementu Na przykład: Punkt A: zbiór niebazowy = {s1,s3}, zbiór bazowy = {x1,x2,s1} Punkt B: zbiór niebazowy = {s1,s2}, zbiór bazowy = {x1,x2,s3} Nie jest to jednak warunek wystarczający, aby dwa wierzchołki sąsiadowały (patrz punkty (0,4) oraz (4,0))

Trzy warunki przy przejściu między wierzchołkami: Muszą ze sobą sąsiadować Oba muszą być dopuszczalne Nowy punkt musi mieć lepszą wartość funkcji celu Dwa kroki procedury: Wyznacz zmienną niebazową, która najbardziej poprawi funkcję celu, jeśli będzie miała niezerową wartość. Przesuń tą zmienną ze zbioru niebazowego do zbioru bazowego (zmienna bazowa wchodząca entering basic variable) Podnieś wartość zmiennej bazowej wchodzącej do momentu, w którym jedna ze zmiennych bazowych osiągnie wartość zero. Przenieś tą zmienną do zbioru niebazowego (zmienna bazowa wychodząca leaving basic variable) x1 najbardziej poprawi funkcję celu Ograniczenie x1 ≥ 0 przestaje być aktywne Wiemy, w którym kierunku się poruszamy, bo tylko x1 może wzrastać Ograniczenie, które zostanie “przecięte” jako pierwsze to x1 ≤ 2.

Algebraicznie W początku układu odniesienia sytuacja jest następująca: Zmienne bazowe: s1,s2,s3 Zmienne niebazowe: x2 Bazowa zmienna wchodząca: x1 W nowym wierzchołku, który znajduje się na przecięciu krańcowych wartości ograniczeń x2 ≥ 0 i x1 ≤ 2 (punkt (2,0)), baza to: Zmienne bazowe: x1,s2,s3 Zmienne niebazowe: x2,s1 Nastąpiła wymiana zmiennych x1 oraz s1

Test minimalnego ułamka (minimum ratio test) Aby znaleźć bazową zmienną wychodzącą musimy znaleźć najmniejszą wartość następującego wyrażenia W naszym przykładzie mianownik był zawsze 1, ale ogólnie może być różny od 1 Dwa szczególne przypadki: Jeśli współczynnik bazowej zmiennej wchodzącej jest 0 (ograniczenie nie przecina ciągle aktywnych ograniczeń reprezentowanych przez pozostałe zmienne niebazowe) Jeśli współczynnik bazowej zmiennej wchodzącej jest ujemny (ograniczenie coprawda przecina ciągle aktywne ograniczenia, ale kierunek wzrostu bazowej zmiennej wchodzącej jest w przeciwnym kierunku do punktu przecięcia)

Znajdowanie nowego bazowego rozwiązania dopuszczalnego Znaleźliśmy nową bazę – co dalej? Można podstawić wartość zero pod wszystkie zmienne niebazowe i następnie metodą eliminacji Gaussa rozwiązać pozostały system m×m równań liniowych Bardziej efektywną metodą jest uaktualnienie obecnego zbioru równań przy wykorzystaniu tylko części eliminacji Gaussa Kiedy przerwać iterowanie? Kiedy nie możemy znaleźć bazowej zmiennej wchodzącej.

Metoda simplex

Tabelka simplex Oto tabelka simplex dla początkowego punktu Tabelka podana jest w formie właściwej (proper form) Dokładnie jedna zmienna bazowa na równanie Współczynnik zmiennej bazowej jest zawsze +1 a współczynniki nad i pod zmienną bazową są 0 Z jest traktowana jak zmienna bazowa równania funkcji celu Zaletą formy właściwej jest to, że obecne rozwiązanie można bezpośrednio odczytać z tabelki

2.1 Czy już jesteśmy w optimum? Nie, ponieważ mamy 2 ujemne współczynniki w rzędzie pierwszym 2.2 Wybieramy bazową zmienną wchodzącą Najbardziej ujemny współczynnik jest przy zmiennej x1 2.3 Wybieram bazową zmienną wychodzącą Test minimalnego ułamka: Jeśli w kolumnie pivot (pivot column) jest zero bądź liczba ujemna wpisz „no limit” Najmniejsza wartość 2: to jest wiersz pivot (pivot raw) Element pivot (Pivot element)

2.4 Uaktualnij tabelkę W kolumnie zmienna bazowa, zastąp bazową zmienną wychodzącą przez bazową zmienną wchodzącą Jeśli element pivot nie jest równy 1, podziel wszystkie elementy wiersza pivot przez wartość elementu pivot (my nie musimy) Eliminujemy wszystkie współczynniki w kolumnie pivot poza elementem pivot.

Kontynuujemy Nowe rozwiązanie (x1,x2,s1,s2,s3)=(2,0,0,3,2), Funkcja celu Z=30 2.1 Nie jesteśmy jeszcze w optymalnym punkcie 2.2, 2.3 Nowa bazowa zmienna wchodząca i zmienna wychodząca 2.4 Z powrotem do formy właściwej

Przypadki specjalne Remis przy wyborze bazowej zmiennej wchodzącej, np. Z = 15x1+15x2 Remis przy wyborze bazowej zmiennej wychodzącej - Wybierz jaką chcesz – i tak wierzchołek będzie ten sam. Zmienna, która nie zostanie wybrana na bazową zmienną wychodzącą pozostanie bazowa, ale będzie miała wyliczoną wartość 0 Zmienna, która została wybrana będzie miała przyporządkowaną przez simplex wartość 0 Bazowe rozwiązanie dopuszczalne w takim przypadku nazywamy rozwiązaniem zdegenerowanym (degenerate solution) – może prowadzić do cykli (cycles) w więcej niż dwóch wymiarach (wierzchołki A,C – B,C – A,C)

Załóżmy, że test minimalnego ułamka daje wszędzie „no limit” – wówczas problem jest nieograniczony (unbounded) i ma nieograniczone rozwiązanie Najczęściej znaczy, że zapomniałeś/aś ograniczenia W optimum współczynniki niektórych zmiennych niebazowych mają wartość zero w wierszu funkcji celu Wybór tej zmiennej do bazy nie ma wpływu na wartość funkcji celu Ale zmienia się bazowe rozwiązanie dopuszczalne Taka sytuacja znaczy, że mamy wiele więcej niż jedno rozwiązanie optymalne (multiple optimum solutions)