Linearno Programiranje Operaciono Istraživanje

You might also like

You are on page 1of 24

INTERNACIONALNI UNIVERZITET TRAVNIK U TRAVNIKU

SAOBRAĆAJNI FAKULTET TRAVNIK U TRAVNIKU

SEMINARSKI RAD

LINEARNO PROGRAMIRANJE

Travnik, januar 2021.

SADRŽAJ

1. UVOD.................................................................................................................................3
2. LINEARNO PROGRAMIRANJE...................................................................................4
3. MODEL I METODE LINEARNOG PROGRAMIRANJA..........................................5
4. GRAFIČKA METODA....................................................................................................8
5. SIMLEX METODA........................................................................................................10
5.1. Algoritam simplex metode.......................................................................................11
6.2. Primjena simplex metode........................................................................................15
6. DUALNI PROBLEM PROBLEMA LINEARNOG PROGRAMIRANJA...................20

7. ZAKLJUČAK..................................................................................................................22
LITERATURA........................................................................................................................23
Popis slika................................................................................................................................24

1. UVOD

Linearno programiranje je metoda kojom se pokušava postići najbolji ishod (npr. Maksimalni
profit ili minimalni trošak) u nekom matematičkom modelu čiji su uvjeti iskazani linearnim

2
uvjetima. Početke samog problema linearnog programiranja možemo naći kod Fouriera po
kome je jedna od metoda za rješavanje problema linearnog programiranja (Fourier -
Motzkinova eliminacija) dobila ime.

Tehniku linearnog programiranja je prvi razvio Leonid Kantorovich 1939. godine kako bi za
vrijeme II. svjetskog rata planirao troškove i zaradu i na taj način smanjio troškove vojske i
povećao gubitke neprijatelja. Ta tehnika nije bila dostupna široj javnosti i zbog toga nije bila
korištena u rješavanju svakodnevnih problema sve do 1947. godine kada je George B. Dantzig
objavio simpleks metodu, a John von Neumann razvio teoriju dualnosti kao rješenje problema
linearnog programiranja i primijenio ju u području teorije igara. Nakon rata, mnoge su
industrije pronašle korist linearne optimizacije (u koju se ubrajaju i tehnike rješavanja
problema pomoću linearnog programiranja) u svakodnevnim planiranjima troškova i zarade.

2. LINEARNO PROGRAMIRANJE

Jedna od najviše primjenjivanih oblasti operacionih istraživanja je linearno programiranje.

3
Linearno programiranje je vrlo važno polje u optimizaciji. Mnogi praktični problemi u
operacijskim istraživanjima se mogu iskazati kao problemi linearnog programiranja. Kroz
povijest su ideje iz područja linearnog programiranja pridonijele razvitku glavnih koncepata
teorije optimizacije kao što su dualnost, dekompozicija i važnost konveksnosti i njenih
generalizacija. Isto tako, linearno programiranje se koristi u mikroekonomiji i upravljanju
tvrtkama u planiranju, proizvodnji, tehnologiji, prijevozu i ostalim problemima. Iako se
problemi vezani za upravljanje tvrtkama neprestano mijenjaju, većina tvrtki ima u cilju
maksimizirati profit i minimizirati troškove uz ograničene resurse, pa se većina problema
može karakterizirati kao problem linearnog programiranja i riješiti uz neku od poznatih i
prihvaćenih metoda.

3. MODEL I METODE LINEARNOG PROGRAMIRANJA

4
Mnogi problemi u ekonomiji, proizvodnji, tehničkim disciplinama, su tog karaktera da treba
odrediti optimalo rješenje tog problema, pri odgovarajućim ograničenjima (uslovima). To
optimalno rješenje zovemo funkcija cilja (kriterija). To je linearna funkcija više nepoznatih
(varijabli). Ograničenja (uslovi) problema dati su sistemom lineranih jednačina ili
nejednačina.

Ako veličine, koje se pojavljuju u posmatranom problemu, označimo sa:

Xj - nepoznate (varijable); Cj – parametri u funkciji cilja;

F(x) – funkcija cilja (kriterija); aij – parametri ograničenja;

Bi – slobodni članovi jednačina (nejednačina) ograničenja

(i=1,...,m; j=,...,k),

Tada posmatranom problemu odgovara model linearnog programiranja, definisan ovako:

Treba odrediti vrijednost varijabli X1,...,Xk , tako da funkcija cilja

k
f ( x )=c1 x 1+... c k x k =∑ c i x i
i=1

uzme ekstremnu (maksimalnu ili minimalnu) vrijednost pri ograničenjima (uslovima):

a 11 x 1 +a12 x 2 +…+ a1 k x k =b1

