300 likes | 499 Views
DMBO. Programowanie Liniowe 1. Optymalizacja bez ograniczeń Optymalizacja z ograniczeniami Programowanie Liniowe Programowanie Nieliniowe programming – arch. planning Elementy optymalizacji z ograniczeniami : Zmienne decyzyjne [ decision variables ]
E N D
DMBO Programowanie Liniowe 1
Optymalizacjabezograniczeń • Optymalizacja z ograniczeniami • ProgramowanieLiniowe • ProgramowanieNieliniowe programming – arch. planning Elementyoptymalizacji z ograniczeniami: • Zmiennedecyzyjne [decision variables] • Funkcjacelu [objective function] • Ograniczenia [constraints] • Ograniczeniazmiennych [variable bounds]
Firma Rowerek • Firma Rowerekprodukujeręczniedwarodzajerowerów: • Rowerygórskie • Ścigaczeszosowe • I chcewyznaczyć tempo produkcjikażdegorodzajurowerutak, abyzmaksymalizowaćzyskzesprzedaży. • Firma Rowerekzakłada, żemożesprzedaćwszystko co wyprodukowała. • Dwaróżnezespołyprodukująróżnerodzajerowerów: • Zespół od rowerówgórskich max 2 rowerydziennie • Zespół od ścigaczyszosowych max 3 rowerydziennie • Do każdegotypurowerupotrzebny jest jednakowailośćczasunamaszynie do wykańczaniametalu • Maszynamożeobrobić do 4 rowerówdziennie • Księgowyszacuje, żerowerygenerująnastępującezyski: • Górski $15 • Szosowy $10
Rozwiązanie • Rozwiązanieintuicyjne: • Produkujemynajwięcejgóralijaksię da (max 2) a resztęmocyprzeznaczamynaszosowe (2). • Tymsamymgenerujemyłącznydziennyzyskrówny $50. • Programowanieliniowe(rozwiązaniemusisięzgadzać z intuicją) • Zmiennedecyzyjne: liczbaprodukowanychgórali x1orazszosowych x2 • Zmiennetemusząbyćnieujemne x1≥0, x2≥0 • Funkcjacelu: max dziennyzysk: max Z=15x1+10x2 (w $ nadzień) • Ograniczenia: • Dzienny limit produkcjigórali: x1≤2(w rowerachnadzień) • Dzienny limit produkcjiszosowych: x2≤3 (w rowerachnadzień) • Limit prod.maszyny do wykańczaniametalu: x1+x2 ≤ 4 (w rowerachnadzień)
Ważnesąwierzchołki • Region dopuszczalny (feasible region) • Liniejednakowegozysku to linierównoległe • Zyskpowiększasię w kierunkugradientu funkcji celu • Wierzchołki “najbardziejwystająnazewnątrz” • Optimum to wierzchołekbądźścianarazem z wierzchołkami • Optymalnymożebyćjedenwierzchołeklubdwasąsiadującezesobą • Jeślidwawierzchołkisąoptymalne, to linia je łączącateż jest optymalna
Założeniaprogramowanialiniowego • Liniowywzględemzmiennychdecyzyjnych • Własnośćaddytywności i proporcjonalności • Wykluczakrzywe, funkcjekrokoweorazczynnikiinterakcji, np. 5x1x2, kosztywystartowaniastart-up • Zakłada, żezmienneprzyjmująwartościrzeczywiste • Wykluczazmiennecałkowitoliczbowe • Programowanie w ogólnościzakłada, żeznanesąwszystkieparametry • Jednakmożnaprzeprowadzićanalizęwrażliwości (sensitivity analysis)
ZadanieProgramowaniaLiniowego (ZPL) w formiestandardowej [the standard form LP] Charakterystyka: • Funkcjacelumaksymalizowana • Wszystkieograniczeniatypu ≤ • Wszystkieograniczeniamająnieujemnąprawąstronę • Wszystkiezmiennesąnieujemne Reprezentacjaalgebraiczna: • Funkcjacelu: • m ograniczeńfunkcjonalnych • Ograniczenianieujemności
Parędefinicji • Rozwiązanie (solution) • Rozwiązaniewierzchołkowe (cornerpoint solution) • Dopuszczalnerozwiązaniewierzchołkowe (feasible cornerpoint solution) • Sąsiadującerozwiązaniawierzchołkowe (adjacent cornerpoint solutions)
Kluczowewłasnościprogramuliniowego • Punktoptymalny jest zawszewdopuszczalnymrozwiązaniuwierzchołkowym • Jeśliwartośćfunkcjiceludladanegodopuszczalnegorozwiązaniawierzchołkowego jest wyższalubrównawartościfunkcjiceludlawszystkichsąsiadującychdopuszczalnychrozwiązańwierzchołkowych, to to rozwiązanie jest optymalne • Jest skończonaliczbadopuszczalnychrozwiązańwierzchołkowych Konsekwencje • Szukajtylkowśródwierzchołków • Łatwostwierdzićkiedydanypunkt jest optimum • Jest zagwarantowane, żemetodaosiągnie optimum
Metoda simplex Dwiefazy: • Fazapierwsza (start-up) – znajdźjakiekolwiekdopuszczalnerozwiązaniewierzchołkowe • dlatego ZPL w postacistandardowej jest wygodne, ponieważpoczątekukładuwspółrzędnychzawsze jest dopuszczalnymrozwiązaniemwierzchołkowym • Jeślinie ma postacistandardowej, wymagana jest specjalnametoda, o którejpóźniej • Fazadruga (iteracje) – przesuwajsię do sąsiadującychdopuszczalnychrozwiązańwierzchołkowych, któresąlepsze od poprzedniego, ażniebędziejużlepszych
Algebraiczneznajdowaniewierzchołków • Prawdziweproblemymająmilionyzmiennych • Nie da sięprzedstawićgraficznie • Stądpotrzebnyalgebraicznysposób • Dlaproblemu w postacistandardowejtrzebazamienićograniczenia w postacinierówności w ograniczenia w postacirówności • A następniewyznaczyćrozwiązanieukładupodzbiorurównań • Podzbiór – ponieważzwyklewszystkierównościniemogąjednocześniezachodzić • Potrzebujemysposobu, abypamiętać, którerównaniasąobecniewybrane do podzbioru (czyliaktywne) • Rozwiązaniempowyższychproblemów jest włączeniezmiennychluzu (slack variables), naprzykład: x1 ≤ 2 zamieniamyna x1 + s1 = 2, gdzie s1≥ 0 jest zmiennąluzu
DlafirmyRowerek • Problem w dwóchwymiarach jest terazproblemem w 5 wymiarach • Zmiennaluzuprzyjmujedodatniąwartośćtylkowtedy, gdydaneograniczenienie jest aktywne Więcejterminologii • Rozwiązanierozszerzone (augmented solution): wartościwszystkichzmiennychłączniezezmiennymiluzu, np. optymalnerozwiązanierozszerzonedlaRowerka to x1,x2,s1,s2,s3 = (2,2,0,1,0) • Rozwiązaniebazowe (basic solution): rozszerzonerozwiązaniewierzchołkowe (możebyćdopuszczalnelubniedopuszczalne), np. (2,3,0,0,-1) jest rozwiązaniembazowymniedopuszczalnym • Dopuszczalnerozwiązaniebazowe (basic feasible solution), dopuszczalnerozszerzonerozwiązaniewierzchołkowenp. (0,3,2,0,1)
Ustalaniewartościdlazmiennych • Stopnieswobody(degrees of freedom df) df = (liczbazmiennych w postacirównania) - (liczbaniezależnychrównań) • Metoda simplex automatycznieprzyporządkujewartość zero (odpowiednieograniczenie jest aktywne) dladfsposródzmiennych a następniewyznaczywartościpozostałychzmiennych • x1=0 znaczy, żeograniczenie x1 ≥ 0 jest aktywne • x2=0 znaczy, żeograniczenie x2≥ 0 jest aktywne • s1=0 znaczy, żeograniczenie x1 ≤ 2 jest aktywne • s2=0 znaczy, żeograniczenie x2≤ 3 jest aktywne • s3=0 znaczy, żeograniczenie x1+x2 ≤ 4 jest aktywne • W naszymprzykładziedf=2, zatem simplex przyporządkujedwómspośródpięciuzmiennychwartość 0.
Ostatnieuwagiterminologiczne: • Zmiennaniebazowa (nonbasic variable): zmienna, którejmetoda simplex obecnieprzyporządkowujewartość 0 • Zmiennabazowa (basic variable): zmienna, którejmetoda simplex obecnienieprzyporządkowujewartości 0 • W postacistandardowejdodatnie • Ale mogąbyćzerowe w specjalnychokolicznościach • Baza (a basis): Zbiórobecnychzmiennychbazowych Niebazowa, wartośćzmiennej do zera, ograniczenieaktywne • Możemyzgadnąćbazę, ale trzebauważać, ponieważ • Możemydostaćniedopuszczalnywierzchołek (rysunekwcześniej) • Możemynawetniedostaćwierzchołka w ogóle (rysunekponiżej)
Przejście do lepszegodopuszczalnegorozwiązaniabazowego • Wierzchołeksąsiadujący jest dobrymkandydatem, ponieważ: • W dwóchsąsiadującychwierzchołkachzbiórbazowyorazniebazowysąidentycznezawyjątkiemjednegoelementu • Na przykład: • Punkt A: zbiórniebazowy = {s2,s3}, zbiórbazowy = {x1,x2,s1} • Punkt B: zbiórniebazowy = {s1,s2}, zbiórbazowy = {x1,x2,s3} Nie jest to jednakwarunekwystarczający, abydwawierzchołkisąsiadowały (patrzpunkty (0,4) oraz (4,0))
Trzywarunkiprzyprzejściumiędzywierzchołkami: • Muszązesobąsąsiadować • Oba musząbyćdopuszczalne • Nowypunktmusimiećlepsząwartośćfunkcjicelu • Dwakrokiprocedury: • Wyznaczzmiennąniebazową, któranajbardziejpoprawifunkcjęcelu, jeślibędziemiałaniezerowąwartość. Przesuńtązmiennązezbioruniebazowego do zbiorubazowego (zmiennabazowawchodzącaentering basic variable) • Podnieśwartośćzmiennejbazowejwchodzącej do momentu, w którymjednazezmiennychbazowychosiągniewartość zero. Przenieśtązmienną do zbioruniebazowego (zmiennabazowawychodzącaleaving basic variable) • x1najbardziejpoprawifunkcjęcelu • Ograniczenie x1≥ 0 przestajebyćaktywne • Wiemy, w którymkierunkusięporuszamy, botylko x1możewzrastać • Ograniczenie, którezostanie “przecięte” jakopierwsze to x1 ≤ 2.
Algebraicznie • W początkuukładuodniesieniasytuacja jest następująca: • Zmiennebazowe: s1,s2,s3 • Zmienneniebazowe: x2 • Bazowazmiennawchodząca: x1 • W nowymwierzchołku, któryznajdujesięnaprzecięciukrańcowychwartościograniczeń x2 ≥ 0 i x1 ≤ 2 (punkt (2,0)), bazato: • Zmiennebazowe: x1,s2,s3 • Zmienneniebazowe: x2,s1 • Nastąpiławymianazmiennych x1oraz s1
Test minimalnegoułamka (minimum ratio test) • Abyznaleźćbazowązmiennąwychodzącąmusimyznaleźćnajmniejsząwartośćnastępującegowyrażenia • W naszymprzykładziemianownikbyłzawsze 1, ale ogólniemożebyćróżny od 1 • Dwaszczególneprzypadki: • Jeśliwspółczynnikbazowejzmiennejwchodzącej jest 0 (ograniczenienieprzecinaciągleaktywnychograniczeńreprezentowanychprzezpozostałezmienneniebazowe) • Jeśliwspółczynnikbazowejzmiennejwchodzącej jest ujemny (ograniczeniecoprawdaprzecinaciągleaktywneograniczenia, ale kierunekwzrostubazowejzmiennejwchodzącej jest w przeciwnymkierunku do punktuprzecięcia)
Znajdowanienowegobazowegorozwiązaniadopuszczalnego • Znaleźliśmynowąbazę – co dalej? • Możnapodstawićwartość zero pod wszystkiezmienneniebazowe i następniemetodąeliminacjiGaussarozwiązaćpozostały system m×mrównańliniowych • Bardziejefektywnąmetodą jest uaktualnienieobecnegozbiorurównańprzywykorzystaniutylkoczęścieliminacjiGaussa • Kiedyprzerwaćiterowanie? • Kiedyniemożemyznaleźćbazowejzmiennejwchodzącej.
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(pivotcolumn) jest zero bądź liczba ujemna wpisz „no limit” • Najmniejsza wartość 2: to jest wiersz pivot (pivotraw) 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 (degeneratesolution) – 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)
W praktyce • Solveryużywane w praktycewykorzystująróżnerodzajeinput formats: • Bezpośredniareprezentacjaalgebraicznaz ograniczeniamizapisanymiexplicite • Reprezentacjaarkuszukalkulacyjnego, ogólnie z kolumnamijakozmiennymi i wierszamijakoograniczeniami • Językalgebraiczny, którypozwalanawykorzystanie sum i indeksówprzez co model zapisany jest bardzokompaktowo – najlepsze w praktyce • Indywidualneformaty
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