05.11.2014 Views

Linearno programiranje 1 Problem linearnog programiranja

Linearno programiranje 1 Problem linearnog programiranja

Linearno programiranje 1 Problem linearnog programiranja

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Linearno</strong> <strong>programiranje</strong><br />

Ivana Kuzmanović, Kristian Sabo<br />

Radni materijal za predavanja<br />

1 <strong>Problem</strong> <strong>linearnog</strong> <strong>programiranja</strong><br />

<strong>Linearno</strong> <strong>programiranje</strong> optimizacijska je metoda kojom se odreduje optimalna vrijednost<br />

linearne funkcije više varijabli (tzv. funkcije cilja) obzirom na neke zadane linearne uvjete<br />

koje varijable moraju zadovoljavati.<br />

Počeci <strong>linearnog</strong> <strong>programiranja</strong> sežu u razdoblje Drugog svjetskog rata gdje se koristilo<br />

za potrebe minimiziranja troškova vojske, vojne taktike i sl. a osobiti razvoj je uslijedio<br />

nakon 1947. godine kada je američki matematičar A. Danzig razvio vrlo učinkovitu motodu<br />

(tzv. simpleks metoda) za numeričko rješavanje problema <strong>linearnog</strong> <strong>programiranja</strong>.<br />

Simpleks metoda je i danas osnovna metoda <strong>linearnog</strong> <strong>programiranja</strong>.<br />

U današnje vrijeme, koristeći računala, linearno <strong>programiranje</strong> nezaobilazna je metoda<br />

u mnogim područjima gdje se javljaju vrlo složeni problemi optimizacije (kao npr. problem<br />

transporta, energije, telekomunikacija, proizvodnje i dr.)<br />

1.1 Standardni oblik problema <strong>linearnog</strong> <strong>programiranja</strong><br />

Neka su c ∈ R n , a i ∈ R n , b i ∈ R, i ∈ M = M 1 ∪ M 2 ∪ M 3 , gdje su M i , i = 1,2,3 skupovi<br />

indeksa takvi da je M i ∩ M j , i ≠ j te f : R n → R linearna funkcija zadana formulom<br />

f(x) = c T x. Promatrajmo sljedeći minimizacijski problem:<br />

f(x) = c T x →<br />

uz uvjet<br />

min<br />

x<br />

(1)<br />

a T i x ≥ b i , i ∈ M 1 (2)<br />

a T i x ≤ b i , i ∈ M 2 (3)<br />

a T i x = b i , i ∈ M 3 . (4)<br />

<strong>Problem</strong> (1)-(4) zovemo problem <strong>linearnog</strong> <strong>programiranja</strong> ili skraćeno LP problem, pri tome<br />

funkciju f zovemo funkcija cilja. Vektor x koji zadovoljava uvjete (2)-(4) zovemo dopustivo<br />

rješenje, dok skup svih dopustivih rješenja zovemo dopustivo područje. Za dopustivo<br />

rješenje x ∗ takvo da je<br />

f(x ∗ ) = c T x ∗ ≤ c T x = f(x), za svako dopustivo rješenje x,<br />

kažemo da je optimalno dopustivo rješenje.<br />

Primjer 1. Zadan je LP problem<br />

uz uvjet<br />

2x 1 − x 2 + 4x 3 → min<br />

x<br />

x 1 + x 2 + x 4 ≤ 2<br />

3x 2 − x 3 = 5<br />

x 3 + x 4 ≥ 0<br />

x 1 ≥ 0<br />

x 3 ≥ 0.<br />

1


Odgovarajući skupovi indeksa su M = {1,2,3,4,5}, M 1 = {3,4,5}, M 2 = {1}, i M 3 = {2}<br />

a odgovarajući vektori su x = [x 1 ,x 2 ,x 3 ,x 4 ] T , c = [2, −1,4,0] T , a 1 = [1,1,0,1] T , a 2 =<br />

[0,3, −1,0] T , a 3 = [0,0,1,1] T , a 4 = [1,0,0,0] T , a 5 = [0,0,1,0] T te b 1 = 2, b 2 = 5, b 3 =<br />

0, b 4 = 0 i b 5 = 0.<br />

Primjedba 1. Uočimo<br />

a) maksimizacijski problem<br />

može se svesti na minimizacijski problem<br />

b) uvjet a T i x = b i ekvivalentan je uvjetima<br />

c T x → max<br />

x<br />

−c T x → min<br />

x<br />

.<br />

a T i x ≥ b i & a T i x ≤ b i .<br />

c) uvjet a T i x ≤ b i ekvivalentan je uvjetu −a T i x ≥ −b i<br />

Sukladno Primjedbi 1, svaki LP problem (1)-(4) može se zapisati u obliku<br />

c T x → min<br />

x<br />

uz uvjet<br />

Ax ≥ b,<br />

gdje su A ∈ R m×n , b ∈ R m , c ∈ R n , x ∈ R n . Pri tome je n broj varijabli, a m dimenzija<br />

problema.<br />

Primjer 2. LP problem iz Primjera 1 možemo zapisati na sljedeći način<br />

uz uvjet<br />

2x 1 − x 2 + 4x 3 → min<br />

x<br />

−x 1 − x 2 − x 4 ≥ −2<br />

3x 2 − x 3 ≥ 5<br />

−3x 2 + x 3 ≥ −5<br />

x 3 + x 4 ≥ 0<br />

x 1 ≥ 0<br />

x 3 ≥ 0<br />

ili u matričnom obliku<br />

uz uvjet<br />

c T x → min<br />

x<br />

Ax ≥ b,<br />

2


gdje su<br />

⎡<br />

A =<br />

⎢<br />

⎣<br />

⎤ ⎡<br />

−1 −1 0 −1<br />

0 3 −1 0<br />

0 −3 1 0<br />

0 0 1 1<br />

, b =<br />

⎥ ⎢<br />

1 0 0 0 ⎦ ⎣<br />

0 0 1 0<br />

−2<br />

5<br />

−5<br />

0<br />

0<br />

0<br />

⎤<br />

⎡<br />

, c = ⎢<br />

⎣<br />

⎥<br />

⎦<br />

2<br />

−1<br />

4<br />

0<br />

⎤<br />

⎥<br />

⎦ .<br />

Primjer 3. Zadan je LP problem<br />

uz uvjet<br />

−x 1 − x 2 → min<br />

x<br />

x 1 + 3x 2 ≤ 2<br />

3x 1 + x 2 ≤ 2<br />

x 1 ≥ 0<br />

x 2 ≥ 0.<br />

Na Slici 1 prikazano je odgovarajuće dopustivo područje. Promatrajmo sve pravce p α<br />

oblika −x 1 − x 2 = α, gdje je α neki realan broj. Primjetimo da je vektor c = [−1, −1] T<br />

vektor normale pravca p α . Jednadžba pravca p α u eksplicitnom obliku glasi x 2 = −x 1 − α,<br />

pri tome je −α odsječak što ga pravac p α odsjeca na x 2 osi. Uočimo da minimizirati<br />

funkciju cilja na dopustivom području znači odrediti α ∗ tako da pravac p α ∗ prolazi kroz<br />

dopustivo područje te da je pri tome α ∗ najmanji mogući, odnosno −α ∗ (odsječak što ga<br />

pravac p α odsjeca na x 2 osi) najveći mogući. Broj α ∗ s tim svojstvom odredit ćemo tako da<br />

najprije odaberemo početni α 0 tako da pravac p α0 prolazi dopustivim područjem. Uočimo<br />

da možemo primjerice uzeti α 0 = 0. Pri tome p α0 translatiramo u smjeru vektora −c tako<br />

da ostanemo u dopustivom području, sve dok odsječak što ga translatirani pravac p α odsjeca<br />

na x 2 osi ne postane najveći mogući. Točka koju smo dobili u tom graničnom slučaju ima<br />

koordinate ( 1<br />

2 , 1 )<br />

2 te je x ∗ = [ 1<br />

2 , 1 T<br />

2]<br />

optimalno dopustivo rješenje dok je odgovarajuća<br />

optimalna vrijednost funkcije cilja α ∗ = −1.<br />

Općenito, pretpostavimo da promatramo LP problem<br />

uz uvjet<br />

c T x = c 1 x 1 + c 2 x 2 → min<br />

x 1 ,x 2<br />

,<br />

Ax ≥ b,<br />

gdje su c ∈ R 2 ,A ∈ R m×2 i b ∈ R m .<br />

Uočimo da se ovakav problem može geometrijski vizualizirati. Skiciramo odgovarajuće<br />

dopustivo područje D = {x ∈ R 2 : Ax ≥ b} ⊆ R 2 . Neka je p α pravac s jednadžbom<br />

c T x = c 1 x 1 +c 2 x 2 = α. Kandidate za dopustivo optimalno rješenje tražimo na pravcu p α ,<br />

gdje je α ∈ R takav da je p α ∩D ̸= ∅. Odaberemo pošetni α 0 takav da je p α0 ∩D ̸= ∅ te neka<br />

je je x 0 radij vektor neke točke na pravcu p α0 . U svrhu traženja optimalnog dopustivog<br />

rješenja trebamo translatirati pravac p α0 . Ako ga translatiramo u smjeru vektora c za<br />

korak λ > 0 imamo<br />

c T (x 0 + λc) = c T x 0 + λ‖c‖ 2 ≥ c T x 0 ,<br />

3


2.5<br />

x 2 x 2<br />

2.5<br />

−x 1 − x 2 = −1<br />

2.0<br />

2.0<br />

3x 1 + x2 = 2<br />

1.5<br />

1.5<br />

1.0<br />

0.5<br />

0.0<br />

D<br />

x 1 + 3x 2 = 2<br />

1.0<br />

0.5 x ∗ = ( 1<br />

2<br />

D<br />

, )<br />

1<br />

2<br />

x 1 x 1<br />

0.0<br />

0.5<br />

0.5<br />

1.0<br />

1.0<br />

1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5<br />

1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5<br />

Slika 1: Dopustivo područje<br />

tj. povećavamo vrijednost funkcije cilja. Dakle, da bismo smanjili vrijednost funkcije cilja<br />

pravac p α0 moramo translatirati u smjeru vektora −c, najviše što možemo, a da pri tome<br />

ostanemo u području D. Radij vektor granične točke je optimalno dopustivo rješenje x ∗ .<br />

Mali geometrijski algoritam<br />

1. Odaberi α 0 tako da je p α0 ∩ D ̸= ∅.<br />

2. Translatiraj pravac p α0 u smjeru vektora −c najviše što možeš.<br />

3. Ako postoji granična točka u kojoj možeš napustiti područje, radij vektor te točke je<br />

optimalno dopustivo rješenje x ∗ . Ako takva točka ne postoji, za optimalnu vrijednost<br />

funkcije cilja stavi −∞<br />

Primjer 4. Jednostavno se vidi da dopustivo područje<br />

−x 1 + x 2 ≤ 1<br />

x 1 ≥ 0<br />

x 2 ≥ 0.<br />

nije omedeno.<br />

Primjenom malog geometrijskog algoritma dobivamo:<br />

a) Ako je c = [1,1] T , onda je x ∗ = [0,0] T .<br />

b) Ako je c = [1,0] T , onda je x ∗ = [0,x 2 ] T , 0 ≤ x 2 ≤ 1<br />

c) Ako je c = [0,1] T , onda je x ∗ = [x 1 ,0] T , x 1 ≥ 0<br />

d) Ako je c = [−1,1] T , onda je optimalna vrijednost funkcije cilja −∞.<br />

e) Ako u skup uvjeta dodamo uvjet x 1 + x 2 ≤ −1, onda će dopustivo područje biti<br />

prazno.<br />

4


2.5<br />

x 2<br />

2.0<br />

1.5<br />

1.0<br />

−x 1 + x 2 = 1<br />

D<br />

0.5<br />

0.0<br />

x 1<br />

0.5<br />

1.0<br />

1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5<br />

Slika 2: Dopustivo područje<br />

Ako su A ∈ R m×n , b ∈ R m te c ∈ R n , onda minimizacijski problem<br />

uz uvjet<br />

c T x → min<br />

x<br />

,<br />

Ax = b<br />

x ≥ 0,<br />

zovemo standardni oblik problema <strong>linearnog</strong> <strong>programiranja</strong>-SOLP. Pri tome uvjet x ≥ 0<br />

znači da je svaka komponenta vektora x nenegativna te stoga taj uvjet zovemo uvjet<br />

nenegativnosti.<br />

Propozicija 1. Svaki se LP problem može zapisati kao SOLP problem.<br />

Dokaz. Ako je x j varijabla koja ne zadovoljava uvjet nenegativnosti, onda se ona može<br />

zapisati u obliku x j = x + j − x− j , gdje su x+ j ,x− j ≥ 0. Uvjetu oblika aT i x ≤ b i pridružujemo<br />

novu varijablu s i ≥ 0, pa taj uvjet prelazi u<br />

a T i x + s i = b i<br />

s i ≥ 0.<br />

Slično, uvjetima oblika a T i x ≥ b i pridružujemo nove varijable s i ≥ 0, pa taj uvjet prelazi<br />

u<br />

a T i x − s i = b i<br />

s i ≥ 0.<br />

Primjer 5. LP problem iz Primjera 1 zapisan kao SOLP glasi<br />

2x 1 − x + 2 + x− 2 + 4x 3 →<br />

5<br />

min<br />

x 1 ,x + 2 ,x− 2 ,x 3,x + 4 ,x− 4 ,s 1,s 2


uz uvjet<br />

x 1 + x + 2 − x− 2 + x+ 4 − x− 4 + s 1 = 2<br />

3x + 2 − 3x− 2 − x 3 = 5<br />

x 3 + x + 4 − x− 4 − s 2 = 0<br />

x 1 ≥ 0<br />

x + 2 ≥ 0<br />

x − 2 ≥ 0<br />

x 3 ≥ 0<br />

x + 4 ≥ 0<br />

x − 4 ≥ 0<br />

s 1 ≥ 0<br />

s 2 ≥ 0,<br />

odnosno u matričnom obliku<br />

uz uvjet<br />

c T x → min<br />

x<br />

,<br />

gdje je<br />

⎡<br />

x =<br />

⎢<br />

⎣<br />

⎤<br />

x 1<br />

x + 2<br />

x − 2<br />

x 3<br />

x + 4<br />

x − 4 ⎥<br />

s 1<br />

⎦<br />

s 2<br />

⎡<br />

, c =<br />

⎢<br />

⎣<br />

2<br />

−1<br />

1<br />

4<br />

0<br />

0<br />

0<br />

0<br />

⎤<br />

⎡<br />

, A = ⎣<br />

⎥<br />

⎦<br />

Ax = b<br />

x ≥ 0,<br />

1 1 −1 0 1 −1 1 0<br />

0 3 −1 −1 0 0 0 0<br />

0 0 0 1 1 −1 0 −1<br />

⎤<br />

⎡<br />

⎦ , b = ⎣<br />

Varijable LP problema koje nisu nenegativne zovemo slobodne varijable. U sljedećem<br />

primjeru pokazat ćemo kako se u nekim slučajevima problem sa slobodnom varijablom<br />

može pretvoriti u problem s nenegativnim varijablama.<br />

Primjer 6. Zadan je LP problem<br />

2<br />

5<br />

0<br />

⎤<br />

⎦ .<br />

