Вы находитесь на странице: 1из 11

OPERACIONA ISTRAIVANJA 3.

CJELOBROJNO LINEARNO PROGRAMIRANJE U naprijed razmatranom modelu LP su ukljuene sljedee pretpostavke: Veze izmeu promjenljivih su linearne Parametri su konstantni Ne javljaju se sluajne varijable Postoji samo jedna funkcija kriterija Upravljake promjenljive su neprekidne nenegativne veliine Iako ove pretpostavke, u konkretnim problemima, nisu uvjek u potpunosti ispunjene, LP daje rezultate koji se uspjeno primjenjuju u praksi Meutim, u nekim primjenama linearnog programiranja, pojedine ili sve strukturne promjenljive mogu imati samo cjelobrojne vrijednosti. Na primjer, broj maina, zvrilaca, vozila, proizvodnih pogona, ... . Ako se radi o relativno velikim brojevima, pogreke zaokruivanja su relativno male tako da je u tim sluajevima prihvatljivo rjeiti problem LP sa realnim promjenljivim i dobijene vrijednosti zaokruiti na najblie cjelobrojne vrijednosti. S druge strane, postoje sluajevi gdje bi se zaokruivanjem pravile grube greke. To se deava kada su vrijednosti cjelobrojnih rezultata relativno male ili u ekstremnom sluaju, kada promjeljive mogu dobiti samo vrijednosti 0 ili 1. Takvi sluajevi su tipini za situacije donoenja odluka o tome da li neto uraditi ili ne da li izgraditi tvornicu, da li zasijati odreenu kulturu, da li izvriti investiranje u odreeni projekat, ... . Iako formulacije cjelobrojnih problema programiranja esto izgledaju vrlo slino nekim kontinualnim problemima programiranja, slinost je na neki nain zabluda. Algebarski izrazi funkcije cilja i ogranienja u ova dva tipa problema, imaju slian oblik, ali dodatna ogranienja, da neke ili sve promjenljive moraju biti cjelobrojne, ine cjelobrojne probleme znatno teim. Mnogi problemi cjelobrojnog programiranja su klasificirani kao teki (hard) optimizacioni problemi. Tako, dok opi problem LP moe biti rijeen u polinominalnom vremenu, nalaenje optimalnog rjeenja za odgovarajui cjelobrojni zadatak obino zahtijeva eksponencijalno raunarsko vrijeme. Meutim, postoje neki cjelobrojni problemi koji se mogu lako rijeiti. Posebno, mnogi problemi linearnih mrea, kao problemi rasporeivanja i uparivanja (matching problems), transportni i problemi pretovara (transshipment problems), problemi mrenog toka, uvijek kao optimalno rjeenje dobiju cjelobrojni rezultat.

3.1. POSTAVKA PROBLEMA U ovim problemima, svaka krajnja taka dopustivog prostora, predstavlja cjelobrojno rjeenje, meutim, iako se ti zadaci formuliraju i rjeavaju kao problemi linearnog programiranja, vidjeemo da e simpleks algoritam davati cjelobrojna rjeenja. Naalost to vai samo za probleme koji imaju mrenu strukturu dok za veinu cjelobrojnih zadataka, formulacija u obliku LP ne daje lako rjeenje. Opi zadatak Cjelobrojnog Linearnog Programiranja (CLP) dat je u obliku: = 0,

(3.1)

gdje je Zn skup ntorki sa cjelobrojnim koordinatama, A = [aij] je mxn cjelobrojna matrica, a vektori b i c su cjelobrojni Ako se izostavi uslov cjelobrojnosti dobije se linearna relaksacija problema (3.1): = 0 (3.2)