a 21 x1 + a22 x 2+ …+a2 k x k =b 2

....................................................... Xj > 0 (j=1,2,...,k)

a m 1 x 1+ am 2 x2 +…+ amk x k =bm

Model možemo napisati i u matičnom obliku:

Odrediti optimalno f(x)=c . x , tj. vrijednost X 1,..., Xk , tako da f(x) ima maksimalnu (ili
minimalnu) vrijenost pri uslovima:

Ax =B i x>0

Tu je:

5
a11 a 12 ⋯ a1 k x1 b1 0

A
[ a21 a 22
= .. . ..
am 1 a m 2


. ..
a2 n
. ..
a mk ] [] [ ] [] , x=
.
.
.
xk
, B= ¿
¿
.
.
.
bm
, 0=
.
.
.
0
, c= [c1,...,ck].

Linearno programiranje je određivanje optimalnog plana (programa). Nosi naziv linearno jer
je funkcija cilja linearna, a i uslovi (ograničenja) su također linearne jednačine (nejednačine).

S obzirom da ograničenja mogu biti data i preko nejednačina, razlikujemo više oblika modela
linearnog programiranja. Navedimo te oblike modela.

Opšti oblik modela: odrediti x=(x1,...,xn) tako da dobijemo max f(x), ili min f(x),

n
f (x)=∑ ci x i, pri uslovima:
i=1

n n

∑ a ij x j b , za i=1,...,1; ∑ a ij x j ≥ b i, za i=1+1,...,s;
i
j=1 i=1

∑ a ij x j b , za i=s + 1,...,m; x j ≥ 0( j=1,2, … , n)


i
j=1

Standardni oblik modela: odrediti x = (x1,...,xn) tako da dobijemo max f (x) pri uslovima

∑ a ij x jb i, za i =1,...,m, ( ∀ j)xj ≥0
j=1

ili da dobijemo min f (x) pri uslovima

∑ a ij x j ≥b i, za i =1,...,m, ( ∀ j)xj ≥0
j=1

Kanonski (osnovni) oblik modela: odrediti x = (x1,...,xn) tako da dobijemo max f (x), ili
min f(x), pri uslovima:

∑ a ij x j=¿b i, za i =1,...,m, ( ∀ j)xj ≥0


j=1

6
Opšti i standardni oblik modela mogu se uvođenjem novih nenegativnih nepoznatih
(promjenjivih, varijabli)svesti na kanonski oblik. Zato je dovoljno znati rješiti kanonski oblik
modela.

Primjetimo, također, da se problem određivanja max f(x) svodi na problem određivanja min [-
f(x)] množenjem funkcije cilja f(x) sa (-1).

Kod opšteg oblika modela uvodimo nove varijable Xn+1 (i=1,...,s), sa:

n
x n+1=bi−∑ aij x j , za i = 1,...,1,
j=1

n
x n+1=∑ a ij x j−¿bi , za i =1 + 1,...,s.
j=1

Zatim dobijamo kanonski oblik modela sa n + s varijabli x 1, i sa m jednačina ograničenja. Na


isti način standardni oblik modela svodimo na kanonski.

Pod metodom linearnog programiranja podrazumjevamo način rješavanja modela linearnog


programiranja. Rješiti model linearnog programiranja znači iz skupa svih mogućih rješenja
odrediti obo (ili ona) koje je optimalno. Takva rješenja, zbog nenegativnosti komponenti,
zovemo i bezična dopustiva rješenja, a one varijable bezičnog rješenja, koje su pozitivne,
zovemo bezične varijable. Ostale varijable, koje su jednake nuli, zovemo slobodne, ili
nebazične varijable.

Metode LP (linearnog programiranja) djelimo na:

- Grafička metoda
- Simpčex metoda
- Transportna metoda
- Metoda raspoređivanja.

U praksi su poznati i neki specijalni oblici modela LP, kao što su: dualni model, model
transporta, model raspoređivanja, i drugi.

7
4. GRAFIČKA METODA

Koristi se za modele sa dvije varijable, ili za modele sa tri varijable, ako koristimo
odgovarajuće znanje iz nacrtne geometrije. Na osnovu uslova ograničenja dobijemo
konveksan (konkavan) poligon ili poliedar, ili se dobije neograničen dio ravni (prostora).
Zatim se rješenja traže u tjemenima dobijene dopustive oblasti, ili na dužima koje ih spajaju.

n
Ako je f(x) = ∑ c i xi funkcija cilja, tada se geometrijski smisao problema linearnog
i=1

programiranja sastoji u tome da se nađe ona tačka x dopustive oblasti, koja najviše, ili

n
najmanje, odstupa od hiperravni ∑ c i xi = 0. Najveće, odnosno najmanje, odstupanje
i=1