uz uvjet<br />

x 1 + 3x 2 + 4x 3 →<br />

min<br />

x 1 ,x 2 ,x 3<br />

x 1 + 2x 2 + x 3 = 5<br />

2x 1 + 3x 2 + x 3 = 6<br />

x 2 ≥ 0<br />

x 3 ≥ 0.<br />

6


Iz uvjeta x 1 + 2x 2 + x 3 = 5 izrazimo slobodnu varijablu x 1 = 5 − 2x 2 − x 3 te je uvrstimo<br />

u drugi uvjet i u funkciju cilja. Na taj način dobivamo novi ekvivalntni problem<br />

uz uvjet<br />

x 2 + 3x 3 → min<br />

x 2 ,x 3<br />

x 2 + x 3 = 4<br />

x 2 ≥ 0<br />

x 3 ≥ 0.<br />

Uočimo da je novi problem SOLP. Osim toga riječ je o dvodimenzionalnom problemu kojeg<br />

možemo riješiti primjenom geometrijskog algoritma. Kada dobijemo x ∗ 2 i x∗ 3 , slijedi da je<br />

x ∗ 1 = 5 − 2x∗ 2 − x∗ 3 . Nije teško vidjeti da su x∗ 1 = −3, x∗ 2 = 4 te x∗ 3 = 0,<br />

Primjedba 2. LP problem može se rješavati pomoću programskog paketa Mathematica<br />

primjenom naredbe LinearProgramming. LP problem oblika<br />

uz uvjet<br />

c T x → min<br />

c<br />

a T i x ≥ b i, i ∈ M 1<br />

a T i x ≤ b i, i ∈ M 2<br />

a T i x = b i, i ∈ M 3<br />

x ≥ 0<br />

rješavamo tako da definiramo vektor s takav da je<br />

⎧<br />

⎨ 1, i ∈ M 1<br />

s i = −1, i ∈ M<br />

⎩<br />

2<br />

0, i ∈ M 3 .<br />

Primjenom naredbe LinearProgramming[c,m,{{b1,s1},...,{bl,sl}}], gdje su a i retci<br />

matrice m te l = |M 1 ∪ M 2 ∪ M 3 |, dobivamo optimalno dopustivo rješenje.<br />

1.2 <strong>Problem</strong>i koji se svode na LP problem<br />

1.2.1 <strong>Problem</strong> optimalne prehrane<br />

Imamo na raspolaganju namirnice N 1 ,...,N n . Cijena po jedinici namirnice N j iznosi c j ,<br />

j = 1,... ,n. U namirnicama su prisutni nutritivni elementi E 1 ,... ,E m , pri čemu je u<br />

namirnici N j prisutno a ij ,i = 1,... ,m, j = 1,... ,n, nutritivnog elementa E i . Poznato je<br />

da svaka osoba mora tijekom jednog dana unijeti barem b i jedinica nutritivnog elementa<br />

E i , i = 1,... ,m. Postavlja se sljedeće pitanje:<br />

Koliko treba konzumirati pojedine namirnice da bi se zadovoljila dnevna potreba za<br />

nutritivnim elementima, a da bi se pri tome minimizarala cijena prehrane?<br />

7


Označimo s x j , j = 1,... ,n količinu konzumirane namirnice N j , j = 1,... ,n. <strong>Problem</strong><br />

se može formulrati kao minimizacijski LP problem na sljedeći način:<br />

uz uvjet<br />

c 1 x 1 + · · · + c n x n →<br />

min ,<br />

x 1 ,...,x n<br />

a 11 x 1 + a 12 x 2 + · · · + a 1n x n ≥ b 1<br />

a 21 x 1 + a 22 x 2 + · · · + a 2n x n ≥ b 2<br />

a m1 x 1 + a m2 x 2 + · · · + a mn x n ≥ b m<br />

x 1 ,...,x n ≥ 0<br />

.<br />

ili u matričnom obliku<br />

uz uvjet<br />

c T x → min<br />

x<br />

Ax ≥<br />

b<br />

x ≥ 0.<br />

Primjedba 3. U popularnijoj varijanti ovaj se problem može formulirati kao problem<br />

minimizacije unosa kalorija, tako da cijenu po namirnici zamijenimo s kalorijama. Interesantna<br />

stranica na kojoj se mogu modelirati različite varijante ovog problema:<br />

www.zweigmedia.com/RealWorld/diet<strong>Problem</strong>/diet.html<br />

1.2.2 <strong>Problem</strong> optimalne proizvodnje<br />

Neko postrojenje prozvodi proizvode P 1 ,...,P n . Za to se koriste strojevi S 1 ,... ,S m . Pri<br />

tome svaki stroj S i , i = 1,... ,m u jednom danu može raditi najviše b i ,i = 1,... ,m sati.<br />

Neka su a ij , i = 1,... ,m, j = 1,... ,n, broj sati koji je potreban da bi se na i−tom stroju<br />

proizveo j−ti prozvod. Označimo s c j , j = 1,... ,n prihod po proizvodu P j . Prirodno se<br />

nameće pitanja:<br />

Koliko treba proizvesti pojedinog proizvoda da bi ostvareni prihod bio maksimalan?<br />

Označimo s x j broj proizvedenih proizvoda P j , j = 1,... ,n. <strong>Problem</strong> se može formulrati<br />

kao maksimizacijski LP problem na sljedeći način:<br />

uz uvjet<br />

c 1 x 1 + · · · + c n x n → max<br />

x 1 ,...,x n<br />

,<br />

a 11 x 1 + a 12 x 2 + · · · + a 1n x n ≤ b 1<br />

a 21 x 1 + a 22 x 2 + · · · + a 2n x n ≤ b 2<br />

a m1 x 1 + a m2 x 2 + · · · + a mn x n ≤ b m<br />

x 1 ,...,x n ≥ 0<br />

.<br />

8


ili u matričnom obliku<br />

uz uvjet<br />

c T x → max<br />

x<br />

Ax ≤<br />

b<br />

x ≥ 0.<br />

Primijetimo da bi optimalni brojevi proizvedenih proizvoda trebali biti cijeli brojevi.<br />

Ako su optimalna rješenja prirodni brojevi, onda smo ovim modelom riješili problem.<br />

Općenito se može dogoditi da neko od rješenja postavljenog LP problema nije cijeli broj.<br />

U tom slučaju potrebno je problem rješavati kao problem cjelobrojnog <strong>programiranja</strong>.<br />

1.2.3 <strong>Problem</strong> najboljeg pravca<br />

Zadani su podaci (t i ,y i ), i = 1,... ,r. Treba odrediti pravac s jednadžbom y = kt + l,<br />

k,l ∈ R koji u nekom smislu najbolje aproksimiraju zadane podatke. Moguće je promatrati<br />

nekoliko pristupa za rješavanje tog problema:<br />

Pristup 1. minimizacija sume kvadrata vertikalnih udaljenosti točaka do pravca, odnosno minimizacija<br />

funkcionala<br />

r∑<br />

F 2 (k,l) = (kt i + l − y i ) 2 .<br />

Pristup 2. minimizacija sume vertikalnih udaljenosti točaka do pravca, odnosno minimizacija<br />

funkcionala<br />

r∑<br />

F 1 (k,l) = |kt i + l − y i |.<br />

Pristup 3. minimizacija maksimalne vertikalne udaljenosti točaka do pravca, odnosno minimizacija<br />

funkcionala<br />

F ∞ (k,l) = max<br />

i=1,...,r |kt i + l − y i |.<br />

i=1<br />

i=1<br />

Pristup 1. je u literaturi poznat pod imenom metoda najmanjih kvadrata. Funkcija<br />

F 2 je derivabilna funkcija te je<br />

⎡<br />

⎤<br />

⎡ ⎤<br />

r∑<br />

r∑ r∑<br />

(kt i + l − y i )t i<br />

t 2 i t i<br />

∇F 2 (k,l) =<br />

i=1<br />

⎢ r∑ ⎥<br />

⎣<br />

(kt i + l − y i )<br />

⎦ , ∇2 F 2 (k,l) =<br />

i=1 i=1<br />

⎢ r∑ ⎥<br />

⎣<br />

r<br />

⎦ .<br />

Lako se vidi da sustav<br />

i=1<br />

i=1<br />

∇F 2 (k,l) = 0, (5)<br />

uvijek ima rješenje. Pri tome u slučaju t 1 = ... = t r sustav (5) ima beskonačno mnogo<br />

rješenja, dok je u suprotnom rješenje sustava jednažbi (5) jedinstveno. Takoder, može<br />

se pokazati da je u slučaju jedinstvenog rješenja matrica ∇ 2 F 2 (k,l) pozitivno definitna<br />

te je stoga jedinstveno rješenje sustava (5) točka u kojoj se postiže globalni minimum<br />

funkcionala F 2 .<br />

9<br />

t i


Odredivanje optimalnog pravca primjenom Pristupa 2 i Pristupa 3, svodi se na problem<br />

nediferencijalbilne optimizacije. Pokazat ćemo da se oba pristupa mogu svesti na problem<br />

<strong>linearnog</strong> <strong>programiranja</strong>.<br />

Pristup 2.<br />

Primijetimo da je<br />

|kt i + l − y i | = max{kt i + l − y i , −kt i − l + y i }, i = 1,... ,r.<br />

Označimo s z i := |kt i + l − y i |,i = 1,... ,r. Očigledno je<br />

kt i + l − y i ≤ z i ,<br />

−kt i − l + y i ≤ z i , i = 1,... ,r.<br />

<strong>Problem</strong> minimizacije funkcionala F 1 možemo zapisati u obliku<br />

uz uvjet<br />

z 1 + z 2 + · · · + z r + 0 · k + 0 · l →<br />

−z 1 + kt 1 + l ≤ y 1<br />

−z 1 − kt 1 − l ≤ −y 1<br />

−z 2 + kt 2 + l ≤ y 2<br />

−z 2 − kt 2 − l ≤ −y 2<br />

min<br />

z 1 ,...,z r,k,l<br />

−z r + kt r + l ≤<br />

−z r − kt r − l ≤<br />

.<br />

y r<br />

−y r<br />

ili zapisano u matričnom obliku<br />

uz uvjet<br />

gdje su<br />

⎡<br />

A =<br />

⎢<br />

⎣<br />

−1 0 · · · 0 t 1 1<br />

−1 0 · · · 0 −t 1 −1<br />

0 −1 · · · 0 t 2 1<br />

0 −1 · · · 0 −t 2 −1<br />

.<br />

0 0 · · · −1 t r 1<br />

0 0 · · · −1 −t r −1<br />

te x = [z 1 ,z 2 ,...,z r ,k,l] T ∈ R r+2 .<br />

⎤<br />

c T x → min<br />

x<br />

,<br />

Ax ≤ b,<br />

⎡<br />

∈ R 2r×(r+2) , b =<br />

⎥<br />

⎢<br />

⎦<br />

⎣<br />

⎤<br />

y 1<br />

⎥<br />

y r<br />

⎦<br />

−y r<br />

−y 1<br />

y 2<br />

−y 2<br />

.<br />

⎡<br />

∈ R 2r , c =<br />

⎢<br />

⎣<br />

1<br />

1<br />

.<br />

1<br />

0<br />

0<br />

⎤<br />

∈ R r+2<br />

⎥<br />

⎦<br />

10


Pristup 3.<br />

Označimo li s<br />

z := max<br />

i=1,...,r |kt i + l − y i |,<br />

slično kao u Pristupu 2 problem se svodi na na sljedeći LP problem:<br />

uz uvjet<br />

z + 0 · k + 0 · l → min<br />

z,k,l ,<br />

−z + kt 1 + l ≤ y 1<br />

−z − kt 1 − l ≤ −y 1<br />

−z + kt 2 + l ≤ y 2<br />

−z − kt 2 − l ≤ −y 2<br />

−z + kt r + l ≤<br />

−z − kt r − l ≤<br />

.<br />

y r<br />

−y r<br />

ili u matričnom obliku<br />

uz uvjet<br />

c T x → min<br />

x<br />

,<br />

Ax ≤ b,<br />

gdje su<br />

⎡<br />

A =<br />

⎢<br />

⎣<br />

−1 t 1 1<br />

−1 −t 1 −1<br />

.<br />

−1 t r 1<br />

−1 −t r −1<br />

⎤<br />

⎡<br />

∈ R 2r×3 , b =<br />

⎥<br />

⎢<br />

⎦<br />

⎣<br />

⎤<br />

y 1<br />

−y 1 .<br />

⎥<br />

y r<br />

⎦<br />

−y r<br />

⎡<br />

∈ R 2r ,c = ⎣<br />

1<br />

0<br />

0<br />

⎤<br />

⎦,<br />

te x = [z,k,l] T .<br />

Primjer 7. Zadani su podaci {(1,1),(2,3),(2.5, 4),(3,5),(4, 11),(5, 15),(8,16)} za koje<br />

treba odrediti pravac s jednadžbom y = kt + l, koji ih najbolje aproksimira u smislu Pristupa<br />

1, 2 i 3. Primjenom opisanog postupka, Pristupe 2 i 3 svedemo na LP problem te<br />

primijenimo naredbu LinearProgramming. Pri tome treba paziti da varijable k i l u oba<br />

pristupa ne zadovoljavaju uvijet nenegativnosti. Dobivamo sljedeće pravce<br />

• Pristup 1. y = −0.996689 + 2.43046t<br />

• Pristup 2. y = 2t<br />

• Pristup 3. y = 1.2 + 2.2t.<br />

11


15<br />

10<br />

5<br />

0 2 4 6 8<br />

Slika 3: Točke i pravci (Pristup 1 - crveno, Pristup 2 - plavo, Pristup 3 - žuto)<br />

Na Slici 3 su prikazani podaci i odgovarajući pravci.<br />

Poznato je da je pravac dobiven primjenom Pristupa 2 najneosjetljiviji na stršeće podatke<br />

tzv.outliere, dok je pravac dobiven Pristupom 3 najosjetljiviji na outliere. Ilustrirat<br />

ćemo to tako da podatak (3,5) zamijenimo s podatkom (3, −1). Za nove podatke dobivamo<br />

sljedeće pravce<br />

• Pristup 1. y = −2.28808 + 2.54967t<br />

• Pristup 2. y = 2t<br />

• Pristup 3. y = 1.75t.<br />

Na Slici 4 prikazani su novi podaci i odgovarajući pravci.<br />

15<br />

10<br />

5<br />

0 2 4 6 8<br />

Slika 4: Promijenjene točke i pravci (Pristup 1 - crveno, Pristup 2 - plavo, Pristup 3 -<br />

žuto)<br />

1.2.4 Minimizacija po dijelovima linearne funkcije<br />

Pretpostavimo da su zadani vektori c 1 ,...,c m ∈ R n te realni brojevi d 1 ,...,d m . Definirajmo<br />

funkciju f : R n → R formulom f(x) = max<br />

i=1,...,m {cT i x + d i }. Funkcija f je po<br />

dijelovima linearna funkcija.<br />

Primjer 8. Graf funkcije f(x) = max{− 1 4x + 2,0.3x − 3,x − 16} prikazan je Slici 6.<br />

Promatramo sljedeći problem<br />

uz uvjet<br />

f(x) → min<br />

x<br />

,<br />

Ax ≥ b.<br />

12


10<br />

5<br />

