28
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.

49598635-LP-SOLVERI

Embed Size (px)

DESCRIPTION

solveri

Citation preview

Page 1: 49598635-LP-SOLVERI

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. 

Page 2: 49598635-LP-SOLVERI

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 

Page 3: 49598635-LP-SOLVERI

 

   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

Page 4: 49598635-LP-SOLVERI

Standardni problem linearnog pro 

arnog programiranja  

gramiranja 

Matematička formulacija proglem line Maksimizirati  linearnu funkciju cilja 

               Max                                                                                                 (1) ∑  

 

  

z linearna ograničenja 

n

                     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

=                                                     

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  

Page 5: 49598635-LP-SOLVERI

 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

Page 6: 49598635-LP-SOLVERI

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 

Page 7: 49598635-LP-SOLVERI

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 Excel­u 

7

 

Page 8: 49598635-LP-SOLVERI

 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

Page 9: 49598635-LP-SOLVERI

 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

Page 10: 49598635-LP-SOLVERI

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 Solver­a

Pretpostavka  linearnosti  modela(Assuming  a  Linear  Model)  and  Pretpostavka nenegativnih  promenljivih(Assuming  Non­Negative)  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

Page 11: 49598635-LP-SOLVERI

 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), 

Page 12: 49598635-LP-SOLVERI

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

Page 13: 49598635-LP-SOLVERI

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,  

Page 14: 49598635-LP-SOLVERI

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

Page 15: 49598635-LP-SOLVERI

 

  

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 WinQSB­u 

 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

Page 16: 49598635-LP-SOLVERI

 Slika 9. Rešenje problema u WinQSB­u 

 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

 

     

16

Page 17: 49598635-LP-SOLVERI

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

Page 18: 49598635-LP-SOLVERI

• 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

Page 19: 49598635-LP-SOLVERI

 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

Page 20: 49598635-LP-SOLVERI

 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

Page 21: 49598635-LP-SOLVERI

 Slika 13. Rešenje problema u LINDO­u 

 otom, se dobija rešenje i alaliza osetljivosti. P 

21

Page 22: 49598635-LP-SOLVERI

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

Page 23: 49598635-LP-SOLVERI

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  

Page 24: 49598635-LP-SOLVERI

Problem se definiše kao:    min f 

aničenjima  

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'

Page 25: 49598635-LP-SOLVERI

     

 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 

Page 26: 49598635-LP-SOLVERI

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 MATLAB­a  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

Page 27: 49598635-LP-SOLVERI

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

Page 28: 49598635-LP-SOLVERI

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