predstavlja maksimum, odnosno minimum, funkcije cilja.

Konkretno, za model sa dvije varijable, u dopustivoj oblasti (konačnoj ili beskonačnoj)


tražimo one tačke koje su najviše ili najmanje, udaljene od prave c 1 x 1 + c 2 x 2 = 0.

Primjeri:

1. Tvornica gume isporučuje proizvođaču traktora gume za male traktore – trokotače, i


standardne traktore. Cijena isporuke gume za prednji točak malog traktora (G1) je
600, za zadnji točak malog traktora (G2) je 1000, a za standardni traktor (G3) 1200
novčanih jedinica. Na strojevima mjesečnog kapaciteta 6000 sati izradi se jedna
guma G1 za 0,5 sati, G2 za 0,5 sati i G3 za 0,5 sati. Za jednu gumu G1 treba 1,5 kg
uvozne sirovine, za G2 gumu 2 kg, i za G3 gumu 5 kg. Uvoz je ograničen na najviše
42 tone za mjesec. Proizvođač traktora preuzima čitavu proizvodnju, s tim da guma

8
G2 bude dva puta više nego guma G1. Treba naći mjesečni proizvodni program
trvornice guma.

Rješenje: Označimo li sa X1 (j=1,2,3) broj proizvedenih guma G1, G2, G3, resprektivno,
dobiti ćemo da je

f(x) = 600X1 + 1000X2 + 1200X3 funkcija cilja, koja predstavlja mjesečnu zaradu tvornice
guma. Treba odrediti max f(x) pod uslovima:

0,5X1 + 0,5X2 + 0,5X3 ≤ 6000

1,5X1 + 2X2 + 5X3 ≤ 42000 Xj ¿ 0 (j=1,2,3)


X2 = 2X1
Uvrštavanjem uslova X2 =2X1 u prve dvije nejednačine dobijamo uslove za varijable X1 i X3:

1,5X1 + 0,5X3 ≤ 6000

5,5X1 + 5X3 ≤ 42000 Xj ¿ 0 (j=1,3)


Sada je funkcija cilja f(x)=2600X1 + 1200X3.
U koordinatnom sistemu X1X3 uslovima modela odgovara konveksan četverougao OABC:
O(0,0), A(0,8400), B(1894,73;6315,81), C(4000,0). Slika 1.

Slika 1: Grafik za primjer zadatka.


Sa grafika vidimo da je tjeme B najviše udaljeno od prave 2600X 1 + 1200X3 = 0, u dopustivoj
oblasti D. Zato funkcija f(x) dostiže maksimum u tački B. Koordinate tačke B nisu cjele. Ako

9
bismo zaokružili: X1=1895, X3=6316, tada ne bi bio zadovoljen uslov 1,5X 1 + 0,5X3 ≤ 6000.
Zato ćemo uzeti B ¿ (1895,6316), jer su tada zadovoljena oba uslova (ograničenja). Dakle,
tvornica guma će najveći profit ostvariti ako proizvede: X1 = 1895 guma G1, X2 =2 *1895
=3790 guma G2, i X3 =6315 guma G3. Mjesečna zarada tvornice tada će iznositi:
f(B) = 2600 *1895 + 1200 * 6315 = 12505000 novčanih jedinica.

5. SIMPLEX METODA

Simplex metoda je univerzalna metoda LP, jer je svaki model LP, koji ima rješenje, može
riješiti primjenom simplex algoritma. Inače, ona operira s bazičnim mogućim, osnovnim
rješenjima, dopustive oblasti rješenja. Bezično rješenje ima nenegativne komponente i sadrži
komponente vektora baze.

Simplex metoda istražuje koje od bazičnih rješenja je optimalno. Kako je to iterativna metoda,
ona se sastoji od konačnog broja iteracija, najviše onoliko koliko ima bezično mogućih
rješenja.

Simplex metodu smislio je i uveo američki matematičar Dencig 1947. godine. Ovom
metodom rješava se model LP dat u kanonskom obliku. Naime, ako je problem dat u opštem
ili standardnom obliku, tada uvođenjem novih nenegativnih varijabli Xn+i , tzv. dopunskih
varijabli, dobijamo kanonski oblik modela. Koeficijenti u funkciji cilja uz dopunske varijable
jednaki su nula, a koeficijenti uz dopunske varijable u sistemu uslova jednaki su +1, ili (-1),
zavisno od toga da li u odgovarajućoj nejednačini, koju treba zamjeniti jednačinom, stoji znak
≤ , ili znak ¿ .

Napomenimo da postoje i neke modifikacije simplex metode, npr., transportna metoda,