5 5 10 15 20 25 30<br />

Slika 5: Graf funkcije f<br />

Uvedemo li oznaku<br />

z := max<br />

i=1,...,m {cT i x + d i },<br />

prethodni se problem može napisati u obliku LP problema<br />

uz uvjet<br />

z + 0 T x → min<br />

z,x<br />

Ax ≥<br />

b<br />

−z + c T 1 x ≤ −d 1<br />

−z + c T 2 x ≤ −d 2<br />

.<br />

−z + c T mx ≤ −d m ,<br />

što je problem <strong>linearnog</strong> <strong>programiranja</strong>.<br />

1.3 Zadaci<br />

Zadatak 1. Grafički riješite sljedeći problem <strong>linearnog</strong> <strong>programiranja</strong><br />

uz uvjete<br />

c T x → min<br />

x<br />

2x 1 + 3x 2 − 6 ≥ 0<br />

x 1 ≥ 0<br />

x 1 ≤ 6<br />

x 2 ≥ 0<br />

ako je<br />

a) c = [1,1] T b) c = [−1,0] T c) c = [2,3] T d) c = [0, −1] T<br />

Rješenje: a) x ∗ = [0,2] T , b) x ∗ = [6,x 2 ] T , x 2 ≥ 0, c) x ∗ = [x 1 ,2−2/3x 1 ] T , x 1 ∈ [0,3],<br />

d) optimalna vrijednost je −∞<br />

13


Zadatak 2. Zapišite sljedeći problem kao LP problem i grafički ga riješite<br />

Rješenje: x ∗ = [−2,3] T<br />

max{−2x − 1,x + 5,7x + 2} → min .<br />

x x<br />

Zadatak 3. Zapišite sljedeći problem kao LP problem i grafički ga riješite.<br />

Obrtnik proizvodi dvije vrste proizvoda, A i B. Za (dijeljivu) jedinicu proizvoda A potrebno<br />

je 2 minute pripreme, 1 minuta izrade i 3 minute završnih radova. Za (dijeljivu) jedinicu<br />

proizvoda B potrebno je 2 minute pripreme, 2 minute izrade i 1 minuta završnih radova.<br />

Svakoga dana moguće je utrošiti 140 minuta za pripremu, 120 minuta za izradu i 150<br />

minuta za završne radove. Koliko jedinica svakog proizvoda obrtnik treba izraditi da bi<br />

maksimizirao dobit ako jedinica proizvoda A ima cijenu 10kn a jedinica proizvoda B 8kn?<br />

Rješenje: x ∗ = [40,30] T<br />

Zadatak 4. Sljedeći problem zapišite kao problem <strong>linearnog</strong> <strong>programiranja</strong>. Jedna namirnica<br />

nalazi se u m skladišta iz kojih se opskrbljuje n prodavaonica. Skladište i, i = 1,... ,m<br />

sadrži količinu s i te namirnice a prodavaonici j,j = 1,... ,n treba dostaviti količinu k j<br />

namirnice. Neka je c ij , i = 1,... ,m, j = 1,... ,n cijena prijevoza jedinice namirnice od<br />

skladišta i do prodavaonice j. <strong>Problem</strong> je opskrbiti sve prodavaonice potrebnom količinom<br />

namirnice tako da je ukupna cijena prijevoza minimalna. Formulirajte navedeni problem<br />

kao problem <strong>linearnog</strong> <strong>programiranja</strong>.<br />

Rješenje: Neka je x ij količina namirnice koja je prevezena iz skladišta i u prodavaonicu<br />

j, i = 1,... ,m, j = 1,... ,n.<br />

uz uvjet<br />

m∑<br />

n∑<br />

i=1 j=1<br />

c ij x ij → min<br />

x ij<br />

n∑<br />

x ij ≤ s i , i = 1,... ,m<br />

j=1<br />

m∑<br />

x ij = k j , j = 1,... ,n<br />

i=1<br />

x ij ≥ 0, i = 1,... ,m, j = 1,... ,n<br />

Zadatak 5. U jednom gradu ima n gradskih četvrti i m osnovnih škola (u svakoj školi<br />

su učenici od 1. do 8. razreda). Svaka škola j ima kapacitet c jr učenika u razredu r,<br />

j = 1,... ,m, r = 1,... ,8. U gradskoj četvrti i ima u ir učenika koji pohadaju razred<br />

r, i = 1,... ,n, r = 1,... ,8. Udaljenost gradske četvrti i do škole j je d ij , i = 1,... ,n,<br />

j = 1,... ,m. Treba rasporediti učenike po školama tako da ukupna udaljenost koju ukupno<br />

prijedu svi učenici bude minimalna.<br />

Zapišite navedeni problem kao problem <strong>linearnog</strong> <strong>programiranja</strong> (zanemarite činjenicu da<br />

broj učenika mora biti cijeli broj).<br />

14


Neka je x ijr broj učenika iz četvrti i koji pohadaju razred r u školi j, i = 1,... ,n,<br />

j = 1,... ,m, r = 1,... ,8. Odgovarajući LP problem glasi:<br />

uz uvjet<br />

8∑<br />

n∑<br />

r=1 i=1 j=1<br />

m∑<br />

d ij x ijr → min<br />

m∑<br />

x ijr = u ir , i = 1,... ,n, r = 1,... ,8<br />

j=1<br />

n∑<br />

x ijr ≤ c jr , j = 1,... ,m, r = 1,... ,8<br />

i=1<br />

x ijr ≥ 0, i = 1,... ,n, j = 1,... ,m, r = 1,... ,8<br />

Zadatak 6. Pokažite da se sljedeći problem može svesti na problem <strong>linearnog</strong> <strong>programiranja</strong>.<br />

Na osnovi podataka (t i ,y i ), i = 1,... ,r, odrediti pravac s jednadžbom a ∗ t + b ∗ y + c ∗ = 0,<br />

a ∗ ,b ∗ ,c ∗ ∈ R, gdje je F(a ∗ ,b ∗ ,c ∗ ) = min F(a,b,c) te<br />

(a,b,c)∈R3 F(a,b,c) =<br />

r∑<br />

i=1<br />

|at i + by i + c|<br />

.<br />

|a| + |b|<br />

Rješenje: Označimo a ′ =<br />

a<br />

|a|+|b| , b′ =<br />

b<br />

|a|+|b| , c′ =<br />

c<br />

|a|+|b| , te z i = |a ′ t i + b ′ y i + c ′ |, i =<br />

1,... ,r i α = |a ′ |, β = |b ′ |. Tada se zadani problem može zapisati kao sljedeći LP problem:<br />

uz uvjet<br />

r∑<br />

i=1<br />

z i + 0 · α + 0 · β → min<br />

z i ,α,β<br />

a ′ t i + b ′ y i + c ′ ≤ z i , i = 1,... ,r<br />

−(a ′ t i + b ′ y i + c ′ ) ≤ z i , i = 1,... ,r<br />

α + β = 1<br />

a ′ ≤ α<br />

−a ′ ≤ α<br />

b ′ ≤ β<br />

−b ′ ≤ β<br />

2 Geometrija <strong>linearnog</strong> <strong>programiranja</strong><br />

2.1 Svojstvo konveksne funkcije koja je definirana na konveksnom skupu<br />

Definicija 1. Funkcija f : P → R, P ⊆ R n u x ∗ postiže lokalni minimum ako postoji<br />

ρ > 0 takav da je<br />

f(x ∗ ) ≤ f(x), za svaki x ∈ K(x ∗ ,ρ) ∩ P,<br />

15


gdje je K(x ∗ ,ρ) = {x ∈ R n : ‖x − x ∗ ‖ ≤ ρ}. Kažemo da funkcija f u x ∗ ∈ P postiže<br />

globalni minimum na P, ako vrijedi<br />

za svaki x ∈ P.<br />

f(x ∗ ) ≤ f(x),<br />

Pokazat ćemo da postoje realne funkcije koje imaju svojstvo da ako postoji točka u<br />

kojoj se postiže lokalni minimum, onda to ujedno mora biti točka u kojoj se postiže globalni<br />

minimum funkcije.<br />

Definicija 2. Za funkciju f : P → R kažemo da je konveksna na P ⊆ R n ako za svaki<br />

x,y ∈ P i svaki λ ∈ [0,1] vrijedi<br />

f(λx + (1 − λ)y) ≤ λf(x) + (1 − λ)f(y).<br />

Za funkciju f : P → R kažemo da je konkavna na P ⊆ R n ako za svaki x,y ∈ P i svaki<br />

λ ∈ [0,1] vrijedi<br />

f(λx + (1 − λ)y) ≥ λf(x) + (1 − λ)f(y).<br />

Uočimo da je f konveksna na P onda i samo onda ako je −f konkavna na P.<br />

Primjer 9. Zadani su c ∈ R n te d ∈ R. Funkcija f : R n → R zadana formulom<br />

f(x) = c T x + d je istovremeno konveksna i konkavna na R n . Zaista, za svaki x,y ∈ R n i<br />

za svaki λ ∈ [0,1] vrijedi<br />

f(λx + (1 − λ)y) = c T (λx + (1 − λ)y) + d = λf(x) + (1 − λ)f(y).<br />

Specijalno je i funkcija x ↦→ c T x istovremeno konveksna i konkavna.<br />

Primjer 10. Zadani su c i ∈ R n , te d i ∈ R, i = 1,... ,m. Pokažimo da je funkcija<br />

f : R n → R zadana formulom f(x) = max<br />

i=1,...,m {cT i x + d i } konveksna na R n . Zaista, za<br />

svaki x,y ∈ R n i za svaki λ ∈ [0,1] vrijedi<br />

f(λx + (1 − λ)y) =<br />

max<br />

i=1,...,m {cT i (λx + (1 − λ)y + d i)}<br />

= max<br />

i=1,...,m {λ(cT i x + d i) + (1 − λ)(c T i y + d i)}<br />

≤ max<br />

i=1,...,m {λ(cT i x + d i )} + max {(1 −<br />

i=1,...,m λ)(cT i y + d i )}<br />

= λf(x) + (1 − λ)f(y).<br />

Primjedba 4. Analogno kao u Primjeru 10, može se pokazati da ako su f 1 ,...,f m : P →<br />

R, P ⊆ R n konveksne, onda je funkcija f : P → R zadana formulom<br />

konveksna na P.<br />

f(x) = max<br />

i=1,...,m {f i(x)},<br />

Definicija 3. Skup S ⊆ R n kažemo da je konveksan ako za svaki x,y ∈ S i za svaki<br />

λ ∈ [0,1] vrijedi λx + (1 − λ)y ∈ S.<br />

16


(a) konveksna funkcija<br />

(b) konkavna funkcija<br />

f(λx + (1 − λ)y)<br />

λf(x) + (1 − λ)f(y)<br />

λf(x) + (1 − λ)f(y)<br />

f(λx + (1 − λ)y)<br />

x λx + (1 − λ)y<br />

y<br />

x<br />

λx + (1 − λ)y<br />

y<br />

Slika 6: Konveksna i konkavna funkcija<br />

Primjedba 5. Može se pokazati da je funkcija f konveksna ako i samo ako je područje<br />

iznad grafa funkcije f konveksan skup. Slično, funkcija f je konkavna ako i samo ako je<br />

područje ispod grafa funkcije f konveksan skup (vidi Sliku 6).<br />

Definicija 4. Neka su x i ∈ R n , i = 1,... ,k vektori te λ i ∈ [0,1], i = 1,... ,k realni<br />

brojevi takvi da je ∑ k<br />

i=1 λ i = 1, onda vektor ∑ k<br />

i=1 λ ix i zovemo konveksna kombinacija<br />

vektora x i , i = 1,... ,k.<br />

Teorem 1. Neka je f : P → R konveksna funkcija definirana na konveksnom skupu<br />

P ⊆ R n . Ako funkcija f u x ∗ ∈ P postiže lokalni minimum, onda ujedno u x ∗ postiže i<br />

globalni minimum na skupu P.<br />

Dokaz. Neka je ρ > 0 takav da je f(x ∗ ) ≤ f(y) za svaki y ∈ P ∩ K(x ∗ ,ρ). Neka<br />

je x ∈ P proizvoljan vektor i λ ∈ [0,1] te definirajmo y(λ) = λx + (1 − λ)x ∗ . Kako je<br />

P konveksan vrijedi y(λ) ∈ P. Neka je λ 0 = min{1,ρ‖x − x ∗ ‖ −1 }. Za svaki λ ∈ [0,λ 0 ]<br />

vrijedi<br />

‖y(λ) − x ∗ ‖ = ‖λx + (1 − λ)x ∗ − x ∗ ‖ = |λ|‖x − x ∗ ‖ ≤ |λ 0 |‖x − x ∗ ‖ ≤ ρ,<br />

odnosno y(λ) ∈ P ∩ K(x ∗ ,ρ).<br />

To znači da za λ ∈ [0,λ 0 ] vrijedi<br />

f(x ∗ ) ≤ f(y(λ)) = f(λx + (1 − λ)x ∗ ) ≤ λf(x) + (1 − λ)f(x ∗ ),<br />

odakle slijedi da je f(x ∗ ) ≤ f(x), za svaki x ∈ P.<br />

2.2 Poliedar u R n . Vrh, ekstremna točka i bazično dopustivo rješenje<br />

Definicija 5. Neka su A ∈ R m×n , b ∈ R m . Skup<br />

zovemo poliedar u R n .<br />

{x ∈ R n : Ax ≥ b} ⊆ R n ,<br />

Uočimo da je skup {x ∈ R n : Ax = b,x ≥ 0}, takoder poliedar i zovemo ga poliedar u<br />

standardnom obliku. Naime, vrijedi<br />

{x ∈ R n : Ax = b} = {x ∈ R n : Ax ≥ b& − Ax ≥ −b&x ≥ 0}<br />

⎧ ⎡ ⎤ ⎡ ⎤⎫<br />

⎨ A b ⎬<br />

=<br />

⎩ x ∈ Rn : ⎣ −A ⎦x ≥ ⎣ −b ⎦<br />

⎭ .<br />

I 0<br />

17


Definicija 6. Neka su a i ∈ R n , a i ≠ 0 i b i ∈ R.<br />

1) Skup {x ∈ R n : a T i x = b i} zovemo hiperravnina u R n s vektorom normale a i .<br />

2) Skup {x ∈ R n : a T i x ≥ b i} zovemo poluprostor u R n .<br />

Propozicija 2. Vrijede sljedeće tvrdnje:<br />

a) Poluprostor u R n je konveksan skup.<br />

b) Presjek od konačno mnogo konveksnih skupova je konveksan skup.<br />

c) Poliedar u R n je konveksan skup.<br />

Dokaz.<br />

a) Neka je π = {x ∈ R n : a T i x ≥ b i} dani poluprostor te neka su x,y ∈ π te λ ∈ [0,1].<br />

Tada je a T i (λx + (1 − λ)y) = λaT i x + (1 − λ)aT i ≥ λb + (1 − λ)b = b. Kako su<br />

x,y ∈ π te λ ∈ [0,1] proizvoljni slijedi da je π konveksan skup.<br />

b) Dokažimo tvrdnju najprije za dva konveksna skupa S 1 i S 2 . Pretpostavimo S 1 ∩S 1 ≠<br />