Osnovna razlika problema (3.1) i problema (3.2) je u tom, to je dopustivi skup u (3.1) diskretan, a u (3.2) konveksan. 3.2. METODA ODSJECAJUIH RAVNI (Gomory) Sutina ideje je u sljedeem: Na dopustivi skup linearne relaksacije dodaju se nova ogranienja koja trebaju odsjei dijelove dopustivog prostora koji ne sadre cjelobrojne take. Nova ogranienja se generiraju na osnovu informacije o optimalnom rjeenju linearne releksacije. Postupak se sastoji od sljedeih koraka: Korak 1. Nai optimalno rjeenje koristei simpleks algoritam ne uzimajui u obzir ogranienja na cjelobrojnost Korak 2. Ako su sve promjenljive cjelobrojne u optimalnom rjeenju, tada je to rjeenje zadatka CLP Korak 3. Ako je jedna promjenljiva u optimalnom rjeenju necjelobrojna, tada se uvodi dodatno ogranienje. Ono se zove Gomory-jevo ogranienje. Ako je vie promjenljivih necjelobrojno, bira se promjenljiva koja ima najvei necjelobrojni dio. Ako ih ima vie istih, bira se jedna proizvoljno Korak 4. Formira se simplex tabela ukljuujui dodatno ogranienje. Nalazi se novo optimalno rjeenje koristei dualni simpleks metod Korak 5. Ako je novo optimalno rjeenje cjelobrojno, to je rjeenje zadatka CLP. U suprotnom, ide se na Korak 3..

Konstrukcija Gomory-jevih ogranienja Izabere se red optimalne simpleks tabele u kojoj slobodni lan nije cjelobrojan. Ako postoji cjelobrojno rjeenje zadatka, tada su svi 0 cijeli brojevi. Iz toga proizilazi da je lijeva strana uvjek cijeli broj, a na osnovu toga, da i desna strana mora biti cijeli broj. Nakon toga se formira tzv. odsjecajua ravan i na osnovu nje formira novo ogranienje. Ovo ogranienje ima sljedee osobine: Svako dopustivo rjeenje polaznog problema CLP, zadovoljava ovo ogranienje Optimalno rjeenje linearne relaksacije ne zadovoljava Sada se dodaje novo ogranienje sa novom dodatnom promjenljivom i dobije se nova Simpleks tabela. Ova tabela nije primalno dopustiva ali jeste dualno, pa se moe primijeniti dualna simpleks metoda. Dobije se sljedea simpleks tabela koja daje optimalno rjeenje. Ujedno, ovo rjeenje je cjelobrojno. Dodatno ogranienje je smanjilo dopustivi prostor tj. odsjeklo je dio dopustivog prostora koji je blizu necjelobrojne optimalne take. Ovaj algoritam nalazi optimalno rjeenje cjelobrojnog linearnog programiranja za konano mnogo koraka. Meutim, broj koraka moe biti vrlo veliki pa se ovaj metod kombinira sa metodom grananja i ograniavanja da bi se smanjio broj koraka. Metode koje koriste kombinaciju ova dva pristupa nazivaju se metode grananja i odsjecanja. Posebnu klasu u celobrojnom linearnom programiranju, zauzimaju problemi u kojima se zahteva da promenljive uzimaju vrednosti iz skupa {0, 1}. To su tzv. zadaci 0-1 programiranja ili binarnog programiranja. Ovi zadaci se esto sreu u praksi. Zadatak binarnog programiranja: = 0, (0,1) Linearna relaksacija zadatka binarnog programiranja je: = 0 1 (3.4) (3.3)

Problemi oblika (3.3) se mogu efikasno rijeiti primjenom simpleks algoritma ili nekom drugom metodom koja ima polinominalnu raunsku sloenost. Opi problem cjelobrojnog linearnog programiranja (3.1) je znatno tei, mada mu je dopustivi prostor zadan u obliku prebrojivog skupa.

3.2. TIPINI PROBLEMI CLP Problem rasporeivanja Transportni problem Problem ranca Problem trgovakog putnika Problem rasporeivanja (Assignment problem) Potrebno je rasporediti n izvrilaca na n poslova, tako da njihova produktivnost bude maskimalna. Poznate su produktivnosti cij i-tog izvrioca na j-tom poslu za i, j = 1, 2, ..., n. Matematiki model Problema rasporeivanja predstavlja problem 01 programiranja, odnosno, binarnog programiranja.

=1 =1

= 1, = 1,2, ,
=1

= 1, = 1,2, ,
=1

0,1 , = 1,2, , , = 1,2, , Podrazumjeva se da je = 1 ako je i-ti izvrilac rasporeen na j-ti posao. Transportni problem (The transportation problem) Potrebno je prebaciti robu iz m ishodita (skladita) S1, S2, ..., Sm u n odredita (prodavnica) P1, P2, ..., Pn, tako, da se preveze sva roba a da cijena transporta bude minimalna. Poznate su koliine robe u skladitima a1, a2, ..., am, potrebe prodavnica b1, b2, ..., bn, kao i cijena prevoza jedne jedinice mjere robe od skladita Si do prodavnice Pj Petpostaviemo da je ukupna ponuda (roba smjetena u skladitima S1, S2, ..., Sm) jednaka ukupnoj potranji (potrebe prodavnica P1, P2, ..., Pn), tj da vrijedi