metoda optimalnog rasporeda, revidirana simplex metoda, dualna simplex metoda, dvofazna
simplex metoda, itd.

10
Posmatrajmo problem nalaženja nenegativnog rješenja sistema

α i1 x1 +α in x n =β i , i =1,...,m

Koje optimizira linearnu funkciju

f(x)=
c 1 x 1 +.. . c n x n =βi ,

Bez umanjenja opštosti možemo smatrati da su svi


β i≥0 . U suprotnom, množimo
odgovarajuću jednačinu sa (-1). Ranije smo, iz djelova konveksne analize, vidjeli da u slučaju
konveksne ograničene dopustive oblasti K, definisane sa (1), linearna funkcija dostiže
ekstremum u jednoj ili više ekstremalnih tačaka skupa K.

Ako je rang matrice sistema (1) jednak m, tada ekstremalnih tačaka skupa K nema više od

( ) . Ako je oblast K neograničena, rješenje može da ne postoji.


m

Pomoću simplex metode nalazimo optimalno rješenje bez ispitivanja svih ekstremalnih
tačaka, ili ustanovljavamo da je skup rješenja neograničen.

Ideja simplex metode je u tome da proizvoljno odaberemo početno rješenje, a da se zatim


svakim novim iterativnim korakom, približavamo optimalnom rješenju. Poslije konačno
mnogo koraka dolazimo do rješenja, ili zaključujemo da rješenje ne postoji.

Samo izvođenje i dokaz pojedinih koraka simplex metode su dosta obimni. Zato ih nećemo
navoditi.

5.1. Algoritam simplex metode

Pretpostavimo da treba rješiti problem gdje je r(A) = m. Jedan iterativni ciklus sadrži sljedeće
korake:

1. Od vektora kolona A1,...,An matrice sistema A izaberemo m vektora koji čine bazu m –
dimenzionalnog vektorskog prostora.

Neka je B = { A p+1 ,..., A n } ta baza, i c o= [ C p+1 ,...,C n] odgovarajući vektor koeficijenata


iz funkcije cilja.

11
2. Izračunamo inverznu matricu B-1 beze (matrice) B.
3. Računamo bezično moguće rješenje po obrascu X0 = B-1 * b, pri čemu je b matrica
kolona odgovarajućih slobodnih članova sistema (1). Bezično moguće rješenje ima sve
komponente nenegativne. Ako to nije slučaj, onda u koraku 1. nađemo neku drugu
bazu prostora.
4. Računamo vektore Xj =B-1*Aj, za one j za koje Aj ne pripada bazi B, tj. za j=1,...,p.
5. Računamo diferencije (razlike) zj – cj za vektore izvan baze, po obrascu

Zj – cj = c0 * Xj – cj , j =1,...,p (zj = c0 * Xj).

6. Utvrđujemo da li se bezično moguće rješenje X0 može poboljšati. To je moguće ako:


a) U modelu maksimuma još neka od diferencija zj – cj je negativna.
b) U modelu minimuma još neka od diferencija zj – cj je pozitivna.

Ako je poboljšanje moguće, postupak nastavljamo korako 7.,a ako nije moguće, postojeće
rješenje X0 je optimalno. Vrijednost funkcije cilja tada je jednaka z0 = f (Xo) = c0 * X0.

Postupak koji sadrži korake 1. do 6. možemo shvatiti jednom iteracijom u simplex metodi.

Ako se rješenje X0 ne može poboljšati, onda je ono optimalno rješenje. Ako se X 0 može
poboljšati, tada izvršavamo korake 7. i 8., a zatim ponavljamo ciklus od 1. do 6. koraka.
Svaka nova iteracija je sve bliža optimalnom rješenju, ako ono postoji.

7. Određujemo vektor kolonu As koju uvodimo novu bazu. To je vektor kojem odgovara:
a) U modelu maksimuma:
Zs – Cs = max I Zj – Cj < 0 I, j = 1,..., p.
b) U modelu minimuma:
Zs – Cs = max (Zj – Cj ), j =1,...,p.
8. Određujemo vektor Ar koji izbacujemo iz postojeće baze B. Broj r određujemo, bez
obzira da li imamo model maksimuma ili minimuma, računjanjem broja:
xr xi
Θ=
ars
=min
{ }
ais
, Θ>0 ,
i =1,...,m, Xi – bazične varijable.

Zamjenom vektora Ar vektorom As, i formiranjem novog vektora C0, obnavljamo postupak od
1. do 6., tj. radimo novu iteraciju. Svali ciklus možemo pratiti i primjenom simplex tablice.