∅ (ako je S 1 ∩S 1 = ∅, tvrdnja slijedi trivijalno jer je ∅ konveksan po definiciji) i neka<br />

su x,y ∈ S 1 ∩ S 1 , odakle slijedi da su x,y ∈ S 1 i x,y ∈ S 2 . Kako su prema<br />

pretpostavci S 1 i S 2 konveksni slijedi da za svaki λ ∈ [0,1] vrijedi λx+(1 −λ)y ∈ S 1<br />

i λx + (1 − λ)y ∈ S 2 , odnosno λx + (1 − λ)y ∈ S 1 ∩ S 2 . Tvrdnja se za konačno<br />

mnogo konveksnih skupova može dokazati metodom matematičke indukcije.<br />

c) Kako je poliedar presjek od konačno mnogo poluprostora, sukladno tvrdnji b) slijedi<br />

da je i on konveksan.<br />

Definicija 7. Neka je P poliedar u R n . Vektor x ∈ P je ekstremna točka poliedra P ako<br />

ne postoje y,z ∈ P, y ≠ x & z ≠ x i skalar λ ∈ [0,1] takvi da je x = λy + (1 − λ)z.<br />

Dakle, ekstremna točka poliedra je ona točka koja se ne može prikazati kao netrivijalna<br />

konveksna kombinacija točaka iz poliedra. Geometrijski gledano, to znači da je ekstremna<br />

točka ona točka poliedra koja se ne nalazi na nekom segmentu koji je sadržan u poliedru.<br />

u<br />

x<br />

v<br />

Slika 7: x je ekstremna točka poliedra, dok u i v nisu ekstremne točke jer se mogu prikazati<br />

kao netrivijalna konveksna kombinacija točaka iz poliedra<br />

18


Definicija 8. Neka je P poliedar u R n . Vektor x ∈ P je vrh poliedra P ako postoji vektor<br />

c ∈ R n takav da je c T x < c T y za svaki y ∈ P, y ≠ x.<br />

S geometrijskog stajališta vrh poliedra je ona točka za koju možemo odrediti hiperravninu<br />

kroz tu točku sa svojstvom da se sve točke poliedra, izuzev vrha nalaze s iste strane<br />

te hiperravnine.<br />

x 1<br />

x 2<br />

u<br />

v<br />

Slika 8: x 1 i x 2 su vrhovi poliedra, u i v nisu vrhovi poliedra<br />

Pretpostavimo da je poliedar P zadan na sljedeći način:<br />

a T i x ≥ b i, i ∈ M 1<br />

a T i x ≤ b i, i ∈ M 2<br />

a T i x = b i , i ∈ M 3 .<br />

Definicija 9. Ako za vektor x ∗ vrijedi da je a T i 0<br />

x ∗ = b i0 za neki i 0 ∈ M 1 ,M 2 ili M 3 , onda<br />

kažemo da je uvjet s indeksom i 0 aktivan u vektoru x ∗ .<br />

Primjer 11. Neka je x ∗ = [1,0,0] T i neka su dani uvjeti<br />

Uvjeti (6), (8) i (9) su aktivni u vektoru x ∗ .<br />

x 1 + x 2 + x 3 = 1 (6)<br />

x 1 ≥ 0 (7)<br />

x 2 ≥ 0 (8)<br />

x 3 ≥ 0. (9)<br />

Neka je x ∗ ∈ R n i I = {i : a T i x∗ = b i } skup indeksa aktivnih uvjeta u vektoru x ∗ .<br />

Uočimo da su sljedeće tri tvrdnje ekvivalentne:<br />

1) Skup {a i : i ∈ I} sadrži n linearno nezavisnih vektora.<br />

2) Potprostor razapet s vektorima a i , i ∈ I jednak je R n .<br />

3) Sustav linearnih jednadžbi a T i x = b i, i ∈ I ima jedinstveno rješenje.<br />

Definicija 10. Neka je P poliedar u R n zadan na sljedeći način:<br />

a T i x ≥ b i , i ∈ M 1<br />

a T i x ≤ b i , i ∈ M 2<br />

a T i x = b i , i ∈ M 3 ,<br />

19


te neka je I = {i ∈ M 1 ∪ M 2 ∪ M 3 : a T i x∗ = b i } skup indeksa aktivnih uvjeta u vektoru<br />

x ∗ ∈ R n .<br />

a) Za vektor x ∗ ∈ R n kažemo da je bazično rješenje ako su<br />

i) svi uvjeti koji sadrže jednakosti aktivni u x ∗ ;<br />

ii) skup {a i : i ∈ I} sadrži n linearno nezavisnih vektora.<br />

b) Bazično rješenje x ∗ ∈ R n koje zadovoljava sve uvjete zovemo bazično dopustivo<br />

rješenje.<br />

Primjer 12. Poliedar P ⊆ R 3 zadan je na sljedeći način:<br />

x 1 + x 2 + x 3 = 1 (10)<br />

x 1 ≥ 0 (11)<br />

x 2 ≥ 0 (12)<br />

x 3 ≥ 0 (13)<br />

a) Neka je e 1 = [1,0,0] T . Uvjeti (9), (11) i (12) aktivni su u e 1 , dok uvjet (10) nije<br />

aktivan u e 1 . Kako uvjet (10) sadrži jednakost te kako su vektori [1,1,1] T , [1,0,0] T<br />

i [0,1,0] T linearno nezavisni, slijedi da je e 1 bazično rješenje. Takoder, kako vektor<br />

e 1 zadovoljava uvjet (10) slijedi da je e 1 bazično dopustivo rješenje.<br />

b) slično kao u a) može pokazati da su e 2 = [0,1,0] T i e 3 = [0,0,1] T bazična dopustiva<br />

rješenja.<br />

c) Neka je x ∗ = [ 1<br />

3 , 1 3 , 1 ] T.<br />

3 Jedino je uvjet (10) aktivan u vektoru x ∗ prema tome x ∗<br />

nije bazično rješenje.<br />

d) Neka je x ∗ = [0,0,0] T . Uvjeti (11), (12) i (13) aktivni su u x ∗ , no uvjet (10) koji<br />

sadrži jednakost nije aktivan u x ∗ te stoga x ∗ nije bazično rješenje. Kada bismo<br />

uvjet (10) zamijenili s dva uvjeta x 1 + x 2 + x 3 ≤ 1 i x 1 + x 2 + x 3 ≥ 1, onda x ∗<br />

postaje bazično rješenje. Iz ovog zaključujemo da definicija bazičnog rješenja ovisi o<br />

reprezentaciji poliedra.<br />

Teorem 2. Neka je P poliedar i neka je x ∗ ∈ P. Sljedeće tri tvrdnje su ekvivalentne<br />

1) x ∗ je vrh poliedra.<br />

2) x ∗ je ekstremna točka poliedra.<br />

3) x ∗ je bazično dopustivo rješenje.<br />

Dokaz. Neka je poliedar P ⊆ R n zadan na sljedeći način<br />

a T i x∗ ≥ b i , i ∈ M 1 (14)<br />

a T i x∗ = b i , i ∈ M 2 . (15)<br />

Ako je x ∗ je vrh poliedra, onda je x ∗ ekstremna točka poliedra.<br />

20


Kako je x ∗ je vrh poliedra, postoji vektor c takav da je c T x ∗ < c T x, za svaki vektor<br />

x ∈ P, x ≠ x ∗ . Pretpostavimo da se vektor x ∗ nije ekstremna točka poliedra tj.da se<br />

može napisati u obliku<br />

x ∗ = λy + (1 − λ)z, (16)<br />

gdje su λ ∈ [0,1], y,z ∈ P takvi da je y ≠ x ∗ te z ≠ x ∗ . Prema uvjetu tvrdnje je<br />

c T x ∗ < c T y te c T x ∗ < c T z. Imamo<br />

c T x ∗<br />

= λc T x ∗ + (1 − λ)c T x ∗<br />

< λc T y + (1 − λ)c T z<br />

= c T (λy + (1 − λ)z),<br />

što je u kontradikciji s (16).<br />

Ako je x ∗ ekstremna točka poliedra, onda je x ∗ bazično dopustivo rješenje.<br />

Pretpostavimo da x ∗ ∈ P nije bazično dopustivo rješenje te dokažimo da x ∗ nije<br />

ekstremna točka poliedra. Kako x ∗ nije bazično dopustivo rješenje broj linearno nezavisnih<br />

vektora a i , i ∈ I, gdje je I = {i ∈ M 1 ∪ M 2 : a T i x∗ = b i } manji je od n. Dakle, potprostor<br />

razapet skupom vektora {a i : i ∈ I} je pravi potprostor od R n pa postoji vektor d ∈ R n<br />

takav da je a T i d = 0 za svaki i ∈ I.<br />

Neka je ε > 0. Definirajmo vektore y = x ∗ + εd te z = x ∗ − εd. Uočimo da za i ∈ I<br />

vrijedi<br />

a T i y = a T i (x ∗ + εd) = a T i x ∗ + εa T i d = a T i x ∗ = b i .<br />

Ako je i /∈ I, onda je a T i x∗ > b i te<br />

a T i y = aT i x∗ + εa T i d. (17)<br />

Pretpostavimo li da je a T i d ≥ 0 iz (17) slijedi da je aT i y > b i. Ako je s druge strane<br />

a T i d < 0, odaberimo ε > 0 tako da je ε < b i − a T i x∗<br />

a T i d .<br />

Za tako odabrani ε > 0 slijedi da za i /∈ I vrijedi a T i y > b i. Zaključujemo da je y ∈ P.<br />

Slično, može se pokazati da je z ∈ P.<br />

Konačno, uočimo sa je x ∗ = 1 2 (y + z), tj.x∗ napisali smo kao konveksnu kombinaciju<br />

vektora y i z, tj.x ∗ nije ekstremna točka poliedra P.<br />

Ako x ∗ bazično dopustivo rješenje, onda je x ∗ vrh poliedra.<br />

Neka je x ∗ bazično dupustivo rješenje te I = {i : a T i x∗ = b i } skup aktivnih indeksa u<br />

x ∗ . Definirajmo vektor c = ∑ i∈I a i. Pri tome vrijedi<br />

c T x ∗ = ∑ i∈I<br />

a T i x∗ = ∑ i∈I<br />

b i .<br />

Za proizvoljni x ∈ P imamo<br />

c T x = ∑ i∈I<br />

a T i x ≥ ∑ i∈I<br />

b i = c T x ∗ , (18)<br />

odakle slijedi da je x ∗ rješenje LP problema<br />

c T x → min,<br />

21


uz uvjet<br />

x ∈ P.<br />

Pri tome jednakost u (18) vrijedi onda i samo onda ako je a T i x = b i, za svaki i ∈ I. Kako<br />

je x ∗ bazično dopustivo rješenje broj linearno nezavisnih vektora a i , i ∈ I koji su aktivni<br />

u x ∗ jednak je n pa sustav a T i x = b i, i ∈ I ima jedinstveno rješenje, a to je upravo x ∗ .<br />

Na taj način dokazali smo da postoji vektor c takav da je c T x ∗ < c T x za svaki x ≠ x ∗ ,<br />

x ∈ P, odnosno da je x ∗ vrh poliedra P.<br />

2.3 Konstrukcija bazičnog dopustivog rješenja<br />

Pretpostavimo da je poliedar P ⊂ R n zadan u standardnom obliku<br />

P = {x ∈ R n : Ax = b,x ≥ 0}, A ∈ R m×n ,b ∈ R m .<br />

Takoder, pretpostavimo da je rang(A) = m < n. Ako je x ∗ bazično dopustivo rješenje,<br />

onda x ∗ zadovoljava sustav linearnih jednadžbi<br />

te uvjete nenegativnosti<br />

Ax ∗ = b, (19)<br />

x ∗ ≥ 0. (20)<br />

Uočimo da uvjeta nenegativnosti (20) ima n, dok sustav linearnih jednažbi sadrži m jednadžbi.<br />

Prema definiciji bazičnog dopustivog rješenja treba postojati n linearno nezavisnih<br />

uvjeta, koji su aktivni u vektoru x ∗ . To znači da moraju biti zadovoljeni svi uvjeti u (19),<br />

a da medu uvjetima iz (20) treba biti n − m aktivnih, odnosno da n − m komponenti<br />

vektora x ∗ treba biti jednako 0.<br />

[ ]<br />

Primjer 13. Neka je P = {x ∈ R 3 a11 a<br />

: Ax = b,x ≥ 0}, gdje su A = 12 a 13<br />

te<br />

a 21 a 22 a 23<br />

b = [b 1 ,b 2 ] T te rang(A) = 2. Raspišemo li zapis poliedra P imamo:<br />

a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1<br />

a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2<br />

x 1 ≥ 0<br />

x 2 ≥ 0<br />

x 3 ≥ 0.<br />

U svrhu odredivanja bazičnog dopustivog rješenja x ∗ ∈ R 3 trebamo jedan uvjet s nejednakosti<br />

učiniti aktivnim. Stavimo da je primjerice x ∗ 1 = 0. U tom slučaju ostale komponente<br />

vektora x ∗ = [0,x ∗ 2 ,x∗ 3 ]T moraju zadovoljavati sustav jednadžbi<br />

a 12 x 2 + a 13 x 3 = b 1<br />

a 22 x 2 + a 23 x 3 = b 2 .<br />

Pri tome je rješenje jedinstveno onda i samo onda ako su vektori [a 12 ,a 22 ] T te [a 13 ,a 23 ] T<br />

linearno nezavisni. Onda je<br />

[ ] [ ] x<br />

∗ −1 [ ]<br />

2 a12 a<br />

x ∗ = 13 b1<br />

.<br />

3 a 22 a 23 b 2<br />

22


[ ]<br />

a12 a<br />

Ako je matrica B = 13<br />

regularna, onda su tri vektora [a<br />

a 22 a 11 ,a 12 ,a 13 ] T , [a 21 ,a 22 ,a 23 ] T<br />

23<br />

te [1,0,0] T , koji odreduju aktivne uvjete linearno nezavisni. Zaista, ako vektor [1,0,0] T<br />

napišemo kao linearnu kombinaciju preostalih, dobivamo<br />

1 = λ 1 a 11 + λ 2 a 21<br />

0 = λ 1 a 12 + λ 2 a 22<br />

0 = λ 1 a 13 + λ 2 a 23 .<br />

Zbog regularnosti matrice B slijedi da su λ 1 = λ 2 = 0, odnosno da su vektori [a 11 ,a 12 ,a 13 ] T , [a 21 ,a 22 ,a 23 ] T<br />

te [1,0,0] T linearno nezavisni. To znači da je x ∗ = [0,x ∗ 2 ,x∗ 3 ]T bazično rješenje. Ako uz<br />

to vrijedi da je x ∗ 2 ≥ 0 te x∗ 3 ≥ 0, onda je x∗ = [0,x ∗ 2 ,x∗ 3 ]T bazično dopustivo rješenje.<br />

Općenito vrijedi sljedeći teorem.<br />

Teorem 3. Neka P = {x ∈ R n : Ax = b, x ≥ 0}, gdje su A ∈ R m×n , b ∈ R m te matrica<br />

A punog ranga. Vektor x ∈ R n je bazično rješenje onda i samo onda ako je Ax = b te<br />

ako postoje indeksi B(1),... ,B(m) takvi da vrijedi<br />

