Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie Liniowe 1

Podobne prezentacje


Prezentacja na temat: "Programowanie Liniowe 1"— Zapis prezentacji:

1 Programowanie Liniowe 1
DMBO Programowanie Liniowe 1

2 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]

3 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

4 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ń)

5 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

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

7 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

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

9 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

10 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

11 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

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

13 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.

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

15 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 = {s2,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))

16 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.

17 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

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

19 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.

20 Metoda simplex

21 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

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

23 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.

24 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

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

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

27 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

28 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

29

30


Pobierz ppt "Programowanie Liniowe 1"

Podobne prezentacje


Reklamy Google