12
Primjer 1. Privredna kompanija izrađuje tri proizvoda: A,B iC. Rad strojeva, koji imaju
kapacitet, u posmatranom vremenu 25 000 radnih sati, u proizvodnji jedinice proizvoda A je
10, proizvoda B 10, i proizvoda C 20 sati. Osnovna sirovina je ista za sve proizvode, a može
se osigurati, najviše 20 000 kg. Proizvodnja jedinice proizvoda A zahtjeva 5 kg, proizvoda B
20 kg i proizvoda C 10 kg sirovine. Realizacija proizvoda B i C nije uvjetovana količinom
proizvodnje, a proizvoda A se može prodati najviše 5000 komada. Dohodak za komad
proizvoda A je 30, proizvoda B 20, a proizvoda C 10 novčanih edinica. Odrediti optimalni
program proizvodnje.

Rješenje: Neka X1,X2,X3 označavaju broj komada proizvoda A, B i C resprektivno. Datom


problemu odgovara model:

Odrediti X1,X2,X3 tako da funkcija cilja f(x) = z = 30X1 + 20X2 + 10X3 ima maksimalnu
vrijednost pri uslovima:

10X1 + 10X2 + 20X3 ≤ 25000

5X1 + 20X2 + 10X3 ≤ 20000 X1≥ 0 (j = 1,2,3)

Xi ≤ 5000

Funkcija f (x) = z predstavlja dobit od prodaje proizvoda. Da bismo ovaj standardni oblik
modela sveli na kanonski oblik, uvodimo dopunske varijable X4, X5,X6, tako da je sada:

f (x) = z = 30X1 + 20X2 + 10X3 + 0 * (X4 + X5 + X6)

10X1 + 10X2 + 20X3 ¿ 25000

5X1 + 20X2 + 10X3 + X5 ¿ 20000 X1≥ 0 (j = 1,...,6)

Xi + X6 ¿ 5000

Dopunske varijable imaju sljedeće značenje:

X4 – broj sati nekorištenja strojeva u odnosu na raspoloživi kapacitet,

X5 – količina neupotrijebljene sirovine u odnosu na količinu koja se može osigurati,

X6 – nepodmirena potražnja za proizvodom A u odnosu na moguću prodaju.

U našem modelu je:

13
x1

[]
10 10 20 1 0 0

X=
.
. , A=
.
x6
[ 5 20 10 0
1 0 0 0
A 1 A 2 A3 A 4
1 0
0 1
A5 A 6][ 25000
] c c c c c c6
[
, b= 20000 , c= 1 2 3 4 5
5000
30 20 10 0 0 0 ]
I iteracija:

1. Rang matrice sistema r (A) = 3. Vektori A4, A5, A6 čine bazu trodimenzionalnog
vektorskog prostora.
B= { A4, A5, A6}, C0 = (0,0,0).

1 0 0

2.
[ ] −1
B= 0 1 0 =1⇒ B =1
0 0 1

25000

3. Zbog B-1 =1, je X0 = B-1 * b = b =


[ ]
20000 .
5000 To znači da je X4 = 25000, X5= 20000,
X6=5000 (bezične varijable), a nebazične varijable X1 = X2 = X3 = 0
4. Aj ne pripada bazi za j =1,2,3, pa za te j računamo Xj = B-1 * Aj.
Kako je B-1 =1, to je X1=A1, X2= A2, X3 = A3.
5. Za j =1,2,3 računamo diferencije zj – cj = c0 * Xj – c1.
Dobijamo:

6. Kod nas u modelu maksimuma ima negativnih diferncija, što znači da se rješenje X0
može poboljšati.
7. Zs – Cs = max I zj < 0 I, j =1,2,3. To je ispunjeno za s = 1, što znači da u bazu B
trebamo uvesti vektor A1.
X4 X5 X6

8.
Θ=
xr
ar 1
=min
{ } {
xi
a i1
=min
25000 20000 5000
10
,
5
,
1 }
.Θ=2500

r=4, što znači da iz postojeće baze trebamo izbaciti vektor A4. Naime, u gornjoj
formuli za O, umjesto Xi stoje bazične varijable X4, X5, X6, a elementi aij (i=1,2,3) su
elementi vektora A1, kojeg trebamo uvesti u bazu.

Dakle, iz baze B izbacujemo vektor A4, a umjesto njega uvodimo u bazu vektor A1.

14
II iteracija

10 0 0