a) Stupci A B(1) ,... ,A B(m) matrice A su linearno nezavisni;<br />

b) Ako je i /∈ {B(1),... ,B(m)}, onda je x i = 0.<br />

Na osnovi prethodnog teorema proizlazi procedura za konstrukciju bazičnog rješenja.<br />

Procedura za konstrukciju bazičnog rješenja<br />

1. Odabrati m linearno nezavisnih stupaca A B(1) ,...,A B(m) matrice A.<br />

2. Staviti x i = 0 za svaki indeks i /∈ {B(1),... ,B(m)}.<br />

3. Riješiti sustav Bx B = b, gdje su<br />

B = [ A B(1) A B(2) · · · A B(m)<br />

]<br />

, xB =<br />

⎡<br />

⎢<br />

⎣<br />

⎤<br />

x B(1)<br />

⎥<br />

. ⎦ ,<br />

x B(m)<br />

4. Vektor x = [x 1 ,... ,x n ] T sa svojstvom<br />

{ 0, j /∈ {B(1),... ,B(n)}<br />

x j =<br />

x B(i) ,j = B(i),<br />

je bazično rješenje.<br />

Pri tome x B(1) ,...,x B(m) zovemo bazične varijable, vektore A B(1) ,A B(2) ,... ,A B(m)<br />

zovemo bazični vektori, B(1),... ,B(m) zovemo bazični indeksi, dok matricu B zovemo<br />

matrica baze. Ako bazično rješenje x ima svojstvo x ≥ 0, onda je x bazično dopustivo<br />

rješenje.<br />

23


Primjer 14. Zadan je poliedar u standardnom obliku P = {x ∈ R 7 : Ax = b,x ≥ 0},<br />

gdje su<br />

⎡<br />

⎤ ⎡ ⎤<br />

1 1 2 1 0 0 0 8<br />

A = ⎢ 0 1 6 0 1 0 0<br />

⎥<br />

⎣ 1 0 0 0 0 1 0 ⎦ , b = ⎢ 12<br />

⎥<br />

⎣ 4 ⎦ .<br />

0 1 0 0 0 0 1 6<br />

i) Uočimo da su stupci A 4 ,A 5 ,A 6 i A 7 matrice A linearno nezavisni te ih možemo<br />

odabrati za bazične vektore. U svrhu odredivanja bazičnog rješenja definiramo matricu<br />

baze<br />

B =<br />

⎡<br />

⎢<br />

⎣<br />

1 0 0 0<br />

0 1 0 0<br />

0 0 1 0<br />

0 0 0 1<br />

te rješavamo sustav Bx B = b, odakle je x B = [8,12,4,6] T , odnosno x = [0,0,0,8,12,4,6] T<br />

je bazično rješenje. Takoder, zbog x ≥ 0, vektor x je bazično dopustivo rješenje.<br />

ii) Stupci A 3 ,A 5 ,A 6 i A 7 su linearno nezavisni te ih takoder možemo odabrati za<br />

bazične vektore. Pri tome pripadna matrica baze glasi<br />

B =<br />

⎡<br />

⎢<br />

⎣<br />

2 0 0 0<br />

6 1 0 0<br />

0 0 1 0<br />

0 0 0 1<br />

odakle sliejedi da je x B = [4, −12,4,6] T , odnosno bazično rješenje x = [0,0,4,0, −12,4,6] T .<br />

Uočimo da x nije bazično dopustivo rješenje.<br />

⎤<br />

⎥<br />

⎦ ,<br />

⎤<br />

⎥<br />

⎦ ,<br />

Može se pokazati da u zapisu poliedara u standardnom obliku<br />

P = {x ∈ R n : Ax = b,x ≥ 0}, A ∈ R m×n ,b ∈ R m ,<br />

pretpostavka da je rang(A) = m, nije ograničenje. Preciznije, vrijedi sljedeći teorem.<br />

Teorem 4. Neka je P = {x ∈ R n : Ax = b,x ≥ 0} neprazni poliedar pri čemu su A ∈<br />

R m×n ,b ∈ R m . Pretpostavimo da su a T i , i = 1,... ,m retci matrice A, rang(A) = k < m<br />

te da su retci a T i j<br />

, j = 1,... ,k linearno nezavisni. Neka je<br />

poliedar u R n . Onda je P = Q.<br />

Q = {x ∈ R n : a T i 1<br />

x = b i1 ,...,a T i k<br />

x = b ik ,x ≥ 0}<br />

2.4 Degeneracija<br />

Definicija 11. Neka je P = {x ∈ R n : a T i x ≥ b i, i = 1,... ,m} neprazan. Za bazično<br />

rješenje x ∈ R n kažemo da je degenerativno ako je više od n uvjeta aktivno u x.<br />

24


Primjer 15. Neka je poliedar P zadan sa sljedećim uvjetima<br />

x 1 + x 2 + 2x 3 ≤ 8 (21)<br />

x 2 + 6x 3 ≤ 12 (22)<br />

x 1 ≤ 4 (23)<br />

x 2 ≤ 6 (24)<br />

x 1 ≥ 0 (25)<br />

x 2 ≥ 0. (26)<br />

x 3 ≥ 0. (27)<br />

a) Uočimo da je vektor x ∗ = [2,6,0] T bazično dopustivo rješenje. Naime uvjeti (21),<br />

(24) i (27) aktivni su u x ∗ i ima ih točno tri. Pri tome su odgovarajući vektori<br />

linearno nezavisni. Osim toga vektor x ∗ zadovoljava sve uvjete. Dakle vektor x ∗ je<br />

nedegenartivno bazično dopustivo rješenje.<br />

b) Vektor x ∗ = [4,0,2] je takoder bazično dopustivo rješenje, jer su uvjeti (21), (22)<br />

i (23) aktivni u x ∗ . Pripadni vektori su linearno nezavisni. Takoder, uočimo da<br />

vektor x ∗ zadovoljava sve uvjete te je stoga bazično dopustivo rješenje. Medutim<br />

lako se vidi da je i uvjet (26) takoder aktivan u x ∗ , odakle slijedi da postoji četiri<br />

aktivna uvjeta u x ∗ , odnosno da je x ∗ degenerativno bazično dopustivo rješenje.<br />

Definicija 12. Neka je<br />

P = {x ∈ R n : Ax = b,x ≥ 0}, A ∈ R m×n ,b ∈ R m ,<br />

poliedar u standardnom obliku te neka je x bazično rješenje. Vektor x je degenerativno<br />

bazično rješenje ako je više od n − m komponenti vektora x jednako 0.<br />

Primjer 16. Zadan je poliedar u standardnom obliku P = {x ∈ R 7 : Ax = b,x ≥ 0},<br />

gdje su<br />

⎡<br />

⎤ ⎡ ⎤<br />

1 1 2 1 0 0 0 8<br />

A = ⎢ 0 1 6 0 1 0 0<br />

⎥<br />

⎣ 1 0 0 0 0 1 0 ⎦ , b = ⎢ 12<br />

⎥<br />

⎣ 4 ⎦ .<br />

0 1 0 0 0 0 1 6<br />

Uočimo da za bazične stupce možemo odabrati vektore A 1 ,A 2 ,A 3 i A 7 . Odgovarajuće<br />

bazično rješenje (koje je ujedno i dopustivo) glasi x = [4,0,2,0,0,0,6] T . Kako je 4 komponente<br />

vektora x jednako 0, slijedi da je x degenerativno bazično dopustivo rješenje.<br />

Primjer 17. Zadan je poliedar P = {[x 1 ,x 2 ,x 3 ] T : x 1 − x 2 = 0,x 1 + x 2 + 2x 3 =<br />

2,x 1 ,x 2 ,x 3 ≥ 0} u standardnom obliku. Uočimo da je m = 2 i n = 3, te n − m = 1.<br />

Odredimo sve bazična dopustiva rješenja. Odgovarajuća matrica A i vektor b glase<br />

A =<br />

[ 1 −1 0<br />

1 1 2<br />

]<br />

, b = [0,2] T .<br />

Imamo tri mogućnosti:<br />

[ 1 −1<br />

a) Ako je B =<br />

1 1<br />

nedegenaritvno.<br />

]<br />

, onda je bazično dopustivo rješenje x = [1,1,0] T , koje je<br />

25


[ 1 0<br />

b) Ako je B =<br />

1 2<br />

degenerativno.<br />

[ −1 0<br />

c) Ako je B =<br />

1 2<br />

degenerativno.<br />

]<br />

, onda je bazično dopustivo rješenje x = [0,0,1] T , koje je<br />

]<br />

, onda je bazično dopustivo rješenje x = [0,0,1] T , koje je<br />

Primijetimo da poliedar P možemo zapisati na sljedeći način<br />

P = {[x 1 ,x 2 ,x 3 ] T : x 1 − x 2 = 0,x 1 + x 2 + 2x 3 = 2,x 1 ,x 3 ≥ 0}.<br />

Vektor x ∗ = [0,0,1] T u ovom zapisu poliedra postaje nedegenerativno bazično dopustivo<br />

rješenje.<br />

Zaključujemo da svojstvo degenerativnosti ovisi o zapisu poliedra.<br />

2.5 Egzistencija ekstremne točke<br />

Definicija 13. Kažemo da poliedar P ⊆ R n sadrži pravac ako postoji vektor x ∈ P te<br />

vektor d ∈ R n \ {0} takav da je x + λd ∈ P za svaki realni broj λ.<br />

x<br />

x + λd<br />

Slika 9: Poliedar koji sadrži pravac<br />

Teorem 5. Neka je P = {x ∈ R n : a T i x ≥ b i, i = 1,... ,m} neprazan. Onda su sljedeće<br />

tvrdnje ekvivalentne:<br />

a) Poliedar P ima barem jednu ekstremnu točku.<br />

b) Poliedar P ne sadrži pravac.<br />

c) Medu vektorima a 1 ,... ,a m ima n linearno nezavisnih<br />

Dokaz.<br />

Ako poliedar P ne sadrži pravac, onda poliedar P ima barem jednu ekstremnu<br />

točku<br />

Neka je x ∈ P te I = {i : a T i x = b i}, skup indeksa uvjeta koji su aktivni vektoru<br />

x. Ako medu vektorima a i , i ∈ I ima n linearno nezavisnih, onda je prema definiciji x<br />

bazično dopustivo rješenje, odnosno ekstremna točka poliedra P. Pretpostavimo da medu<br />

vektorima a i , i ∈ I ima k, k < n linearno nezavisnih. To znači da vektori a i , i ∈ I<br />

razapinju pravi potprostor od R n , odnosno postoji vektor d ∈ R n takav da je a T i d = 0,<br />

i ∈ I. Promatrajmo pravac x + λd, gdje je λ ∈ R. Pokažimo da svi uvjeti koji su aktivni<br />

u vektoru x ostaju aktivni i u vektoru y koji leži na pravcu x + λd. Zaista<br />

a T i (x + λd) = a T i x + λa T i d = b i , i ∈ I.<br />

26


S obzirom da prema pretpostavci poliedar P ne sadrži pravac, postoji λ ∗ ∈ R te indeks<br />

j /∈ I, takav da je a T j (x + λ∗ d) = b j . Na taj način odredili smo uvjet koji je aktivan u<br />

vektoru x+λ ∗ d. Kako j /∈ I, vrijedi a T j x ≠ b j te je stoga a T j d ≠ 0. Dokažimo da vektor a j<br />

ne možemo napisati kao linearnu kombinaciju vektora a i , i ∈ I. Pretpostavimo suprotno<br />

tj. neka postoje skalari λ i ∈ R takvi da je<br />

a j = ∑ i∈I<br />

λ i a i ,<br />

odnosno 0 ≠ a T j d = ∑ i∈I λ ia T i d = 0, odakle slijedi da su vektori a j te a i , i ∈ I linearno<br />

nezavisni.<br />

Zaključujemo da postoji k + 1 linearano nezavisnih vektora koji odreduju aktivne<br />

uvjete u vektoru x + λ ∗ d. Opisani postupak nastavljamo dok ne dodemo do vektora<br />

x ∗ ∈ P sa svojstvom da postoji n lineano nezavisnih vektora koji odreduju aktivne uvjete<br />

u vektoru x ∗ . Dobiveni vektor x ∗ je bazično dopustivo rješenje ili ekstremna točka poliedra.<br />

Medu vektorima a 1 ,...,a m ima n linearno nezavisnih, onda poliedar P ne sadrži<br />

pravac.<br />

Bez smanjenja općenitosti možemo pretpostaviti da su a 1 ,... ,a n linerano nezavisni<br />

vektori. Pretpostavimo da poliedar P sadrži pravac, odnosno da postoji vektor d ≠ 0<br />

takav da je x + λd ∈ P, za svaki λ ∈ R, odnosno da je a T i (x + λd) ≥ b i za svaki i te svaki<br />

λ ∈ R. Kako je (a T i x −b i)+λa T i d ≥ 0 za svaki i i svaki λ ∈ R zaključujemo da je aT i d = 0<br />

za svaki i. S obzirom da su vektori a i , i = 1,... ,n linearno nezavisni slijedi da je d = 0,<br />

što je u kontradikciji s pretpostavkom da poliedar P sadrži pravac.<br />

Sljedeći teorem pokazat će da ako problem <strong>linearnog</strong> <strong>programiranja</strong> ima rješenje te ako<br />

odgovarajući poledar ima ektremnu točku, onda postoji optimalno rješenje LP problema<br />

koje je ekstremna točka poliedra.<br />

Teorem 6. Zadan je LP problem<br />

uz uvjet<br />

c T x → min<br />

x<br />

,<br />

x ∈ P,<br />

gdje je P poliedar. Pretpostavimo da P ima barem jednu ekstremnu točku te da LP problem<br />

ima optimalno rješenje. Onda postoji optimalno rješenje LP problema koje je ekstremna<br />

točka poliedra P.<br />

Dokaz. Neka je Q skup svih optimalnih rješenja LP problema. Sukladno pretpostavci<br />

Q ≠ ∅. Pretpostavimo da je poliedar P oblika<br />

P = {x ∈ R n : Ax ≥ b}.<br />

Takoder pretpostavimo da je optimalna vrijednost funkcije cilja jednaka v. U tom je<br />

slučaju Q = {x ∈ R n : Ax ≥ b, c T x = v}. Nije teško vidjeti da je Q takoder poliedar.<br />

Očigledno je Q ⊂ P. Kako prema pretpostavci P ima ekstremnu točku, sukladno Teoremu<br />

5 P ne sadrži pravac pa ni Q takoder ne sadrži pravac. Zaključujemo da Q ima ekstremnu<br />

točku. Neka je x ∗ ekstremna točka od Q. Dokažimo da je x ∗ ujedno ekstremna točka od<br />

P. Pretpostavimo suprotno tj.da postoje vektori y,z ∈ P, y ≠ x ∗ , z ∈ x ∗ te λ ∈ [0,1]<br />

takvi da je x ∗ = λy + (1 − λ)z. Onda je<br />

v = c T x ∗ = λc T y + (1 − λ)c T z. (28)<br />

27


Kako je v optimalna vrijednost funcije cilja slijedi da je c T y ≥ v te c T z ≥ v, ťo zajedno<br />

s (28) povlači da je c T y = c T z = v, odnosno da su y,z ∈ Q, što je u kontradikciji s<br />

pretpostavkom da je x ∗ ekstremna točka poliedra Q.<br />

