32
1. OPŠTA UPUTSTVA ZA LINDO LINDO (Linear Interactive and Discrete Optimizer) je korisnički orijentisan programski paket * , namenjen rešavanju problema linearnog, celobrojnog i kvadratnog programiranja. U ovom dodatku se nalazi uputstvo za korišćenje LINDO programskog paketa u rešavanju napred navedenih problema, kao i objašnjenje kako se može povezati izlaz (rezultat) programskog paketa sa simpleks algoritmom. Pokretanjem LINDO programskog paketa pojaviće se početni ekran (sl. 1) Početni ekran sadrži šemu koja ukazuje na parametre LINDO programa: maksimalan broj ograničenja (100), promenljivih (200) i koeficijenata (16000). Ili se radi klik na oznaku OK ili se sačeka nekoliko trenutaka pa natpis sam nestaje. Tada je sve spremno za korišćenje LINDO programskog paketa. * Linus Schrage, 1986.

1. OPŠTA UPUTSTVA ZA LINDOmnoženja, znak / deljenje, a ^ sa brojem iza znak je stepenovanja) ... njoj u koloni ** odgovara vrednost nula i obratno. izuzetno, kod ... funkcije kriterijuma,

  • Upload
    others

  • View
    11

  • Download
    1

Embed Size (px)

Citation preview

1. OPŠTA UPUTSTVA ZA LINDO LINDO (Linear Interactive and Discrete Optimizer) je korisnički orijentisan programski paket∗, namenjen rešavanju problema linearnog, celobrojnog i kvadratnog programiranja. U ovom dodatku se nalazi uputstvo za korišćenje LINDO programskog paketa u rešavanju napred navedenih problema, kao i objašnjenje kako se može povezati izlaz (rezultat) programskog paketa sa simpleks algoritmom. Pokretanjem LINDO programskog paketa pojaviće se početni ekran (sl. 1) Početni ekran sadrži šemu koja ukazuje na parametre LINDO programa: maksimalan broj ograničenja (100), promenljivih (200) i koeficijenata (16000). Ili se radi klik na oznaku OK ili se sačeka nekoliko trenutaka pa natpis sam nestaje. Tada je sve spremno za korišćenje LINDO programskog paketa.

∗ Linus Schrage, 1986.

674

Slika 1. Početni ekran LINDO

LINDO komandeLINDO komandeLINDO komandeLINDO komande LINDO se veoma lako koristi, za najveći broj problema je dovoljno poznavati sledeće komande:

MAX početak unosa problema maksimuma

MIN početak unosa problema minimuma

END završetak unosa problema, znak da se LINDO pripremi za prihvatanje drugih komandi

GO komanda za rešavanje aktuelnog problema i ispisivanje rešenja

LOOK prikazati izabrani deo aktuelne formulacije

ALTER promena jednog elementa aktuelne formulacije

EXT dodati jedno ili više ograničenja aktuelnoj formulaciji

DEL brisati jedno ili više ograničenja aktuelne formulacije

675

DIVERT promeniti izlaz u datoteku iz koje se može štampati

RVRT izvršiti DIVERT komandu

SAVE memorisanje aktuelne formulacije problema radi kasnije upotrebe

RETRIEVE učitavanje ranije memorisanog problema radi ponovnog rešavanja ili izmene

EDIT aktiviranje editora na celom ekranu

SOLU prikaz rešenja LP (ako je ranije već primenjena komanda GO)

TABLEAU prikazati aktuelnu simpleks tabelu

TAKE aktiviranje modela u LINDO iz tekst procesora

LINDO model sadrži sledeće elemente:

1) funkciju kriterijuma 2) jednu ili više promenljivih 3) jedno ili više ograničenja

Funkcija kriterijuma se nalazi u prvom redu Lindo modela, korišćenjem MIN ili MAX izraza. Ograničenja koja predstavljaju drugi deo modela se u model uvode jednom od sledećih izraza:

SUBJECT TO SUCH THAT S.T. ST

Nakon ograničenja upiše se izraz END, ali to nije neophodno. Osnovna pravila pri korišćenju LINDO programskog paketa su sledeća:

1) Nazivi promenljivih mogu se sastojati od najviše 8 karaktera.

2) Računske operacije koje se mogu koristiti u LINDO programu su:

+ sabiranje, koristi se operator "plus" (+)

− oduzimanje, koristi se operator "minus" (−)

