Upload
elvina-cokovic
View
71
Download
0
Embed Size (px)
DESCRIPTION
solveri
Citation preview
Saobraćajni fakultet
Univerzitet u Beograd
Seminarski rad
Pregled alata za rešavanje problema
linearnog programiranja
Mentor: Student: Prof. dr Jovan Popović Nikola Bešinović M-II-130/09
Beograd, jun 2010.
Sadržaj Uvod........................................................................................................................................3 Standardni problem linearnog programiranja .........................................................................4 Opšti problem linearnog programiranja..................................................................................5 Solveri linearnog programiranja .............................................................................................6
Excel Solver........................................................................................................................6 Primer..............................................................................................................................7 Prednosti i nedostaci Excel Solvera..............................................................................12
WinQSB............................................................................................................................13 Alat LP/ILP...................................................................................................................13 Primer............................................................................................................................15 Prednosti i nedostaci WinQSBa....................................................................................16
LINDO..............................................................................................................................17 Primer............................................................................................................................19 Prednosti i nedostaci LINDO solvera ...........................................................................22
MATLAB..........................................................................................................................22 Ulazni podaci ................................................................................................................24 Izlazni podaci................................................................................................................25 Prmer.............................................................................................................................25 Prednosti i nedostaci MATLAB-a ................................................................................26
Zaključak ..............................................................................................................................27 Literatura...............................................................................................................................28
SpisaSlika 1. u Excel‐u .........................................................................7
k slika a
Slika 2. Solver parameter prozor .........................................................................................9 Forma unetog problem
Slika 3. straint .............................................................................................9 Prozor Add ConSlika 4 ...............10 . Opcije Solver‐a.........................................................................................
Slika 6 14 Slika 5 .............11 . Rešenje problema .......................................................................................
. sa 4 promenljive i 10 ograničenja ..............Slika 7. m sa 4 promenljive i 10 ograničenja .............15
Izgled matrične forme za problemle
Slika 8. u...........................................................................15 Izgled normalne forme za probP inQSB‐
Slika 9. Rešenje problema u WinQSB‐u .............................................................................16 ostavka problema u W
Slika 10. ...........................................................................19 Izgled LINDO solvera ...................
Slika 12 i?...........................................................................20 Slika 11. ...........................................................................20 Poruka solvera........................
vostSlika 13 O‐u..............................................................................21
2
. Da li raditi analizu osetlji
. Rešenje problema u LINDSlika 14. Prikaz Matlab okruženja. .....................................................................................23
Uv d Razvoj linearnog progrmiranja obeležen je kao jedan od najznačajnijih naučnih napredaka sredine dvadesetog veka. Danas predstavlja standardni način za uštedu
o
miliona dolara za većinu kompanija u raznim industrijalizovanim zamljama sveta,uz konstantno širenje i na druge društvene sektore. Postavlja se pitanje kakva je priroda linearnog programiranja i kojim se problemima bavi? Ukratko, najučestaliji tip aplikacije uključuje generalni problem alokacije ograničenih resursa na konkurentske aktivnosti na najbolji tj. optimalan način. Preciznije,ovaj problem uključuje odabir nivoa određenih aktivnosti koje su konkurentne u odnosu na ograničene resurse koji su neophodni za izvođenje tih aktivnosti. Izbor nivoa
n ti i l k it zaktiv os zatim d ktira ko iko će od sva og resursa b i iskorišćeno a svaku aktivnost. Iako je alokacija resursa na aktivnosti najstandarniji tip aplikacije, linearno programiranje ima brojne druge primene. Zapravo,bilo koji problem čiji se
u f rnog matematički model uklapa generalni ormat modela linea programiranja je problem linearnog programiranja. Linearnim programiranjem rešavaju se problemi u kojima se postavljaju zahtevi određivanja maksimalne ili minimalne vriednosti jedne veličine pri unapred datim, odnosno poznatim ograničavajućim uslovima. Pretpostavimo, da raspolažemo ograničenim količinama različitih vrsta sredstava (proizvodni, skladišni, transportni kapaciteti, energija, novčana sredstva, investiciona sredstva, kreditne mogućnosti i tako dalje) koja možemo koristiti na različite načine,
aktivnosto jest za ostvarenje većeg broja mogućih ti, u cilju postizanja određenog ekonomskog efekta. Treba odabrati takvu kombinaciju mogućih aktivnosti koja će u okviru raspoloživih sredstava, a vodeći računa o konkretnim uslovima poslovanja (tehnološki uslovi, tržišni uslovi, ugovorne i druge obaveze, itd.) osigurati maksimalni mogući ekonomski efekt (na primer, maksimalni dohodak). Takvom ćemo kombinacijom aktivnosti raspoloživa ograničena sredstva iskoristiti na optimalan način. U ovom tipu problema radi se, dakle, o tome da raspoloživa sredstva možemo koristiti na različite načine pa tražimo takav način koji će nam omogućiti da postignemo maksimalno mogući ekonomski efekt. Pored ovog tipa problema često postoje različite mogućnosti da se neki određeni ekonomski cilj ostvari. Svaka od tih mogućnosti iziskuje različite roškove, pa treba odabrati takvu mogućnost koja će iziskivati najmanje moguće ttroškove. Naravno, u ovom slučaju se radi o problemu minimuma. radu ukratko je predstavljen problem linearnog programiranja, a glavni deo rada ine opis solvera linearnog programiranja i primeri za date solvere. Uč
3
Standardni problem linearnog pro
arnog programiranja
gramiranja
Matematička formulacija proglem line Maksimizirati linearnu funkciju cilja
Max (1) ∑
z linearna ograničenja
n
u
i = 1, 2, ..., m (2)
xj ≥ 0, j = 1, 2, ..., n ‐ uslov nenegativnosti (3)
atrični zapis proble x
ma: maksimizirati C′ uz ograničenja Ax ≤ B
M C= C′ = C T
⎥⎥⎥⎥⎥⎥⎤
⎢⎢⎢⎢⎢⎢⎡
2
1
.
. CC
=
C
T – transponovana matrica matrice C
[ ]n21 C ..., ,C ,C
Matrica C se mora transponovati zbog matrice x koja ima oblik
⎥⎥⎥⎤
⎢⎢⎢⎡
2
1
. xx
x =
a se ne mogu množiti dve matrice u stupcu.
=
jijij bxa
1
⎣ nC
⎦⎢⎢⎢
⎣ nx.
n
jjjxc
1
∑=
≤
⎦
⎥⎥⎥
4
p
Matrica C je reda nx1, a matrica CT reda 1xn (jedan red, n stupaca). C je vektor koji se astoji od vrednosti Cs 1,...,Cn, koje predstavljaju ekonomske kategorije koje treba aksimizirati (npr. profit).
⎤⎡ a . . . a a 1n1211
m
A= uslov: m < n
⎢⎢⎢⎢⎢⎢
.
. a21
koeficijenti matrice A su konvertirani pokazatelji (iznos resursa za izradu jedinice roizvoda). ‐p
B = matrica ograničenja s realnim komponentama
⎥⎥⎥⎥⎥⎥
⎦⎢⎢⎢⎢⎢⎢
⎣ mb
b
.
.2
Opšti problem linearnog programiranja Neka matrice A, B i C imaju isto značenje kao i kod standardnog problema. Označimo s Ai i‐ti redak‐vektor od A, a sa M i N skupove indeksa od 1 do m i od 1 do n, respektivno, tj. M = {1, 2, …, m} i N = {1, 2, …, n}. Neka je nadalje, S podskup od M, a C(S) njegov komplement, tj. S ⊆ M i C(S) = M \ S. Neka je T podskup od N, a C(T) jegov komplement, tj. T ⊆ N i C(T) = N \ T. Sada se može napisati opšti problem
i način: nlinearnog programiranjana na sledeć
aksim zirati linearn M i u funkciju cilja
Max C′x (10) uz linearna ograničenja
Aix ≤ bi , i ∈ S Aix = bi , i ∈ C(S) xj ≥
⎣ a . . . a a. . . . . .
a . . . a
mnm2m1
2n22
⎡b1
0, j ∈ T ‐ uslov nenegativnosti
⎥⎥⎥⎥⎥⎥
⎦
⎤
5
Iz ograničavajućih uslova se opaža da se ne zahteva nenegativnost svih, već samo gjedno broja promenljivih. Vidi se da neki uslovi imaju oblik nejednačina, a ostali su u
obliku jednačina. Opšti problem linearnog programiranja redukuje se na standardni oblik kao njegov specijalni slučaj, kada je S = M i T = N, a pri tome su C(S) i C(T) prazni skupovi. Opšti problem linearnog programiranja svodi se na kanonski oblik kada je S prazan skup, a time i C(S) = M i T = N.
Solveri linearnog programiranja U primeni postoji veliki broj solvera linearnog programiranja. Većina njih radi na isti ili sličamože s
n način, ali pri tom imaju različite mogućnosti i ograničenja. Grubo(generalno), e izvršiti podela
• e liku jednačina na solvere u kojima se problem d finiše unosom ograničenja u obkao pri ručnom rešavanju
• i na solvere gde je definisanje problema moguće unošenjem ograničenja i neophodnih podataka tabele.
Oba načina imaju svoje prednosti i mane. Prednost tabelarnog unošenja je brzina nosa i preglednost unetih podataka, ali može predstavljati otežavajuću okolnost ko ećih problema LP(veći broj ograničenja i promenljivih). uv
i solvera linearnog programiranja: U ovom radu će biti predstavljeno četirxcel Solver, WinQSB, Lindo i MATLAB. E
Excel Solver Danas, vodeći programi za rad sa tabelama, Lotus, Excel, Quatro, imaju ugrađenje alate a optimizaciju. Oni omogućavaju da se optimizacioni problemi reše uz pomoć tabela. zU Excelu, ovaj alat se nalazi u kartici Data u grupi Analysis, pod nazivom Solver. Slika? Prednost rešavanja optimizacionog problema uz pomoć tabele je taj što mnogi modeli mogu biti predstavljeni na razumljiv i pregledan način. Takođe, dosta ljudi(korisnika) je upoznato već sa radom sa tabelama. Takođe je jednostavno napraviti velike modele sa sličnim ograničenjima i brzo ih rešiti. Rešava rogramiranja korišćenjem Excel Solvera, potrebno je izvr ti
nje problema linearnog p
6
ši 5 koraka: 1. Kreirati problem u tabeli 2. Označiti ćeliju koja sadrži funkciju cilja
3. Označiti ćelije4. značiti ćelije5. ešiti model
koje sadrže promenljive u kojima su definisana ograničenja OR
Primer
g programiranja. Rešiti zadatak linearno
cij Maksimizirati fun21 5+2x+3x = F
Sa oganičenjima
u 3x
2035x-x51643x2x
207xx135x+2x17x22x
321
321
21
32
31
≤+≤++
≤+≤≤+
xx
Slika 1 . Forma unetog problema u Excelu
7
Prvo je napravljena tabela oganičenja za svaku promenljivu. U tabeli (B3:D3, B7:D7)
k onalaze se oeficijenti uz promenljive u ograničenjima. U ćelijama d D12 do D17 se nalaze slobodni članovi ograničenja. Ćelije B8, C8 i D8 predstavljaju promenljive i obojene su žutom bojom. Ćelija koja predstavlja funkciju cilja je ćelija B18.
Sledeće što treba uraditi je kreirati formulu za maksimizaciju funkcije u ćeliji B18. Koeficijenti funkcije cilja su u ćelijama B9, C9 i D9. Formula za maksimizaciju funkcije je:
=SUMPRODUCT(B9:D9,B8:D8)
Funkcija SUMPRODUCT(Block1, Block2) množi matrice Block1 i Block2 i sabira rezultate. Npr. Formula =SUMPRODUCT(B9:D9,B8:D8) je isto što i = B9*D9+B8*D8.
ti broj redova i kolona). Oba bloka moraju biti iste veličine(is
atim, treba definisati ogrZ
aničenja.
=SUMPRODUCT(B3:D3,$B$8:$D$8) =SUMPRODUCT(B4:D4,$B$8:$D$8) =SUMPRODUCT(B5:D5,$B$8:$D$8) =SUMPRODUCT(B6:D6,$B$8:$D$8) =SUMPRODUCT(B7:D7,$B$8:$D$8)
pira. Znak $ se nalazi da u formulama da bi fiksirao obeleženi opseg kada se formula ko
ada su unete sve formule, onda se poziva Solver, iz kartice Data, grupa Analysis. K
8
Slika 2. Solver parameter prozor
Ovim se otvara Solver parameter prozor. Ovde se definiše ćelija funkcije cilja, koja je u xcel‐u nazvana “Set Target Cell”. U ovom primeru, to je ćelija B18. Zatim je dat izbor, Eda li se funkcija minimizira ili maksimizira. Zatim se definišu ćelije u kojima se nalaze promenljive. To se vrši u delu By changing ells, polja B8:D8. Dodatne promenljive koje se nalaze na drugom mestu u tabeli, mogu
i v bno. cse dodat korišćenjem zareza za od ajanje. U ovom slučaju to nije potre Sledeće što je potrebno uraditi je definisati ograničenja u delu Subject to the Constraints. Klikom na dugme Add, otvara se prozor Add Constraint(Slika). Cell Reference označava polje u kojima se menjaju vrednosti. Constraint označava polja u kojem je desna strana ograničenja (slobodni član ograničenja). Excel Solver
sti. U ovom omogućava unos više ograničenja odjednom, ako je znak ograničenja iprimeru definisano je svih 5 ograničenja odjednom.
ičenja bivaju vidljiva u delu Subject to the Klikom na OK, zatvara se ovaj prozor i ogranonstraints.
C
Slika 3. Prozor Add Constraint
9
Pošto je ovo model problema linearnog programiranja, treba do saopštiti Solveru. Izborom opcija u Solver Parameters prozoru otvara se prozor Solver Options.
Slika 4. Opcije Solvera
Pretpostavka linearnosti modela(Assuming a Linear Model) and Pretpostavka nenegativnih promenljivih(Assuming NonNegative) promenljivih su dve osnovne opcije koje treba selektovati. Pretpostavkom linearnosti modela se garantuje da će dobijeno rešenje biti optimalno. Prednosti pretpostavke linearnosti modela postiže se brže vreme rešavanja problema, dobijaju se tačniji i pouzdaniji rezultati i dostupniji su detaljniji izveštaji analize osetl rogamiranja
iti Tolerance 0%.jivosti. Npr. za probleme celobrojnog p
može se postav stimates, Derivatives i Search opcije se koriste za rešavanje problema nelinearnog rogramiranja. Ep Rešavanje modela Klikom na dugme Solve, pokreće se rešavanje problema. Posle par sekundi, pojavljuje se prozor Solver Results.
10
Slika 5. Rešenje problema
Jedan od nedostataka tabela je nedostatak dokumentacije. Brojne vrednosti optimalnog rešenja su jasno prikazane u tabeli. Ali, ni jedna formula korišćena u modelu nije vidljiva. Ni jedno ograničenje se ne može videti u tabeli. Kao pomoć može poslužiti dobro organizovan raspored elemenata u tabeli. Isto tako od pomoći može biti naglašavanje funkcije cilja i promenljivih. Kada su u itanju ograničenja, kao pomoć može se koristiti funkcija IF. U polje C12 može se taviti formula: ps
=IF(B12<=D12,”<=”,”N to <=”) va formula predstavlja indikator ograničenja. Pokazuje da li je ograničenje
st rešenja. Ozadovoljeno ili ne. Time olakšava pregledno Poruke o greškama i potencijalni problemi Ima par zamki koje treba zaobići kada se koristi Excel Solver za rešavanje optimizacionih problema. Moguće greške: „The conditions for Assume Linear Model are not satisfied“ – Označava da model ne uspunjava uslove linearnosti, tj. Da je model zapravo nelinearan. Takođe, ovo e može esiti i kada je model loše formiran.scaled() Kada ima vrednosti veoma različitih
, npr. 0.003 i 4000000. ddimenzija
11
Izveštaji Excel može prikazati detaljnije izveštaje. Odmah po rešavanju modela, pojavljuje se prozor Solver results. Deo Reports se sadrži tri opcije Answer(odgovor),
Sensitivity(osetljivost)zboro
i Limits(granice). Najkorisnije su Anser i Sensitivity. Njihovim m otvaraju se listovi Ansver Report 1 i Sensitivity Report 1. i
Slike. Veličina izveštaja zavisi od broja promenljivih i ograničenja. U prvom izveštaju dobija e informacija koja su ograničenja aktivna(Binding), a koja pasivna(Not binding), kao i išak ili manjak. Drugi izveštaj daje dualne cene i granice desne strane ograničenja. sv Prednosti i nedostaci Excel Solvera Maksimalni broj promenljivih Standardni Excel Solver ima limit od 200 promenljivih. Za probleme linearnog i za probleme nelinearnog programiranja. Jedan od načina smanjenja broja promenljivih je uklanjanje pojedinih iz dela By Changing Cells, i pri tom te promenljive definisati ao konstante. Da bi se ispitale posledice ukidanja pojedinih promenljivih, potrebno je raditi(koristiti) What‐if analizu. ku Maksimalni broj ograničenja Ako se rešava problem linearnog programiranja i ako je obeležena opcija Assume Linear Model u opcijama Solvera, onda nema limita u broju ograničenja. Ako pak, nije obeležena, onda Solver pretpostavlja da je u pitanju problem nelinearnog programiranja i postavlja limit. To je 100 ograničenja. Dodatno, mogu se definisati onstantna gornja i/ili donja granica promenljivih, i mogu se postaviti celobrojna graničenja na promenljive. ko Ako je dostignut maksimum od 100 ograničenja, treba razmotriti sledeše korake:
• Da li je model stvarno nelinearan? Možda se može preformulisati u problem linearnog programiranja. Možda je moguće koristiti linearnu aproksimaciju nelinearne funkcije.
• Da li postoje ćelije ograničenja koje sadrže jednostavne formule kao što je =A1 i gde je A1 promenljiva? I takve ćelije se ubrajaju u jedno od 100 ograničenja, al
ako se postavi to ograničenje direktno promenljivoj, onda se ne ubraja. •
. Da li postoje ograničenja koja uključuju samo recimo dve promenljive? Ako jetako, onda je možda moguće postaviti individualna ograničenja promenljivima
• Da li postoje ograničenja kod kojih je desna strana data kao formula, umesto konstante ili reference ka konstanti? Solver tretira sve formule koje se nalaze na desnoj strani ograničenja kao promenljive.
Jedan od nedostataka tabela je nedostatak dokumentacije. Limit od 200 promenljivih nije dovoljno za bilo koji složeniji zadatak. Npr. pri rešavanju problema izbora najkraćeg puta ili transportnog zadatka. Izvorno – ciljna matrica mreže koja ima 30 čvorova. Excel Solver i za prazna polja koja predstavljaju nepostojanje grane, definiše promenjivu koja ima vrednost 0. Stoga matrica 30x30 ima 30x30=900 promenljivih. Što predstavlja
12
znašajno ograničenje solvera. Na osnovu ovoga se može zaključiti da Solver može da nađe rešenje za matricu oganičenja koja je dimenzija 14x14. Za razliku od standardnog Excel Solvera, Premium Solver je značajno moćniji i po maksimalnom broju promenljivih i ograničenja i po brzini rešavanja problema. Premium Solver ima limit od 8192 ograničenja za probleme linearnog programiranja, 250 za probleme nelinearnog programiranja. Pri tom, promleme rešava za znatno anje vremena.
im
WinQSB Win softverski paket koji sadrži više odvojenih alata za rešavanje različitih opti ih problema.
QSb je
• mizacion
LP, • P,
LP/I
• IP/MI
• DP,
• NLP,
• QP/IQP,
• upravljanje zalihama,
• e, job shedulling,
• CPM i PERT metod
• Markovi procesi,
• naliza Decision Analysis Analiza , Bajesova a
• Alat Din problema: odluke – matrične igre, drvo odlučivanja
a tri tipična
amičko programiranje rešav
Problem kineskog poštara – stagecoach Problem ranca – knapsack
Problem rasporeda proizvodnje i zaliha ‐ production and inventory scheduling problems.
gnoziranja na osnovu istorijskih podataka Model prognoza rešava prbleme prokoristeći regresionu analizu. naliza sistema masovnog opsluživanja imulacija sistema masovnog opsluživanja AS Alat LP/ILP
rojnog i binarnog programiranja. Ovaj alat služi za rešavanje problema linearnog, celob Poret ra se prozo u kome se definišu:
13
anjem alata otva• naziv problema,
broj promenljivih broj ograničenja
ja (maksimum ili minimum)
• • • kriterijum cil
Tip promenljivih vne
• brojene • Nenegati
• Nenegativne celoBinarne
ičenja • Bez ogran
Format unosa • Matrična forma
U polja se upisuju samo koeficijenti koji idu uz promenljive. U prvom redu se efiniše funkcija cilja. A u ostalima ograničenja(constraints, C1‐C10). I moguće j romenizi znak ograničenja. dp
Slika 6. Izgled matrične forme za problem sa 4 promenljive i 10 ograničenja
• Normalan unos podataka
Pri normalnom unosu, ispisuju se ograničenja ka što bismo ih pisali i na papiru.
14
Slika 7. Izgled normalne forme za problem sa 4 promenljive i 10 ograničenja
Primer ešiti zadatak linearnog programiranja. orišćen je isti zadatak kao i kod Exel Solver‐a.
RK
Slika 8. Postavka problema u WinQSBu
Po unosu problema, izborom opcije Solve the problem u meniju Solve and Analyze, ili likom na dugme Solve startuje se rešavanje problema. Solver zatim prikazuje poruku
da li je postignuto optimalno rešenje. kda li je problem rešen i Zatim se dobija slika 9.
15
Slika 9. Rešenje problema u WinQSBu
U gornjoj polovini tabele prikazane su, po kolonama, vrednosti promenljivih, njihovi koeficijenti(profit ili trošak), ukupan udeo u funkciji cilja, marginalne cene, tip
ljena minimalna i dozvoljena maksimalna promenljive(bazisna ili nebazisna), dozvovrednost koeficijenata. Ispod ovog dela je vrednost funkcije cilja. U donjem delu tabele je prikazana analiza oganičenja. Po kolonama su vrednosti dobijene za levu stranu ograničenja(nejednačine), smer nejednakosti, desna stana graničenja (RHS), višak ili manjak(slack or surplus), dualne cene, dozvoljena inimalna i dozvoljena maksimalna vrednost desnae stane ograničenja (RHS).
om Prednosti i nedostaci WinQSBa
e Nepraktičan je za rad sa velikim brojem promenljivih i ograničenja, jer j otežana preglednost unetih podataka. Sa druge strane, winqsb ima veli broj pomoćnih alata specijalizovanih za određene probleme(NET, CPM&PERT...) koje rešava uspešno heurističkim metodama, koristeći azličit algoritme. r
e
16
LINDO
LINDO(Linear Interactive and Discrete Optimizer) je interaktivni kompjuterski softverski paket ya rešavanje prloblema linearnog, celobrojnog i kvadratnog programiranja. Može se koristiti u različitim oblastima – proizvodnja, pravljenju rasporeda, raspoređivanju budžeta, i u drugim indrustrijskim granama, gde se javljaju
blemi. LINDO je nastao 1980‐ih godina. Prvobitno napravljen za rad ođen za rad u Windows okruženju.
optimizacioni prou DOS okruženju. Ali, vremenom LINDO je prilagOsn eLIN
ov LINDO‐a
DOmože biti korišćen na 3 osnovna načina:
ivno pr
1) Rešavanje problema interkt eko tastature; 2) Rešavanje problema korišćenjem fajlova kreiranih u drugom okruženju 3) Tako da obuhvata delove integrisanog programa koji sadrži custom kod i
LINDO optimizacione biblioteke.
Definisanje modela u Windows verziji LINDO‐a je slično unošenju teksta u bilo kom tekst procesoru(MS Word, Notepad). Jednostavno ukucavanjem podataka modela. Sastoji se iz osnovnog prozora u kome se nalaze meniji i prečice. Unutar njega, otvara se . LINDO takođe poseduje osnovne komande za edit
prozor za definisanje problemaa y, paste).
i: ov nje teksta(cut, cop
LINDO model zahteva tri stvar
1) Cilj(funkciju cilja) 2) Jednu ili više promenljivih3) Jedno ili više ograničenja.
reči MAX ili MIN. Funkcija cilja j
e uvek prvi red u LINDO modelu, korišćcenjem LINDO‐u se naznačuju nekom od sledećih reči: Ograničenja u
CT TO; THAT;
SUBJEH . ;
SUC.TSST
ophodno. Na krajSintaks
u pisanja ograničenja stavlja se reč END, mada nije ne
• na pravila u LINDO‐u:
• Naziv promenljivih ne može biti duži od 8 karaktera. Koristi se samo 5 operatora: +, ‐, >, < i =.
• edom, s Lindo ne razlikuje prioritet operatora, tako da će se operacije izvoditi rleva na desno.
• Komentari se mogu umetnuti bilo gde u modelu. Potrebno je samo pte komentara postaviti znak uzvika.
• Ograničenja i funkcija cilja mogu biti podeljeni u više redova. Može se podeliti bilo gde, izuzev usred naziva promenljive.
17
• LINDO ne razlikuje velika i mala slova, već sve napisano konvertuje u velika slova.
• Pri pisanju ograničenja, samo promenljive mogu biti sa leve strane. A konstante se mogu naći samo sa desne strane jednakosti(nejednakosti).
Pravi lan zapis X – Y < 0 2X + Y = 10 2X + Y – 10 = 0
• Ako problem ima binarne promenljive, onda se one prve navode u funkciji cilja.
Nepravilan zapis X < Y
Opcione mogućnosti / ograničenja INDO ima više opcionih načina definisanja modela koje se mogu pojaviti posle
ća ograničenja: Lrezervisane reči END. Mogu se koristiti slede
st FREE – Uklanja sva ograničenja promenljive
vrednodnost
GIN – definiše promenljivu kao celobrojnuINT ‐ definiše promenljivu kao binarnu vre
omenljive romenljive
SLB – definiše donju granicu prUB – definiše gornju granicu pSTITLE – definiše naziv modela
as a number of other optional modeling statements that may appear after the tement in a
LINDO hND staodel.
Em Ograničenja LINDO solvera aksimalan broj ograničenja 100 aksimalni broj promenljivih 200
MM
18
Primer orišćen je isti primer kao za Excel Solver i WinQSB. odel se opsuje kao u bilo kom tekst editoru, pridržavajući se već pomenutih pravila.
KM
Slika 10. Izgled LINDO solvera
zborom opcije Solve, u meniju Solve ili pritiskom na dugme, pokreće se rešavanje roblema linearnog programiranja. Ip
19
Slika 11. Poruka solvera
Pokretanjem solvera‐Klikom na dugme Solve, ili izborom opcije Solve u meniju Solve, otvara se prozor LINDO Solver Status u kome se nalaze osnovne informacije o dobijenom rešenju. Vidi se da je dobijeno rešenje otimalno, da je dobijeno iz 2 koraka i a je rešenje 21,0103. Takođe može se videti i da je rešavanje problema trajalo manje d jedne sekunde. do
Slika 12. Da li raditi analizu osetljivosti?
Takodje, solver postavlja pitanje, da li da uradi i analizu osetlivosti.
20
Slika 13. Rešenje problema u LINDOu
otom, se dobija rešenje i alaliza osetljivosti. P
21
Prednosti i nedostaci LINDO solvera LINDO je za male bebe.LINDO služi za rešavanje zadataka linearnog i celobrojnog
S učajeva programiranja. amim tim i svih specijalnih sl LP i CP. Kao što su: transportni zadatak, zadaak raspodele, zadaak raspoređivanja i dr. Limit LINDO‐a su 200 promenljivih i 100 ograničenja. Što predstavlja značajno ograničenje. Pored toga, značajan nedostatak predstavlja i nemogućnost pisanja ograničenja u opštem obliku, tj. sva ograničenja treba pisati pojedinačno, jedno po jedno. Na osnovu ovoga se može zaključiti da se LINDO solver može koristiti za manje ložene i prvenstveno školske zadatke, dok je za složenije probleme potrebno otražiti neki drugi solver. sp
MATLAB Matlab je okruženje za numeričke proračune i programski jezik koji proizvodi firma MathWorks. Matlab omogućava lako manipulisanje matricama, prikazivanje funkcija i fitovanje, implementaciju algoritama, stvaranje grafičkog korisničkog interfejsa kao i povezivanje sa programima pisanim u drugim jezicima. Matlab je nastao kao skraćenica za „MATrix LABoratory“ („laboratorija za matrice“).
katedre za informatiku na Izumeo ga je kasnih 1970‐ih Kliv Moler, šef „Novi MDodaci gorijama:
Univerzitetu eksiko“.
• su svrstani po sledećim kate
• Matematika i optimizacija
• Statistika i analiza podataka
liza sistema • nala i komunikacija
Kontrola i ana
• Procesiranje sig
• Obrada slike
• Test i merenja
• Finansijsko modelovanje i analiza
likacijama • ka i izveštavanje
Povezivanje sa drugim apPovezivanje baza podata
• Distribuirano računanje
22
Slika 14. Prikaz Matlab okruženja.
Matlab okruženje čini nekoliko celina. Editor služi za kreiranje i debagovanje(otklanjanje grešaka) M‐fajlova, koji redstavljajuprograme koji se pokreću u MATLAB‐u. Editor obezbeđuje grafički pinterfejs za unos texta. Workspace se sastoji od niza prmenljivih koje su napravljene ili pozvane u toku sesije korišćenja MATLAB‐a i koje su skladištene u memoriji. Promenljive se upisuju u orkspace korišćenjem funkcija, poketanjem M‐fajlova i učitavanjem sačuvanih W
Workspace podataka. ommand window je jedan od glavnih delova koji se koriste za unos podataka,
rezultata. Cpokretanja MATLAB funkcija i drugih M‐fajlova, kao i za prikaz
ommand History prikazuje najskorije upotrebljene komande C U Matlab‐u, pisanje problema linearnog programiranja vrlo je jednostavno. Matlab sve definiše kao matrice, bilo to 1x1 matrica od samo jednog člana, ili niz od n članova, ili x n matrica. Stoga, može se pretpostaviti da Matlab rešava problem nad matrični apisom prolema LP. m
23
z
Problem se definiše kao: min f
aničenjima
r
pod ogx<=bA
Ax=b unkcija linprog služi za minimiziranje funkcije f.
što se minimizira funkcija –f. FMaksimum funkcije se lako definiše, tako A – matrica koeficijenata uz ograničenja – matrica ograničenja (rhs) bf – niz koeficijenata uz promenljive u funkciji cilja
rogramiranja je linprog. unkcija koja se koristi za rešavanje problema linearnog p
zivanja sovera linearnog proramiranja: FRazličite forme po x = linprog(f,A,b) x = linprog(f,A,b,Aeq,beq) x = linprog(f,A,b,Aeq,beq,lb,ub) x = linprog(f,A,b,Aeq,beq,lb,ub,x0) x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) [x,fval] = linprog(...) [x,fval,exitflag] = linprog(...) x,fval,exitflag,output] = linprog(...)[ x,fval,exitflag,output,lambda] = linprog(...) [ Ulazni podaci
e liko a guće definisati u okviru funkcije linprog.
24
Postoji n ko rgumenata koja je mo
f Vektor funkcije cilja fAineq bineq
matrica koeficijenata ograničenja koja imaju znak =. Vektor desne strane(slobodnih koeficijenata) ograničenja koja imaju znak <= matrica koeficijenata ograničenja koja imaju znak <=Matrica Aeq koeficijenata u linearnim jednačinama
beq Vektor slobodnih koeficijenata ograničenja koja imaju znak =.lb Vektor donjih(levih) ograničenja promenljivih
ornjih(desnih) ograničenja promenljivih ub Vektor g
problem
solver 'linprog'
Izlazni podaci
t Postoje exitflag
ri grupe izlaznih podataka. To su: exitflag, lamda i output.
Brojna vrednost koja pokazuje razlog zašto je prekinuto izvršenje algoritma. nastavku je data i njihova značenja. U lista vrednosti exitflag
1 Nadjeno je rešenje za x. o je definisano. 0 Izvršeno je više iteracija nego št
šenje. ‐2 Nije nađeno dopustivo re ‐3 Problem nije ograničen.
vanja algoritma.
‐4 NaN vrednost se pojavila prilikom izvršaešenja primara i duala nisu dopustiva. ‐5 R
Srtukturni podatak koji sadrži Lagranževe množioce za rešenje x. Polja koja sadrži su: Structure containing the Lagrange multipliers at the solution
lambdax
ated by con e fields of the structure are: (separ straint type). Th lower Donje granice lb upper Gornje granice ub
ti
ineqleqlin
in Linearne nejednakosinearne jednakosti L
i podata odatke o optimizaciji. Polja koja sadrži su: output Srtukturn k koji sadrži p
iterations Broj iteracija orišćeni algoritam algorithm K
Izlazna poruka
message
Prmer orišćen je isti primer kao i za WinQSB i LINDO. ošto se ispituje maksimizacija funkcije onda tražimo minimum od inverzne funkcije.
25
KP
f = [‐3; ‐2; ‐5]; ; 1 7 0A = [2 0 2; 0 2 5 ; 2 3 4; 5 ‐5 3];
b = [17 13 20 16 20]; b = zeros(3,1); x, fval, exitflag, output, lambda] = linprog(f, A, b, [], [], lb) l[
x – rešenje funkcije – dobijena vrednost funkcije fval
x = 2.6701 0.1856
58 2.52 fval =
‐21.0103
lag = exitf 1 output =
' iterations: 8 lgorithm: 'large‐scale: interior point
Optimization terminated.' amessage: ' lambda =
ineqlin: [5x1 double]eqlin: [0x1 double] pper: [3x1 double] ower: [3x1 double] ul
Prednosti i nedostaci MATLABa Matlab je veoma pogodan za rešavanje problema linearnog programiranja i od pomenutih alata poseduje najjače (najrobusnije) algoritme za rešavanje lp. Zapis je vrlo pregledan i jednostavne su sve vrste manipulacija sa matricama.
26
Zaključak Optimizacija je uvek privlačila pažnju trgovaca, bankara, prevoznika i ustalom svih kojima je cilj bio sticlanje materijalnih dobara. Odavno postoji potreba za nalaženjem optimalnih rešenja(proizvodnje, prodaje, prevoza). Matematičko programiranje dalo je odličan odgovor na ovo pitanje. Stim što, veće probleme često nije bilo moguće rešiti ručnim putem. Zato, u savremenom svetu globalne primene računara, optimizacija i tehnike njene primere dobijaju mogućnost da dokažu značaj svog postojanja. Za rešavanje problema linearnog programiranja postoji veliki broj različitih alata, i isto tako različitih mogućnosti. U ovom radu je prikazano četiri različita solvera. Kao i njhove prednosti i mane. Generalan zaključak koji se može izvesti je da solveri koji koriste tabele za oranizovanje i rešavanje problema su pogodni za manje probleme. I srednje probleme. Jer su između ostalog limitirani i maksimalnim brojem promenljivih i ograničenja. A pored toga i postaju nepregledne postavke većih problema.
27
Litera
•
tura
Operaciona istraživanja, Jovan Petrić
•
LINDO tutorial, Kris Thornburg, Anne Hummel
• l Solver to Solve Mathematical Programs, Seref, Ahuja, Winston Using the Exce
• WinQSB Help
• MATLAB Help
• s.com www.mathwork
www.lindo.com •
28