Može se pokazati općenitiji tvrdnja.<br />

Teorem 7. Zadan je LP problem<br />

uz uvjet<br />

c T x → min<br />

x<br />

,<br />

x ∈ P,<br />

gdje je P poliedar. Pretpostavimo da P ima barem jednu ekstremnu točku. Onda je<br />

vrijednost funcije cilja jednaka −∞ ili postoji ekstremna točka poliedra koja je optimalna.<br />

2.6 Zadaci<br />

Zadatak 7. Neka je K ⊆ R 2 skup zadan na sljedeći način:<br />

Dokažite da je K konveksan skup.<br />

K = {(x,y) ∈ R 2 : 1 ≤ 3 2x−y ≤ 10}.<br />

Zadatak 8. Neka je S konveksan skup i f : S ⊆ R n → R. Dokažite da je f(λx + (1 −<br />

λ)y) ≤ max{f(x),f(y)}, ∀λ ∈ (0,1) ako i samo ako je skup S α = {x ∈ S : f(x) ≤ α}<br />

konveksan za svaki α ∈ R.<br />

Zadatak 9. Polunorma na vektorskom prostoru X je funkcija p: X → [0, ∞〉 takva da<br />

vrijedi<br />

1. p(λx) = |λ|p(x), ∀x ∈ X, λ ∈ R,<br />

2. p(x + y) ≤ p(x) + p(y), ∀x,y ∈ X.<br />

Neka je p polunorma i x ∈ X. Dokažite da je skup A = {y ∈ X : p(x − y) < 1} konveksan<br />

skup.<br />

Zadatak 10.<br />

a) Neka su f 1 ,... ,f n : R n → R, n ∈ N konveksne funkcije. Dokažite da je tada i<br />

funkcija f(x) = max<br />

i=1,...,n {f i(x)} konveksna.<br />

b) Neka je h: R n → R konveksna funkcija, g: R → R konveksna monotono rastuća<br />

funkcija. Dokažite da je tada i funkcija f = g ◦ h konveksna.<br />

Zadatak 11. Neka su zadani c i ∈ R n , te d i ∈ R, i = 1,... ,m. Dokažite da je funkcija<br />

f : R n → R zadana formulom f(x) = max<br />

i=1,...,n {cT i x + d i } konveksna na R n .<br />

Zadatak 12. Neka je P ⊆ R n poliedar. Dokažite da niti jedna točka x ∈ int P ne može<br />

biti ekstremna točka poliedra.<br />

28


Zadatak 13 (2 boda). Zadan je poliedar u standardnom obliku P = {x ∈ R 7 : Ax =<br />

b, x ≥ 0}, gdje su<br />

⎡<br />

A = ⎣<br />

1 7 22 0 5 0 1<br />

0 3 −5 0 2 1 2<br />

0 1 0 1 −4 0 3<br />

⎤<br />

⎡<br />

⎦ , b = ⎣<br />

Odredite tri različita dopustiva rješenja i za svako provjerite je li vrh poliedra P.<br />

Zadatak 14. Neka je x proizvoljna točka u konveksnoj ljusci skupa P ⊆ R n Dokažite da<br />

tada postoji P ′ ⊆ P koji se sastoji od najviše n+1 elemenata takav da x leži u konveksnoj<br />

ljusci skupa P ′ .<br />

7<br />

1<br />

2<br />

⎤<br />

⎦.<br />

29


3 Simpleks metoda<br />

Zadan je problem <strong>linearnog</strong> <strong>programiranja</strong> u standardnom obliku<br />

uz uvjet<br />

f(x) = c T x → min<br />

x<br />

,<br />

Ax = b<br />

x ≥ 0,<br />

gdje su A ∈ R m×n , b ∈ R m te c ∈ R n .<br />

Sukladno Teoremu 7, optimalno rješenje LP problema treba tražiti medu bazičnim<br />

dopustivim rješenjima poliedra P = {x : Ax = b,x ≥ 0}. Kako je funkcija cilja f(x) =<br />

c T x konveksna na R n a poliedar P konveksan skup prema Teoremu 1, svaka točka u kojoj<br />

se postiže lokalni minimum funkcije f ujedno je točka u kojoj se postiže globalni minimum<br />

funkcije f. Analizirat ćemo metodu za traženje lokalnog minimuma funkcije f na skupu<br />

P, koja je poznata pod nazivom simpleks metoda. Navedimo osnovni oblik algoritma na<br />

kojem je zasnovana simpleks metoda.<br />

Algoritam - Simpleks metoda<br />

1. Odaberimo jedno bazično dopustivo rješenje poliedra P.<br />

2. repeat<br />

forever<br />

provjeriti sve bridove poliedra P koji izlaze iz odabranog bazičnog dopustivog<br />

rješenja;<br />

if postoji brid po kojem možemo smanjiti vrijednost funkcije cilja hodamo<br />

po tom bridu dok ne dodemo do sljedećeg bazičnog dopustivog rješenja.<br />

Ako takvo bazično dopustivo rješenje ne postoji, poliedar je neomeden i<br />

vrijednost funkcije cilja je −∞.<br />

else<br />

return bazično dopustivo rješenje je optimalno<br />

Algoritam-Simpleks metoda zapisat ćemo u algebarskom obliku. U tu svrhu uvodimo<br />

neke pojmove.<br />

Definicija 14. Neka je x ∈ P. Za vektor d ∈ R n kažemo da je dopustivi smjer u vektoru<br />

x, ako postoji θ > 0 takav da je x + θd ∈ P.<br />

Neka je x = [x 1 ,... ,x n ] T bazično dopustivo rješenje poliedra P = {x : Ax = b,x ≥ 0}<br />

te neka su B(1),... ,B(m) indeksi bazičnih varijabli pri čemu je B = [A B(1) ,... ,A B(m) ]<br />

matrica baze. Onda odgovarajući bazični dio vektora x glasi x B = B −1 b. Nadalje, za<br />

nebazični dio vektora x vrijedi x i = 0 za svaki i ∈ N := {1,... ,n} \ {B(1),... ,B(m)}.<br />

Pretpostavimo da se od bazičnog dopustivog rješenje želimo pomaknuti u novu točku<br />

oblika x + θd. Pri tome zahtjevamo da vrijede sljedeća dva uvjeta:<br />

1. uvjet optimalnosti: c T (x + θd) < c T x.<br />

30


2. uvjet dopustivosti: x + θd ∈ P.<br />

Pri tome θ > 0 zovemo duljina koraka, a d vektor smjera. U svrhu konstrukcije vektora<br />

smjera odaberimo jednu nebazičnu varijablu x j , j ∈ N. Definirajmo vektor smjera d na<br />

sljedeći način: za j−tu kompomentu vektora d uzimamao da je d j = 1, te d i = 0 za svaki<br />

i ∈ N \{j}. Bazični dio vektora d označimo s d B = [d B(1) ,...,d B(m) ] T te ćemo ga odrediti<br />

iz uvjeta dopustivosti tj.tako da vrijedi x+θd ∈ P, odnosno da je A(x+θd) = b, odakle<br />

slijedi da je Ax + θAd = b, odnosno<br />

Ad = 0. (29)<br />

Zapišemo li matricu A u obliku A = [A 1 ,...,A n ], sustav (29) glasi:<br />

Ad =<br />

n∑<br />

A i d i =<br />

i=1<br />

m∑<br />

A B(i) d B(i) + A j = 0,<br />

i=1<br />

odakle je Bd B + A j = 0, odnosno d B = −B −1 A j . Osim toga vektor x + θd mora<br />

zadovoljavati i uvjet nenegativnosti. Da bismo provjerili uvjet nenegativnosti analizirat<br />

ćemo dvije mogućnosti:<br />

a) x je nedegenerativno bazično dopustivo rješenje;<br />

b) x je degenerativno bazično dopustivo rješenje.<br />

a) Ako je x nedegenerativno bazično dopustivo rješenje, odnosno točno (n − m) komponenti<br />

vektora x jednako je 0, za nebazični dio vektora x vrijedi: x i + θd i = 0 za<br />

i ∈ N \ {j}, te x j + θd j = θ > 0.<br />

Za bazični dio vektora vrijedi x B(i) + θd B(i) > 0: kako je x B(i) > 0, neovisno o<br />

predznaku od d B(i) za θ > 0 možemo odabrati dovoljno mali broj takav da je x B(i) +<br />

θd B(i) > 0.<br />

b) Neka je x degenerativno bazično dopustivo rješenje. Za nebazični dio vektora x<br />

vrijedi x i + θd i = 0 za i ≠ j, i ∈ N \ {j}, te x j + θd j = θ > 0.<br />

U bazičnom dijelu vektora x postoji i takav da je x B(i) = 0. Ako je pri tome<br />

d B(i) < 0, onda ne možemo odabrati θ > 0 tako da bude x B(i) + θd B(i) > 0. Ovom<br />

problemu vratit ćemo se poslije i pokazati kako izbjeći ovakvu situaciju.<br />

Uočimo da smo u postupku konstrukcije vektora smjera d te odgovarajuće duljine<br />

koraka do sada uzimali u obzir isključivo uvjet dopustivosti. S druge strane ostala je<br />

slobodna mogućnost izbora nebazične varijable x j . Nebazičnu varijablu x j , odnosno njezin<br />

odgovarajući indeks j odrediti ćemo iz uvjeta optimalnosti, tj.tako da vrijedi c T (x+θd) <<br />

c T x, odakle je θc T d < 0 te konačno c T d < 0. Vrijedi<br />

c T d = c T B d B + c j = c j − c T B (B−1 A j ),<br />

gdje je c B = [c B(1) ,... ,c B(m) ] T . Označimo s c j = c j −c T B (B−1 A j ). Broj c j zovemo utjecaj<br />

nebazične varijable x j . Prirodno proizlazi da nebazičnu varijablu x j treba odabrati tako<br />

da za odgovarajući utjecaj vrijedi c j < 0.<br />

31


Primjer 18. Zadan je problem <strong>linearnog</strong> <strong>programiranja</strong> u standardnom obliku<br />

uz uvjet<br />

c 1 x 1 + c 2 x 2 + c 3 x 3 + c 4 x 4 → min<br />

x<br />

x 1 + x 2 + x 3 + x 4 = 2<br />

2x 1 + 3x 3 + 4x 4 = 2<br />

x 1 ,x 2 ,x 3 ,x 4 ≥ 0.<br />

Za matricu baze odaberemo<br />

B = [A 1 ,A 2 ] =<br />

[ 1 1<br />

2 0<br />

]<br />

.<br />

Pri tome su varijable x 3 i x 4 nebazične te je x 3 = x 4 = 0. Bazični dio vektora x odredujemo<br />

rješavanjem sustava<br />

[ ][ ] [ ]<br />

1 1 x1 2<br />

= ,<br />

2 0 x 2 2<br />

odakle su x 1 = x 2 = 1 > 0 bazične varijable. Uočimo da je vektor x = [1,1,0,0] T<br />

nedegenerativno bazično dopustivo rješenje.<br />

Odaberimo za j = 3, tj.neka je odabrana nebazična varijabla. Odgovarajući vektor<br />

smjera d = [d 1 ,d 2 ,d 3 ,d 4 ] T ima svojstvo da je d 3 = 1, d 4 = 0, dok bazični dio vektora d<br />

dobivamo iz<br />

d B =<br />

Pri tome utjecaj varijable x 3 iznosi<br />

[ ]<br />

[<br />

d1<br />

= −B −1 0<br />

1<br />

A<br />

d 3 = − 2<br />

2 1 − 1 2<br />

][ 1<br />

3<br />

c 3 = c T d = − 3 2 c 1 + 1 2 c 2 + c 3 .<br />

]<br />

=<br />

[ −<br />

3<br />

2<br />

1<br />

2<br />

]<br />

.<br />

Ako su primjerice c 1 = 1,c 2 = 1 2 ,c 3 = 1 2 , onda je c 3 = − 3 4 pa nebazična varijabla x 3<br />

predstavlja dobar izbor. Ako su primjerice c 1 = 1,c 2 = 1,c 3 = 2, onda je c 3 = 1, te stoga<br />

nebazična varijabla x 3 nije dobar izbor.<br />

Preostaje vidjeti koliko iznosi utjecaj bazičnih varijabli. Vrijedi<br />

c B(i) = c B(i) − c T B B−1 A B(i) = c B(i) − c T B e i = c B(i) − c B(i) = 0.<br />

Definicija 15. Vektor c ∈ R n čije su komponente utjecaji varijabi x 1 ,... ,x n zovemo<br />

vektor utjecaja.<br />

Teorem 8. Neka je x bazično dopustivo rješenje, a B odgovarajuća matrica baze i c vektor<br />

utjecaja. Tada vrijedi:<br />

a) Ako je c ≥ 0, onda je x optimalno rješenje.<br />

b) Ako je x optimalno i nedegenerativno rješenje, onda je c ≥ 0.<br />

32


Dokaz. a) Neka je c ≥ 0. Pokažimo da je x optimalno rješenje, odnosno da je<br />

c T x ≤ c T y za svaki y ∈ P. Pretpostavimo da je y neko proizvoljno dopustivo rješenje te<br />

definirajmo vektor d = y − x. Želimo pokazati da je cT d ≥ 0. S obzirom da su y te x iz<br />

skupa P vrijedi Ax = Ay = b, odakle je Ad = 0, odnosno<br />

Ad = Bd B + ∑ i∈N<br />

A i d i = 0,<br />

tj. d B = − ∑ i∈N B−1 A i d i . Vrijedi<br />

c T d = c T B d B + ∑ c i d i = ∑ (c i − c B B −1 A i )d i = ∑ c i d i .<br />

i∈N i∈N<br />

i∈N<br />

Prema pretpostavci za svaki i ∈ N vrijedi c i ≥ 0. Takoder vrijedi x i = 0 za svaki i ∈ N<br />

te y i ≥ 0 za svaki i ∈ {1,... ,n} te je stoga d i = y i − x i ≥ 0 za svaki i ∈ N pa je c T d ≥ 0.<br />

b) Neka je x optimalno nedegenerativno rješenje i neka postoji x j , j ∈ N takav da<br />

je c j < 0. No kao što smo pokazali, tada postoji postoji vektor d te θ > 0 takav da je<br />

c T (x + θd) < c T x te stoga x nije optimalno rješenje.<br />

✷<br />

Pretpostavimo da je x neko bazično dopustivo rješenje. Za svaku nebazičnu komponentu<br />

vektora x odredimo njezin utjecaj c j . Ako za svaki j ∈ N vrijedi da je c j ≥ 0 onda je<br />

sukladno Teoremu 8, vektor x = x ∗ optimalno rješenje. U suprotnom postoji j ∈ N takav<br />

da je c j < 0. Konstruiramo odgovarajući vektor smjera d. Kretanje od x prema x + θd u<br />

smjeru vektora d nebazična komponenta x j vektora x postaje pozitivna. Pri tome kretanje<br />

u smjeru vektora d nastavljamo najviše što možemo tako da x + θd ostane u poliedru P,<br />

odnosno želimo odabrati optimalni θ ∗ = max{θ ≥ 0 : x+θd ∈ P}, a kako je d konstruiran<br />

tako da za svaki θ ≥ 0 zadovoljava A(x + θd) = 0, slijedi θ ∗ = max{θ ≥ 0 : x + θd ≥ 0}.<br />