≥ veće ili jednako, za njegov prikaz se koristi bilo niz dva simbola > = ili samo operator >

≤ manje ili jednako, koristi se ili niz < = ili samo <.

3) Korišćenje zagrada nije dozvoljeno, računske operacije se uvode s leva na desno.

4) Komentari se mogu upisati bilo gde u modelu a počinju sa simbolom !

5) Pojedina ograničenja i funkcija kriterijuma se mogu upisati u jednom ili više redova.

676

6) Naredbe i nazivi promenljivih se mogu upisivati bilo malim bilo velikim slovima, LINDO ih pretvara u velika slova.

7) Sa desne strane jednakosti ili nejednakosti mogu se upisivati samo konstante.

8) Sa leve strane jednakosti ili nejednakosti mogu se upisivati samo promenljive i njihovi koeficijenti.

9) LINDO podrazumeva da su sve promenljive nenegativne, prema tome, pri korišćenju LINDO programskog paketa nije neophodno ukucati uslov o nenegativnosti. Pored osnovnih elemenata modela, LINDO prepoznaje i nekoliko izbornih iskaza koji se mogu upisati nakon END komande. Ovi iskazi omogućuju naknadno proširenje kapaciteta, kao i određenog opisa promenljivih.

FREE <Promenljiva > Omogućuje da promenljive mogu uzeti kako pozitivne tako i nepozitivne vrednosti

GIN < Promenljiva > Ograničava vrednost promenljive na nenegativan ceo broj (general integer)

INT < Promenljiva > Ograničava vrednost promenljive na binarni broj (0 ili 1) (binary integer)

SLB <Promenljiva ><Vrednost> Određuje donju granicu vrednosti

promenljive (simple lower bound) SUB <Promenljiva><Vrednost> Određuje gornju granicu vrednosti

promenljive (simple upper bound) QCP <Ograničenje> Ukazuje na prva realna ograničenja u

modelu kvadratnog programiranja TITLE <Naslov> Omogućuje da se dodeli naziv modelu

ili da se prikaže ranije dodeljen naziv

2. LINGO – DODATNA UPUTSTVA LINGO je korisnički orijentisan programski paket, namenjen rešavanju problema linearnog, celobrojnog i nelinearnog programiranja. Pokretanjem LINGO programskog paketa pojaviće se ekran sa sadržajem Kako je prikazano na sl. 2. Elementi koji se zahtevaju radi pokretanja LINGO programskog paketa su veoma slični onima, koji su prisutni kod LINDO: LINGO takođe zahteva funkciju kriterijuma, jednu ili više

677

promenljivih, jedno ili više ograničenja. Za razliku od LINDO, LINGO ograničenja ne mora prethoditi izraz SUBJECT TO ili SUCH THAT ali iza MIN ili MAX izraza sledi znak =. LINGO ima slične sintakse kao LINDO, slede razlike:

• LINGO iskazi se završavaju tačka zarezom (;)

• LINGO podrazumeva nove matematičke operatore: zvezdica, tj. * označava operaciju množenja, znak / deljenje, a ^ sa brojem iza znak je stepenovanja)

• Zagrada omogućuje da se odredi redosled matematičkih operacija

• Imena promenljivih mogu biti dužine najviše 32 karaktera.

• Ekstenzija je LNG će biti oznaka tipa fajla kod sačuvanja podataka.

Lingo je takođe u mogućnosti da reši problem celobrojnog, pa i binarnog programiranja. Ograničenje koje se odnosi na to da promenljiva može da poprima samo celobrojne vrednosti koristi se @GIN operator. Da bi promenljiva mogla poprimiti samo vrednosti 0 ili 1 koristi se @BIN operator.

Slika 2. Početni ekran LINGO

678

3. PRIMERI ZA REŠAVANJE LINEARNIH MODELA

Primer 1. Promenljive: x1 – broj komada proizvoda tipa A x2 – broj komada proizvoda tipa B x3 – broj komada proizvoda tipa C x4 – broj komada proizvoda tipa D Model: 1 2 3 4, , , 0≥x x x x

1 2 3 4 2 5 80+ + + ≤x x x x (ograničenje koje se odnosi na kapacitet mašine M1)

1 2 42 2 2 80+ + ≤x x x (ograničenje koje se odnosi na kapacitet mašine M2)

1 2 3 42 2 4 120+ + + ≤x x x x (ograničenje koje se odnosi na sirovine S)

