Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

SIMPLEKS METODA LINEARNOG

PROGRAMIRANJA

1
SIMPLEKS METODA
 Simpleks metoda spada u kategoriju numeričkih iterativnih
metoda (lat. iteratio - ponavljati, obnavljati) gdje se polazi od
nekog dopustivog rješenja (početno bazično rješenje) koje se
u nizu koraka (iteracija) poboljšava dok se ne postigne
optimalno rješenje u skladu sa postavljenim ciljem. Simpleks
metoda predstavlja opšti algoritam za rješavanje svih oblika
zadataka linearnog programiranja.

 Simpleks metoda sastoji se iz dvije faze:


1. svođenje opšteg/standardnog oblika linearnog modela na
kanonski oblik
2. simpleks algoritam koji sadrži:
Korak 1. Određivanje dopustivog bazičnog rješenja i
Korak 2. Poboljšanje dobivenog bazičnog rješenja kroz
konačan broj koraka-iteracija.
2
Koeficijenti u funkciji cilja
Ograničenje Na lijevoj strani ograničenja za uvedene promjenljive
oblika uvode se promjenljive max min
DOP ART DOP ART
≤ +DOP 0 0
= +ART –M M
≥ –DOP+ART 0 –M 0 M

Svođenje modela na kanonski oblik

3
 Dopunske ili izravnavajuće promjenljive (DOP) dodaju se na
lijevoj strani ograničenja oblika nejednačina ≤ i oduzimaju od
lijeve strane ograničenja oblika nejednačina ≥. Pošto dopunske
promjenljive ne izazivaju troškove i ne donose dobit, to su im
koeficijenti u funkciji cilja jednaki nuli.

 Artificijelne (umjetne ili vještačke) promjenljive (ART) uvode se


samo kao računsko sredstvo u simpleks algoritmu sa ciljem da
se obezbjedi dopustivo bazično rješenje.

 Da bi se obezbijedio izlazak svih artificijelnih promjenljivih iz


bazičnog rješenja, u funkciji cilja im se pridružuje koeficijent –M
kod maksimum-problema linearnog programiranja, odnosno +M
kod linearnog minimum-problema.

 Dokle god su artificijelne promjenljive u bazi dobiveno rješenje


je neupotrebljivo. Nakon izlaska iz baze svih artificijelnih
promjenljivih dobiva se prvo upotrebljivo rješenje.
4
 Dopustivo bazično rješenje podrazumijeva svako dopustivo
(moguće) rješenje u kome nema više od m pozitivnih
vrijednosti promjenljivih (odnosno onoliko koliko ima
ograničenja).

 Dopustivo bazično rješenje može biti:


1. nedegenerisano - ima tačno m pozitivnih vrijednosti
promjenljivih,
2. degenerisano - ima manje od m pozitivnih vrijednosti
promjenljivih.

 Promjenljive u simpleks metodi klasifikuju se kao