=
=1 =1

Zadatak kod kojeg vrijedi gornji uvjet naziva se zatvoreni transportni zadatak u suprotnom je otvoreni transportni zadatak.

Otvoreni zadatak se prevodi u zatvoreni uvoenjem fiktivnog skladita ili fiktivne prodavnice. Ako sa xij oznaimo broj jednica mjere robe koja se prevozi iz skladita i u prodavnicu j, matematiki model transportnog problema je:

=1 =1

= , = 1,2, ,
=1

= , = 1,2, ,
=1

0, = 1,2, , , = 1,2, , Jasno je da je problem rasporeivanja specijalan sluaj transportnog problema kada je = , = 1, = 1, = . Dopustivi skupovi problema rasporeivanja i transportnog problema su cjelobrojni poliedri pa oni spadaju u lake probleme cjelobrojnog programiranja. Poliedar = = , 0), gdje je A cjelobrojna matrica ranga m i b je cjelobrojni vektor, naziva se cjelobrojni ako svi njegovi vrhovi (sva dopustiva bazna rjeenja) imaju cjelobrojne koordinate. Ako je dopustivi prostor dat kao cjelobrojni poliedar, uslovi cjelobrojnosti u zadatku (3.1) se mogu izostaviti i rijeiti zadatak linearne relaksacije (3.2) ime se ujedno dobije rjeenje zadatka (3.1). Matrice, iji su svi minori jednaki 0 ili 1, nazivaju se totalno unimodularne. Vai sljedee: ako je A totalno unimodularna matrica punog ranga, tada je poliedar X cjelobrojan. Poto su sve bazne podmatrice Ab nesingularne vai {1,1} Iz cjelobrojnosti matrice Ab slijedi cjelobrojnost 1 = / Kako je vrh poliedra definiran sa = 1 slijedi da su sve kordinate vrha cjelobrojne. Dovoljan uvjet za totalnu unimodularnost Pretpostavimo da svi elementi matrice A pripadaju skupu {0,1,-1} i da vai: Svaka kolona ima najvie dva elementa razliita od nule Vrste se mogu podijeliti u dva skupa I i II, tako da nenulti elementi istog znaka iz proizvoljne kolone pripadaju raznim skupovima, a nenulti elementi razliitog znaka iz proizvoljne kolone pripadaju istom skupu. Tada je matrica A totalno unimodularna.

Problem ranca (Knapsack problem) Pretpostavimo da planinar treba da popuni ranac sa odreenim brojem stvari (na pr. konzervi) od kojih svaka ima odreenu teinu (zapreminu) aj i ima neku vrijednost (kalorijsku) cj. Potrebno je izabrati takav podskup raspoloivih stvari da se one ne prelaze odreenu teinu (zapreminu) koja se moe ponijeti (smjestiti) u ranac, a da vrijednost (kalorijska) izabranog podskupa bude maksimalna. Neka je b ukupna teina ranca i neka 0-1 vrijabla xj = 1 znai da je j-ta stvar izabrana i smjetena u ranac. Tada je matematiki model problema ranca sljedei:

=1

, = 1,2, ,
=1

(0,1),

= 1,2, ,

Iako problem ranca ima jednostavnu strukturu (ima samo jedno ogranienje), moe se pokazati da se postupkom agregacije bilo koji problem cjelobrojnog programiranja moe svesti na problem ranca. Ovako dobijen zadatak ima veoma velike koeficijente i teko se rjeava, pa ova injenica ima malu praktinu vrijednost. Problem moemo postaviti slikovitije. Provalnik ima ruksak veliine S (kubnih jedinica), a nailazi na vei plijen nego sto moe ponijeti. Plijen su odreeni predmeti (N) koji imaju razliite velicine (volumen, izraen u onim istim kubnim jedinicama) i vrijednosti ci. Lopov je u dilemi - kako napuniti ruksak predmetima koji mu donose najveu dobit? Ovaj zadatak se moe rijeiti na vie naina: 1. Prodrljivi algoritam (Greedy algorithm) 2. Dinamiko programiranje (Dynamic programming) 3. Algoritam granica i ograniavanja (Branch and boun) 4. Genetiki algoritam (Genetic algorithm) Osnovna ideja Prodrljivog algoritma (G. Dantzig, 1957) je da se nau specifine vrijednosti predmeta kao odnos cijene i volumena. Izbor tada ide od onih predmeta koji su najskupljih po jednici volumena (najvrijedniji) dok se ruksak ne napuni. Ovaj algoritam je vrlo efikasan ali rjeenje, naeno na ovaj nain, ne mora biti optimalno.