2 3 0− + ≤x x (odnos prodaje proizvoda B i C)

1 2 3 4 150 120 140 40 max+ + + = →x x x x z Da bismo uneli ovaj problem u LINDO, prvo treba proveriti da li ekran sadrži prazan prozor ili prostor za rad sa naznakom «untitled» u gornjem levom uglu. Ako je neophodno, novi prozor je moguće otvoriti izborom New iz File menija ili jednim klikom na ikonu New file����. Prvi upis LINDO modela odnosi se na funkciju kriterijuma, a upisuje se kao:

MAX 150 X1 + 120 X2 + 140 X3 + 40 X4

Ovo govori LINDO da je reč o problemu maksimuma nastavljajući unos, slede ograničenja:

SUBJECT TO

X1 + 2 X2 + X3 + 5 X4 < 80

2 X1 + 2 X2 + 2 X4 < 80

X1 + 2 X2 + 2 X3 + 4 X4 < 120

– X2 + X3 < 0

END

Posle ovoga naš zadatak je da sačuvamo te podatke radi kasnije upotrebe. Treba uraditi sledeće:

1. Iz File menija treba izabrati komandu Save. 2. Kada se postavi pitanje naziva datoteke treba zameniti ponuđeni simbol * nazivom po

sopstvenom izboru (npr. zad001). Ekstenzija je LTX, kao oznaka tipa fajla ostaje iza naziva, dakle: zad001.LTX Pod ovim nazivom od sada pa nadalje bićemo u mogućnosti pozvati ove podatke.

Radi rešavanja problema treba uraditi sledeće: 1. Iz menija Solve bira se komanda Solve.

679

2. Kada program ponudi ispitivanje nakon optimiranja (analizu osetljivosti) celishodno je izabrati NO (Slika 3.).

Slika 3. Program nudi mogućnost vršenja analize osetljivosti

3. Kada je rešenje kompletno, na ekranu će se pojaviti status nakon izvršene Solve komande (Slika 4.).

680

Slika 4. Stanje optimiziranja

Nakon pregleda ispisanih informacija, treba izabrati Close.

4. Ispod upisanih podataka nalazi se "Reports window". Zatvaranjem aktuelnog prozora pojaviće se ekran, kao što prikazuje slika 5. koja se čita kao što je to opisano u Tabeli 1.

681

Slika 5. Prikaz rešenja

Kratak pregled u "Reports window" pokazuje da je postignuta optimalna proizvodnja, ako se od proizvoda A proizvede 20 komada, od B 20 komada, od C 20 komada, dok od D ne treba ništa proizvesti. To se čita iz kolone Value pored naziva promenljivih. Vrednost maksimalnog prihoda iznosi 8200 novčanih jedinica. Kapacitet po mašinama iskorišćen je u potpunosti dok od sirovine S ostalo je neprerađeno 20 kilograma, pročitano iz kolone Slack or surplus. Ako bi se kapacitet M1 povećao za 1 čas ukupan prihod bi se povećao za 55 novčanih jedinica. Ako bi se kapacitet M2 povećao za 1 čas ukupan prihod bi se povećao za 47,5 novčanih jedinica. Vrednost dualnih promenljivih čita se iz kolone Dual prices.

682

Tabela 1. ČITANJE REŠENJA

OBJECTIVE

FUNCTION

FUNKCIJA KRITERIJUMA

VALUE

VREDNOST

PROMENLJIVE U

BAZI *

PROMENLJIVE VAN

BAZE **

VARIABLE OZNAKE PRIMARNIH PROMENLJIVIH

VALUE

VREDNOST PRIMARNE PROMENLJIVE

REDUCED COST VREDNOST DOPUNSKE PROMENLJIVE ZA ODGOVARAJUĆI DUALNI USLOV

ROW

REDNI BROJ OGRANIČENJA

SLACK OR SURPLUS VREDNOST DOPUNSKE PROMENLJIVE ZA PRIMARNE USLOVE

DUAL PRICES

VREDNOST DUALNE PROMENLJIVE – DUALNE CENE

ZADNJA KOLONA

SIMPLEKS TABELE

ZADNJI RED

SIMPLEKS TABELE

Napomena: u simpleks tabeli svaka promenljiva ima dvostruku ulogu; ako je dobijena vrednost u koloni * različita od nule, njoj u koloni ** odgovara vrednost nula i obratno. izuzetno, kod slučaja degeneracije i alternativnog rešenja obe vrednosti mogu biti jednake nuli.

