Upload
mijpedjapedja
View
46
Download
1
Embed Size (px)
Citation preview
1
Linearno Linearno programiranjeprogramiranje
Prof. dr. Vlatko Čerić Ekonomski fakultet - Zagreb
2
Linearna optimizacija
3
Linearna optimizacija predstavlja skupinu metodakoje omogućuju nalaženje najpovoljnijih rješenjaraznovrsnih problema u kojima i
funkcija cilja (npr. dobit) i
utrošci resursa (npr. materijala ili vremena)
imaju linearan oblik ovisnosti o nezavisnim varijablama problema (npr. o broju proizvedenih proizvoda).
4
Prikazat ćemo osnove najviše korištenih metodalinearne optimizacije:
linearno programiranje
cjelobrojno linearno programiranje
transportni problem
problem dodjeljivanja
5
Naglasak je na:
prepoznavanju problema koji se mogu opisati linearnom optimizacijom
formulaciji modela
analizi osjetljivosti rezultata optimizacije
6
Linearno programiranje
2
7
To je najvažnija i najviše korištena metode za rješavanje poslovnih problema.
8
Metodu je razvio američki matematičar GeorgeDantzig 1947. godine. Metoda je temeljena na njegovom radu u statističkom odjelu US Air Force.
Tamo su rješavanje metoda planiranja pomoću stolnog kalkulatora zvali “programiranje”(odavde ime metodi).
9
Prvi problem kojeg je Dantzig riješio simplexmetodom:
problem prehrane uz minimalne troškove
77 varijabli odlučivanja i 9 ograničenja
The National Bureau of Standards je provjeravao rješenje
za to je trebalo 120 čovjek-dana uz korištenje kalkulatora
10
Primjer modela linearnog programiranja (LP)
Tvrtka Satex je mali proizvođač satova koji traži proizvodni plan koji bi joj dao najveću moguću dobit.
Tvrtka proizvodi dvije vrste satova, Raketix i Rolix. Dobit po jednom primjerku sata iznosi:
10 dolara za model Raketix, a 25 dolara za model Rolix
Potražnja za objema vrstama satova je velika te nadmašuje mogućnost proizvodnje.
11
Volumen proizvodnje ograničen je s tri vrste resursa:
tvrtka dnevno ima na raspolaganju:
40 specijalnih tranzistora,
200 sati radnika koji sastavljaju satove i
160 sati radnika koji provjeravaju ispravnost satova.
12
Iako je dobit za Rolix satove veća, ti satovi zahtijevaju i više kritičnih resursa.
isključivo u Rolix satove ugrađuje se po jedan specijalni tranzistor.
za sastavljanje jednog sata treba samo 1 sat za model Raketix a čak 4 sata za model Rolix, dok
za provjeru jednog sata treba 1 sat rada za model Raketix a 2 sata za model Rolix.
3
13
Pitanje je:
kakvim se proizvodnim programom može ostvariti najveća moguća dobit te koliki će biti iznos te dobiti.
Intuitivno rješavanje problema:
nije lako naći najpovoljniji proizvodni program, čak i za ovako jednostavan problem.
14
Formuliranje modela linearnog programiranja
Posao korisnika LP je formuliranje modela i interpretacija rezultata;
izračunavanje optimalnog rješenja i analizu osjetljivosti modela izvodi program korištenjem odgovarajućih algoritama (postupaka rješavanja problema).
15
Izbor varijabli odlučivanja, tj. varijabli o čijoj vrijednosti trebamo donijeti odluku (te ćemo vrijednosti dobiti rješavanjem problema linearnog programiranja).
x1 - tražena količina dnevne proizvodnje Raketixsatova,
x2 - tražena količina dnevne proizvodnje Rolix satova.
16
Funkcija cilja = dobit, koju želimo maksimizirati.
Dobit po jednom primjerku sata:
10 dolara za model Raketix a
25 dolara za model Rolix.
Stoga je ukupna dnevna dobit: “10 x1 + 25 x2“.
17
Ograničenja
primjer:
Za sastavljanje jednog Raketix sata treba 1 sat rada, dok za sastavljanje jednog Rolix sata treba 4 satarada, a dnevno imamo na raspolaganju 200 satiradnika koji sastavljaju satove. Stoga ovo ograničenje ima oblik “1 x1 + 4 x2 < 200”.
Dodatno prirodno ograničenje u tome je što nijemoguće proizvoditi negativne količine satova, tj. mora biti “x1 > 0, x2 > 0”.
18
Na temelju ovih razmatranja formulirat ćemo model linearnog programiranja ovog problema:
Max ( 10 x1 + 25 x2 ) maksimizacija ukupne dnevne dobiti
Uz ograničenja:
1 x2 < 40 (1) broj specijalnih tranzistora
1 x1 + 4 x2 < 200 (2) vrijeme sastavljanja satova
1 x1 + 2 x2 < 160 (3) vrijeme provjeravanja satova
x1 > 0, x2 > 0 nenegativne količine satova
4
19
LINDO
20
DS for Windows
21
Općeniti model linearnog programiranjaPoopćenjem ovog LP modela možemo formulirati i općeniti oblik modela linearnog programiranja sa nvarijabli odlučivanja i m ograničenja:
Max (c1 x1 + c2 x2 + . . . + cn xn )
Uz ograničenja:a11 x1 + a12 x2 + . . . + a1n xn < b1a21 x1 + a22 x2 + . . . + a2n xn < b2
. . . . . . . am1 x1 + am2 x2 + . . . + amn xn < bmx1, x2, . . . . . , xn > 0
ci , ekonomski koeficijentibi , ograničenja resursaaij , tehnološki koeficijenti
22
Linearno programiranje rješava i probleme minimizacije funkcije cilja, npr. traženje najjeftinijemješavine hrane za životinje koja će zadovoljiti zahtjeve za potrebnom količinom kalorija, vitamina i sl.
U problemima minimizacije često se pojavljuju i ograničenja tipa “veće ili jednako”, npr. količina vitamina u dnevnom obroku mora biti veća ili jednaka količini koju traži standard prehrane.
Problem minimizacije može se jednostavno pretvoritiu problem maksimizacije.
23
Grafički način prikazivanja i rješavanja modela linearnog programiranja
Primjer tvrtke Satex sadrži samo dvije varijable, što omogućuje grafički prikaz odgovarajućeg LP modela.
Takav prikaz omogućuje intuitivno razumijevanje problema, načina njegova rješavanja, karaktera optimalnog rješenja te analize osjetljivosti rješenja.
Grafički prikaz sadrži samo prvi kvadrant ravnine jer varijable odlučivanja ne mogu imati negativnu vrijednost.
24
Prikaz ograničenja: primjer ograničenja vremena sastavljanja satova: “1 x1 + 4 x2 < 200”. Prikazat ćemo rub područja ograničenja, a to je pravac “1 x1 + 4 x2 = 200” kojeg dobijemo pretvaranjem nejednadžbe u jednadžbu.
Taj pravac možemo najjednostavnije nacrtati tako da nađemo njegova presjecišta s obje osi i spojimo ih odreskom pravca.
Samo ograničenje prikazano je osjenčanom
površinom ispod tog odreska pravca.
5
25
Graf ograničenja vremena sastavljanja satova
26
Kada na isti način grafički prikažemo sva tri ograničenja, dobit ćemo područje mogućih rješenja problema koje zadovoljava sva tri ograničenja.
Ovo područje obuhvaća beskonačan broj mogućih rješenja (jer su varijable odlučivanja realni brojevi).
27
Područje mogućih rješenja LP problema tvrtke Satex
28
Ekstremne točke područja mogućih rješenja.
Pogledajmo vrhove poligona (A, B, C, D, i O) koji uokviruje područje mogućih rješenja - ti su vrhovi zvani i ekstremne točke područja mogućih rješenja.
Teorem ekstremnih točaka linearnog programiranja kaže da ukoliko postoji optimalno rješenje problema linearnog programiranja, tada bar jedno optimalno rješenje mora biti u ekstremoj točki područja mogućih rješenja.
Ovaj teorem pokazuje da možemo ograničititraženje optimalnog rješenja na konačan brojekstremnih točaka(u našem jednostavnom primjeru to je svega pet točaka).
29
Prikaz funkcije cilja. Crtanje funkcije cilja za nekoliko mogućih vrijednosti dobiti pokazat će nam koja bi od ekstremnih točaka mogla predstavljati optimalno rješenje problema.
Ukoliko funkciju cilja “10 x1 + 25 x2“ izjednačimo npr. s vrijednošću $ 1 000, dobivamo jednadžbu pravca “10 x1 + 25 x2 = 1 000” (kojeg možemo nacrtati na isti način na koji smo crtali rubne linije ograničenja).
30
Uzmimo još dvije moguće vrijednosti dobiti, $ 1 500 i $ 2 000 te nacrtajmo i njih crtkanom linijom na istoj slici. Linije jednake dobiti su međusobno paralelne, pri čemu su linije s većom vrijednosti funkcije cilja dalje od ishodišta.
6
31
Linije jednake dobiti za različite vrijednosti dobiti
32
Pitanje je:
koliko daleko možemo pomicati liniju jednake dobiti u smjeru od ishodišta, a da ona sadrži bar još jednu točku iz područja mogućih rješenja.
33
Iz slike je jasno da će uvijek jedna od točaka koja daje optimalnu vrijednost biti ekstremna točka.
Ona će biti
a) jedina točka optimuma ukoliko linija dobiti nije paralelna ni jednoj liniji ograničenja, ili
b) bar jedna od optimalnih točaka u rijetkim slučajevima da je linija jednake dobiti paralelna nekoj od linija ograničenja.
34
U primjeru tvrtke Satex očito je da je točka Coptimalno rješenje problema, jer u njoj linija dobiti postiže svoju najveću vrijednost.
Koordinate točke C dobit ćemo kao koordinate presjecišta ograničenja br. 2 i br. 3, tj. rješavajući jednadžbe:
1 x1 + 4 x2 = 200 (2) vrijeme sastavljanja satova
1 x1 + 2 x2 = 160 (3) vrijeme provjeravanja satova
35
Rješenje:
x1 = 120, x2 = 20.
Dakle, optimalno je proizvoditi 120 satova Raketix i 20 satova Rolix dnevno
Dobit iznosi : 10 (120) + 25 (20) = 1 700 dolara dnevno.
36
LINDO
7
37
DS for Windows
38
DS for Windows
39
Optimalno rješenje je na presjecištu ograničenja br. 2 i br. 3, što znači da su ta dva ograničenja iskorištena do kraja.
Ograničenje br. 1, tj. broj specijaliziranih tranzistora, nije iskorišteno do kraja.
Kada u nejednadžbu tog ograničenja (x2 < 40) uvrstimo optimalnu vrijednost varijable x2 = 20, vidimo da još 20 specijaliziranih tranzistora koji nam dnevno stoje na raspolaganju nije iskorišteno u optimalnom proizvodnom programu.
40
Simplex algoritam za rješavanje LP
U stvarnim problemima optimizacije susrećemo se sa stotinama ili čak tisućama varijabli odlučivanja, pa je za rješavanje LP problema potrebno imati efikasan općeniti postupak rješavanja (algoritam) koji će se implementirati na računalu.
Najpoznatiji i najviše korišten algoritam za rješavanje LP problema jest simplex algoritam
41
Simplex algoritam je algebarski postupak pretraživanja ekstremnih točaka područja mogućih LP rješenja.
Pri tome se redom pretražuju susjedne ekstremne točke, a kao sljedeća ekstremna točka izabire se ona koja daje jednako ili bolje rješenje nego prethodna.
42
Simplex algoritam blisko je povezan s poznatom Gaussovom procedurom eliminacije za rješavanje sustava linearnih algebarskih jednadžbi.
Budući da je originalni LP problem formuliran u obliku nejednadžbi, simplex algoritam zahtijeva njegovo pretvaranje u sustav jednadžbi jer je njega lakše riješiti od sustava nejednadžbi.
8
43
Nejednadžbe tipa “manje ili jednako” pritom se pretvaraju u jednadžbe
na taj način da im dodajemo tzv. varijable rezerve si(engl. slack variables), i to prvoj nejednadžbidodajemo samo varijablu s1, drugoj dodajemo samo s2 itd.
Varijable rezerve predstavljaju iznose neiskorištenih resursa.
44
Budući da neiskorišteni resursi ne donose dobit, oni se ni ne pojavljuju u funkciji cilja.
Pogledajmo kako izgleda LP model tvrtke Satex u kojem su nejednadžbe zamijenjene jednadžbama:
Max ( 10 x1 + 25 x2 )
uz ograničenja:
1 x2 + 1 s1 = 401 x1 + 4 x2 + 1 s2 = 2001 x1 + 2 x2 + 1 s3 = 160
x1, x2, s1, s2, s3 > 0
45
U općenitom slučaju s n varijabli odlučivanja i mograničenja dodavanjem m varijabli rezerve imat ćemo ukupno n + m varijabli i m jednadžbi.
Sa n varijabli više nego što je jednadžbi sustav ima n stupnjeva slobode u rješavanju jednadžbi. To omogućuje da se vrijednost bilo kojih n varijablimože izjednačiti s nulom, čime se dobiva sustav od m jednadžbi s m nepoznanica.
Ukoliko su varijable koje se stavljaju na nulu dobro odabrane, taj će sustav imati jedinstveno rješenje za preostalih m varijabli. Takvo se rješenje naziva bazično rješenje, a varijable rješenja nazivaju sebazičnim varijablama.
46
Od velikog broja takvih rješenja simplex metoda uzima u obzir samo moguća bazična rješenja (ona koja se nalaze u području mogućih rješenja problema).
Svako moguće bazično rješenje odgovara jednoj ekstremnoj točci LP problema.
47
LINDO
48
DS for Windows
9
49
Postupak rješavanja problema
50
Najpoznatiji program: LINDO
Više programa za proračunske tablice (npr. Excel) uključuje rutine za rješavanje LP problema.
51 52
53 54
10
55 56
Analiza osjetljivosti
Analiza osjetljivosti (postoptimalna analiza) služi za ispitivanje promjena u izlazu modela kao posljedicepromjena u pojedinačnim ulaznim parametrimamodela.
Analiza osjetljivosti LP modela temelji se na matematičkoj teoriji, pa se može provesti koristeći standardne izlazne podatke dobivene izvođenjem simplex algoritma.
57
Vrijednosti parametara LP modela, tj. jedinične dobiti, iznosi ograničenja resursa i tehnološki koeficijenti, često su procjene napravljene na temelju ograničenog broja podataka koji nisu uvijek ni posve ažurni.
Modeli se rade zbog donošenja odluka koje će se realizirati u bližoj ili daljnjoj budućnosti, pa se procjena vrijednosti parametara mora temeljiti na predviđanju njihovih budućih vrijednosti, što je izvor nužnih grešaka.
58
Analiza osjetljivosti daje stupanj osjetljivosti rezultata modela na male promjene ulaznih parametara modela.
Ako je osjetljivost modela na neki ulazni parametar velika ⇒ potrebno je uložiti dodatni trud da se napravi točnija procjena tog parametra kako bi se dobilo i točnije rješenje LP problema.
59
Analiza osjetljivosti omogućuje npr. npr. odgovori na pitanja o tome
bi li sadašnji proizvodni program ostao optimalan čak i ako bismo morali smanjiti dobit na nekima od proizvoda;
koliko bi se povećala dobit ukoliko bismo dokupili neki od ograničenih resursa.
60
Marginalni troškovi
Marginalni troškovi (engl. shadow price) pokazuje iznos povećanja optimalne vrijednosti funkcije ciljakada se vrijednost ograničenja jedne vrste resursapoveća za jednu jedinicu tog resursa, uz nepromijenjene vrijednosti svih drugih parametara modela.
11
61
Na slici je prikazana je grafička interpretacijamarginalnih troškova na primjeru tvrtke Satex za slučaj povećanja vrijednosti ograničenja resursa br. 3 (vrijeme provjeravanja satova).
Ovo povećanje uzrokuje pomak optimalne točke iz pozicije C u C’ gdje funkcija cilja ima nešto veću vrijednost. Taj pomak odgovara promjeni vrijednosti varijabli u istom bazičnom rješenju.
62
Marginalni trošak povećanja količine resursa br. 3
63
Rješenje LP modela tvrtke Satex daje sljedeće vrijednosti marginalnih troškova:
$0 za specijalne tranzistore (taj resurs nije u potpunosti iskorišten u optimalnom rješenju),
$ 2.5 za vrijeme sastavljanja satova, te
$ 7.5 za vrijeme provjeravanja satova.
64
LINDO
65
Pretpostavimo da jedna jedinica resursa br. 1 stoji $ 4, resursa br. 2 stoji $ 1, a resursa br. 3 stoji $ 6.5.
Kada od povećanja dobiti za ulaganje u jednu jedinicu resursa odbijemo cijenu tog resursa vidimo da proširenje od jedne jedinice
resursa br. 1 donosi gubitak od $ 4,
resursa br. 2 dobitak od $ 1.5,
a resursa br. 3 dobitak od $ 1.
66
⇒ Upravi tvrtke Satex savjetovali bismo dakle
da investira u povećanje vremena sastavljanja satova(resurs br. 2) jer će na taj način postići najveće povećanje dobiti.
12
67
Granice vrijednosti ograničenja
Marginalni trošak vrijedi samo tako dugo dok promjene ograničenja resursa ne dovedu do novog optimalnog rješenja, tj. ekstremne točke.
68
Cilj traženja granica vrijednosti ograničenja (engl. right hand side ranging) jest odrediti
do kojih se granica može promijeniti vrijednostpojedinog ograničenja uz nepromijenjene vrijednosti svih drugih parametara modela, a da se ne promijeni optimalna točka (tj. bazično rješenje).
69
Slika: primjer ograničenja resursa br. 3 (vrijeme provjeravanja satova) kod LP modela tvrtke Satex.
Kada se vrijednost tog ograničenja smanji na 120 sati(linija 3a) dolazi do promjene bazičnog rješenja iz točke C u točku B - daljnje smanjenje vrijednosti ograničenja br. 3 dovodi do promjene vrijednosti marginalne cijene resursa br. 3.
S druge strane, kada se vrijednost ograničenja br. 3 poveća na 200 sati (linija 3b) dolazi do promjene bazičnog rješenja iz točke C u točku D.
70
Granice vrijednosti ograničenja resursa br. 3 u kojima se njegov marginalni trošak ne mijenja
71
Rješenje LP modela tvrtke Satex daje sljedeća područja promjene vrijednosti ograničenja:
20 - ∞ za specijalne tranzistore, 160 - 240 za vrijeme sastavljanja satova te 120 - 200 za vrijeme provjeravanja satova.
72
LINDO
13
73
Promjena vrijednosti koeficijenata funkcije cilja
Promjena vrijednosti pojedinačnih koeficijenata funkcije cilja (uz nepromijenjene vrijednosti svih drugih parametara modela)
utječe na optimalnu vrijednost funkcije cilja (i to bez promjene vrijednosti bazičnih varijabli), a
može utjecati i na promjenu bazičnog rješenja.
74
Grafička interpretacija promjene vrijednosti koeficijenata funkcije cilja odgovara promjeni nagiba linije jednakih vrijednosti funkcije cilja.
Unutar nekih granica vrijednosti koeficijenata funkcije cilja sadašnje se bazično rješenje ne mijenja,
a kada se te granice prijeđu, tada se dobiva novo optimalno rješenje.
75
Slika: primjer LP modela tvrtke Satex.
Unutar određenih granica vrijednosti koeficijenata vrh C ostaje optimalno rješenje (slučaj a),
dok prijelazom preko tih granica rješenje prelazi ili na vrh B (slučaj b) ili na vrh D.
76
Promjene vrijednosti koeficijenata funkcije cilja
77
Rješenje LP modela tvrtke Satex daje sljedeća područja vrijednosti koeficijenata u funkciji cilja u kojima se optimalno rješenje ne mijenja:
6.25 - 12.5 za prvi koeficijent te 20.0 - 40.0 za drugi koeficijent.
78
LINDO
14
79
Primjene linearnog programiranja
Problem mješavine sastojaka (engl. blending) opisuje mješavinu sastojaka koji zajedno čine konačni proizvod koji mora zadovoljiti nekim specifikacijama.
Svaki sastojak ima svoju cijenu i svojstva te doprinosi svojstvima konačnog proizvoda.
Traži se takva mješavina koja zadovoljava zadane specifikacije, ne prelazi raspoloživu količinu sastojaka, a izaziva minimalne troškove.
Primjeri problema mješavine su traženje mješavine nafte i
mješavine životinjske hrane.80
Problem određivanja mješavine proizvoda (engl. product mix) traži određivanje količina različitih vrsta proizvoda koje treba proizvesti da bi se maksimiziraladobit.
Pri tom svaki od proizvoda zahtijeva određene proizvodne resurse i doprinosi određeni iznos ukupnoj dobiti.
Konačna mješavina proizvoda mora uzeti u obzir ograničenja proizvodnih resursa te očekivanu potražnju za proizvodom.
81
Problem distribucije i dodjeljivanja opisuje slanje dobara iz dostavnih centara (npr. tvornica) u centre potražnje (prodavaonice ili skladišta).
Svaki dostavni centar ima svoj kapacitet i cijenu proizvoda, a svaki centar potražnje svoju razinu potražnje.
Cijene transporta mogu se razlikovati po smjerovima distribucije.
Traži se takvo dodjeljivanje transporta koje će minimizirati ukupnu cijenu transporta, zadovoljiti potražnju i neće prekoračiti raspoložive kapacitete dostavnih centara.
82
Problem nabave rješava problem odluke o nabavi proizvoda (ili materijala) s različitih mjesta koja nude različite količine, kvalitete i cijene proizvoda.
Cilj je postizanje maksimalne moguće dobiti, uz zadovoljenje svih zahtjeva i specifikacija proizvoda kao i ograničenja budžeta.
83
Primjer
Marketinška kampanja
za kampanju je odobren fiksni iznos sredstava
pitanje je kako disperzirati oglašavanje preko različitih kanala?
radio, TV (+ vrijeme dana), tisak
Kako formulirati LP model?
84
Primjer
Marketinška kampanja
za kampanju je odobren fiksni iznos sredstava
pitanje je kako disperzirati oglašavanje preko različitih kanala?
radio, TV (+ vrijeme dana), tisak
svaki marketinški kanal ima neku očekivanu publiku (broj gledatelja/slušatelja/čitatelja) i trošak
cilj: maksimizirati ukupnu publikukorištenjem raspoloživih sredstava
15
85
Application
Production of Lego furniture
company produces tables and chairs
Lego pieces needed for a table and a chair:(colour doesn’t matter!)
2 big + 2 smallpieces
1 big + 2 smallpieces 86
available Lego elements per week:
profit: $16 per table$10 per chair
What is the optimal production?
What is the optimal profit?
What is the LP model?
8 small pieces
6 big pieces
87
if we produce only tables we can produce mostly:(they have higher profit than chairs)
2 small pieces are left
profit = 3 * $16 = $48 per week
88
if we produce only tables we can produce mostly:(they have higher profit than chairs)
2 small pieces are left
profit = 3 * $16 = $48 per week
2 big pieces are left
profit = 4 * $10 = $40 per week
if we produce only chairs we can produce mostly:
89
if we produce only tables we can produce mostly:(they have higher profit than chairs)
2 small pieces are left
profit = 3 * $16 = $48 per week
2 big pieces are left
profit = 4 * $10 = $40 per week
if we produce only chairs we can produce mostly:
Can we do better than this? 90
Yes, we can – the optimal solution is:
no pieces left
profit = 2 * $16 + 2 * $10 = $52 per week
16
91
Problem Formulation
Decision variables
X1 is the number of Chairs
X2 is the number of Tables
92
Problem Formulation
Decision variables
X1 is the number of Chairs
X2 is the number of Tables
Constraints
X1 + 2 X2 <= 6 large bricks
2 X1 + 2 X2 <= 8 small bricks
93
Problem Formulation
Decision variables
X1 is the number of Chairs
X2 is the number of Tables
Constraints
X1 + 2 X2 <= 6 large bricks
2 X1 + 2 X2 <= 8 small bricks
Objective function
Maximize 15 X1 + 20 X2
X1>=0, X2>= 0
940
1 2 3 4 5 6
1
2
3
4
5
Chairs
Tables
2 X1 + 2 X2 = 8 Small Bricks
950
1 2 3 4 5 6
1
2
3
4
5
Chairs
Tables
X1 + 2 X2 = 6 Large Bricks
2 X1 + 2 X2 = 8 Small Bricks
960
1 2 3 4 5 6
1
2
3
4
5
Chairs
Tables
X1 + 2 X2 = 6 Large Bricks
2 X1 + 2 X2 = 8 Small Bricks
17
97
objective function