Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

UPUTSTVO ZA LABORATORIJSKE VEBE

NELINEARNO PROGRAMIRANJE

www.laboi.fon.bg.ac.yu
I Korienje Lingo programa bie prikazano na sledeem primeru (kvadratno programiranje):
Preduzee PP sklopilo je ugovor o transportu odreenih koliina proizvoda iz skladita S1 i S2 do
prodavnica P1 i P2. Na skladitu S1 nalazi se 50.5, a na S2 40 jedinica proizvoda. Prodavnica P1 naruila
je 30.5, a prodavnica P2 60 jedinica proizvoda. Trokovi transporta dati su u tabeli:
P1

P2

S1

3x112+20x11

2x122+20x12

S2

4x212+10x21

x222+30x22

Matematiki model ima sledei oblik:


min F(x) = 3x112+20x11+2x122+20x12+4x212+10x21+x222+30x22
po
x11+x12=50.5
x21+x22=40
x11+x21=30.5
x12+x22=60
x11,x12,x21,x220
Problem e biti reen u programu Lingo.

RAD U LINGO PROGRAMU


Kada se startuje program otvara se sledei prozor u koji se unosi model.

Dugme koje
izvrava
naredbu Solve

Slika 1
Model se unosi u formatu koji je veoma slian matematiki napisanom modelu (Slika 1). Nakon unoenja
cilja (min ili max) unosi se znak jednakosti i zatim kriterijumska funkcija. Nakon funkcije cilja i nakon
svakog ogranienja unosi se taka-zarez (;).
Nakon unosa modela izabrati opciju LINGO, zatim Solve. Posle reavanja problema na ekranu se
pojavljuje dijalog (Slika 2). U dijalogu LINGO Solver Status su prikazane opte informacije kao npr. da je
reenje je optimalno i kolika je vrednost funkcije cilja. Ovaj dijalog treba zatvoriti i otvoriti prozor u
kome se nalaze rezultati analize Solution Report, (Slika 3).
! Za razliku od programa Lindo, u Lingu je potrebno unositi operatore (znak za mnoenje izmeu
koeficijenta i promenljive).

Slika 2

Slika 3
Local optimal solution found at iteration: 80 Optimalno reenje naeno je u iteraciji: 80
Objective value: - Vrednost funkcije cilja
Promenljive se nalaze u koloni Variable
Vrednost promenljivih se nalaze u koloni Value
Row: - Red 1 oznaava funkciju cilja, redovi 2-5 ogranienja
Slack or Surplus: - U ovoj koloni se nalaze vrednosti koliko je proizvoda transportovano manje od
zadate vrednosti, za ovaj primer vrednosti su nula, zbog ogranienja koja su jednakosti.

Ukoliko elimo da nam neka od promenljivih (ili sve promenljive) bude celobrojna (u ovom primeru
zadaemo da je potrebno da promenljiva x11 bude celobrojna), potrebno je na kraju ispisanog modela
Lingu uneti sledeu naredbu:
@gin (x11);
Za svaku promenljivu koja treba da bude celobrojna potrebno je ispisati ovakvu naredbu. Nakon biranja
opcije Solve, dobijamo reenje:

Slika 4
II 0-1 programiranje
Maksimalna teina koju ranac moe da prihvati je 450gr. Na raspolaganju imamo 7 predmeta. Njihove
vrednosti i teine dati su u sledeoj tabeli:
Vrednost [din]
Teina [gr]

novanik
2500
175

telefon
2000
120

naoare
1500
90

parfem
950
70

sat
1750
150

nakit
2000
135

minka
1200
100

Potrebno je odrediti koje predmete treba staviti u ranac, a da njihova vrednost bude maksimalna.
U ovom zadatku promenljive mogu uzeti samo jednu od dve vrednosti:
1, ako se j -ti predmet stavlja u ranac,
xj =
0, ako se j -ti predmet ne stavlja u ranac.
Nakon unosa modela u Lingo potrebno je uneti naredbu da svaka od promenljivih bude binarna ({0,1}),
(Slika 5):
@BIN (x1);

Slika 5

Slika 6
Nakon unosa modela izabrati opciju Lingo, a zatim Solve. Zatvoriti dijalog Lingo Solver Status i otvoriti
prozor u kome se nalaze rezultati analize Solution Report (Slika 6).
! Dobijeno reenje treba obrazloiti.
Ukoliko program javi poruku o greci pri unosu, treba je ispraviti pa zatim ponovo reiti model. Ako je
reenje nedopustivo (infeasible) treba proveriti i promeniti koeficijente u ogranienjima i ponovo reavati
problem sve dok se ne dobije optimalno reenje.
Znaenje komandi i primeri nekih realnih problema mogu se nai u HELP-u programa.

RAD U EXCEL-U
Ako Solver nije instaliran treba ui u meni Tools/Add-Ins, tiklirati opciju Solver Add-In, pritisnuti dugme
OK i zapoeti instalaciju. Posle unosa podataka i potrebnih formula za izraunavanje funkcije cilja i
ogranienja (Slika 7 podaci iz zadatka o rancu) izabrati opciju Tools/Solver.

Slika 7
U dijalogu Solver Parameters definisati matematiki model. Izabrati dugme Options i ekirati Assume
Nonnegative, a poto je problem nelinearan, ne treba ekirati Assume Linear Programming. Osim
ogranienja koje postoji u zadatku, svaku promenljivu treba definisati kao binarnu. U Excel-u je to
reeno tako to se za svaku promenljivu koja je binarna, definie ogranienje (Slika 9). Nakon unosa svih
potrebnih podataka, izabrati dugme Solve i komentarisati reenje.

Slika 8
! Kod zadataka gde je potrebno da promenljive uzimaju celobrojne vrednosti, u dijalogu Add Constraint
(Slika 9), svaku promenljivu definisati kao int.

Slika 9
! Reeni primeri u Excel-u nalaze se na sajtu.

You might also like