1. nebazične (koje se izjednačavaju sa nulom)
2. bazične (koje predstavljaju tzv. bazu, imaju vrijednosti veće od
nule (može postojati i degeneracija)

5
 Osobine dopustivog bazičnog rješenja su:
1. sadrži sve pozitivne vrijednosti promjenljivih osim kod
degeneracije,
2. svaka promjenljiva koja ga čini može se pojaviti samo u
jednom ograničenju sa strukturnim koeficijentom 1, tj.
strukturni koeficijenti u ograničenjima uz bazične
promjenljive čine jediničnu matricu,
3. vrijednosti promjenljivih koje čine dopustivo početno bazično
rješenje jednake su slobodnim koeficijentima u
ograničenjima, a to su:
4. dopunske promjenljive uvedene u ograničenje oblika
nejednačina ≤ i
5. artificijelne promjenljive uvedene u ograničenja oblika
jednačina i nejednačina ≥.

6
 Svaka iteracija sastoji se od tri koraka:
1. Utvrđivanje da li je dobiveno rješenje optimalno i ako nije
određuje se promjenljiva koja treba da uđe u bazu (bazično
rješenje)
2. Određivanje promjenljive koja napušta bazu
3. Transformacija strukturnih koeficijenata i koeficijenata u
funkciji cilja nakon čega se vraća na korak 1.

 Simpleks metoda može se provoditi:


1. rješavanjem sistema ograničavajućih jednačina,
2. tabelarno,
3. matrično i sl.

7
Rješavanje opšteg problema linearnog
programiranja za maksimum pomoću simpleks
tabele
 Polazi se od kanonskog oblika linearnog modela
z = c1 x1 + c2 x2 + ...+cs xs +…+cn xn + cn+l xn+l + ... +cn+r xn+r +…→max
a11x1 +a12x2 +...+a1s xs +…+a1nxn + xn+1 = a10
a21x1 + a22 x2 +…+ a2s xs + ...+ a2n xn + + xn+2 = a20
M M M M M
ar1x1 + ar2 x2 +...+ ars xs +...+ arn xn + + xn+r = ar0
M M M M M

am1x1 + am2x2 +...+ amsxs +...+amnxn + ........ = am0

x j ≥ 0; j = 1,2,..., n, n + 1,.... 8
 Simpleks algoritam kod tabelarnog 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 tabelom.

 Određivanje početnog bazičnog rješenja i izračunavanje


kriterija optimalnosti provodi se prilikom konstrukcije početne
simpleks tabele.

9
c j c1 c2 ... cs ...
i Baza x0 x1 x2 ... xs ...
cn+1 xn+1 a10 a11 a12 ... a1s ...
cn+2 xn+2 a20 a21 a22 ... a2s ...
M M M M
cn+r xn+r ar0 ar1 ar2 . . . ars ...
M M M M
z-c am+1,0 am+1,1 am+1,2 . . . am+1,s ...

Početna simpleks tabela

10
 Kod konstrukcije početne simpleks tabele koriste se slijedeća
pravila:
1. Kanonski oblik linearnog modela je osnova za konstrukciju
početne simpleks tabele.
2. Zaglavlje tabele (prvi red i drugi red) sadrži sve promjenljive
(strukturne, dopunske i artificijelne) i njihove odgovarajuće
koeficijente u funkciji cilja.
3. U drugu kolonu “Baza” upisuju se promjenljive koje čine
početno bazično rješenje.
4. Prva kolona sadrži koeficijente u funkciji cilja bazičnih
promjenljivih.
5. U treću kolonu x 0 upisuju se vrijednosti odgovarajućih bazičnih
promjenljivih (početno bazično rješenje).
6. Ostale kolone simpleks tabele x1 , x 2 itd., koje odgovaraju
promjenljivim iz kanonskog oblika linearnog modela, sadrže
strukturne koeficijente promjenljivih iz sistema ograničenja.
7. Red z-c, odnosno koeficijenti a m +1, j izračunavaju se korištenjem
izraza:
11
a m +1,0 = ∑ ci a i0
i

am+1,j = ∑ci aij −cj j=1,2,...


i

Ostali koraci će se predstaviti i opisati pomoću blok dijagrama na


sljedećoj slici.

12
ST A R T

Postavljanje početne
sim pleks tabele

a m + 1 ,j< 0 ? ne
j= 1 ,2 ,…

Vodeća kolona s= ?
O dređuje se sa
{
max a m + 1 , j < 0
j
}
O ptim alno rješenje
Vodeći red r= ?
O dređuje se sa
a r0
min {a i 0 / a is ∀ a is > 0 } = KRAJ
a rs

Izračunavanje elem enata


nove sim pleks tabele
a rj
- vodeći red a ' rj =
a rs
- ostali redovi
a ' rj = a ij − a ' rj ⋅ a is

Blok dijagram za opšti maksimum - problem linearnog programiranja 13


 Korak 1. Ispitivanje optimalnosti rješenja i određivanje
promjenljive koja postaje bazična
 Ako su svi koeficijenti u redu z-c veći ili jednaki nuli,
dobiveno je optimalno rješenje. U suprotnom slučaju
dobiveno rješenje se može poboljšavati. U modelu za
maksimum promjenljivu koja ulazi u bazu određuje najmanji
negativni koeficijent am+1 , j ili najveći po apsolutnoj vrijednosti
negativni koeficijent am+1 , j , odnosno:

{ } {
max z j − c j < 0 = max a m + 1 , j < 0 } j = 1,2,...

Ako je to koeficijent a m +1 , s onda je kolona s vodeća kolona,


a promjenljiva x s ulazi u bazu. Vodeća kolona simbolički se
označava sa ↑.

14
 Korak 2. Određivanje promjenljive koja napušta bazu
Matematički se određivanje vodećeg reda vrši utvrđivanjem
minimalne vrijednosti količnika:
ai0 
min  ∀ ais > 0
 ais 
 a i0  ar0
Neka je to r-ti red, tj. min  , ∀ a is > 0  =
 a is  a rs
Koeficijent a rs koji se nalazi na presjeku vodećeg reda i
vodeće kolone naziva se ključni broj koji se u tabeli
posebno označava. Vodeći red se simbolički označava sa
←. Promjenljiva koja se nalazi u vodećem redu napušta
bazu, tj. prelazi iz statusa bazične u status nebazične
promjenljive. 15
 Korak 3. Transformacija koeficijenata simpleks tabele.
Koeficijenti vodećeg reda transformišu se tako što se svaki
koeficijent reda podijeli sa ključnim brojem, tj.

arj
a'rj = ,( j = 0,1,2,...)
ars

16
Transformacija koeficijenata ostalih redova vrši se
korištenjem slijedećeg obrasca:

Novi Stari Novi koeficijent Stari koeficijent


koeficijent = koeficijent – iz iste kolone u × iz istog reda u
vodećem redu vodećoj koloni

i ≠r,(i =1,m+1)
arj
a'ij =aij −a'rj⋅ais =aij − ais,( j =0,1,2,...)
ars
17
Rješavanje opšteg problema linearnog
programiranja za minimum pomoću simpleks
tabele

 Rješavanje problema linearnog programiranja za


minimum razlikuje se u odnosu na simpleks algoritam za
maksimum samo u koraku 1, dok su ostali koraci
identični

18
ST ART

Postavljanje početne
sim pleks tabele

a m + 1,j> 0? ne
j= 1,2,…

Vodeća kolona s= ?
O dređuje se sa
{
max a m + 1 , j > 0
j
}
O ptim alno rješenje
Vodeći red r= ?
O dređuje se sa
a r0
min {a i 0 / a is ∀ a is > 0 } = K RAJ
a rs

Izračunavanje elem enata


nove sim pleks tabele
a rj
- vodeći red a' rj =
a rs
- ostali redovi
a' rj = a ij − a' rj ⋅a is

19
Blok dijagram za opšti minimum - problem linearnog programiranja
 Korak 1. Ispitivanje optimalnosti rješenja i
određivanje promjenljive koja postaje bazična
 U linearnom modelu za minimum promjenljivu koja ulazi
u bazu određuje najveći pozitivni koeficijent
am+1, j odnosno:

{ } {
max z j − c j > 0 = max a m + 1 , j > 0 } j = 1,2,...

Ostali koraci simpleks algoritma za minimum identični


su sa onim razmatranim kod rješavanja linearnog
modela za maksimum.

20

You might also like