You are on page 1of 50

Simpleks metoda za rješavanje modela linearnog

p g
programiranja
j
(14.03.2012., 21.03.2012.)

Dr. sc. Tunjo Perić


SADRŽAJ

ƒ Osnovni principi simpleks metode


ƒ Rješavanje
j j općeg
p g pproblema LP za maksimum ppomoću
simpleks tablice
ƒ Rješavanje općeg problema LP za minimum pomoću simpleks
t bli
tablice
Osnovni principi simpleks metode

ƒ Simpleks metoda spada u kategoriju numeričkih iterativnih


metoda.
t d
ƒ Pri rješavanju problema polazi se od početnog bazičnog
rješenja, koje mora biti dopustivo.
ƒ Početno se bazično rješenje poboljšava kroz niz koraka
(iteracija) dok se ne postigne optimalno rješenje u skladu s
postavljenim ciljem.
ƒ Simpleks metoda predstavlja opći algoritam za rješavanje svih
oblika problema LP.
ƒ Algoritam
Al it sipleks
i l k metode
t d sastoji
t ji se iz
i dvaju
d j koraka:
k k
ƒ Korak 1. Određivanje početnog dopustivog rješenja i
ƒ Korak 2. Poboljšanje dobivenog bazičnog rješenja kroz konačan broj
it
iteracija.
ij
ƒ Da bismo odredili početno bazično dopustivo rješenje
potrebno je najprije opći model LP svesti na kanonski oblik
(sva ograničenja moraju biti oblika jednakosti (=)).
ƒ Svođenje općeg/standardnog oblika linearnog modela na
kanonski oblik ovisi o obliku ograničenja i vrsti linearnog
problema.
problema
ƒ Lijevoj strani ograničenja oblika manje ili jednako ( ≤ )
dodaju se tzv. dopunske varijable s koeficijentom 0 uz tu
varijablu u funkciji cilja, kako za problem maksimuma tako i
za problem minimuma.
ƒ Lijevoj strani ograničenja oblika jednakosti ((=)) dodaje se tzv.
tzv
artificijelna (umjetna) varijabla s koeficijentom –M uz tu
varijablu u funkciji cilja za problem maksimuma, odnosno M
za problem
bl minimuma.
i i “M” jje iizrazito
it veliki
liki broj.
b j
ƒ Lijevoj strani ograničenja oblika veće ili jednako ( ≥ ) dodaje se
dopunska varijabla s predznakom minus (-), s koeficijentom 0 u
funkciji kriterija te artificijelna varijabla s koeficijentom –M za
problem maksimuma odnosno M za problem minimuma.
ƒ Tablično prikazano svođenje općeg na kanonski oblik problema LP
izgleda ovako:
Oblik  Dopunske i  Koeficijenti u funkciji cilja
ogran umjetne  max min
ičenja varijable
DOP ART DOP ART
<<= + DOP
+ DOP 0 0
= + ART ‐M M
>= ‐ DOP+ART 0 ‐M 0 M

ƒ Artificijelne (umjetne) varijable (ART) uvode se samo kao računsko


sredstvo u simpleks algoritmu s ciljem osiguranja dopustivog
b ič
bazičnog rješenja.
j š j
ƒ Da bi se osigurao izlazak svih artificijelnih varijabli iz
bazičnog rješenja, u funkciji cilja im se pridružuje koeficijent
–M kod problema za maksimum, odnosno M kod problema za
minimum.
i i
ƒ Dobiveno rješenje je neupotrebljivo dokle god su
artificijelne varijable u bazi. Nakon izlaska iz baze svih
artificijelnih varijabli dobiva se prvo upotrebljivo rješenje.
ƒ Dopustivo bazično rješenje podrazumijeva svako dopustivo
(moguće) rješenje koje ne sadrži više od m pozitivnih
vrijednosti varijabli (odnosno onoliko koliko ima ograničenja).
ƒ Dopustivo bazično rješenje može biti:
ƒ Nedegenerirano – ima točno m pozitivnih vrijednosti varijabli,
ƒ Degenerirano – ima manje od m pozitivnih vrijednosti varijabli.
ƒ Varijable u simpleks metodi klasificiraju se na bazične i
nebazične.
ƒ Nebazične su varijable one koje u programu imaju vrijednost
nula.
ƒ Bazične varijable predstavljaju tzv. bazu, imaju vrijednosti
veće od nule i ima ih onoliko koliko ima ograničenja.
ƒ Dopustivo bazično rješenje ima sljedeće osobine:
ƒ Sadrži sve
s e pozitivne
po iti ne vrijednosti
rijednosti varijabli
arijabli osim
i kod
k d degeneracije,
d ij
ƒ Svaka varijabla iz baze može se pojaviti samo u jednom ograničenju sa
strukturnim koeficijentom 1, tj. strukturni koeficijenti u
ograničenjima uz bazične varijable čine jediničnu matricu,
matricu
ƒ Vrijednosti varijabli koje čine dopustivo početno bazično rješenje
jednake su slobodnim koeficijentima u ograničenjima, a to su: (1)
dopunske varijable uvedene u ograničenja oblika nejednadžbi ≤ i (2)
artificijelne varijable uvedene u ograničenja oblika jednadžbi i
nejednadžbi ≥ .
ƒ Svaka iteracija sastoji se iz tri koraka:
ƒ Korak 1. Utvrđivanje je li dobiveno rješenje optimalno i ako nije
određuje se varijabla koja treba ući u bazu (bazično rješenje): (1) ako se
radi o linearnom modelu za maksimum logično je (ali ne i neophodno)
uvesti u bazu varijablu koja najviše povećava funkciju cilja, (2) ako se
radi o linearnom modelu za minimum logično je uvesti u bazično
rješenje
j j varijablu
j koja
j najviše
j smanjuje
j j funkciju
j cilja.
j
ƒ Korak 2. Određivanje varijable koja napušta bazu.
ƒ Korak 3. Transformacija strukturnih koeficijenata i koeficijenata u
funkciji cilja nakon čega se vraćamo na korak 1.
1
ƒ Simpleks metoda se može provoditi:
ƒ Rješavanjem sustava ograničavajućih jednadžbi,
ƒ Tablično,
ƒ Matrično i sl.
Suština simpleks metode