Ovaj zadatak moe biti rijeen i primjenom dinamikog programiranja (Belman) Dinamiko programiranje rjeava sloene probleme tako to ih rastavlja na vie manjih jednostavnijih zadataka ijim rjea-vanjem istovremeno rjeava polazni zadatak. Ovdje emo zadatak rjeavati tako to e se u razmatranje uzimati jedan po jedan predmet dok ne obradimo ukljuivanje svih predmeta. Rekurzivna relacija se moe napisati u obliku: () = [ + 1 ( )]

0
=1

gdje je

S Z(S) ( ) 1 ( )

ukupni raspoloivi resurs optimalna vrijednost funkcije cilja doprinos koji funkcija cilja ima od promjenljive xn doprinos koji funkcija cilja ima od ostalih promjenljivih

Razmatranje se poinje tako to se pretpostavi da je na raspolaganju samo predmet 1 i analiziraju se svi njegovi dopustivi rasporedi.

Problem trgovakog putnika (Traveling Salesman Problem) Trgovaki putnik mora obii n gradova. Poznata je cijena cij puta od grada i do grada j za svako i = 1, 2, ..., n, j = 1, 2, ..., n. Treba nai redosljed obilazaka gradova pa da trokovi puta budu minimalni. Problem je zatvoren ako se putnik mora vratiti u grad iz kojeg je poao. Problem je simetrian ako je cijena puta od grada i u grad j ista u oba smjera. Ako je problem zatvoren i simetrian i ako izmeu svaka dva grada postoji put, tada je 1 ! broj razliitih naina obilazaka tura jednak 2 . Problem trovakog putnika se moe modelirati na vie naina. Naveemo dva modela koja spadaju u klasu problema cjelobrojnog programiranja. Cjelobrojni model M1:

=1 =1

+
< >

= 2 , = 1,2, ,

1,

0,

0,1 , gdje je:

1 <

= (1, 2, . . . , ) a |S| oznaava kardinalnost skupa S. (broj elemenata konanog skupa M se zove Kardinalni broj skupa i oznaava se sa card M ili sa |M|). xij = 1 ako i samo ako odabrani put tura spaja gradove i i j. Prva grupa ogranienja osigurava da tura ulazi i izlazi iz svakog grada, a druga grupa sprjeava da se tura raspadne na vie disjunktnih tura. Poto je broj razliitih podskupova skupa X, 2**n broj ovih ogranienja raste eksponencijalno sa dimenzijama zadatka. esto se koristi neto jednostavniji oblik modela M1. Naime drugi skup ogranienja se moe transformirati u oblik:

1,

, 3

Linearna relaksacija se dobije kada se uslovi: (0, 1) Zamijene uslovima: 0 1 1 Poto je broj ogranienja vrlo velik nije praktino primjeniti neku od metoda za rjeavanje problema LP. Zato se primjenjuje sljedei postupak: Rijei se linearna relaksacija sa ogranie-njima iz prve grupe Ako sve promjenljive u optimalnom rjeenju linearne relaksacije imaju vrijednost 0 ili 1 dobijena je optimalna tura. U suprotnom, prelazi se na korak 3. Primjenjuje se tehnika grananja i ograniavanja sve dok se ne dobije optimalna tura Cjelobrojni model M2: Ako se pretpostavi da je , broj promjenljvih e biti n(n-1). Da se dobije sljedei matematiki model:

=1 =1

= 1 , = 1,2, ,
=1

()

= 2 , = 1,2, ,
=1

()

+ 1, , , = 1,2, , 0,1 , , 0, = 1,2, , , = 1,2, ,

()

Uslovi (a) i (b) osiguravaju da putnik ulazi i izlazi iz svakog grada. Uslovi (c) sprjeavaju podture. Lako je vidjeti da je nemogua i suprotno orijentirana podtura