4. ANALIZA OSETLJIVOSTI

Da bismo uradili analizu osetljivosti treba minimizirati ekran Reports i izabrati Range komandu u Reports meniju. Tada će se ponovo pojaviti ekran "Reports window" ali sada u proširenom obliku sa analizom osetljivosti, odnosno intervalima u kojima se koeficijenti funkcije kriterijuma, odnosno elementi desne strane mogu kretati (slika 6.). Koeficijenti u funkciji kriterijuma mogu da se povećavaju ili smanjuju. Tabela pokazuje koliko se oni pojedinačno mogu povećati ili smanjiti pri čemu su ostali koeficijenti funkcije kriterijuma

683

konstantni, a da se pri tome ne menja optimalna baza kao ni vrednosna struktura optimalnog primarnog rešenja. Tabela ukazuje i na moguće promene desne strane nejednakosti (kapaciteta), povećanje ili smanjenje kapaciteta pojedinačno, a da pri tome ne menja optimalna baza kao ni vrednosna struktura optimalnog dualnog rešenja.

Slika 6. Analiza osetljivosti

Rešavanje problema minimuma se vrši na isti način kao i kod problema maksimuma. Jedina razlika je kod upisa funkcije kriterijuma koja umesto max počinje sa min naredbom.

Primer 2. Promenljive: x1 – količina S1 u kg x2 – količina S2 u kg x3 – količina S3 u kg

684

Model: 1 2 3, , 0≥x x x

1 32 + 120≥x x (ograničenje koje se odnosi na potrebnu najmanju količinu B1 u hrani) 1 2 3 600+ ≥x x (ograničenje koje se odnosi na potrebnu najmanju količinu B2 u hrani) 1 2 3 200+ + ≥x x x (ograničenje koje se odnosi na potrebnu najmanju količinu B3 u hrani)

1 2 3300 360 100 min+ + = →x x x v Model problema, koji je postavljen unosi se u LINDO na sledeći način, a nakon komande Solve dobija se rešenje prikazano na slici 7.

Slika 7. Problem i rešenje

Treba sačuvati te podatke radi kasnije upotrebe i to pod imenom zad002. Nakon rešavanja zadatka možemo doći i do analize osetljivosti.

685

Primer 3.

Model:

1 2

1 2

1 2

1

1 2

, 0

8 4 60

4 4 64

2

max

+ ≥

+ ≥

+ = →

x x

x x

x x

x

x x z

Unos problema u LINDO: MAX X1+X2

ST

8X1+4X2>60

4X1+4X2>64

X1<2

END

Nakon aktiviranja Solve komande, dobija se rešenje prikazano na slici 8 odnosno nakon izbora OK na slici 9., što ukazuje na nemogućnost određivanja optimalnog rešenja. Poruka na ekranu UNBOUNDED, znači da je skup mogućih rešenja neograničen, tj. da funkcija kriterijuma nema gornju među.

686

Slika 8. Problem bez gornje međe

Slika 9. Problem bez gornje međe

Primer 4.

1 2

1 2

1 2

1

1 2

, 0

8

2 4

3 6

max

+ ≥

+ ≤

+ = →

x x

x x

x x

x

x x z

Oblik na koji se problem unosi u LINDO: MAX X1+X2

ST

X1+X2>8

2X1+X2<4

3X1<6

END

687

Ovaj problem nema moguće rešenje, a to se pokazuje odmah nakon pokretanja Solve komande, kao komentar pojavljuje se INFEASIBLE, skup mogućih rešenja je prazan (slike 10. i 11.)

Slika 10. Problem bez mogućeg rešenja

688

Slika 11. Problem bez mogućeg rešenja

5. CELOBROJNO PROGRAMIRANJE I LINDO

Primer 5. Promenljive: x1 – broj proizvedenih komada džempera A x2 – broj proizvedenih komada džempera B x3 – broj proizvedenih komada džempera C Model: 1 2 3, , 0≥x x x

1 2 34 8 5 1800+ + ≤x x x (ograničenje koje se odnosi na raspoloživu količinu prediva)

1 2 34 12 2 1240+ + ≤x x x (ograničenje koje se odnosi na kapacitet pogona P1)

1 2 32 12 6 1800+ + ≤x x x (ograničenje koje se odnosi na kapacitet pogona P2)