ƒ Simpleks metoda je algebarska procedura. Međutim, temeljni


koncepti su geometrijski. Razumijevanje osnovnih
geometrijskih koncepata osigurava jak intuitivni osjećaj o
tome kako radi simpleks metoda i što je čini tako efikasnom.
ƒ Riješimo geometrijski sljedeći primjer:

z = 3 x1 + 5 x2 → max
p.o.
x1 ≤4
2 x2 ≤ 12
3 x1 + 2 x2 ≤ 18
x1 ≥ 0, x2 ≥ 0
x2
(0, 9)

3x1 + 2x2 = 18

Z(2, 6)=36
Z(0,
( , 6)=30
)
(2 6)
(2, (4 6)
(4,
(0, 6) 2x2 = 12

z = 3 x1 + 5 x2 → max
x1=4 p.o.
x1 ≤4
Skup dopustivih
rješenja
Z(4, 3)=27 2 x2 ≤ 12
(4, 3)
3 x1 + 2 x2 ≤ 18
x1 ≥ 0, x2 ≥ 0

Z(0, 0)=0
Z(4, 0)=12 x2 = 0
(0, 0) x1
(4, 0) (6, 0)
U ovom primjeru svaka kutna točka (corner-point solution) leži na
ppresjeku
j dviju
j granica
g (međa)
( ) ograničenja.
g j
Za bilo koji problem LP s n varijabli odlučivanja dvije susjedne
kutne dopustive točke su susjedne jedna drugoj ako dijele n-1
granica ograničenja.
ograničenja Dvije susjedne kutne dopustive točke povezane
su dužinom koja leži na tim istim podijeljenim granicama
ograničenja. Takva dužina predstavlja rub dopustivog područja.
B d ći da
Budući d je
j u našem
š primjeru
i j n = 2, dvije
d ij kutne
k t dopustive
d ti točke
t čk su
susjedne ako dijele jednu granicu ograničenja. Npr. (0, 0) i (0, 6) su
susjedne pošto dijele granicu ograničenja x1 = 0. Dopustivo područje
na prethodnoj slici ima 5 rubova, koji sadrže 5 dužina koje formiraju
granicu područja dopustivih rješenja. Svaka moguća kutna točka
sadrži dvije susjedne kutne moguće točke.
točke
Test optimalnosti. Razmotrimo bilo koji problem LP koji ima
najmanje jedno optimalno rješenje. Ako kutna moguća točka nema
susjednu
j d moguću ć kutnu
k t ttočku
čk k koja
j jje b
bolja
lj ((mjereno
j prema z),
)
onda ona mora biti optimalno rješenje.
U našem primjeru točka (2, 6) mora biti optimalno rješenje pošto je
njezino z = 36 veće od z = 30 za (0, 6) i z = 27 za (4, 3).
Ovaj test optimalnosti se koristi kod simpleks metode za određivanje
kad je postignuto optimalno rješenje.
Rješavanje primjera:
Inicijalizacija: odabrati (0, 0) kao početno moguće kutno rješenje.
Provjeriti susjednu točku. Zaključujemo da (0, 0) nije optimalno
rješenje S
rješenje. Susjedna
sjedna kkutna
tna mog
mogućaća točka daje veću rijednost zaa z.
eć vrijednost
Iteracija 1: kretati se prema boljoj susjednoj mogućoj točki u
sljedeća 3 koraka:
1. Razmatrajući dva ruba skupa dopustivih rješenja kretati se
rubom duž osi x2 pošto os x2 povećava z po bržoj stopi od
kretanja duž osi x1 (z = 3x1 + 5x2).
2. Stati na prvoj novoj granici ograničenja: 2x2 = 12.
3. Riješiti presjek novih granica ograničenja: (0, 6).
Test optimalnosti: zaključujemo da (0,6)
(0 6) nije optimalno rješenje.
rješenje
Susjedna kutna moguća točka je bolja.
Iteracija 2: kretati se prema boljoj susjednoj kutnoj mogućoj točki
(2, 6) primjenom sljedeća 3 koraka:
1. Razmatrajući dva ruba dopustivog područja koja proizlaze iz (0,
6) odabrati kretanje duž ruba na desno, jer se time povećava
vrijednost za z.
2. Zaustaviti se na prvoj novoj granici ograničenja: 3x1 + 2x2 = 18.
3. Riješiti presjek novog skupa granica ograničenja: (2, 6), a to se
dobi a rješavanjem
dobiva s sta a 3x1 + 2x2 = 18 i 2x2 = 12.
rješa anjem sustava 12
Test optimalnosti: Budući da ne postoji susjedna kutna dopustiva
točka koja daje veću vrijednost za z, zaključujemo da je (2, 6)
optimalno rješenje. Time je proces rješavanja završen.

Osnovni koncepti simpleks metode

Koncept rješavanja 1: Simpleks metoda se fokusira samo na


kutna dopustiva rješenja.
rješenja Za svaki problem s najmanje jednim
optimalnim rješenjem, nalaženje optimalnog rješenja zahtijeva
samo nalaženje najboljeg kutnog dopustivog rješenja.
ƒ Koncept rješavanja 2: Simpleks metoda je iterativni algoritam koji
se sastoji
j od određivanja
j početnog
p g dopustivnog
p g kutnogg rješenja,
j j ,
provođenja testa optimalnosti u smislu je li postignuto optimalno
rješenje te provođenja iteracija za nalaženje boljeg kutnog
dopustivog rješenja.
rješenja
ƒ Koncept rješavanja 3. Kad god je moguće, simpleks metoda bira
koordinatni početak kao početno dopustivo kutno rješenje (sve
varijable odlučivanja su jednake nuli). Odabir koordinatnog
početka kao početnog dopustivog kutnog rješenja moguće je kad
sve varijable odlučivanja imaju ograničenje nenegativnosti
nenegativnosti, pošto
presjek tih ograničenja daje koordinatni početak kao kutno
rješenje. Ako to rješenje nije moguće, potrebna je specijalna
procedura
d za nalaženje
l ž j početnog
č t dopustivog
d ti kutnog
k t rješenja.
j š j
ƒ Koncept rješavanja 4: Svaki put kad simpleks metoda radi jednu
j krećući se od jjednogg dopustivog
iteraciju p g kutnogg rješenja
j j prema
p
boljem, ona uvijek bira kutno dopustivo rješenje koje je susjedno
tom rješenju. Ostala kutna dopustiva rješenja se ne razmatraju.
ƒ Koncept rješavanja 5: Simpleks metoda identificira stopu
j j z koja
ppoboljšanja j bi se dogodila
g krećući se duž ruba. Bira se rub s
najvećom pozitivnom stopom poboljšanja te se provodi test
optimalnosti na kutnom dopustivom rješenju koje se nalazi na tom
rubu U našem primjeru početno dopustivo kutno rješenje je (0
rubu. (0, 0)
0),
a možemo se kretati rubom x1 (stopa poboljšanja z je 3) ili rubom
x2 (stopa poboljšanja z je 5). Biramo rub s najvećom stopom
poboljšanja z.
ƒ Koncept rješavanja 6. Test optimalnosti sadrži jednostavnu
provjeru daje li bilo koji rub pozitivnu stopu poboljšanja z. Ako je
odgovor ne, dobili smo optimalno rješenje.
Osobine bazičnog rješenja

ƒ Rješavanje problema LP s više od dvije varijable zahtijeva


primjenu linearne algebre u procesu pronalaženja optimalnog
rješenja, ako ono postoji.
ƒ Da bismo algebarski mogli rješavati probleme LP potrebno je
najprije sustav nejednakosti u ograničenjima pretvoriti u sustav
jednakosti (ograničenje nenegativnosti varijabli odlučivanja se ne
mijenja). Kažemo da model iz standardnog ili općeg oblika
prevodimo
di u kanonski
k ki oblik.
blik
ƒ Postupak rješavanja zahtijeva pronalaženje početnog bazičnog
dopustivog rješenja te kroz iterativni postupak u konačnom broju
koraka kretati se od jednog do drugog bazičnog dopustivog
rješenja (susjednog, koje daje bolju vrijednost funkciji z).
ƒ Postupak rješavanja slijedi geometrijski pristup, koji je prethodno
prikazan.
ƒ Svako bazično rješenje ima sljedeće osobine:
1 Svaka varijabla je označena kao bazična ili nebazična varijabla.
1. varijabla
2. Broj bazičnih varijabli jednak je broju funkcionalnih ograničenja
(sada jednadžbi). Prema tome, broj nebazičnih varijabli jednak je
ukupnom broju varijabli minus broj funkcionalnih ograničenja.
3. Skup nebazičnih varijali je jednak nuli.
4 Vrijednosti
4. V ij d ti bazičnih
b ič ih varijabli
ij bli dobivene
d bi su kao
k simultano
i lt rješenje
j š j
sustava jednadžbi (funkcionalna ograničenja u kanonskom
obliku). Skup se bazičnih varijabli često naziva baza.
5. Ako bazične varijable zadovoljavaju ograničenja nenegativnosti,
bazično rješenje je bazično moguće rješenje.
6 Dva
6. D bbazična j š j su susjedna
ič rješenja j d ako k ako
k imaju
i j iste
i t sve osim
i
jedne nebazične varijable. Ovo implicira da dva susjedna rješenja
imaju iste sve bazične varijable osim jedne, naravno s različitim
numeričkim vrijednostima.
Algebra simpleks metode
ƒ Za objašnjenje algebre simpleks metode koristimo se našim
prethodnim primjerom:
z = 3 x1 + 5 x2 → max z = 3 x1 + 5 x2 + 0 ⋅ x3 + 0 ⋅ x4 + 0 ⋅ x5 → max
p.o. p.o.
x1 ≤4 x1 +x3 =4
2 x2 ≤ 12 2 x2 +x4 =12
3 x1 + 2 x2 ≤ 18 3 x1 + 2 x2 +x5 =18
x1 ≥ 0, x2 ≥ 0 x1 , x2 , x3 , x4 , x5 ≥ 0,
ƒ Iz prehodnog sustava jednadžbi vidljivo je da ako stavimo da je x1
= 0 i x2 = 0, onda je x3 = 4, x4 = 12 i x5 = 18. Prema tome, početno
bazično rješenje je (0, 0, 4, 12, 18). Vidljivo je da se ovo bazično
rješenje može odmah pročitati pošto svaka
s aka jednadžba ima jednu
jedn
bazičnu varijablu s koeficijentom 1, a ta bazična varijabla se ne
pojavljuje niti u jednoj drugoj jednadžbi.
ƒ Kad se skup bazičnih varijabli mijenja, simpleks metoda koristi
algebarsku
g pproceduru ((Gauss-ova eliminacija)
j ) za pretvaranje
p j
jednadžbi u pogodan oblik, tako da se uz svaku bazičnu varijablu
nalazi koeficijent 1, a ta se varijabla pojavljuje samo u jednoj
jednadžbi Koeficijenti uz bazičnu varijablu u ostalim
jednadžbi.
jednadžbama jednaki su nuli.
ƒ Test optimalnosti: Ciljna funkcija je z = 3x1 + 5x2, a ima
vrijednost 0 za početno bazčno moguće rješenje. Koeficijenti uz
nebazične varijable ukazuju na stopu poboljšanja z. Stope
poboljšanja z su pozitivne i iznose 3 i 5.
5 Prema tome,
tome bazično
rješenje (0, 0, 4, 12, 18) nije optimalno i može se poboljšati.
ƒ Određivanje pravca kretanja: Povećanje jedne nebazične varijable
(pri čemu se prilagođavaju vrijednosti bazičnih varijabli kako bi i
dalje zadovoljavali sustav jednadžbi) odgovara kretanju duž jednog
ruba od stvarnogg kutnogg mogućeg
g g rješenja.
j j Prema konceptima
p
optimalnosti 4 i 5, odabir varijable koju ćemo poboljšati vrši se na
taj način da se bira varijabla s najvećom stopom poboljšanja (x2).
ƒ x2 nazivamo varijablom koja ulazi u bazu. Povećanje te nebazične
varijable
j pretvorit
p će tu varijablu
j u bazičnu za novo bazično
moguće rješenje.
ƒ Određivanje gdje stati. Povećanje x2 povećava z, pri čemu želimo
ići toliko
t lik daleko
d l k koliko
k lik je j mogućeć bez
b napuštanja
št j skupa
k dopustivih
d ti ih
rješenja. Zahtjev da se zadovolje funkcionalna ograničenja u
kanonskom obliku znači da povećanje x2 (dok je vrijednost
nebazične varijable x1 = 0), mijenja vrijednosti nekih od bazičnih
varijabli kako je to niže prikazano:

x1 = 0, tako da je
x1 ≤4 x3 = 4
2 x2 ≤ 12 x4 = 12 − 2 x2
3 x1 + 2 x2 ≤ 18 x5 = 18 − 2 x2
x1 ≥ 0, x2 ≥ 0
ƒ Nebazične varijable (uključujući i varijablu koja ulazi u bazu) su
nenegativne.
g Međutim,, mi želimo pprovjeriti
j na koliko možemo
povećati x2 bez narušavanja uvjeta nenegativnosti za bazične
varijable.
x3 = 4 > 0 ⇒ nema gornje granice na x2
12
x4 = 12 − 2 x2 ≥ 0 ⇒ x2 ≤ = 6 ← minimum
2
18
x5 = 18 − 2 x2 ≥ 0 ⇒ x2 ≤ = 9.
2
ƒ Prema tome x2 se može povećati na 6, tako da x4 bude jednako
nuli. Povećanje x2 preko 6 dovelo bi do toga da x4 bude negativno.
ƒ Ta računanja odnose se na test minimalnog kvocijenta. Cilj ovog
testa je odrediti koja bazična varijabla će prva imati vrijednost 0
kad se ppovećava varijabla
j koja
j ulazi u bazu. Smanjenjem
j j
vrijednosti bazične varijable na 0 pretvorit će je u nebazičnu
varijablu u sljedećem bazičnom mogućem rješenju.
ƒ Rješavanje za dobivanje novog bazičnog mogućeg rješenja.
j x2 = 0 na x2 = 6 ppomiče nas s ppočetnogg bazičnogg
Povećanje
mogućeg rješenja na novo bazično moguće rješenje:
Početno BF rješenje Novo BF rješenje
Nebazične varijable x1 = 0, x2 = 0 x1 = 0, x4 = 0
Bazične varijable x3 = 4, x4 = 12, x5 = 18 x3 = ?, x2 = 6, x5 = ?

ƒ Svrha ovog koraka je pretvoriti sustav jednadžbi u prihvatljivu


formu ((za primjenu
p j Gauss-ove eliminacije)j ) za provođenje
p j testa
optimalnosti i, ako je potrebno, sljedeću iteraciju s novim bazičnim
mogućim rješenjem. U tom procesu ovaj oblik također će
identificirati vrijednosti x3 i x5 za novo rješenje.
rješenje
ƒ Napišimo naš model u sljedećem obliku:
(0) z − 3 x1 − 5 x2 =0
(1) x1 +x3 =4
(2) 2 x2 +x4 =12
(3) 3 x1 + 2 x2 +x5 =18

ƒ Umjesto x4 stavit ćemo da je x2 bazična varijabla. Primjenom


Gaussovih eliminacija dobit ćemo da su svi koeficijenti uz
varijablu x2 jednaki 0, osim u retku (2) gdje treba biti jedinica. Na
tajj način transformirani sustav izgleda
g ovako:
5
(0) z − 3 x1 + x4 =30
2
(1) x1 +x3 =4
1
((2)) x2 + x4 =6
2
(3) 3 x1 -x4 +x5 =6
ƒ Ključni koncept za ovu metodu jesu elementarne algebarske
operacije
p j za reduciranjej originalnog
g g sustava jednadžbi
j u
odgovarajuću formu za Gauss-ovu eliminaciju, gdje je svaka
bazična varijabla eliminirana iz svih osim jedne jednadžbe (njezine
jednadžbe) a njezin koeficijent je +1 u toj jednadžbi.
jednadžbe), jednadžbi
ƒ Test optimalnosti za novo bazično moguće rješenje: Jednadžba (0)
daje vrijednosti ciljne funkcije za date nebazične varijable:
5
z = 30 + 3 x1 − x4 .
4
ƒ Povećavajući bilo koju od nebazičnih varijabli od 0 rezultirat će
kretanjem prema dva susjedna bazično moguća rješenja. Pošto x1
ima pozitivan koeficijent, povećanje x1 će rezultirati susjednom
bazičnom mogućem rješenju koje je bolje od postojećeg rješenja.
Prema tome, postojeće rješenje nije optimalno.
ƒ Iteracija 2 i rezultirajuće optimalno rješenje:
5
ƒ Budući da je z = 30 + 3 x1 − x4 , z se može povećati povećanjem
2 1 bira x kao varijablu koja ulazi u
x , ali ne x . Prema tome, korak
1 4 1
bazu. Analogno prethodnom, iz baze izlazi varijabla x5.
ƒ Primjenom Gauss-ovih eliminacija dobivamo:
3
(0) z + x4 +x5 =36
2
1 1
(1) x 3 + x4 - x5 =2
3 3
1
(2) x2 + x4 =6
2
1 1
(3) x1 − x 4 + x5 = 2
3 3
ƒ Prema tome, novo bazično moguće rješenje je
( x1 , x2 , x3 , x4 , x5 ) = (2,6, 2,0,0)
koje daje z = 36.
ƒ Primjenom testa optimalnosti za novo bazično moguće rješenje,
vidimo da bi u jjednadžbi (0)
( )
3
z = 36 − x4 − x5
2
povećanje varijabli x4 i x5 dovelo do smanjenja vrijednosti z, pa ne
postoji niti jedno susjedno bazično moguće rješenje koje bi
povećavalo z. z Prema tome z je postiglo svoju optimalnu vrijednost
na danom skupu mogućih rješenja.
Rješavanje općeg problema LP za maksimum pomoću simpleks
tablice

ƒ Polazi se od kanonskog oblika linearnog modela:


z = c1 x1 + c2 x2 + ... + cs xs + ... + cn xn + cn+1 xn+1 + ... + cn+r xn+r + ... + xn+m → max
p.o.
a11 x1 + a12 x2 + ... + a1s xs + ... + a1n xn + xn+1 = a10
a21 x1 + a22 x2 + ... + a2 s xs + ... + a2 n xn +xn+2 = a20
# # # # #
ar1 x1 + ar 2 x2 + ... + ars xs + ... + arn xn + xn+r = ar 0
# # # # #
am1 x1 + am 2 x2 + ... + ams xs + ... + amn xn + ...+xn+m = am 0
x j ≥ 0; j = 1,...n, n + 1,...
ƒ Simpleks algoritam kod tabličnog postupka rješavanja linearnog
modela sastoji se iz niza iteracija gdje se početno i svako
poboljšano bazično rješenje predstavlja odgovarajućom simpleks
tablicom.
ƒ Određivanje početnog bazičnog rješenja i izračunavanje kriterija
optimalnosti provodi se prilikom konstrukcije početne simpleks
tablice.
ƒ Početna simpleks tablica prikazana je u sljedećem obliku:
cj ci c1 c2 ... cs ...
Baza x0 x1 x2 ... xs ...
cn+1 xn+1 a10 a11 a12 ... a1s ...
cn+2 xn+2 a20 a21 a22 ... a2s ...
.
...

.
...

.
...

.
...
cn+r xn+r ar0 ar1 ar2 ... ars ...
...

...

...

...
z‐c am+1,0 am+1,1 am+1,2 ... am+1,s ...
ƒ Kod konstrukcije početne simpleks tablice koriste se sljedeća
pravila.
il
ƒ Kanonski oblik linearnog modela je osnova za konstrukciju početne simpleks
tablice.
ƒ Zaglavlje tablice (prvi redak i drugi redak) sadrži sve varijable (strukturne,
dopunske i artificijelne) i njihove odgovarajuće koeficijente u funkciji cilja.
ƒ U drugi stupac (Baza) upisuju se varijable koje čine početno bazično
rješenje.
ƒ Prvi stupac sadrži koeficijente u funkciji cilja bazičnih varijabli.
ƒ U treći stupac
p ((x0) upisuju
p j se vrijednosti
j odgovarajućih
g j bazičnih varijabli
j
(početno bazično rješenje).
ƒ Ostali stupci simpleks tablice (x1, x2, ...) koji odgovaraju varijablama iz
kanonskog g oblika linearnogg modela,, sadrže strukturne koeficijente
j varijabli
j
iz sustava ograničenja.
ƒ Redak z-c, odnosno koeficijenti am+1,j izračunavaju se upotrebom izraza:

am+1,0 = ∑ ci aio i am+1, j = ∑ ci aij − c j , j = 1, 2 n+m


1 2,...,
i i
odnosno:
am+1,0 = cn+1a10 + cn+2 a20 + ... + cn+r ar 0 + ...
am+1,1 = cn+1a11 + cn+2 a21 + ... + cn+r ar1 + ... − c1
am+1,2 = cn+1a12 + cn+2 a22 + ... + cn+r ar 2 + ... − c2
#
am+1,s = cn+1a1s + cn+2 a2 s + ... + cn+r ars + ... − cs
#

ƒ Ostali koraci tabličnog rješavanja modela LP


predstavljeni su dijagramom na slici:
ne

{
max am +1, j < 0
j
}

ar 0
min {ai 0 / ais , ais > 0} =
i ars

arj
arj' = aij' = aij − arj' ⋅ ais
ars
ƒ Korak 1. Ispitivanje optimalnosti rješenja i određivanje
varijable
j koja
j postaje
p j bazična ((određivanje j vodećegg stupca).
p )
ƒ Posljednji redak simpleks tablice predstavlja kriterij
optimalnosti simpleks metode kojim se utvrđuje je li dobiveno
rješenje
j š j optimalno
ti l ili nije,ij odnosno
d može
ž li se još
j š poboljšavati.
b ljš ti
ƒ Poboljšanje programa podrazumijeva prelazak neke od
nebazičnih varijabli
j u bazičnu,, koja
j može osigurati
g da kod
problema maksimuma dođe do povećanja vrijednosti funkcije
cilja.
ƒ Ako
Ak su svii kkoeficijenti tk z-c veći
fi ij ti u retku ći ili jednaki
j d ki nuli,
li
dobiveno je optimalno rješenje. U suprotnom slučaju dobiveno
rješenje se može poboljšavati. Zašto?
ƒ U modelu za maksimum varijablu koja ulazi u bazu određuje
najmanji negativni koeficijent am+1,j (najveći po apsolutnoj
vrijednosti negativni koeficijent am+1,j, odnosno
{ } { }
max ( z j − c j < 0) = max am +1, j < 0 , j = 1, 2,..., n + m
Zašto?
ƒ Ako je to koeficijent am+1,s
+1 , onda je stupac s vodeći stupac,
stupac a
varijabla xs ulazi u bazu. Vodeći stupac simbolički se označava
s ↑.
ƒ Korak 2. Određivanje varijable koja napušta bazu (određivanje
vodećeg retka).
ƒ Da bi se odredio vodeći redak neophodno je izračunati
kvocijente vrijednosti bazičnih varijabli (stupac x0) i
odgovarajućih elemenata po retcima iz prethodno određenog
vodećeg
d ć stupca.
t Najmanja
N j j vrijednost
ij d t izračunatih
i č tih kvocijenata
k ij t
određuje vodeći redak, odnosno određuje varijablu koja
napušta bazu. Zašto?
ƒ Matematički se određivanje vodećeg retka vrši utvrđivanjem
minimalne vrijednosti kvocijenta
⎧ ai 0 ⎫
min ⎨ ⎬ , ais > 0.
i
⎩ ais ⎭
⎧ ai 0 ⎫ ar 0
ƒ Neka je to r-ti
ti redak, tj min ⎨ , ais > 0 ⎬ =
redak tj. .
⎩ ais ⎭ ars
ƒ Koeficijent
j ars kojij se nalazi na presjeku
p j vodećegg retka i
vodećeg stupca naziva se ključni element (broj) koji se u
tablici posebno označava (zaokružuje). Vodeći redak
simbolički se označava s ← . Varijabla koja se nalazi u
vodećem retku napušta bazu, tj. prelazi iz statusa bazične u
status nebazične varijable. Na njezino mjesto će se u narednoj
simpleks
i l k tablici
t bli i upisati
i ti nova bazična
b ič varijabla
ij bl određena
d đ u
koraku 1.
ƒ Korak 3. Transformacija koeficijenata simpleks tablice.
ƒ Da bi se odredilo poboljšano rješenje neophodno je izračunati
nove vrijednosti bazičnih varijabli i ostalih koeficijenata
naredne
d simpleks
i l k tablice
bli pomoću ć transformacija
f ij koeficijenata
k fi ij
vodećeg retka i koeficijenata ostalih redaka.
ƒ Koeficijenti vodećeg retka transformiraju se tako da se svaki
koeficijent retka podijeli s ključnim elementom, tj.
arj
arj =
'
, ( j = 0,1,
0 1 22, ...).
)
ars
ƒ Transformacija elemenata ostalih redaka vrši se upotrebom
Gauss Jordanovog postupka eliminacije:
Gauss-Jordanovog
arj
aij = aij − arj ⋅ ais = aij −
' '
ais , ( j = 0,1, 2, ...).
ars
ƒ Tj. za i ≠ r , ( i = 1, 2, ..., m + 1) novi koeficijent se dobiva kad
se od starog koeficijenta oduzme produkt novog koeficijenta iz
istog stupca u vodećem retku i starog koeficijenta iz istog retka
i vodećeg stupca.
ƒ Prilikom ručnog rješavanja problema simpleks metodom mogu
se iskoristiti sljedeće matematičke olakšice:
ƒ Ako je u vodećem stupcu neki od koeficijenata jednak nuli, onda kod
transformacije svi
s i koeficijenti u retku
retk s nulom
n lom ostaju
ostaj nepromijenjeni.
nepromijenjeni
ƒ Ako se u vodećem retku nalaze koeficijenti jednaki nuli, onda kod
transformacije svi koeficijenti u stupcu s nulom ostaju nepromijenjeni.
ƒ Radi kontrole računskih operacija u svakoj simpleks tablici
koeficijenti u retku z-c trebaju udovoljavati obrascu koji se
koristi kod formiranjaj početne
p simpleks
p tablice.
ƒ Nakon izmjene bazičnog rješenja konstruira se nova simpleks
tablica s novim bazičnim varijablama i transformiranim
vrijednostima
ij d ti koeficijenata
k fi ij t svih ih redaka
d k simpleks
i l k tablice,
t bli te
t se
vraća na korak 1 (ispitivanje optimalnosti rješenja itd.) i
ponavlja se cjelokupni postupak kroz naredne iteracije dok se
ne dobije optimalno rješenje, odnosno dok se ne dobije da su
svi koeficijenti u retku z-c veći ili jednaki nuli.
Rješavanje općeg problema za minimum pomoću simpleks
tablice

ƒ Rješavanje problema LP za minimum razlikuje se u odnosu na


simpleks algoritam za maksimum samo u koraku 1, dok su
ostali koraci identični (određivanje vodećeg retka i
transformacijaj koeficijenata).
j )
ƒ Algoritam rješavanja problema LP za minimum prikazan je
sljedećim blok dijagramom:
ne

{
max am + 1, j > 0
j
}

ar 0
min {ai 0 / ais ais > 0} =
i ars

arj
a = '
rj
aij' = aij − arj' ⋅ ais
ars
ƒ Korak 1. Ispitivanje optimalnosti rješenja i određivanje varijable
koja
j ulazi u bazu.
ƒ Posljednji redak simpleks tablice z-c predstavlja kriterij
optimalnosti metode na temelju kojeg se utvrđuje je li dobiveno
optimalno
ti l rješenje
j š j ili nije,
ij odnosno
d može
ž li se dobiveno
d bi rješenje
j š j
još poboljšati ili ne.
ƒ Poboljšanje
j j rješenja
j j podrazumijeva
p j prelazak
p neke od nebazičnih
varijabli u bazične, tako da kod problema za minimum dođe do
smanjenja vrijednosti funkcije cilja.
ƒ Ako
Ak su svii kkoeficijenti tk z-c manji
fi ij ti u retku ji ili jednaki
j d ki nuli,
li dobiveno
d bi
je optimalno rješenje. U suprotnom slučaju dobiveno rješenje se
može poboljšati.
ƒ U linearnom modelu za minimum varijablu koja ulazi u bazu
određuje najveći pozitivni koeficijent am+1,j , odnosno

{ } { }
max ( z j − c j > 0) = max am +1, j > 0 , j = 1, 2,..., n + m
ƒ Ako je to koeficijent am+1,s
+1 onda je stupac s vodeći stupac,
stupac a
varijabla xs ulazi u bazu.
ƒ Ostali koraci simpleks algoritma za minimum identični su onim
razmatranim kod rješavanja linearnog modela za maksimum.

Primjer za
a maksimum
ƒ Simpleks metodom (tablični oblik) riješiti sljedeći model LP:
z = 3 x1 + 5 x2 + 2 x3 → max
p.o.
x1 + 2 x2 + x3 ≤ 12
x1 +2 x3 ≥ 10
2 x1 + 3 x2 + x3 ≤ 21
x1 + x2 + x3 = 12
x1 , x2 , x3 ≥ 0
Najprije ćemo model predstaviti u obliku pododnom za
primjenu simpleks metode (sva ograničenja moraju biti izražena
u obliku jednakosti):

z = 3 x1 + 5 x2 + 2 x3 + 0 ⋅ ( x4 + x5 + x6 ) − M ⋅ x7 − M ⋅ x8
p.o.
x1 + 2 x2 + x3 + x4 =12
12
x1 +2 x3 − x5 +x7 = 10
2 x1 + 3 x2 + x3 +x6 =21
21
x1 + x2 + x3 +x8 = 12
x1 , x2 , ..., x8 ≥ 0

Formirajmo početnu simpleks tablicu:


Početna simpleks tablica

cj ci 3 5 2 0 0 0 ‐M ‐M
Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
x4 0 12 1 2 1 1 0 0 0 0
x7 ‐M 10 1 0 2 0 ‐1 0 1 0
x6 0 21 2 3 1 0 0 1 0 0
x8 ‐M
M 12 1 1 1 0 0 0 0 1
z‐c ‐22M ‐2M‐3 ‐M‐5 ‐3M‐2 0 M 0 0 0

Vrijednost programa predstavljena je u zadnjem retku stupca x0.


Izračunava se kao produkt transponiranog vektora “Baza” i
vektora x0. Ovdje
j je
j njegova
j g vrijednost
j jednaka
j -22M.
Vrijednosti u vektoru retku (z-c) koje odgovaraju vektorima
stupcima x1,...,x8 izračunavaju se na taj način da se od produkta
transponiranog vektora “Baza” i odgovarajućeg vektora x1,...,x8
oduzmu odgovarajući koeficijenti c1,...,c8.
Početno bazično rješenje je neupotrebljivo: niti jedna strukturna
varijabla nije u programu, u programu se nalaze artificijelne
varijable a u retku z-c imamo negativnih vrijednosti.
varijable, vrijednosti
Odredimo vektor koji ulazi u bazu i vektor koji napušta bazu. Naveća apsolutna
vrijednost (među negativnim vrijednostima) u retku z-c iznosi (-3M-2), a pripada
vektoru x1, koji ulazi u bazu.

Najmanji kvocijent dobiven dijeljenjem odgovarajućih elemenata


vektora x0 i vektora x3 (vodeći stupac) opredjeljuje varijablu koji
izlazi iz baze (x7). Žutom bojom označen je ključni element.
cj ci 3 5 2 0 0 0 ‐M ‐M
Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
x4 0 12 1 2 1 1 0 0 0 0
x7 ‐M 10 1 0 2 0 ‐1 0 1 0
x6 0 21 2 3 1 0 0 1 0 0
x8 ‐M 12 1 1 1 0 0 0 0 1
z‐c ‐22M ‐2M‐3 ‐M‐5 ‐3M‐2 0 M 0 0 0
Druga iteracija: Transformacija elemenata vodećeg retka vrši se na
taj način da se svi elementi tog retka podijele s ključnim elementom.
U našem primjeru to je 2 (vidjeti na prethodnoj tablici).
tablici)
Transformacija elemenata ostalih redaka matrice vrši se na način da se od starog
koeficijenta
j (prethodna
(p tablica)) oduzme produkt
p novogg koeficijenta
j iz istogg stupca
p
u vodećem retku (sljedeća tablica) i starog koeficijenta iz istog retka i vodećeg
stupca (prethodna tablica). Na taj način dobivamo transformiranu tablicu.