1. Nova baza je B =
[ ]
{ A1 , A5 , A 6 } = 5 1 0 .
1 0 1 tada je c0 = [30,0,0.
2. Računamo inverznu matricu B-1 matrice B, pa dobijamo:

1 1 0 0
−1

[
B = −5 10 0 .
10
−1 0 10 ]
1 1 0 0 25000 2500

3.
−1
10 [
x 0=B ⋅b= −5 10 0 ⋅ 20000 = 7500
−1 0 10 5000 2500][ ] [ ] je bezično moguće rješenje, pa je
X1=2500, X5=7500, X6=2500, jednake nuli.
4. Računamo Xj = B-1 * Aj, za j = 2,3,4, i dobijemo:

1 2 1 1
[] [] []
x 2= 15 ,x 3 = 0 , x 4 = −5 .
−1 −2
10
−1
5. Za j =2,3,4 računamo diferencije zj – cj = c0 *Xj – cj-

Dobijamo:

[]
z 2−c2 =[ 30 , 0,0 ]⋅ 15 −20=30−20=10 ,
−1
2

[]
z 3−c3 = [ 30 , 0,0 ]⋅ 0 −10=60−10=50 ,
−2
1

[] 1
z 4 −c 4 = [ 30 ,0,0 ]⋅ −5 −0=3.
10
1

6. Nema negativnih diferencija zj – cj, pa se bazično rješenje X0 ne može poboljšati.


7. Dakle oprimalno rješenje je: X1=2500, X2= 0, X3 =0, tj. proizvodit će se samo
proizvod A, i to 2500 komada. Ostvariti će se maksimalni dohodak f (x) = z=30 *
2500 = 75000 novčanih jedinica. X4 =0 znači da su strojevi maksimalno iskorišteni
(bez prekida rada), X5 = 7500 znači da se koristi 7500 kg sirovine manje nego šzo se

15
može osigurati, a X6 = 2500 znači da je potražnja za proizvodom A 2500 komada veća
od količine koja se proizvodi.
5.2. Primjena simplex tablice

Vidjeli smo da iterativni rješavanjem modela linearnnog programiranja u svakoj iteraciji


moramo izračunati inverznu matricu matrice B, moramo množiti matrice, itd., što zahtjeva
mnogo vremena i truda pogotovo ako nam se desi da moramo izvršiti veći broj iteracija.
Zbog jednostavnijeg računa češće koristimo simpleks tablice. Za svaku novu iteraciju
simpleks algoritma formiramo po jednu novu simpleks tablicu, s tim da se elementi tablice
računaju primjenom jednostavnijih formula. Zato je ovakav način rješavanja simpleks
metodom mnogo lakše programirati.

Mačin rješavanja linearnog problema pomoću simpleks tablica ilustriraćemo na rješavanju


primjera 2.( dinamika pripreme otkupnog polja) kojeg smo primjenom iteracija već riješili
u prethodnom paragrafu.

Rješenje: odrediti vrijednost varijabli X1 i X2 tako da funkcija cilja f(x) = z= 50X 1 + 70X2
ima maksimalnu vrijednost pri uslovima:

X1 + X2 ≤ 10500
X1 ≤ 5000
X2≤ 8000 X1≥0 (j=1,2)

30 10 20
x1 + x 2≤ ⋅10500
100 100 100

Da bismo ovaj standardni oblik modela sveli na kanonski oblik, uvodimo dopunske
varijable X3, X4,X5,X6, tako da je sada:

F(x)=z=50X1 + 70X2 +0 *(X3+X4+X5+X6),

Uz uslov da varijable X1,...,X6 zadovoljavaju sistemu jednačina:

X1 + X2 + X3 =10500
X1 + X4 = 5000
X2 + X5 = 8000
30X1 + 10X2 + X6 = 210000
Xj≥0 (j=1,...,6)

16
U našem modelu je f(x) =z = c * xuz uslov da vrijedi matična jednačina A * X = b, gdje je

c1

[ ]
x1 c2

[]
c3
x2 1 1 1 0 0 0 10500 c4
x
x= 3 , A=
x4
x5
x6
[ 1 0
0 1
30 10
0
0
0
1
0
0
1 0
0 1
][ ]
0 0 , b=
8000
210000
c5 c6
5000 , c= 50 ,70 , 0 , 0 , 0 , 0 .

U početnoj simpleks tablici uzeti ćemo da su X3, X4, X5 i X6 bazične promjenjive, a X1 i X2 su


nebazične promjenjive.

X1 x2

A12= z1 – c1 a13 = z2 – c2

Xi : ai3 co Baza b Bazično rješenje -50 -70


10 500 0 X3 10 500 1 1
∞ 0 X4 5 000 0 1
8 000 0 X5 8 000 0 1
21 000 0 X6 210 000 30 10

U početnoj tablici bezične promjenjive uzimaju vrijednost iz kolone slobodnih članova, tj,
elemente matrice kolone b, a vektor co ima sve komponente jednake nuli, jer su to koeficijenti
u funkciji cilja uz bazične promjenjive. Zbog co = [0,0,0,0] je u prvoj simpleks tablici z1 =z2
=0. Zato je z1 – c1 = 0 – 50 = -50 i z2 – c2 = 0 – 70 = -70. Elementi tablice koji se nalaze ispod
diferencija z1 – c1 = - 50 i z2 – c2 =– 70 su koeficijenti uz varijable x 1 i x2 resprektivno, u
sustemu ograničenja. Kako je max [(z1 – c1),( z2 – c2)]=70 zadovoljeno je za (z2 – c2), to znači
da u bazu trebamo uvesti vektor koji odgovara varijabli x2. Dobijenu, boldiranu kolonu ispod
x2 zovemo vodeća kolona ili pivot- kolona. To je k – ta kolona. Konkretno, kod nas je k =3.
Da bismo saznali koji vektor trebamo izbaciti iz baze, vrijednosti bazičnih varijabli dijelimo
redom sa odgovarajućim koeficijentima u pivot – koloni i tražimo minimalni količnik. Kako

min {105001 , 50000 , 80001 ,210000


10 }=min {10500 , ∞ ,8000 , 21000}=8000 odgovara varijabli
x5, to znači da ta varijabla postaje nebazična promjenljiva. Odgovarajuća r – ta vrsta u kojoj se
nalazi x5 sada se zove vodeća vrsta ili pivot vrsta. Ona je u tablici boldirana i vrijedi

17
konkretno r =4. Element ark = a43 =1 simpleks tablice koji se nalazi na presjeku pivot vrste i
pivot kolone nazivamo pivot element.

Izračunavanje elementa aij nove simpleks tablice vršimo na sljedeći način:

1 1 1
ark = ,tj . a43 = = =1
1. Pivot-element: a rk a43 1

2. Ostali elementi u r – toj vrsti:

arj =a rj⋅ark ( j≠k )


a 41=a41⋅a 43=8000⋅1=8000 ;a 42=a42⋅a 43=0⋅1=0

3. Vrijednosti ostalih elemenata, osim onih u pivot – koloni:


aij =aij −aik⋅a rj ( j≠k ;i≠r )
a12=a12−a13⋅a42=−50−(−70)⋅0=−50
a21=a21−a 23⋅a41=10500−1⋅8000=2500
a22=a22−a 23⋅a24=1−1⋅0=1
a31=a31−a32⋅a 41=5000−0⋅8000=5000
a32=a32−a33⋅a42=1−0⋅0=1
a51=a51−a53⋅a41=210000−10⋅8000=130000
a52=a52−a53⋅a42=30−10⋅0=30.
4. Preostale vrijednosti u pivot koloni:
aik =−a ik⋅ark =(i≠r )
a13=−a13⋅a 43=−(−70 )⋅1=70
a23=−a23⋅a 43=−1⋅1=−1
a33=−a33⋅a 43=0⋅1=0
a53=−a53⋅a 43=−10⋅1=−10
Uzevši u obzir dobijene rezultate dobijamo novu simplex tablicu:
X1 X2
a12=z1-c1 a13=z5-c5

Xi : ai2 co Baza b Bazično rješenje -50 -70


2 500 0 X3 2 500 1 -1
5 000 0 X4 5 000 1 0
∞ 70 X2 8 000 0 1
4333,33 0 X6 130 000 30 -10

18
Diferencija z1 – c1=-50 je jedina negativna, što znači da varijabla x1 treba da postane bezična.

Kako je
min {25001 , 50001 , 80001 ,130000
30 }=min {2500 , 5000 ,∞ , 4333 , 33}=2500 ,
zaključujemo da varijabla x3 postaje nebazična. Sada, koristeći ranije navedene formule
računamo elemente nove simleks tablice.

1 1
ark =a22= = =1 .
1. Pivot element: a22 1

2. Ostali elementi u r – toj vrsti:

a21=a21⋅a22=2500⋅1=2500 ;a23=a23⋅a 22=−1.

3. Vrijednosti ostalih elemenata, osim onih u pivot koloni:

a13=a 3−a 12⋅a23=70−(−50)⋅(−1)=20


a31=a31−a32⋅a 21=5000−1⋅2500=2500
a33=a33−a 32⋅a23=0−1⋅(−1)=1
a 41=a41−a42⋅a 21=8000−0⋅2500=8000
a 43=a 43−a 42⋅a23=1−0⋅(−1)=1
a51=a51−a52⋅a 21=130000−30⋅2500=55000
a53=a53−a 52⋅a23=−10−30⋅(−1 )=20 .

4. Preostale vrijednosti u pivot koloni:

a12=−a12⋅a22=50
a32=−a32⋅a22=−1
a 42=−a 42⋅a22=0
a52=−a52⋅a22=−30 .

Sada nova simleks tablica izgleda ovako:

X3 X5

A12=z3-c3 a13=z5-c5

co Baza b Bazično rješenje 50 20


50 X1 2 500 1 -1
0 X4 2 500 -1 1
70 X2 8 000 0 1
0 X6 55 000 -30 20

19
Nemamo više negativnih diferencija. To znači da smo dobili optimalno rješenje funkcija cilja
za X1 = 25000 m/god i X2=8000 m/god.

6. DUALNI PROBLEM PROBLEMA LINEARNOG PROGRAMIRANJA

Svakom zadatku linernog programiranja A može se određenim postupkom postaviti novi


zadatak A“, koji je prvim, na određeni način, u tijesnoj vezi.

Označimo A sljedeći zadatak LP:

n
f (x )=∑ c i x i
Maksimizirati linearnu funkciju i=1 pod uslovima

ai 1 x 1+. . .+ain x n ≤bi , i=1 , .. . ,m ,


x i≥0 , i=1 , ... ,n .

Dualni zadatak A“, zadatka A, je:

m
ϕ(u )=∑ b i ui
Minimizirati linearnu funkciju i=1 pod uslovima

a1 i u 1 +. ..+a mi u m≥c i ,i=1, . .. , n ,


ui ≥o , i=1 ,. .. , m.

Zadaci (problemi) A i A“ su uzajamno dualni. Možemo ih prikazati matricama

20
a11 a 12 ⋯ a1 n b 1 a11 a21 ⋯ am 1 c 1

[ a21 a 22
⋯ ⋯
am 1 a m 2
c1 c2
⋯ a2 n b 2
⋯ ⋯ ⋯ i ⋯ ⋯
][
a 12 a22

⋯ a mn b m a1n a2 n
⋯ c n f max b1 b 2
⋯ am 2 c 2
⋯ ⋯ ⋯ ,
⋯ a mn c n
⋯ bn ϕ min
]
Koje su uzajamno transponovane ako je ispunjen uslov
f max =ϕ min .

Pri tome su ograničenja oblika ≤u zadatku A zamjenjena suprotnim ograničenjima oblika ≥ u


zadatku A¨, a promjenljive u oba zadatka su nenegativne.

Problem A zovemo primarnim. Kod primarnog modela možemo tražiti i min f. Tada kod
dualnog modela tražimo max ϕ.

U tijesnoj vezi dualnih modela govori sljedeći stav:

Stav: Ako jedan od zadataka (modela, progrma) A ili A¨ ima optimalno rješenje, tada i drugi

zadatak ima optimalno rješenje, i tada je (


f max =ϕ min . )ili ( f min=ϕ max . )

21
7. ZAKLJUČAK

U svakodnevnom životu, ljudi često pokušavaju na neki način maksimizirati svoje dobitke i
minimizirati gubitke. Zbog toga nije niti čudno da se linearno programiranje od svojih
početaka u drugom svjetskom ratu do danas munjevito razvijalo. Problemi linearnog
programiranja nam pomažu modelirati svakodnevne probleme i pronaći optimalna rješenja
ovisno o ograničenjima koja su zadana. Do danas su razvijeni mnogi algoritmi koji se bave
rješavanjem ovakvih problema. Jedan od njih, simpleks algoritam, je čak uvršten u top 10
algoritama 20. stoljeća. U ovom radu obradujemo sam problem linearnog programiranja,
geometriju linearnog programiranja, simpleks metodu, teoriju dualnosti te se dotičemo
problema cjelobrojnog linearnog programiranja. Linearno programiranje uistinu ima primjenu
u stvarnom životu, što dokazuje i konkretan problem optimalnog rasporeda vozila za
putovanja na razna dogadanja koji je modeliran kao problem cjelobrojnog linearnog
programiranja.

22
LITERATURA

[1] Rešić S., Vugdalić R., Operaciona istraživanja, Tuzla, 2011.

[2] Čordaš R., Linearno programiranje i primjene, Sveučilište u osjeku, 2014.

[3]http://matematika.fkit.hr/staro/izborna/referati/Daniela%20Petkovicek%20-%20Linearno
%20programiranje.pdf (22. 01. 2021.)

[4] http://www.mathos.unios.hr/lp/Materijali/predavanje16_lp.pdf (22. 01. 2021.)

[5] https://bs.wikipedia.org/wiki/Linearno_programiranje (22. 01. 2019.)

[6] https://repozitorij.pmf.unizg.hr/islandora/object/pmf%3A7327/datastream/PDF/view
(22. 01. 2021.)

23
Popis slika

Slika 1. Grafik za primjer zadatka.

24

You might also like