1 2 3 800+ + ≤x x x (ograničenje koje se odnosi na mogućnost realizacije)

1 2 37 5 9 max+ + = →x x x z LINDO oblik problema:

689

MAX 7X1+5X29X3

ST

4X1+ 8X2+5X3<1800

4X1+12X2+2X3<1240

2X1+12X2+6X3<1800

X1+ X2+ X3< 800

END

Nakon upisa osnovnih elemenata modela moramo uneti i dodatni iskaz koji će obezbediti da dobijemo celobrojno rešenje za sve promenljive: GIN X1

GIN X2

GIN X3

Ekran podeljen na dva dela sa upisanim modelom i rešenjima je na slici 12.

Slika 12. Unos modela i rešenje

690

Nakon rešavanja zadatka možemo izvršiti i analizu osetljivosti. Isti model u LINGO formatu glasi: MAX = 7*X1+5*X2+9*X3;

4*X1+8*X2+5*X3<1800;

4*X1+12*X2+2*X3<1240;

2*X1+12*X2+6*X3<1800;

X1+X2+X3< 800;

@INT(X1);

@INT(X2);

@INT(X3);

END

Sam model i rešenje su prikazani na slici 13.

Slika 13. Unos modela i rešenje

Primer 6.

691

Promenljive: x11 – označava izgradnju omladinskog doma po projektu P11 x12 – označava izgradnju omladinskog doma po projektu P12 x21 – označava izgradnju obdaništa po projektu P21 x22 – označava izgradnju obdaništa po projektu P22 x31 – označava izgradnju osnovne škole po projektu P31 x32 – označava izgradnju osnovne škole po projektu P32 x33 – označava izgradnju osnovne škole po projektu P33 x41 – označava izgradnju vodovodne mreže po projektu P41

Model: x11, x12, x21, x22 , x31, x32, x33 , x41 ≥0

11 12 21 22 31 32 33 412 3 3 6 8 8 4 17+ + + + + + + ≤x x x x x x x x

(ograničenje koje se odnosi na raspoloživa novčana sredstva)

11 12 1 + ≤x x

(ograničenje koje se odnosi na to da se najviše jedna od projekata može uzeti u obzir kod izgradnje)

21 22 1+ ≤x x

(ograničenje koje se odnosi na to da se najviše jedna od projekata može uzeti u obzir kod izgradnje)

31 32 33 41 0+ + − ≤x x x x

(ograničenje koje se odnosi na to da se najviše jedna od projekata može uzeti u obzir kod izgradnje i vezanost promenljivih)

41 1≤x

(ograničenje koje se odnosi na to da samo 0 ili 1 može da predstavlja odgovor na pitanje graditi ili ne)

11 12 21 22 31 32 33 416 8 9 5 4 8 7 9 maxx x x x x x x x z+ + + + + + + = →

Problem u LINDO obliku: MAX 6X11+8X12+9X21+5X22+4X31+8X32+7X33+9X41

ST

2X11+3X12+ X21+3X22+6X31+8X32+8X33+4X41<17

X11+ X12 <1

X21+ X22 <1

692

X31+ X32+ X33- X41<0

END

Nakon upisa osnovnih elemenata modela moramo uneti i dodatni iskaz koji će obezbediti da dobijemo binarno rešenje (0 ili 1) za sve promenljive. INT X11

INT X12

INT X21

INT X22

INT X31

INT X32

INT X33

INT X41

Dobijeno rešenje (slika14.) daje odgovor na zahtev šta će se graditi a šta ne.

Slika 14. Unos modela i rešenje

Primer 7. Promenljive:

693

x1 – označava izgradnju broda B1 x2 – označava izgradnju broda B2

x3 – označava izgradnju broda B3 x4 – označava izgradnju broda B4 x5 – označava izgradnju broda B5 Model:

1 2 3 4 5, , , , 0≥x x x x x

1 2 3 4 520 10 20 10 30 60+ + + + ≤x x x x x (ograničenje koje se odnosi na raspoloživa novčana sredstva)

1 2 3 4 510 5 10 20 30 70+ + + + ≤x x x x x (ograničenje koje se odnosi na raspoloživa novčana sredstva)

1 2 1+ ≤x x (ograničenje koje se odnosi na međusobno isključenje dve promenljive)

2 4 0− + ≤x x (ograničenje koje se odnosi na međusobnu vezanost promenljivih)