cj ci 3 5 2 0 0 0 ‐M ‐M
Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
x4 0 7 0.5 2 0 1 0.5 0 ‐0.5 0
x3 2 5 0.5 0 1 0 ‐0.5 0 0.5 0
x6 0 16 1.5 3 0 0 0.5 1 ‐0.5 0
x8 ‐M 7 0.5 1 0 0 0.5 0 ‐0.5 1
zc
z‐c ‐7M+10
7M+10 ‐0.5M‐2
0 5M 2 ‐M‐5
M5 0 0 ‐0.5M‐1
0 5M 1 0 1 5M+1
1.5M+1 0

Npr. prvi element u vektoru x1 dobili smo na sljedeći način: 1 − 0.5 ⋅ 1 = 0.5
Svi ostali transformirani elementi matrice dobivaju se na analogan način.
Treća iteracija. Transformacija koeficijenata tablice vrši se na način
analogan prethodno prikazanom.

U bazu ulazi vektor x1, a iz baze izlazi vektor x6. Sve prema pravilu za ulazak
vektora u bazu (najveća apsolutna vrijednost u stupcu z-c<0,
z-c<0 odnosno najmanji
kvocijent odgovarajućih elemenata vektora x0 i vektora x1, koji ulazi u bazu.

cj ci 3 5 2 0 0 0 ‐M ‐M
Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
x2 5 3.5 0.25 1 0 0.5 0.25 0 ‐0.25 0
x3 2 5 0.5 0 1 0 ‐0.5 0 0.5 0
x6 0 5.5 0.75 0 0 ‐1.5 ‐0.25 1 0.25 0
x8 ‐M 3.5 0.25 0 0 ‐0.5 0.25 0 ‐0.25 1
zc
z‐c ‐3.5M+
3 5M+ ‐0.25M‐
0 25M 0 0 0.5M+
0 5M+ ‐0.25M+
0 25M+ 0 1.25M‐
1 25M 0
27.5 0.75 2.5 0.25 0.25
Četvrta iteracija. Transformacija elemenata matrice na način
analogan
g pprethodnim izlaganjima.
g j

cj ci 3 5 2 0 0 0 ‐M
M ‐M
M
Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
x2 5 1.6667 0 1 0 1 0.3333 ‐0.3333 ‐0.3333 0
x3 2 1.3333 0 0 1 1 ‐0.3333 ‐0.6667 0.3333 0
x1 3 7.3333 1 0 0 ‐2 ‐0.3333 1.3333 0.3333 0
x8 ‐M 1.6667 0 0 0 0 0.3333 ‐0.3333 1 1.6667
z‐c ‐1.6667M+ 0 0 0 1 ‐0.3333M 0.3333 1.3333 0
33 M+1 M
Peta iteracija. Transformacija elemenata matrice na način
analogan
g pprethodnim izlaganjima.
g j

cj ci 3 5 2 0 0 0 ‐M
M ‐M
M
Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
x2 5 0 0 1 0 1 0 0 0 ‐1
x3 2 3 0 0 1 1 0 ‐1 0 1
x1 3 9 1 0 0 ‐2 0 1 0 1
x5 0 5 0 0 0 0 1 ‐1 ‐1 3
z‐c 33 0 0 0 1 0 1 M M

Uvjeti optimalnosti su ispunjeni, u retku z-c nema negativnih elemenata te se


program ne može dalje poboljšavati. Prema tome: x1=9, x2=0, x3=3, x5=5. Ostale
j
su varijable jjednake nuli. Iz tablice možemo ppročitati optimalnu
p vrijednost
j funkcije
j
cilja, pa je z=33. Što znači x5=5?
Prekidi u simpleks metodi
ƒ Varijabla koja ulazi u bazu: Korak 1 svake iteracije bira
varijablu s najvećom apsolutnom vrijednošću (među negativnim
vrijednostima) u retku z-c kao varijablu koja ulazi u bazu. Ako
pretpostavimo da dvije ili više nebazičnih varijabli imaju imaju
takvu istu najveću apsolutnu vrijednost, postavlja se pitanje koja
će od tih varijabli
j prije
p j ući u bazu. Odgovor
g je
j da odabir varijable
j
koja prije ulazi u bazu može biti arbitraran. Optimalno rješenje će
se postići bez obzira koja je od tih varijabli odabrana
ƒ Varijabla
V ij bl kojak j iizlazi
l i iz
i baze
b – degeneracija
d ij : Ako
Ak pretpostavimo
t t i
da dvije ili više bazičnih varijabli daju isti najmanji kvocijent,
postavlja se pitanje ima li utjecaja koja će od njih prije napustiti
bazu. Teoretski da, ako se pojave sljedeće okolnosti. Prvo, sve te
bazične varijable dostižu nulu istovremeno kad se bazična
varijabla povećava..
povećava Prema tome,
tome varijable koje nisu odabrane kao
varijable koje napuštaju bazu također će imati vrijednost nula u
novom bazičnom mogućem rješenju.
ƒ Bazične varijable s vrijednosšću nula nazivaju se degeneriranim
varijablama. Drugo, ako jedna od tih degeneriranih bazičnih
varijabli zadrži vrijednost nula kao je odabrana da napusti bazu,
odgovarajuća bazična varijabla također mora zadržati vrijednost
nula (pošto se ne mže povećati bez da varijabla koja napušta bazu
bude negativna), tako da vrijednost z mora ostati nepromijenjena.
Treće, ako z zadrži istu vrijednost na svakoj sljedećoj iteraciji,
simpleks
i l k metodat d ćće ići u krug,
k periodički
i dički ponavljajući
lj j ći ista
i t rješenja
j š j
bez postizanja optimalnog rješenja.
ƒ Na sreću iako jje kretanje
j u krugg kod simpleks
p metode moguće,
g ,
ono se rijetko pojavljuje u praktičnim situacijama. Ako se takvo
kretanje u krug pojavi, uvijek se može iz njega izaći mijenjanjem
odabira varijable koja napušta bazu.
bazu Razvijena su i specijalna
pravila za prekid takvih krugova.
ƒ Ne postoji varijabla koja izlazi iz baze – neograničeno z: ovo će
se pojaviti kad su svi koeficijenti u stupcu uz varijablu koja ulazi u
bazu negativni ili su jednaki nuli.
ƒ U tom slučaju ograničenja ne sprečavaju da se vrijednost ciljne
funkcije poveća na beskonačno. Tada se simpleks metoda
zaustavlja s porukom da je z neograničeno. To je znak da je
problem pogrešno formuliran ili su ispuštena neka važna
ograničenja.
ograničenja
ƒ Višestruko optimalno rješenje: Može se pojaviti da se optimalno
rješenje nalazi u dvije ekstremne točke. U tom slučaju svaka
konveksna kombinacija tih rješenja predstavlja optimalno rješenje
problema LP: ( x1*' , x2*' ) = w1 x1* + w2 x2* gdje su x1* i x2*
odgovarajući
g j vektori optimalnih
p rješenja.
j j
ƒ Simpleks metoda se automatski zaustavlja kad je pronađeno jedno
optimalno rješenje. Nakon što simpleks metoda pronađe jedno
optimalno
ti l rješenje
j š j može ž se provjeriti
j iti postoji
t ji li neko
k drugo
d
optimlno rješenje, i ako postoji, pronaći ga. Uvijek kad problem
ima više od jednog optimalnih rješenja, najmanje jedna nebazična
varijabla ima koeficijent 0 u retku z-c, tako da povećanje
(uvođenje u bazu) takve varijable neće utjecati na z.

You might also like