3.3. PRISTUPI RJEAVANJU PROBLEMA CLP Postoji vie pristupa rjeavanju problema CLP. Ovdje emo navesti tri direktne ideje: Totalno pretraivanje Zaokruivanje rjeenja linearne relaksacije Prevoenje u problem nelinarnog programiranja Totalno pretraivanje Ako je dopustivi prostor problema (3.2) ogranien dopustivi skup problema (3.1) je konan skup. Iz toga slijedi da se do rjeenja moe doi pretraivanjem svih dopustivih taaka. Meutim, lako je pokazati da je ovaj pristup praktino neupotrebljiv kada poraste dimenzionalnost zadatka. Naime, da bi se rijeio zadatak CLP potpunim pretraivanjem potrebno je izraunati vrijednost funkcije cilja u 2**n taaka sa koordinatama 0 ili 1. Jasno je da ve pri n > 50 ni najbri raunari ne mogu, u prihvatljivom vremenu, obaviti potpuno pretraivanje. Zaokruivanje rjeenja linearne relaksacije Ovaj pristup se sastoji u sljedeem: Linearna realaksacija se rijei nekom od metoda za rjeavanje zadatka LP Ako u koordinate rjeenja cjelobrojne to je ujedno i rjeenje zadatka CLP Ako neke koordinate nisu cjelobrojne vri se njihovo zaokruivanje na najblii cio broj Potekoa ovog pristupa je u tom to ovako dobijeno rjeenja ne mora biti dopustivo. Pored toga, ako je rjeenje dobijeno zaokrui-vanjem jest dopustivo, ono ne mora biti optimalno. Prevoenje u problem nelinarnog programiranja Diskretni uslovi , = 1,2, , su jednaki kontinualnim nelinarnim uslovima = 0, = 1, 2, . . . , Takoer, diskretni uslovi 0,1 , = 1,2, , su jednaku kontinualnim nelinarnim uslovima 1 = 0, = 1, 2, . . . , Meutim, u tom sluaju zadatak nije konveksan pa se do globalnog ekstrema ne moe doi egzaktnim metodama. Osnovna potekoa kod cjelobrojnog programiranja je to ne postoje kritriji optimalnosti kao na primjer kod LP. Radi toga nalaenje optimalnog rjeenja se svodi na pretraivanje dopustivog skupa, to u opem sluaju ima eksponencijalnu sloenost.

Vei problemi se, u praksi, rjeavaju heuristikim metodama kod kojih ne postoji garancija da je naeno rjeenje optimalno. Problemi manjih dimenzija se rjeavaju metodama razvijenim na ideji grananja i ograniavanja i srodnoj ideji implicitne enumeracije (implicitnog pebrojavanja) koji skrauju potpuno pretraivanje a ipak garantuju optimalnost. Postoje prisupi zasnovani na odsjecanju dijelova dopustivog protora koji ne sadre cjelobrojna rjeenja. Ovaj pristup je znatno efikasniji od totalnog pretraivanja, meutim, one ipak imaju eksponencijalnu raunsku sloenost. Dakle, za sada, ne postoji algoritam koji za polinominalno vrijeme raunanja rjeava probleme cjelobrojnog programiranja U nekim specijalnim sluajevima, kada su sve koordinate linearne relaksacije problema (3.1) cjelobrojne, rjeenje problema (3.2) je ujedno rjeenje problema (3.1). U ove sluajeve spadaju Transportni problem, Problem Rasporeivanja, Problem maksimalnog protoka, ... 3.4. METOD GRANANJA I OGRANIAVANJA Metoda grananja i ograniavanja je jedna od optih tehnika pretraivanja koja ne pretrauje cijeli dopustivi skup. Pretraivanje je sueno na interesantne dijelove dopustivog skupa i zato je efikasnija od totalnog pretraivanja. Raunarska sloenost ostaje eksponencijalna ali se u nekim sluajevima do rezultata moe doi relativno brzo. Osnovna ideja se moe definirati kao dijeljenje i osvajanje. Poto je problem suvie sloen za direktno rjeavanje, on se dijeli na sve manje i manje podprobleme. Dijeljenje se vri razbijanjem dopustivog skupa na podskupove ime dobija podbroblem. Podproblem je rijeen kada se nae njegovo optimalno cjelobrojno rjeenje i kada se procijeni da njegov dopustii skup ne sadri optimalno rjeenje polaznog problema. Razrjeeni problemi se briu iz skupa podproblema i po njima se ne vri dalje grananje.

Вам также может понравиться