Professional Documents
Culture Documents
Simplex Metoda
Simplex Metoda
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.
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.
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.
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
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.
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 ...
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
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
{ } {
max z j − c j < 0 = max a m + 1 , j < 0 } j = 1,2,...
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:
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
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
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,...
20