Pri tome razlikujemo dva slučaja:<br />

1) Ako je d ≥ 0, tada je x + θd ≥ 0 za svaki θ ≥ 0 te u tom slučaju stavljamo da je<br />

θ ∗ = +∞.<br />

2) Ako postoji indeks i takav da je d i < 0, onda θ treba odabrati tako da vrijedi<br />

x i + θd i ≥ 0, odnosno da je θ ≤ − x i<br />

d i<br />

. Prethodna nejednakost treba biti zadovoljena<br />

za svaki indeks i sa svojstvom da je d i < 0.<br />

Konačno slijedi<br />

θ ∗ =<br />

(<br />

min − x )<br />

(<br />

i<br />

= min − x )<br />

B(i)<br />

.<br />

i=1,...,n;d i


Teorem 9.<br />

regularna.<br />

a) Stupci A B(i) , i ≠ l i A j su linearno nezavisni te je stoga matrica<br />

B = [ A B(1) ,...,A B(l−1) ,A j ,A B(l+1) ,... ,A B(m)<br />

]<br />

b) Vektor x + θ ∗ d je bazično dopustivo rješenje.<br />

Dokaz.<br />

{ B(i), i ≠ l,<br />

a) Označimo B(i) =<br />

, i = 1,... ,m. Kad bi vektori A<br />

j, i = l<br />

B(i)<br />

, i = 1,... ,m<br />

bili linearno zavisni, tada bi postojali λ 1 ,... ,λ m ne svi nula tako da je<br />

m∑<br />

λ i A B(i)<br />

= 0.<br />

Množenjem prethodne jednakosti slijeva matricom B −1 dobivamo<br />

m∑<br />

λ i B −1 A B(i)<br />

= 0,<br />

i=1<br />

i=1<br />

pa slijedi da su i vektori B −1 A B(i)<br />

, i = 1,... ,m takoder linearno nezavisni. Da bi<br />

dokazali da početna pretpostavka nije istinita, pokazat ćemo da vektori B −1 A B(i)<br />

i =<br />

1,... ,m (tj. B −1 A B(i) , i ≠ l i B −1 A j ) moraju biti linearno nezavisni.<br />

Kako je B −1 B = I i A B(i) i-ti stupac matrice B, slijedi da je B −1 A B(i) = e i , i =<br />

1,... ,n. Specijalno, vektori B −1 A B(i) = e i , i = 1,... ,n, i ≠ l su linearno nezavisni<br />

i l-ta komponenta im je jednaka nuli. S druge strane je B −1 A j = −d B a l-ta<br />

komponenta od −d B je −d B (l) što je različito od nula po konstrukciji indeksa l<br />

pa se B −1 A j ne može zapisati kao linearna kombinacija vektora B −1 A B(i) , i ≠ l,<br />

odnosno vektori B −1 A B(i)<br />

, i = 1,... ,m su linearno nezavisni.<br />

b) Označimo y = x + θ ∗ d. Kako je Ay = b, A B(i)<br />

, i = 1,... ,m linearno nezavisni<br />

i y i = 0 za i ∉ {B(1),... ,B(m)}, po teoremu 3 slijedi da je y bazično rješenje.<br />

Nadalje, kako je y ≥ 0, slijedi da je y bazično dopustivo rješenje.<br />

✷<br />

Zapišimo sada sažeto sada jednu iteraciju Simpleks metode u algebarskom obliku.<br />

Iteracija Simpleks metode<br />

0) Dani su BDR x, matrica baze B = [A B(1) ,... ,A B(m) ]<br />

1) Izračunati utjecaje c j = c j − c T B B−1 A j za sve j ∈ N.<br />

Ako je c j ≥ 0, ∀j ∈ N, onda je x ∗ = x i algoritam staje.<br />

U suprotnom, odabrati j za koji je c j < 0.<br />

2) Izračunati d B = −B −1 A j =: −u.<br />

Ako je d B ≥ 0 (u ≤ 0), staviti θ ∗ = ∞ tj. optimalna vrijednost funkcije cilja je −∞<br />

i algoritam staje.<br />

U suprotnom,<br />

(<br />

θ ∗ = min − x ) ( )<br />

B(i)<br />

xB(i)<br />

= min .<br />

i=1,...,m;d B(i) 0 u i<br />

34


3) Neka je l indeks takav da je<br />

θ ∗ = − x B(l)<br />

d B(l)<br />

= x B(l)<br />

u l<br />

.<br />

Napraviti novu matricu baze zamjenom stupca A B(l) s A j . Novo BDR y dano je s<br />

y j = θ ∗ , y B(i) = x B(i) + θ ∗ d B(i) = x B(i) − θ ∗ u i te y i = 0 za sve i ∈ N \ {j}.<br />

Kao što smo vidjeli, u svakom koraku simpleks metode trebamo računati inverz matrice<br />

baze. Matrica baze B se u svakoj iteraciji simpleks metode razlikuje od matrice baze B iz<br />

prethodne iteraciji samo u jednom stupcu. Želimo na osnovi matrice B−1 , odrediti matricu<br />

B −1 . To ćemo postići nizom elementarnih transformacija na retcima matrice B −1 . Pri<br />

tome pod elementarnom transformacijom nad retcima matrice podrazumijevamo množenje<br />

nekog retka matrice sa skalarom koji je različit od 0 te dodavanje dvaju redaka matrice.<br />

Primjer 19. Zadana je matrica C = ⎣<br />

⎡<br />

1 2<br />

3 4<br />

5 6<br />

⎡<br />

⎤<br />

⎦. Pomnožimo li treći redak matrice C s<br />

11 14<br />

2 i dodamo prvom retku dobivamo matricu ⎣ 3 4 ⎦. Uočimo da je ova elementarna<br />

5 6<br />

transformacija nad retcima matrice C ekvivalentna množenju matrica QC, pri čemu je<br />

⎡<br />

Q = ⎣<br />

1 0 2<br />

0 1 0<br />

0 0 1<br />

Općenito elementrana transformacija nad retcima proizvoljne matrice C ∈ R m×n , koja<br />

se sastoji u množenju j−tog retka matrice C sa skalarom β ≠ 0, te dodavanju i−tom<br />

retku ekvivalentna je množenju matrica QC, pri čemu je<br />

Q = I + D ij ,<br />

gdje je I ∈ R m×m te D ij ∈ R m×m kvadratna matrica koja na sjecištu i−tog retka i j−tog<br />

stupca sadrži element β, dok su ostali elementi matrice D ij jednaki 0. Uočimo da je<br />

matrica Q regularna jer je det(Q) = 1.<br />

Neka su<br />

⎤<br />

⎦ .<br />

B = [ A B(1) ,... ,A B(l−1) ,A B(l) ,A B(l+1) ,...,A B(m)<br />

]<br />

te B =<br />

[<br />

AB(1) ,...,A B(l−1) ,A j ,A B(l+1) ,... ,A B(m)<br />

]<br />

.<br />

matrice baze u dvije uzastopne iteracije simpleks metode. Vrijedi<br />

⎡<br />

⎤<br />

1 u 1<br />

. .. B −1 .<br />

B = [e 1 ,...,e l−1 ,u,e l+1 ,... ,e m ] =<br />

u l<br />

,<br />

⎢<br />

⎣<br />

.<br />

. ..<br />

⎥<br />

⎦<br />

u m 1<br />

pri čemu je e i ∈ R m i−ti jedinični vektor. Nizom od najviše m elementarnih transformacija<br />

nad retcima, matrica B −1 B može se transformirati u jediničnu matricu. To znači da<br />

postoje matrice Q 1 ,... ,Q m ∈ R m×m takve da je<br />

⎤<br />

Q m Q m−1 · · ·Q 1 B −1 B = I,<br />

odakle slijedi da je B −1 = Q m Q m−1 · · ·Q 1 B.<br />

35


3.1 Tableu implementacija simpleks metode<br />

Neka je B matrica baze. Uočimo da sustav linearnih jednadžbi Ax = b, možemo zapisati<br />

u obliku B −1 Ax = B −1 b. Simpleks tableu je matrica<br />

B −1 [b,A] = [B −1 b,B −1 A 1 ,...,B −1 A n ] ∈ R m×(n+1) .<br />

U svakoj iteraciji simpleks metode želimo simpleks tableu B −1 [b,A] transformirati u simpleks<br />

tableu B −1 [b,A], što postižemo množenjem matrica QB −1 [b,A], pri čemu je matrica<br />

Q = Q m · · ·Q 1 produkt odgovarajućih matrica elementarnih transformacija. Obično<br />

simpleks tableu dodajemo tzv. nulti redak [−c T B B−1 b,c − c T B B−1 A] ∈ R 1×n te simpleks<br />

tableu poprima oblik<br />

−c T B B−1 b c T − c T B B−1 A<br />

odnosno<br />

B −1 b B −1 A,<br />

−c T B x B c 1 · · · c n<br />

x B(1) . ...<br />

.<br />

. B −1 A 1 ... B −1 A n<br />

x B(m) . ...<br />

Primjer 20. Riješimo simpleks metodom sljedeći problem <strong>linearnog</strong> <strong>programiranja</strong><br />

uz uvjet<br />

−10x 1 − 12x 2 − 12x 3 → min<br />

x 1 + 2x 2 + 2x 3 ≤ 20<br />

2x 1 + x 2 + 2x 3 ≤ 20<br />

2x 1 + 2x 2 + x 3 ≤ 20<br />

x 1 ,x 2 ,x 3 ≥ 0.<br />

Pripadni problem <strong>linearnog</strong> <strong>programiranja</strong> u standardnom obliku glasi<br />

uz uvjet<br />

−10x 1 − 12x 2 − 12x 3 → min<br />

x 1 + 2x 2 + 2x 3 + x 4 = 20<br />

2x 1 + x 2 + 2x 3 + x 5 = 20<br />

2x 1 + 2x 2 + x 3 + x 6 = 20<br />

x 1 ,x 2 ,x 3 ,x 4 ,x 5 ,x 6 ≥ 0.<br />

Odgovarajuća matrica A te vektori b i c glase<br />

⎡<br />

⎤ ⎡<br />

1 2 2 1 0 0<br />

A = ⎣ 2 1 2 0 1 0 ⎦ , b = ⎣<br />

2 2 1 0 0 1<br />

36<br />

20<br />

20<br />

20<br />

⎤<br />

.<br />

⎦ , c = [−10, −12, −12] T .


Pretpostavimo da se matrica baze sastoji od stupaca A 4 ,A 5 i A 6 te da glasi<br />

⎡<br />

B = ⎣<br />

1 0 0<br />

0 1 0<br />

0 0 1<br />

Pri tome su x 1 ,x 2 ,x 3 nebazične varijable dok su x 4 ,x 5 i x 6 bazične varijable. Lako se<br />

vidi da je odgovarajuće bazično dopustivo rješenje x = [0,0,0,20,20,20] T . Pripadni tableu<br />

glasi<br />

0 −10 −12 −12 0 0 0<br />

⎤<br />

⎦ .<br />

x 4 = 20 1 2 2 1 0 0<br />

x 5 = 20 2 1 2 0 1 0<br />

x 6 = 20 2 2 1 0 0 1<br />

Medu nebazičnim varijablama želimo odabrati onu koja ima negativni utjecaj. Vidimo da<br />

možemo odabrati varijable x 1 ,x 2 ili x 3 . Odaberimo x 1 za nebazičnu varijablu koju ćemo<br />

uvesti u bazu. Pri tome prvi stupac u tableu zovemo pivot stupac. Odgovarajući stupac je<br />

vektor u = B −1 A 1 = [1,2,2] T (za bazični dio vektora smjera vrijedi d B = −u). Nadalje,<br />

pripadna duljina koraka jednaka je<br />

θ ∗ x B(i)<br />

= min = min{20,10,10} = 10,<br />

i:u i >0 u i<br />

što znači da iz baze možemo izbaciti varijablu x 5 ili x 6 . Pretpostavimo da smo se odlučili<br />

za varijablu x 5 . Pri tome element na sjecištu prvog stupca i drugog retka simpleks tableua<br />

zovemo pivot element, a to je u ovom slučaju 2. Nebazična varijabla x 1 ulazi u bazu,<br />

dok bazična varijabla x 5 napušta bazu. Elementarnim transformacijama pivot stupac transformirat<br />

ćemo u [0,1,0] T . Odgovarajuću transformaciju provest ćemo i na nultom retku<br />

simpleks tabeleua. Novi simpleks tableu glasi<br />

100 0 −7 −2 0 5 0<br />

x 4 = 10 0 1.5 1 1 −0.5 0<br />

x 1 = 10 1 0.5 1 0 0.5 0<br />

x 6 = 0 0 1 −1 0 −1 1.<br />

Varijable x 2 ,x 3 i x 5 su nebazične varijable, dok su x 1 ,x 4 i x 6 bazične varijable. Pripadno<br />

bazično dopustivo rješenje glasi x = [10,0,0,10,0,0] T . Uočimo da je riječ o degenarativnom<br />

rješenju (što ćemo ovaj trenutak zanemariti). Dobri izbori nebazične varijable<br />

su x 2 i x 3 . Pretpostavimo da smo odabrali nebazičnu varijablu x 3 . Pripadni pivot stupac<br />

je u = [1,1, −1] T (za bazični dio vektora smjera vrijedi d B = −u). Nadalje, pripadna<br />

duljina koraka jednaka je<br />

θ ∗ x B(i)<br />

= min = min{10,10} = 10,<br />

i:u i >0 u i<br />

što znači da iz baze možemo izbaciti varijablu x 4 ili x 1 . Pretpostavimo da smo se odlučili<br />

za varijablu x 4 , dakle pivot element je 1. Nakon elementarnih transformacija dobivamo<br />

37


sljedeći simpleks tableu:<br />

120 0 −4 0 2 4 0<br />

x 3 = 10 0 1.5 1 1 −0.5 0<br />

x 1 = 0 1 −1 0 −1 1 0<br />

x 6 = 10 0 2.5 0 1 −1.5 1.<br />

Varijable x 2 ,x 4 ,x 5 su nebazične, dok su x 1 ,x 3 ,x 6 bazične varijable. Jedina nebazična<br />

varijabla koju možemo uvesti u bazu je x 2 . Pripadni pivot stupac je u = [1.5, −1,2.5] T .<br />

Nadalje, pripadna duljina koraka jednaka je<br />

θ ∗ x B(i)<br />

= min<br />

i:u i >0 u i<br />

= min<br />

{ 10<br />

1.5 , 10 }<br />

= 4,<br />

2.5<br />

što znači da je pivot element 2.5. Prema tome varijabla x 6 izlazi iz baze te dobivamo novi<br />

simpleks tableu:<br />

136 0 0 0 3.6 1.6 1.6<br />

x 3 = 4 0 0 1 0.4 0.4 −0.6<br />

x 1 = 4 1 0 0 −0.6 0.4 0.4<br />

x 2 = 4 0 1 0 0.4 −0.6 0.4.<br />

S obzirom da su utjecaji svih varijabli nenegativni slijedi da je x = [4,4,4,0,0,0] T optimalno<br />

bazično dopustivo rješenje.<br />

U slučaju degenerativnog bazičnog dopustivog rješenja, može se pojaviti kruženje ili<br />

