590 likes | 908 Views
3. Simpleks metoda. Autor G. Dantzig. Simpleks metoda rješava problem linearnog programiranja (LP). LP je problem u kojem tražimo max ili min linearne funkcije na skupu rješenja sustava linearnih nejednadžbi ili (i) jednadžbi. Standardni problem maksimuma. max c’x Ax ≤ A 0
E N D
3. Simpleks metoda Autor G. Dantzig
Simpleks metoda rješava problem linearnog programiranja (LP) LP je problem u kojem tražimo max ili min linearne funkcije na skupu rješenja sustava linearnih nejednadžbi ili (i) jednadžbi.
Standardni problem maksimuma max c’x Ax≤ A0 x ≥ 0
Kanonski problem maksimuma max c’x Ax = A0 x ≥ 0
Standardni problem minimuma min c’x Ax≥A0 x ≥ 0
Kanonski problem minimuma min c’x Ax = A0 x ≥ 0
Terminologija za standardni problem maksimuma x je moguće rješenje (dopustivo) ako zadovoljava ograničenja Ax ≤ A0, x ≥ 0. S={x: Ax ≤ A0, x ≥ 0} je skup mogućihrješenja. z(x)=c’x je funkcija cilja. x*ε S za koji vrijedi z(x*) ≥ z(x) za svako x ε S naziva se optimalno rješenje.
Primjer… max (2x1 + x2) x1 + x2≤ 5 x1 ≤ 3 x2 ≤ 3 x1,x2 ≥ 0 Da li je x=(1,4) moguće rješenje? Da li je x=(2,3) moguće rješenje?
Terminologija za ostale probleme Moguće rješenje zadovoljava ograničenja. Funkcija cilja je z(x)=c’x kojoj tražimo najveću ili najmanju vrijednost. Optimalno rješenje je moguće rješenje u kojem funkcija cilja dostiže min ili max. Optimalna vrijednost funkcije cilja je njena najmanja ili najveća vrijednost na skupu.
Malo matematike…Osnovni pojmovi Skup mogućih rješenja S je konveksan poliedar. Poliedar- ima konačan broj vrhova i bridova. Skup je konveksan ako sadrži pravocrtnu spojnicu bilo koje svoje dvije točke. Pravocrtna spojnica je konveksna kombinacija dviju točaka x* i x’, odnosno x(α)=(1-α)x* +αx’, 0 ≤α≤1.
Još malo… Optimalno rješenje, ako postoji, nalazi se u baremjednom vrhu. Ako su dva rješenja optimalna, onda je svaka točka njihove pravocrtne spojnice također optimalno rješenje.
Ideja simpleks metode Metoda generira samo kandidate, dakle vrhove. Prva faza je generiranje jednog vrha. Druga faza je ˝hod˝ po vrhovima. Iz vrha u kojem se trenutno nalazi prelazi u bolji, susjedni vrh.Ako rješavamo problem max-bolji vrh ima veću vrijednost funkcije cilja.Ako rješavamo problem min-bolji vrh ima manju vrijednost funkcije cilja. (Ovo vrijedi ako rješenje nije degenerirano). Dva su vrha susjedna ako su spojena bridom. Postupak se zaustavlja u optimalnom vrhu ili u vrhu iz kojeg ˝vidi˝ da optimalno rješenje ne postoji.
Kako generirati vrh? Problem LP zapisujemo u kanonskom obliku. Dobivamo sustav jednadžbi s uvjetima nenegativnosti na varijable. U dobivenom sustavutražimo BMR-bazično moguće rješenje. • VRH • BMR
Kanonski oblik U sustav linearnih nejednadžbi Ax ≤ A0, x ≥ 0 uvode se dodatne varijable u ≥ 0, on prelazi u sustav jednadžbi s uvjetima nenegativnosti na sve varijable odnosno max c’x Ax+u= A0 x ≥ 0, u ≥ 0 . Varijable x zovemo strukturne, u dodatne. Primijetimo da koeficijenti u funkciji cilja uz dodatne varijable su nula.
Kanonski oblik ima… • m jednadžbi • n+m varijabli, n strukturnih varijabli x, m dodatnih varijabli u • Uvjete ne negativnosti na sve varijable.
Primjer … Standardni problem maksimuma max (2x1 + x2) x1 + x2≤ 5 x1 ≤ 3 x2 ≤ 3 x1,x2 ≥ 0 Kanonski oblik max (2x1 + x2) x1 + x2 + u1 = 5 x1 + u2 = 3 x2 + u3 = 3 x1,x2 ≥ 0,u1,u2,u3 ≥ 0
Početna simpleks tablica RHS ≥0 Iz kanonskog oblika zapisujemo tablicu. Početna baza je skup jediničnih vektora u tablici (matrici koeficijenata sustava). Ako je desna strana ograničenja A0nenegativna, bazu tvore vektori uz dodatne varijable i početno rješenje je x=0, u=A0 Ako u tablici kanonskog oblika nema svih jediničnih vektora uvodi se umjetna baza.
Bazično moguće rješenje Bazično moguće rješenje odgovara jednom vrhu u skupu mogućih rješenja S, odnosno strukturne varijable x su komponente vrha. Bazu u Rm tvore m linearno nezavisnih vektora. Svaki vektor prostora Rm može se na jedinstven način prikazati kao linearna kombinacija vektora baze. Bazu biramo iz stupaca matrice koeficijenata linearnog sustava kojem je desna strana nenegativna.
Ako je A0 ≥0 nenegativna kombinacija vektora baze onda je rješenje bazično i moguće. U svakoj simpleks tablici je jedna baza (gledamo koji vektori su jedinični). Varijable koje pripadaju bazi zovemo bazičnevarijable i njihove vrijednosti čitamo iz tablice. Preostale varijable zovemo nebazičnevarijable i sve imaju vrijednost 0.
Primjer… Kanonski oblik max (2x1 + x2) x1 + x2 + u1 = 5 x1 + u2 = 3 x2 + u3 = 3 x1,x2 ≥ 0,u1,u2,u3 ≥ 0 Provjera … Da li je RHS ≥ 0 ? RHS=A0
Gdje smo? Imamo 5 varijabli i 3 ograničenja. Broj bazičnih varijabli=broju ograničenja=3 Bazične varijable su u1,u2,u3. Nebazične varijable su x1 i x2, pa je x1=0,x2=0. Vrijednosti bazičnih varijabli čitamo iz tablice u1= 5, u2=3, u3=3.
Dobiveno je BMR Vrijednosti strukturnih varijabli (x1,x2)=(0,0) su komponente jednog vrha skupa mogućih rješenja. Funkcija cilja z(x)=2x1+x2 u dobivenom vrhu je z(0,0)=0.
Bazu u R3 biramo iz skupa vektora… A={A1,A2,U1,U2,U3} gdje je
Jedan zapis linearnog sustava je A0 =x1A1 +x2A2 +u1U1 +u2U2 +u3U3 odnosno vektor A0je linearna kombinacija skupa vektora A. Ako vektor A0 prikažemo kao linearnu kombinaciju vektora jedne baze dvije od 5 varijabli imati će vrijednost 0.
Vektor A0 prikazan je kao linearnakombinacija jediničnih vektora (jedne baze) Imamo A0=5U1 +3U2 +3U3 A0 je nenegativna kombinacija vektora baze pa je dobiveno rješenje bazično moguće.
Pitanja… Da li je skup vektora {A1,A2, U3} jedna baza prostora R3 ? Ako je, prikažite vektor A0 kao linearnu kombinaciju vektora baze. Da li je dobiveno rješenje bazično moguće? Ako je, odredite komponente vrha.
Odgovori… Da, jer je skup vektora linearno nezavisan i ima ih 3. A0=3A1 +2A2 +U3 Linearna kombinacija je nenegativna pa je dobiveno rješenje (x,u)=(3,2,0,0,1) bazično moguće x=(3,2) je vrh u S.
Ovaj dio pokazuje gdje smo i pitamo se dalje… Da li je dobiveni vrh optimalan? Ako je, da li je on jedino optimalno rješenje? Ako dobiveni vrh nije optimalan, kako postupiti dalje?
Smjer kretanja U dodatni redak tablice upisuje se i računa c(j)-z(j) Ako je c(j)-z(j)>0 ulazom vektora j u bazu vrijednost funkcije cilja raste. Ako je c(j)-z(j)<0 ulazom vektora j u bazu vrijednost funkcije cilja pada. Ako je c(j)-z(j)=0 ulazom vektora j u bazu vrijednost funkcije cilja se ne mijenja.
U primjeru dobivamo c(1)-z(1)=2>0 pa je aktiviranje varijable x1 po bridu poliedra iz vrha (0,0) smjer rasta funkcije cilja. Interpretacija : ako varijabla x1 s vrijednosti 0 naraste na vrijednost 1 na bridu funkcija cilja s vrijednosti 0 naraste na vrijednost 2.
… c(2)-z(2)=1>0 pa je aktiviranje varijable x2 po bridu poliedra iz vrha (0,0) smjer rasta funkcije cilja. Interpretacija : ako varijabla x2 s vrijednosti 0 naraste na vrijednost 1 funkcija cilja s vrijednosti 0 naraste na vrijednost 1.
Ocjena z(j)-c(j) bazičnih varijabli je 0. Dakle imamo ocjena varijable u1 je c(3)-z(3)=0 ocjena varijable u2je c(4)-z(4)=0 ocjena varijable u3 je c(5)-z(5)=0
Dobiveni vrh nije optimalan jer postoji veća vrijednost funkcije cilja od vrijednosti 0. Bira se ˝najbrži˝ smjer rasta po bridu iz vrha (0,0) radi dobivanja boljeg vrha. Kriterij ulaza vektora u bazu je max{c(j)-z(j): c(j)-z(j)>0, j=1,2} Dakle imamo max{2,1}=2, pa u slijedećoj tablici varijabla x1 biti će bazična. Ključni element bira se u stupcu x1.
Kriterij zaustavljanja Za problem maksimuma c(j)-z(j) ≤0 j=1,…,n+m odnosno nalazimo se u vrhu iz kojeg niti jedan brid nije smjer rasta. Za problem minimuma c(j)-z(j) ≥0 j=1,…,n+m odnosno nalazimo se u vrhu iz kojeg niti jedan brid nije smjer pada.
Pivotiranje ili izbor ključnog elementa, izbor vektora koji izlazi iz baze Ključni element može biti samo pozitivan broj za koji je najmanji kvocijent, (odnosno desna strana RHS podijeli se() s kandidatom za ključni element). Označimo ključni element. Provodi se Gauss-Jordanov postupak. Dobiva se nova tablica koja generira bolji vrh .
Za primjer dan je niz tablica simpleks metode za primjer proizvodnje (fosfati). U stupcu koji ima max {c(j)-z(j):c(j)-z(j)>0} odnosno najbrži smjer rasta bira se ključni element.
Postojanje više optimalnih rješenja • Ako u optimalnoj tablici barem jedan nebazični vektor (varijabla) ima ocjenu c(j)-z(j)=0 onda ulazom tog vektora u bazu dobivamo alternativno optimalno bazično rješenje, susjedni optimalni vrh. Konveksna kombinacija dva vrha je brid koji ih spaja i sve točke brida su optimalna rješenja.
Matematički model • max (4x1 + 2x2) • 2x1+ x2 ≤ 1500 • x1+ x2 ≤ 1200 • x1 ≤ 500 • x1 ≥ 0, x2 ≥ 0
Optimalno rješenje Ovaj problem ima dva optimalna vrha x*=(300,900) i x’ =(500,500). Optimalna vrijednost funkcije cilja je z* =3000. Skup optimalnih rješenja su sve točke brida x(α)=(1- α)(300,900)+ α(500,500), 0 ≤ α ≤ 1.
Tehnika umjetne baze Simpleks metodom riješiti ćemo dual problema proizvodnje fosfata • min(1500y1+1200y2+500y3) • 2y1+ y2+y3 ≥ 15 • y1+ y2 ≥ 10 • y1,y2,y3 ≥0
Kanonski oblik standardnog problema minimuma Uvode se dodatne varijable v1 i v2 pa imamo • min(1500y1+1200y2+500y3) • 2y1+ y2+ y3 - v1 = 15 • y1+ y2 - v2 = 10 • y1,y2,y3 ≥0
Kako je RHS≥0, traži se baza jediničnih vektora u kanonskom obliku. Uvodi se umjetna baza jediničnih vektora. Koeficijenti u funkciji cilja uz umjetne varijable su veliko M (Big M), veliki pozitivan broj za problem minimuma, -M, mali negativan broj za problem maksimuma.
Big M • Definira se kao velik pozitivan broj.