3 1≤x (ograničenje koje se odnosi na to da samo 0 ili 1 može da predstavlja odgovor na pitanje graditi ili ne)

5 1≤x (ograničenje koje se odnosi na to da samo 0 ili 1 može da predstavlja odgovor na pitanje graditi ili ne)

1 2 3 4 520 10 2 30 40 max+ + + + = →x x x x x z

Problem u LINDO obliku: MAX 20X1+10X2+2X3+30X4+40X5

ST

20X1+10X2+20X3+10X4+30X5<60

10X1+ 5X2+10X3+20X4+30X5<70

X1+X2<1

-X2+X4<0

END

INT X1

INT X2

INT X3

INT X4

INT X5

Ekran rešenja je na slici 15.

694

Slika 15. Unos modela i rešenje

Isti model u LINGO formatu, a nakon toga i rešenje su prikazani na slici 16. MAX= 20*X1+10*X2+2*X3+30*X4+40*X5;

20*X1+10*X2+20*X3+10*X4+30*X5<60;

10*X1+ 5*X2+10*X3+20*X4+30*X5<70;

X1+X2<1;

-X2+X4<0;

@BIN(X1);

@BIN(X2);

@BIN(X3);

@BIN(X4);

END

695

Slika 16. Unos modela i rešenje

6. PRIMERI REŠAVANJA MODELA KVADRATNOG

PROGRAMIRANJA

Primer 8. Promenljive: x1 – broj proizvedenih komada artikla A1

x2 – broj proizvedenih komada artikla A2

x3 – broj proizvedenih komada artikla A3

x4 – broj proizvedenih komada artikla A4

Model:

1 2 3 4, , , 0≥x x x x

696

1 2 3 4 2 3 3200+ + + ≥x x x x (ograničenje koje se odnosi na najmanju količinu sirovna S koju treba potrošiti)

1 2 3 42 2 7000+ + + =x x x x (ograničenje koje se odnosi na 100% iskorišćenje kapaciteta mašine M1)

1 2 3 4 6 4 4200+ + + ≤x x x x (ograničenje koje se odnosi kapaciteta mašine M2)

4 1000≥x (ograničenje koje se odnosi na potrebu proizvoda A4)

1 3000≤x (ograničenje koje se odnosi na potrebu proizvoda A1)

21 1 2 3 40,5 2 3500 6000 3200 min+ + + + = →x x x x x v

Linearni oblik modela: x11, x12, x13, x2, x3, x4 ≥0

11 12 13 2 3 4 2 3 3200+ + + + + ≥x x x x x x

11 12 13 2 3 42 2 2 + 2 7000+ + + + =x x x x x x

11 12 13 2 3 4 6 4 4200+ + + + + ≤x x x x x x

11 1000≤x

12 1000≤x

13 1000≤x

11 12 13 2 3 4502 1502 2502 3500 6000 3200 min+ + + + + = →x x x x x x v

Pomoću LINDO može se rešiti linearizovani oblik modela kvadratnog programiranja, LINDO oblik problema glasi:

MIN 502X11+1502X12+2502X133500X2+6000X3+3200X4

ST

X11+X12+X13+2X2+3X3+X4>3200

2X11+2X12+2X13+X2+X3+2X4=7000

X11+X12+X13+6X2+4X3+X4<4200

X4>1000

X11<1000

X12<1000

X13<1000

END

Rešenja koja dobijamo su prikazana na slici 17.

697

Slika 17. Unos modela i rešenje

Unos problema kvadratnog programiranja pomoću LINGO ne zahteva pripreme, kao što je linearizacija problema. Unos konkretnog modela izgleda na sledeći način: MIN= 0,5*X1^2+2*X1+3500*X2+6000*X3+3200*X4;

X1+2*X2+3*X3+X4>3200;

2*X1+X2+X3+2*X4=7000;

X1+6*X2+4*X3+X4<4200;

X4>1000;

X1<3000;

END

Birajući SOLVE iz LINGO menija pojavljuje se output prikazan na slici 18.

698

Slika 18. Unos modela i rešenje

7. TRANSPORTNI PROBLEM I LINDO

