Linearno programiranje 1 Problem linearnog programiranja
Linearno programiranje 1 Problem linearnog programiranja
Linearno programiranje 1 Problem linearnog programiranja
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