ciklus, odnosno pojava da se nakon nekoliko iteracija simpleks metode ponovo vratimo na<br />

početno bazično dopustivo rješenje. Ovu pojavu ilustrirat ćemo na sljedećem primjeru:<br />

Primjer 21. Zada je simpleks tableu<br />

3 −3/4 20 −1/2 6 0 0 0<br />

x 5 = 0 1/4 −8 −1 9 1 0 0<br />

x 6 = 0 1/2 −12 −1/2 3 0 1 0<br />

x 7 = 1 0 0 1 0 0 0 1.<br />

Pretpostavimo da koristimo sljedeće pravilo za pivotiranje:<br />

• Medu svim nebazičnim varijablama koje su pogodne za ulazak u bazu, izaberemo onu<br />

s najnegativnijim utjecajem;<br />

• Medu bazičnim varijablama koje su pogodne za izbacivanje iz baze, odaberemo onu s<br />

namanjim indeksom.<br />

Primjenom ovog pravila nakon 6 iteracija vratit ćemo se u početni simpleks tableu, što<br />

znači da je došlo do ciklusa.<br />

U svrhu izbjegavanja ciklusa, koristit ćemo tzv. Blandovo pravilo, koje glasi:<br />

Blandovo pravilo<br />

38


• Medu svim nebazičnim varijablama koje su pogodne za ulazak u bazu, odaberemo<br />

onu s najmanjim indeksom.<br />

• Medu bazičnim varijablama koje su pogodne za izbacivanje iz baze, odaberemo onu<br />

s namanjim indeksom.<br />

Ako krenememo od nedegenerativnog početnog bazičnog dopustivog rješenja, te ako<br />

koristimo Blandovo pravilo, simpleks metoda završit će u konačno mnogo koraka ([2]).<br />

3.2 Konstrukcija početnog bazičnog dopustivog rješenja<br />

Da bi započeli simpleks algoritam, potrebno je jedno bazično dopustivo rješenje. Konstrukcija<br />

početnog BDR-a u nekim sličajevima je očigledna, no općenito predstavlja vrlo<br />

složen problem.<br />

Specijalno, promotrimo LP problem tipa<br />

uz uvjet<br />

Odgovarajući SOLP je<br />

uz uvjet<br />

odnosno<br />

c T x → min<br />

x<br />

(30)<br />

Ax ≥ b, b ≥ 0<br />

x ≥ 0.<br />

c T x → min<br />

x,s<br />

Ax + s = b, b ≥ 0<br />

x,s ≥ 0,<br />

c T x → min<br />

x,s<br />

uz uvjet<br />

[ ] x<br />

[A I] = b, b ≥ 0<br />

s<br />

[ ] x<br />

≥ 0.<br />

s<br />

[ ] 0<br />

Sada je očigledno da izbor B = I daje dopustivo rješenje koje je zbog pretpostavke<br />

b ≥ 0 ujedno i bazično dopustivo rješenje te se može koristiti kao početni BDR u<br />

b<br />

simpleks metodi.<br />

U općem slučaju za LP oblika<br />

uz uvjet<br />

c T x → min<br />

x<br />

(31)<br />

Ax = b,<br />

39


x ≥ 0,<br />

problem konstrukcije početnog BDR-a složen je problem koji zahtjeva rješavanje pomoćnog<br />

LP problema.<br />

Primjetimo da u LP problemu (31) bez smanjenja općenitosti možemo pretpostaviti<br />

da je b ≥ 0 (ako nije, odgovarajuće jednadžbe u Ax = b pomnožimo s (-1)).<br />

U svrhu odredivanja početnog BDR-a za problem (31) uvodimo novi vektor y =<br />

[y 1 ,... ,y m ] ∈ R m , y ≥ 0 koji se zove vektor artificijelnih varijabli. Definiramo<br />

pomoćni LP problem<br />

uz uvjet<br />

y 1 + · · · + y m → min<br />

x,y<br />

Ax + y = b,<br />

x,y ≥ 0.<br />

Uočimo:<br />

[ ] 0<br />

1) Pomoćni problem (32) je oblika (30) pa je jedan izbor početnog BDR-a .<br />

b<br />

[ ] x<br />

2) Ako je x dopustivo rješenje od (31), onda je optimalno rješenje problema<br />

0<br />

(32) i optimalna vrijednost funkcije cilja u (32) je 0. Kontrapozicijom iz prethodne<br />

tvrdnje slijedi da ako je optimalna vrijednost funkcije cilja u (32) različita od 0, onda<br />

problem (31) nema rješenja.<br />

3) Ako je optimalna vrijednost funkcije cilja u (32) jednaka od 0 (tj. optimalni y = 0),<br />

onda je pripadni optimalni x BDR od (31).<br />

Primjer 22. Odrediti početno bazično dopustivo rješenje za LP problem<br />

uz uvjet<br />

(32)<br />

− x 1 − 2x 2 → min (33)<br />

−x 1 − x 2 + x 3 = −5<br />

x 1 + x 2 + x 4 = 8<br />

x 1 + x 5 = 6<br />

x 2 + x 6 = 6<br />

x 1 ,x 2 ,x 3 ,x 4 ,x 5 ,x 6 ≥ 0<br />

Rješenje: Najprije prvu jednadžbu pomnožimo s (-1). Sada pomoćni problem glasi<br />

uz uvjet<br />

y 1 + y 2 + y 3 + y 4 → min (34)<br />

x 1 + x 2 − x 3 + y 1 = 5<br />

x 1 + x 2 + x 4 + y 2 = 8<br />

x 1 + x 5 + y 3 = 6<br />

x 2 + x 6 + y 4 = 6<br />

x 1 ,x 2 ,x 3 ,x 4 ,x 5 ,x 6 ,y 1 ,y 2 ,y 3 ,y 4 ≥ 0<br />

40


Početni BDR za problem (34) je [5,8,6,6] T i iteracije simpleks metode dane su u sljedećim<br />

tableuima<br />

−25 −3 −3 1 −1 −1 −1 0 0 0 0<br />

y 1 = 5 1 1 −1 0 0 0 1 0 0 0<br />

y 2 = 8 1 1 0 1 0 0 0 1 0 0<br />

y 3 = 6 1 0 0 0 1 0 0 0 1 0<br />

y 4 = 6 0 1 0 0 0 1 0 0 0 1<br />

−10 0 0 −2 −1 −1 −1 3 0 0 0<br />

x 1 = 5 1 1 −1 0 0 0 1 0 0 0<br />

y 2 = 3 0 0 1 1 0 0 −1 1 0 0<br />

y 3 = 1 0 −1 1 0 1 0 −1 0 1 0<br />

y 4 = 6 0 1 0 0 0 1 0 0 0 1<br />

−8 0 −2 0 −1 1 −1 1 0 2 0<br />

x 1 = 6 1 0 0 0 1 0 0 0 1 0<br />

y 2 = 2 0 1 0 1 −1 0 0 1 −1 0<br />

x 3 = 1 0 −1 1 0 1 0 −1 0 1 0<br />

y 4 = 6 0 1 0 0 0 1 0 0 0 1<br />

−4 0 0 0 1 −1 −1 1 2 0 0<br />

x 1 = 6 1 0 0 0 1 0 0 0 1 0<br />

x 2 = 2 0 1 0 1 −1 0 0 1 −1 0<br />

x 3 = 3 0 0 1 1 0 0 −1 1 0 0<br />

y 4 = 4 0 0 0 −1 1 1 0 −1 1 1<br />

0 0 0 0 0 0 0 1 1 1 1<br />

x 1 = 2 1 0 0 1 0 −1 0 1 0 −1<br />

x 2 = 6 0 1 0 0 0 1 0 0 0 1<br />

x 3 = 3 0 0 1 1 0 0 −1 1 0 0<br />

x 5 = 4 0 0 0 −1 1 1 0 −1 1 1<br />

te je početni BDR za problem (33) dan s [2,6,3,0,4,0] T .<br />

Ako se matrica B pridružena optimalnom rješenju pomoćnog problema (32) sastoji<br />

samo od stupaca matrice A, onda je matrica B početna matrica baze za problem (31).<br />

Ako se matrica B 1 ne sastoji samo od stupaca matrice A, slijedi da su neke artificijelne<br />

varijable bazične. Kako su vrijednosti svih artificijelnih varijabli nakon simpleks<br />

41


metode jednake nuli, slijedi da je optimalno rješenje pomoćnog problema degenerativno.<br />

Označimo A B(1) ,...,A B(k) stupce od A koji se nalaze u bazi. Kreiramo novu bazu B ′<br />

od A B(1) ,... ,A B(k) i dodatnih m − k stupaca matrice A koji su linearno nezavisni s<br />

A B(1) ,...,A B(k) (uz pretpostavku da je matrica A punog ranga). Tada je B ′ matrica<br />

baze za problem (31) pridružena početnom BDR-u dobivenom kao rješenje problema (32).<br />

Primjedba 6. Prethodno opisani postupak je postupak izbacivanja artificijelnih varijabli iz<br />

baze. Osnovna pretpostavka navedenog postupka je da je matrica A punog ranga. Taj uvjet<br />

ne predstavlja smanjenje općenitosti jer ako A nije ponug ranga, onda se neki od redaka<br />

matrice A može/mogu prikazati kao linearna kombinacija preostalih i njima pripadni uvjeti<br />

se mogu izbaciti iz skupa uvjeta Ax = b te se dobije problem s matricom punog ranga.<br />

Primjer 23. Za LP problem iz prethodnog primjera početno BDR je [2,6,3,0,4,0] T a<br />

odgovarajuća matrica baze B = [A 1 ,A 2 ,A 3 ,A 5 ]. Početni simpleks tableu za originalan<br />

problem dobiva se iz završnog tableua pomoćnog problema ispuštajući stupce koji odgovaraju<br />

artificijelnim varijablama:<br />

∗ ∗ ∗ ∗ ∗ ∗ ∗<br />

x 1 = 2 1 0 0 1 0 −1<br />

x 2 = 6 0 1 0 0 0 1<br />

x 3 = 3 0 0 1 1 0 0<br />

x 5 = 4 0 0 0 −1 1 1<br />

pri čemu se ponovno izračunava samo prvi redak. Dobivamo<br />

14 0 0 0 1 0 1<br />

x 1 = 2 1 0 0 1 0 −1<br />

x 2 = 6 0 1 0 0 0 1<br />

x 3 = 3 0 0 1 1 0 0<br />

x 5 = 4 0 0 0 −1 1 1<br />

Kako su svi utjecaji nenegativni, početni BDR je ujedno i optimalni pa je x ∗ = [2,6,3,0,4,0] T<br />

i c T x ∗ = −14.<br />

Primjedba 7. Prethodno opisani postupak za odredivanje optimalnog rješenja LP problema<br />

koji obuhvaća i rješavanje pomoćnog problema u literaturi je poznat kao dvofazna<br />

simpleks metoda (eng. two-phase simplex method). Pod prvom fazom dvofazne metode podrazumjeva<br />

se odredivanje početnog BDR-a (tj. rješavanje pomoćnog problema) dok druga<br />

faza sadrži rješavanje danog LP problema simpleks metodom.<br />

3.3 Zadaci<br />

Zadatak 15. Neka je P = {x ∈ R n : Ax = b,x ≥ 0} i x ∈ P. Dokazati da je tada<br />

d ∈ R n dopustivi smjer u x ako i samo ako je Ad = 0 i d i ≥ 0 za svaki i za koji je x i = 0.<br />

Koristeći dokazanu tvrdnju, za P = {x ∈ R 3 : x 1 + x 2 + x 3 = 1,x ≥ 0} odrediti skup svih<br />

dopustivih smjerova u x = [1/2,1/2,0] T .<br />

Rješenje: {d ∈ R 3 : d 1 + d 2 + d 3 = 0, d 3 ≥ 0}<br />

42


Zadatak 16. Dokažite sljedeću tvrdnju:<br />

Dopustivo rješenje x je optimalno ako i samo ako vrijedi c T d ≥ 0 za svaki dopustivi smjer<br />

d u vektoru x. Pri tome je dopustivo rješenje x jedinstveno optimalno rješenje ako i samo<br />

ako za svaki dopustivi smjer d u vektoru x vrijedi c T d > 0.<br />

Zadatak 17. Zadan je problem <strong>linearnog</strong> <strong>programiranja</strong>:<br />

uz uvjet<br />

−2x 1 − x 2 → min<br />

x 1 + x 2 ≥ 5<br />

x 1 + x 2 ≤ 8<br />

x 1 ≤ 6<br />

x 2 ≤ 6<br />

x 1 ,x 2 ≥ 0<br />

Svedite problem na standardni problem <strong>linearnog</strong> <strong>programiranja</strong> i riješite problem primjenom<br />

simpleks tableua. Zadani problem riješite i geometrijski. Na tom grafičkom prikazu<br />

naznačite svaku iteraciju koju ste dobili primjenom simpleks tableua.<br />

Rješenje: x ∗ = [3,7] T<br />

Zadatak 18. Sljedeći problem zapišite kao LP problem i riješite ga primjenom simpleks<br />

metode.<br />

Gradevinska tvrtka planira izgradnju novog stambenog naselja koje se sastoji od samostalnih<br />

kuća, dvodomki prizemnica i dvodomki katnica. Prema urbanističkom planu, na svakoj<br />

od 60 zemljišnih jedinica s kojima tvrtka raspolaže može se sagraditi ili točno 6 samostalnih<br />

kuća ili točno 4 dvodomke prizemnice ili točno 2 dvodomke katnice ili prenamjeniti<br />

zemljište u zelenu površinu i ne graditi ništa na njemu. Cijena izgradnje samostalne kuće<br />

je 40 000e, dvodomke prizemnice 50 000e a dvodomke katnice 60000e. Zarada na svakoj<br />

samostalnoj kući je 15 000e, dvodomki prizemnici 18000e a na katnici 20 000e. Tvrtka<br />

raspolaže s kapitalom od 2880 000e. Izgradnje jedne samostalne kuće zahtjeva 2500 sati<br />

rada, dvodomke prizemnice 3000 sati rada a dvodomke katnice 4000 sati rada. Tvrtka<br />

raspolaže s 240 000 sati rada. Koliko kuća pojedinog tipa gradevinar treba izgraditi da bi<br />

ostvario maksimalni profit?<br />

Rješenje: Treba izgraditi 72 samostalne kuće.<br />

Zadatak 19 (3 boda). U nekom koraku simpleks metode tableu glasi:<br />

0 α 0 0 β<br />

x 1 = γ 0 1 0 3<br />

x 2 = 2 0 0 1 −1<br />

x 3 = 3 1 0 0 1<br />

Odredite skup vrijednosti nepoznatih parametara α, β i γ tako da<br />

a) trenutno BDR je degenerativno;<br />

b) x 4 ulazi u bazu a x 3 izlazi iz baze (uz uvažavanje Blandovog pravila);<br />

c) optimalna vrijednost funkcije cilja je 0.<br />

43


Literatura<br />

[1] D. Bertsimas, J.N. Tsitsiklis, Introduction to Linear Optimization, Athena Scientific,<br />

Belmont, Massachusetts, 1997.<br />

[2] R.G. Bland, New Finite Pivoting Rules for Simplex Methos, Mathematics of Operations<br />

Research, 2(1977), 103-107<br />

44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!