LINEARNO PROGRAMIRANJE Linearno programiranje Mnogi problemi za ije
LINEARNO PROGRAMIRANJE
Linearno programiranje Mnogi problemi za čije rešavanje tražimo algoritme su optimizacioni zadaci: zadaci najkraći putevi, najjeftinije razapinjuće stablo, najduži rastući niz, itd. Takvi su i problem trgovačkog putnika, problem ranca, itd. U takvim slučajevima mi tražimo rešenje 1) koje zadovoljava izvesna ograničenja (na primer, da niz bude rastući), 2) koje je najbolje moguće, u odnosu na neki precizno određen kriterijum, među svim rešenjima koja zadovoljavaju ta ograničenja. Linearno programiranje je algoritamska tehnika koja se može primeniti na široku klasu optimizacionih zadataka kod kojih su i ograničenja i optimizacioni kriterijum zadati linearnim funkcijama. Ispostavilo se da se ogroman broj problema može izraziti na takav način.
Problemi linearnog programiranja Na prethodnim časovima smo videli kako se razni problemi mogu predstaviti kao problemi dinamičkog programiranja. Sada ćemo videti kako date probleme predstavljamo kao probleme linearnog programiranja. Da bi zadali jedan problem linearnog programiranja, programiranja najpre treba da imamo zadat skup promenljivih koje uzimaju realne vrednosti. Potom tražimo takve vrednosti tih promenljivih da 1) bude zadovoljen skup linearnih jednačina i/ili linearnih nejednačina koje uključuju te promenljive, promenljive 2) bude maksimizovana ili minimizovana data linearna ciljna funkcija.
Maksimizacija profita •
Maksimizacija profita •
Maksimizacija profita •
Maksimizacija profita •
Maksimizacija profita •
Rešavanje linearnih programa Jedan od glavnih načina rešavanja linearnih programa je simpleks metod Kod simpleks metoda krećemo od nekog temena izvodljivog regiona, i potom idemo od jednog do drugog susednog temena regiona tražeći više vrednosti ciljne funkcije u njima. Onda kada dođemo do temena koje nema susede sa višom vrednošću ciljne funkcije, funkcije simpleks metod nam kaže da je optimum dostignut, dostignut i algoritam se završava Zašto ovaj lokalni test daje globalnu optimalnost? optimalnost U pitanju je konveksnost poligona – ako susedi temena leže ispod prave profita, tada i ceo poligon leži ispod te prave
Maksimizacija profita – uvođenje trećeg proizvoda •
Maksimizacija profita – uvođenje trećeg proizvoda Prostor rešenja je sada tro-dimenzionalan. Svaka linearna jednačina određuje ravan u tom prostoru, a linearna nejednačina poluprostor sa jedne strane ravni. U našem konkretnom primeru, izvodljivi region je presek sedam poluprostora, odnosno poliedar
Maksimizacija profita – uvođenje trećeg proizvoda •
Maksimizacija profita – uvođenje trećeg proizvoda Postavlja se pitanje: Šta ako fabrika želi da doda još novih proizvoda? U tom slučaju problem postaje više-dimenzionalan i težak za vizualizaciju. Simpleks metod će i dalje raditi, ali ćemo izgubiti onakvu geometrijsku intuiciju za njegovo opisivanje i potvrđivanje, kakvu smo imali u dvo-dimenzionalnom i tro-dimenzionalnom slučaju.
Planiranje proizvodnje •
Planiranje proizvodnje •
Planiranje proizvodnje •
Planiranje proizvodnje •
Optimalna alokacija propusne moći •
Optimalna alokacija propusne moći •
Optimalna alokacija propusne moći •
Optimalna alokacija propusne moći Primetimo takođe da rešenje nije celobrojno, što ovde nije bitno, jer se i ne traži celobrojno rešenje. Konačno, primetimo da ovde pridružujemo po jednu promenljivu za svaki mogući put između korisnika. Međutim, u većoj mreži, taj broj puteva će eksponencijalno rasti. To znači da ovakav način prevođenja mrežnog problema u linearni program u opštem slučaju nije dobar. U narednim razmatranjima razmotrićemo bolji pristup mrežnim problemima.
Varijante linearnog programiranja •
Varijante linearnog programiranja •
Matrično-vektorska notacija •
Protok u mrežama •
Protok u mrežama •
Protok u mrežama •
Detaljnije o algoritmu •
Detaljnije o algoritmu •
Detaljnije o algoritmu •
Detaljnije o algoritmu •
Primer algoritma Razmotrimo opet naš raniji primer sa naftovodom Zbog ove grane kapaciteta 1, protok možemo uvećati najviše do 1 U prvoj iteraciji imamo sledeće (izabrani put je boldiran)
Primer algoritma Prethodni protok Druga iteracija: Trenutni protok Prethodna rezidualna mreža Nova rezidualna mreža
Primer algoritma Prethodni protok Treća iteracija: Trenutni protok Prethodna rezidualna mreža Nova rezidualna mreža
Primer algoritma Prethodni protok Četvrta iteracija: Trenutni protok Prethodna rezidualna mreža Nova rezidualna mreža
Primer algoritma Prethodni protok Peta iteracija: Trenutni protok Prethodna rezidualna mreža Nova rezidualna mreža
Primer algoritma Prethodni protok Poslednja šesta iteracija: Trenutni protok Prethodna rezidualna mreža Nova rezidualna mreža
Potvrda optimalnosti •
Potvrda optimalnosti •
Potvrda optimalnosti •
Efikasnost algoritma •
Bipartitno uparivanje (Bipartite matching) Razmotrimo bipartitni graf na slici, gde su na levoj strani prikazani dečaci a na levoj devojčice, devojčice a grane povezuju one dečake i devojčice koji se međusobno vole Pitanje je: Da li je moguće formirati parove tako da svako ima tačno jednog partnera, i to onog koga voli? U žargonu teorije grafova to je tzv. savršeno uparivanje Videćemo da ovaj problem možemo prevesti na problem maksimalnog protoka, protoka i prema tome, na linearno programiranje
Birartitno uparivanje •
Dualnost Kao što smo ranije videli, u mrežama je protok uvek manji od kapaciteta rezova, ali je maksimalni protok jednak minimalnom kapacitetu rezova, rezova pri čemu svaki od njih služi kao potvrda optimalnosti onog drugog. Ovo nije srećan splet okolnosti kod problema maksimalnog protoka, već opšte pravilo linearnog programiranja koje nazivamo dualnost Princip dualnosti: Svaki maksimizacioni LP ima dualni minimizacioni LP, (i obratno) koji su vezani tako da: ▫ maksimalno rešenje prvog LP jednako je minimalnom rešenju drugog LP; ▫ svako od ta dva rešenja potvrđuje optimalnost onog drugog. Ovaj princip objasnićemo na najjednostavnijem primeru – na našem prvom primeru LP vezanom za proizvodnju dve vrste čokolade.
Dualnost •
Dualnost •
Dualnost •
Dualnost U opštem slučaju, imamo sledeću situaciju vezanu za primarni i dualni LP: Teorema o dualnosti: Ako linearni program ima ograničenu optimalnu vrednost, tada je ima i njegov dual, i te dve optimalne vrednosti su jednake.
Dualnost Matrična forma primarnog i dualnog LP:
Dualnost Najopštiji oblik primarnog i dualnog LP:
Matrične igre •
Matrične igre •
Matrične igre •
Matrične igre • (0, 1, 0) (0, 0, 0) (1, 0, 0) (0, 0, 1)
Matrične igre •
Matrične igre •
Matrične igre •
Matrične igre •
Simpleks algoritam •
Simpleks algoritam •
Simpleks algoritam Kao što se vidi sa slike, svako teme je jedinstvena tačka u kojoj se seče neki skup hiper-ravni. Na primer, tačka A je presečna za ②, ③ i ⑦. Sa druge strane, hiper-ravni (nejed -načine) ④ i ⑥ ne određuju teme već ivicu poliedra.
Simpleks algoritam •
Simpleks algoritam •
Algoritam •
Algoritam •
Algoritam •
Algoritam •
Algoritam
Algoritam
Vreme rada simpleksa •
Vreme rada simpleksa •
Vreme rada simpleksa •
- Slides: 72