Linearno programiranje – zadaci
1/8
Maksimizirati:
z=0.4⋅x1+0.2⋅x2+0.5⋅x3+0.8⋅x4
pri slede ćim ograničenjima
x1+2⋅x2+4⋅x3+8⋅x4 3⋅x1+5⋅x2+ x3 6⋅x1 +3⋅x3+ x4
i uslovima
x1, x2, x3, x4 ≥ 0
24 ≤ 12 ≤ 35
≤
Dati model se pretvara u standardnu formu uvo đenjem dopunskih promenljivih x 5, x6, x7. Sada problem glasi Maksimizirati:
z=0.4⋅x1+0.2⋅x2+0.5⋅x3+0.8⋅x4+0⋅x5+0⋅x6+0⋅x7
pri slede ćim ograničenjima
x1+2⋅x2+4⋅x3+8⋅x4+x5 = 24 3⋅x1+5⋅x2+ x3 +x6 = 12 6⋅x1 +3⋅x3+ x4 +x7 = 35
i uslovima
x1, x2, x3, x4, x5, x6, x7 ≥ 0
Simpleks tabele Postupak rešavanja problema LP se formalizuje koriš ćenjem simpleks tabela. U ovom primeru, polazna simpleks tabela je oblika: Baza x5 x6 x7 z
a1 1 3 6 0.4
a2 2 5 0 0.2
Koeficijenti a3 a4 4 8 1 0 3 1 0.5 0.8
Vrednost a5 1 0 0 0
a6 0 1 0 0
a7 0 0 1 0
24 12 35 0
U vrsti z, najve ći pozitivan koeficijent je jednak 0.8. S obzirom da je to koeficijent uz promenljivu x 4, uzima se da je kolona a 4 vodeća kolona, jer je i x 4 vodeća promenljiva. Promenljiva x4 ući će u bazu umesto neke od polaznih bazi čnih promenljivih. Dalje je potrebno odrediti koja od promenljivih izlazi iz baze. Izra čunava se koli čnik slobodnih članova i koeficijenata uz vodeće kolone. Dobijene vrednosti tih koli čnika (xi/xip): 24/8=3, 12/0 →∞, 35/1=35 unete su u krajnju desnu kolonu q.
1
Linearno programiranje – zadaci
2/8
Baza a1 1 3 6 0.4
x5 x6 x7 z
a2 2 5 0 0.2
a3 4 1 3 0.5
Koeficijenti a4 a5 1 8 0 0 1 0 0.8 0
Vrednost q=xi/xip a6 0 1 0 0
a7 0 0 1 0
24 12 35 0
3 +∞ 35
Najmanji pozitivan količnik je 3, što zna či da je prva vrsta vodeća vrsta u kojoj je bazisna promenljiva x5. Promenljiva x5 izlazi iz baze, a umesto nje u bazu ulazi promenljiva x 4. Vodeća kolona i vode ća vrsta su u tabeli ozna čene (strelicama i osen čenim površinama), a u njihovom preseku se nalazi vodeći element (označen boldom). Vodeći element treba da bude uvek jednak 1. U ovom primeru vode ći element je jednak 8, što znači da se nekom elementarnom transformacijom treba prevesti u jedinicu. Deljenjem vodeće vrste sa 8, vode ći element se prevodi u jedinicu. Baza a1 1/8 3 6 0.4
x4 x6 x7 z
Koeficijenti a3 a4 a5 1/2 1 1/8 1 0 0 3 1 0 0.5 0.8 0
a2 1/4 5 0 0.2
Vrednost a6 0 1 0 0
a7 0 0 1 0
3 12 35 0
U vodećoj koloni, dalje je potrebno, primenom elementarnih transformacija dobiti nule na svim mestima vodeće kolone (sem vode ćeg elementa), uklju čujući i odgovaraju ći element vrste z. U drugoj vrsti vode će kolone taj element je ve ć jednak nuli. U trećoj vrsti vode će kolone taj elemenat je jednak 1. Na tom mestu dobi će se nula ako se, na primer, od elemenata tre će vrste oduzmu odgovaraju ći elementi prve vrste prethodne tabele. U vodećoj koloni z vrste, umesto 0.8 dobi će se nula, tako što se elementi prve vrste pomnože sa –0.8 i zatim saberu sa elementima vrste z. Dobijeni rezultati su prikazani u slede ćoj simpleks tabeli.
Baza x4 x6 x7 z
a1 1/8 3
47/8 0.3
a2 1/4 5 -1/4 0
a3 1/2 1 5/2 0.1
Koeficijenti a4 1 0 0 0
Vrednost q=xi/xip a5 1/8 0 -1/8 -0.1
a6 0 1 0 0
a7 0 0 1 0
3 12 32
24 4 256/47
-2.4
U vrsti z, koeficijent 0.3 obezbedjuje najve ći rast funkcije z (jer je najve ći pozitivan koeficijent), pa je kolona a 1 vodeća kolona. Pošto je q=4 najmanji, vrsta x 6 je vodeća vrsta. Promenljiva x6 izlazi iz baze, a umesto nje u bazu ulazi x 1.
2
Linearno programiranje – zadaci
3/8
Na odgovaraju ći način (strelicama i senčenjem), u prethodnoj tabeli su ozna čene vodeća vrsta i vodeća kolona. Vodeći element je 3, a trebao bi biti 1. Na prethodno opisani na čin, primenom elementarnih transformacija postiže se da vode ći element bude jedinica, a ostali elementi u vode ćoj koloni da budu nule, što je dato u slede ćoj tabeli. Baza x4 x1 x7 z
a1 0 1 0 0
a2 1/24 5/3 -241/4 -0.5
Koeficijenti a3 a4 a5 11/24 1 1/8 1/3 0 0 13/24 0 -1/8 0 0 -0.1
Vrednost a6 -1/24 1/3 -47/24 -0.1
a7 0 0 1 0
5/2 4 17/2 -3.6
Elementi druge vrste su podeljeni sa 3. Od elemenata prve vrste oduzeti su odgovaraju ći elementi druge vrste pomnoženi sa 1/8. Od elemenata treće vrste oduzeti su odgovaraju ći elementi druge vrste pomnoženi sa 47/8. Od elemenata z vrste oduzeti su odgovaraju ći elementi druge vrste pomnoženi sa 3/10. U poslednjoj tabeli vrsta z nema ni jedan pozitivan koeficijent. To zna či da ni jedan od njih ne obezbedjuje daljni rast funkcije z, tako da je dobijena vrednost 3.6 najve ća vrednost te funkcije, tj.: max z=3.6, za x1=4, x2=0, x3=0 i x4=2.5
3
Linearno programiranje – zadaci
4/8
Primer 2
Maksimizirati
z=1000⋅x1+1500⋅x2
pri ograni čenjima
2⋅x1+2⋅x2≤12000 x1+2⋅x2≤8000 x1 ≤4000 x2≤3000
i uslovima
x1, x2≥0
Dati model se pretvara u standardnu formu uvo đenjem dopunskih promenljivih x 3, x4, x5, x6. Sada problem glasi Maksimizirati
z=1000⋅x1+1500⋅x2+0⋅(x3+x4+x5+x6)
pri ograni čenjima
2⋅x1+2⋅x2+x3 =12000 x1+2⋅x2 +x4 = 8000 x1 +x5 = 4000 x2 +x6= 3000
i uslovima
x1, x2, x3, x4, x5, x6≥0
Baza x3 x4 x5 x6 z
x1 2 1 1 0 1000
x2 2 2 0 1 1500
Koeficijenti x3 x4 1 0 0 1 0 0 0 0 0 0
Vrednost x5 0 0 1 0 0
x6 0 0 0 1 0
12000 8000 4000 3000 0
U vrsti z, najveći pozitivan koeficijent je jednak 1500. S obzirom da je to koeficijent uz promenljivu x 2, uzima se da je kolona x 2 vodeća kolona, jer je i x 2 vodeća promenljiva. Promenljiva x2 ući će u bazu umesto neke od polaznih bazi čnih promenljivih. Dalje je potrebno odrediti koja od promenljivih izlazi iz baze. Izra čunava se koli čnik slobodnih članova i koeficijenata iz vode će kolone. Dobijene vrednosti tih koli čnika (xi/xip) unete su u krajnju desnu kolonu q.
Najmanji pozitivan količ nik je 3000, što zna či da je četvrta vrsta vodeća vrsta u kojoj je bazisna promenljiva x6. Promenljiva x6 izlazi iz baze, a umesto nje u bazu ulazi promenljiva x2. Vodeća kolona i vode ća vrsta su u tabeli ozna čene (strelicama i osen čenim površinama), a u njihovom preseku se nalazi vodeći element (označen boldom). Vodeći element treba da bude uvek jednak 1, što je u ovom slu čaju ispunjeno.
4
Linearno programiranje – zadaci
Baza x3 x4 x5 x6 z
x1 2 1 1 0 1000
x2 2 2 0 1
1500
5/8
Koeficijenti x3 x4 1 0 0 1 0 0 0 0 0 0
x5 0 0 1 0 0
x6 0 0 0 1 0
Vrednost
q=xi/xip
12000 8000 4000 3000 0
6000 4000 +∞ 3000
U vodećoj koloni, dalje je potrebno, primenom elementarnih transformacija dobiti nule na svim mestima vodeće kolone (sem vode ćeg elementa), uklju čujući i odgovaraju ći element vrste z. U drugoj vrsti vode će kolone taj element ima vrednost 2. U trećoj vrsti vode će kolone taj elemenat je tako đe jednak 2. Na tim mestima dobiće se nule ako se, na primer, od elemenata druge i tre će vrste oduzmu odgovarajući elementi četvrte vrste pomnoženi sa –2. U vodećoj koloni z vrste, umesto 1500 dobi će se nula, kada se elementi četvrte vrste pomnože sa -1500 i zatim saberu sa elementima vrste z. Dobijeni rezultati su prikazani u slede ćoj simpleks tabeli.
Baza x3 x4 x5 x6 z
x1 2
x2 0 0 0 1 0
1
1 0 1000
Koeficijenti x3 x4 1 0 0 1 0 0 0 0 0 0
Vrednost x5 0 0 1 0 0
x6 -2 -2 0 1 -1500
6000 2000 4000 3000 -4500000
U vrsti z, koeficijent 1000 obezbe đuje najveći rast funkcije z (jer je najve ći pozitivan koeficijent), pa je kolona x 1 vodeća kolona. Pošto je q=2000 najmanji, vrsta x 4 je vodeća vrsta. Promenljiva x4 izlazi iz baze, a umesto nje u bazu ulazi x 1. Na odgovarajući na čin u prethodnoj tabeli su ozna čene vodeća vrsta i vode ća kolona. Vode ći element ima vrednost 1, tako da ostaje da se pomo ću elementarnih transformacija ostali elementi kolone dovedu na nulu, kao što je dato u slede ćoj tabeli.
Baza x3 x1 x5 x2 z
x1 0 1 0 0 0
x2 0 0 0 1 0
Koeficijenti x3 x4 1 -2 0 1 0 -1 0 0 0 -1000
5
Vrednost x5 0 0 1 0 0
x6 2
-2 2 1 500
2.000 2.000 2.000 3.000 -6.500.000
Linearno programiranje – zadaci
6/8
Pomnoži se druga vrsta sa –2 i sabere sa prvom vrstom. Pomnoži se druga vrsta sa –1 i sabere sa tre ćom vrstom. Pomnoži se druga vrsta sa –1.000 i sabere sa petom vrstom. Sada se vidi da je vode ća kolona, kolona x 6, dok se za vode ću vrstu bira prva vrsta (q=1.000). Promenljiva x3 izlazi iz baze, dok vode ći element ima vrednost 2. Zato se prva vrsta deli sa 2, da se dobije vrednost vode ćeg elementa 1. Baza x1 0 1 0 0 0
x6 x1 x5 X2 z
x2 0 0 0 1 0
Koeficijenti x3 x4 1/2 -1 1 -1 -1 1 -1/2 1 -250 -500
Vrednost x5 0 0 1 0 0
x6 1 0 0 0 0
Pomnoži se prva vrsta sa 2 i sabere sa drugom vrstom. Pomnoži se prva vrsta sa -2 i sabere sa tre ćom vrstom. Pomnoži se prva vrsta sa -1 i sabere sa četvrtom vrstom. Pomnoži se prva vrsta sa -500 i sabere sa petom vrstom. U poslednjoj tabeli, vrsta z nema ni jedan pozitivan koeficijent, pa je rešenje: max z=7.000.000, za x 1=4.000 i x2=2000.
Provera u Matlab-u Naredba
X=LP(f,A,b) rešava problem linearnog programiranja: min f '*x x
pri ograničenju: A*x <= b
Program
» c=[1000,1500]; » a=[2,2;1,2;1,0;0,1]; » b=[12000;8000;4000;3000]; » x=lp(-c,a,b); »x x = 1.0e+003 * 4.0000 2.0000 » z=c*x z =7000000
6
1.000 4.000 0 2.000 -7.000.000
Linearno programiranje – zadaci
7/8
(dvostepeni simpleks)
Minimizirati
z=10⋅x1+20⋅x2
pri ograni čenjima
3⋅x1+x2 ≥ 40 2·x1+2⋅x2≥ 60 x1+3⋅x2≥ 40
i uslovima
x1, x2≥0
Dati model se pretvara u standardnu formu (vidi tabelu 8.1, strana 157 i odeljak 8.6.4, strana 187 knjige.) Sada problem glasi Minimizirati
z=10⋅x1+20⋅x2-0⋅(x3+x4+x5)+M·(x6+x7+x8)
pri ograni čenjima
≥ 40 3⋅x1+ x2 – x3 +x6 ≥ 60 2·x1+2⋅x2 – x4 + x7 x1+3⋅x2 – x5 + x8 ≥ 40
i uslovima
x1, x2, x3, x4, x5, x6, x7, x8 ≥ 0
T0 Baza
Vrednost x1
x6 x7 x8
T1 Baza x1 x7 x8
40 60 40 140
3
2 1 6M-10
x2 1 2 3 6M-20
x3 -1 0 0 -M
Koeficijenti x4 x5 0 0 -1 0 0 -1 -M -M
x6 1 0 0 0
x7 0 1 0 0
x8 0 0 1 0
x3 -1 0 0 -M
Koeficijenti x4 x5 0 0 -1 0 0 -1 -M -M
x6 1 0 0 0
x7 0 1 0 0
x8 0 0 1 0
Vrednost 40/3 100/3 80/3 60M +400/3
x1 1 0 0 0
x2 1/3 4/3 8/3
6M -20
7
Linearno programiranje – zadaci
T2 Baza x1 x7 x2
T3 Baza x1 x3 x2
8/8
Vrednost 10 20 10 20M +300
x1 1 0 0 0
x2 0 0 1 0
1/8 M/25/4
Koeficijenti x4 x5 0 1/8 -1 ½ 0 -3/8 -M M/2 -25/4
x6 3/8 -1/2 -1/8 -3/2M +15/2
x7 0 1 0 0
x8 -1/8 -1/2 3/8 -3/2M +25/4
x3 0 1 0 0
Koeficijenti x4 x5 -3/4 1/2 -2 1 1/4 -1/2 -5/2 -5
X6 0 -1 0 -M
x7 3/4 2 -1/4 -M +5/2
x8 -1/2 -1 ½ -M +5
x3 -3/8 1/2
Vrednost 25 40 5 350
x1 1 0 0 0
x2 0 0 1 0
min z=350 za x1=25 i x2=5
8