Primer 9. Promenljive: x11 – transportovana količina robe R iz magacina G1 do potrošača P1 x12 – transportovana količina robe R iz magacina G2 do potrošača P1 x13 – transportovana količina robe R iz magacina G3 do potrošača P1 x21 – transportovana količina robe R iz magacina G1 do potrošača P2 x22 – transportovana količina robe R iz magacina G2 do potrošača P2 x23 – transportovana količina robe R iz magacina G3 do potrošača P2

699

Model: x11, x12, x13, x21, x22, x23 ≥0

11 12 13 = 1500+ +x x x (ograničenje koje se odnosi na potrošnju potrošača P1)

21 22 23 = 2000+ +x x x (ograničenje koje se odnosi na potrošnju potrošača P2)

11 21 1500+ =x x (ograničenje koje se odnosi na kapacitet skladišta G1)

12 22 800+ =x x (ograničenje koje se odnosi na kapacitet skladišta G2)

11 12 13 21 22 2310 6 8 12 7 2 min+ + + + + = →x x x x x x v (ograničenje koje se odnosi na kapacitet skladišta G3)

13 23 = 1200+x x

Transportni problem postavljen u linearnom obliku modela programiranja može se rešiti pomoću LINDO programskog paketa, model je sledeći: MIN X11+6X12+8X13+12X21+7X22+2X23

ST

X11+X12+X13=1500

X21+X22+X23=2000

X11+X21=1500

X12+X22=800

X13+X23=1200

END

Rešenja dobijena na ekranu prikazuje slika 19.

700

Slika 19. Unos modela i rešenje

701

8. HIPERBOLIČNO PROGRAMIRANJE I LINDO

Primer 10. Promenljive: x1 – broj proizvedenih komada artikla A1

x2 – broj proizvedenih komada artikla A2

x3 – broj proizvedenih komada artikla A3

Model:

1 2 3, , 0≥x x x

3x1 + x2 + 2x3 = 2200 (ograničenje koje se odnosi na 100% iskorišćenje kapaciteta mašine M)

5x1 + 2x2 + 8x3 ≤ 3900 (ograničenje koje se odnosi na moguću količinu sirovine S)

x1 ≥500 (ograničenje koje se odnosi na donji limit proizvoda A1)

x1 ≤600 (ograničenje koje se odnosi na gornji limit proizvoda A1)

x2 ≥100 (ograničenje koje se odnosi na donji limit proizvoda A2)

x2 ≤600 (ograničenje koje se odnosi na gornji limit proizvoda A2)

x3 ≥100 (ograničenje koje se odnosi na donji limit proizvoda A3)

x3≤250 (ograničenje koje se odnosi na gornji limit proizvoda A3)

(200x1+350x2+250x3)/(20x1+10x2+20x3+50000) = z→ max

Funkcija kriterijuma se odnosi na maksimiziranje ekonomičnosti

Pomoću LINGO može se rešiti model hiperboličnog programiranja, LINGO oblik problema glasi:

MAX= (200*X1+350*X2+250*X3)/(20*X1+10*X2+20*X3+50000);

3*X1+X2+2*X3<2200;

5*X1+2*X2+8*X3<3900;

X1>500;

X1<600;

X2>100;

X2<600;

X3>100;

X3<250;

END

Model i rešenje modela su prikazani na slici 20.

702

Slika 20. Unos modela i rešenje

703

9. METOD CPM

Problem kritičnog puta (CPM) rešava se pomoću LINDO tako što se dijagram prevodi u oblik koji je za programski paket prihvatljiv. Funkcija kriterijuma je razlika između početne i krajnje tačke dijagrama. Ograničenja su sva oblika > a predstavlaju razliku između svih direktno povezanih tačaka dijagrama. Nakon SOLVE komande dobija se kritični put od početne do krajnje tačke mreže

Primer 11. Tabela 2. Podaci o trajanju aktivnosti

Aktivnosti Aij Trajanje aktivnosti u danima A - B 10

A - C 20

A - D 12

B - G 20

B - E 0

B - C 10

C - E 12

D - E 132

D - F 201

F - E 11

F - H 125

E - G 51

E - M 105

G - M 21

H - M 20

LINDO oblik modela: MIN M-A

ST

-A+B>10

-A+C>20

-A+D>12

-B+G>20

-B+E>0

-B+C>10

-C+E>12

-D+E>132

-D+F>201

-F+H>125

-F+E>11

-E+G>51

704

-E+M>105

-G+M>21

-H+M>20

END

Model i rešenje modela su prikazani na slici 21.

Slika 21. Unos modela i rešenje