20 Nonlinear Programming

Operasjonsanalytiske
emner
Del 20
Nonlinear Programming
Matematisk programmering
og ikke-lineære funksjoner
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
1
Introduksjon
Et ikke-lineært problem har en ikke-lineær målfunksjon
og/eller en eller flere ikke-lineære restriksjoner.
Ikke-lineære problemer formuleres og implementeres
praktisk talt på samme måte som lineære problemer.
Matematikken som benyttes for å løse ikke-lineære
problemer er svært forskjellig fra den som brukes på
lineære problemer.
Solver tildekker denne forskjellen, men det er viktig å
forstå de vanskene som kan oppstå når en skal løse ikkelineære problemer.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
2
Generell form på et matematisk
programmeringsproblem
MAX (eller MIN): f0(X1, X2, …, Xn)
Slik at :
f1(X1, X2, …, Xn)<=b1
:
fk(X1, X2, …, Xn)>=bk
:
fm(X1, X2, …, Xn)=bm
Merk: Hvis alle funksjonene i et optimeringsproblem er lineære,
så er problemet et lineært programmeringsproblem (LP).
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
3
Typer matematiske programmeringsproblem
1
Inndelingen baseres på funksjonsformene og
variablene:
Lineære funksjoner eller ikke-lineære funksjoner
Konvekse eller ikke-konvekse funksjoner
Glatte eller ikke-glatte funksjoner
Kontinuerlige eller heltallsvariabler
LP: Hvis målfunksjonen og alle restriksjonene er
lineære funksjoner, kalles problemet lineær
programmering (LP). Et LP problem er alltid konveks.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
4
Typer matematiske programmeringsproblem
2
QP/QCP er en generalisering av LP.
Hvis målfunksjonen er en konveks kvadratisk funksjon
av beslutningsvariablene, og alle restriksjonene er
lineære, er problemet et kvadratisk
programmeringsproblem (QP).
Hvis restriksjonene er konvekse kvadratiske, og
målfunksjonen er lineær eller konveks kvadratisk, så
er det et QCP (quadratic constrained problem).
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
5
Typer matematiske programmeringsproblem
3
NLP: En modell hvor målfunksjonen eller noen av
restriksjonene er glatte ikke-lineære funksjoner av
beslutningsvariablene, kalles problemet et ikkelineært programmeringsproblem (non-linear
programming) NLP.
NSP: En modell hvor målfunksjonen eller noen av
restriksjonene er ikke-glatte funksjoner av
beslutningsvariablene er non-smooth programming
(NSP).
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
6
Typer matematiske programmeringsproblem
4
IP/MIP: Hvis noen av beslutningsvariablene er heltall,
kalles problemet et heltallsproblem (Integer
Programming, IP). Hvis noen av variablene er heltall
og noen kontinuerlige kalles det mixed-integer
programming (MIP).
Heltallsrestriksjoner gjør problemet ikke-konveks, og
er dermed mye vanskeligere å løse.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
7
Funksjonsformer
Glatte funksjoner er funksjoner der funksjonens
deriverte er en kontinuerlig funksjon.
En glatt funksjon er dermed en kontinuerlig funksjon
uten knekkpunkt. Følgende er ikke glatte:
f(x)
f(x) = |x|
0
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
x
8
Funksjonsformer og optimering
De fleste optimeringsmetoder bygger på klassisk
optimering. Der finner en maksimum for 𝑓 𝑥 ved å sette
den deriverte lik null: 𝜕𝑓 𝜕𝑥 = 0, og kontrollere at det er
et maksimumspunkt
ved å sjekke at andrederiverte er
2
positiv: 𝜕 𝑓 𝜕𝑥𝜕𝑥 > 0 (dvs. funksjonen har skiftet fra å
stige til å synke), i motsatt fall er det et minimumspunkt.
Optimeringsteknikker som bygger på klassisk optimering,
dvs. derivasjon, krever derfor glatte funksjoner.
NSP (non-smooth problems) kan ikke løses med metoder
basert på derivasjon. De aller fleste programvarer for
optimering er basert på derivasjon.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
9
Konvekse og ikke-konvekse funksjoner
Algebraisk er en funksjon konveks hvis, for enhver verdi xa og xb , og enhver
t der 0 < t < 1: 𝑓 𝑡 ∙ 𝑥𝑎 + 1 − 𝑡 𝑥𝑏 ≤ 𝑡 ∙ 𝑓 𝑥𝑎 + 1 − 𝑡 𝑓 𝑥𝑏 .
Geometrisk er en funksjon konveks hvis linjen mellom xa og xb (kalt korden)
alltid ligger på eller over funksjonen, for ethvert sett av to punkter xa og xb.
En funksjon er konkav hvis linjen (korden) alltid ligger på eller under
funksjonen.
f(x)
f(x)
f(xa)
xa
f(xb)
xb
BØK710 OPERASJONSANALYTISKE EMNER
f(xa)
x
xa
f(xb)
xb
x
Rasmus Rasmussen
10
Konvekse og ikke-konvekse mengder
Geometrisk er en mengde konveks hvis linjen mellom ethvert mulig par av
punkter i mengden alltid ligger fullt og helt inne i mengden.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
11
Konveksitet
Hvis en funksjon f(x) er konkav, så vil –f(x) være konveks.
Hvis alle funksjoner med restriksjoner av formen  er
konvekse, og alle funksjoner med restriksjoner av formen
 er konkave, så vil mulighetsområdet av alle disse
funksjonene til sammen være konveks.
Hvis én eller flere av restriksjonene er ikke-konveks, så vil
mulighetsområdet kunne være ikke-konveks.
Hvis én eller flere av variablene er heltallsvariabler, er
mulighetsområdet ikke-konveks.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
12
«Gode» funksjoner
Glatte funksjoner har kontinuerlige 2. deriverte, og kan løses med
klassiske optimeringsteknikker basert på derivasjon.
Om problemet består av glatte, konvekse (minimering) eller konkave
(maksimering) funksjoner, så finnes ett unikt optimumspunkt.
Er den 2. deriverte alltid ikke-negativ så er funksjonen konveks.
Er den 2. deriverte alltid ikke-positiv så er funksjonen konkav.
En lineær funksjon har 2. deriverte lik 0, og er både konveks og konkav.
I problemer med flere variabler (dimensjoner) erstattes den 2. deriverte
med en matrise av verdier/funksjoner, kalt Hessian, og betingelsen ikkenegativ erstattes med betingelsen positiv semidefinit.
Avansert programvare for optimering har tester for å sjekke om
problemet er konveks eller ikke-konveks.
Men disse testene vil ikke alltid kunne foreta en sikker klassifisering.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
13
Deriverte
Lineære funksjoner har konstant 1. derivert, og 2. derivert (og høyere) er null.
Kvadratiske funksjoner har konstant 1. og 2. derivert, og alle høyere ordens
deriverte er null.
Glatte ikke-lineære funksjoner har 1. og 2. ordens deriverte som er definerte,
men ikke konstante – de endres med punktet de evalueres i.
Ikke-glatte funksjoner har 2. deriverte som er udefinert i noen punkter, og
diskontinuerlige funksjoner har 1. deriverte som er udefinert i noen punkter.
For lineære og kvadratiske problem kan altså de deriverte beregnes én gang i
starten av løsningsprosessen – siden de er konstante.
For glatte ikke-lineære funksjoner må de deriverte beregnes på nytt for hvert
trinn i optimeringsprosessen – siden de endrer verdi.
For ikke-glatte funksjoner finnes punkter der de deriverte ikke er definert,
følgelig kan ikke metoder basert på derivasjon benyttes til å løse disse
problemene.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
14
Lineære problemer
LP problemer er alltid konvekse, og har følgelig ett unikt
optimumspunkt. (Unntaksvis flere like gode.)
Siden alle funksjoner er lineære, vil optimal løsning ligge i
et hjørnepunkt. Det er derfor tilstrekkelig å sjekke
hjørneløsninger. (Tilgrensende nabohjørner kan være et
alternativt optimumspunkt.)
Simplex-metoden vurderer kun hjørneløsninger, mens
interior-point metoder baserer seg på derivasjon. Fordi
LP-problemer har konstante deriverte (lik koeffisientmatrisen), er det tilstrekkelig å beregne de deriverte én
gang.
Det er enkelt å verifisere at optimal løsning er funnet.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
15
Konvekse ikke-lineære problemer
Hvis et MP problem er konveks, så finnes et unikt
optimumspunkt.
Om alle funksjoner er glatte, kan teknikker basert på
derivasjon benyttes, og optimal løsning kan
verifiseres.
Hvis noen funksjoner er ikke-glatte, kan ikke
derivasjon benyttes, og det blir vanskelig å påvise at
løsningen er optimal.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
16
Ikke-konvekse problemer
f(x)
Ikke-konvekse problemer kan ha mange lokale
Her er a, c, f, og h lokale maksimumspunkt,
optimumsløsninger.
f
a
c
g
h
e
b
d
i
x
mens b, d, g og i er lokale minimumspunkt.
Område e og g er platåer, og g inneholder et
lokalt minimumspunkt, mens e er verken et
maksimum- eller minimumspunkt.
Punkt f er det globale maksimumspunkt og
punkt i er det globale minimumspunkt.
Om mulighetsområdet er ikke-konveks skaper det
ytterligere komplikasjoner. Mulighetsområdet kan da
bestå av flere adskilte områder, og det er umulig på
forhånd å vite i hvilket område den beste løsningen ligger.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
17
Pris - Etterspørsel
Par Inc. produserer standard (s) og deluxe (d) golfbager.
La Xi og Pi være mengde og pris av produktene (i = s, d).
Produkt
Etterspørsel
VEK
standard
deluxe
𝑋𝑠 = 2250 − 15𝑃𝑠
𝑋𝑑 = 1500 − 5𝑃𝑑
70
150
Selv om pris også er en beslutningsvariabel, er det matematisk
enklest å kun benytte mengde som variabel. Vi skriver derfor
om sammenhengen mellom pris og mengde:
𝑋𝑠 = 2250 − 15𝑃𝑠 → 𝑃𝑠 = 150 −
1
𝑋
15 𝑠
𝑋𝑑 = 1500 − 5𝑃𝑑 → 𝑃𝑑 = 300 −
1
𝑋
5 𝑑
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
18
Maksimalt dekningsbidrag
Totalt dekningsbidrag: Z = Pris  Mengde – VEK  Mengde:
𝑍 = 150 −
1
𝑋
15 𝑠
𝑍 = 80𝑋𝑠 −
1
𝑋𝑠 2
15
𝑋𝑠 − 70𝑋𝑠 + 300 −
+ 150𝑋𝑑 −
1
𝑋
5 𝑑
𝑋𝑑 − 150𝑋𝑑
1
𝑋𝑑 2
5
Optimal løsning: Sette den deriverte lik null:
𝜕𝑍
𝜕𝑋𝑠
=0
80 − 2 ∙
𝜕𝑍
𝜕𝑋𝑑
=0
150 − 2 ∙ 𝑋𝑑 = 0
BØK710 OPERASJONSANALYTISKE EMNER
1
𝑋
15 𝑠
1
5
=0
𝑋𝑠 =
80∙15
2
𝑋𝑑 =
= 600
150∙5
2
= 375
Rasmus Rasmussen
19
Optimal løsning uten restriksjoner
Xd
(600,375)
Z = 52.125,-
Z = 50.000
Xs
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
20
Pris, etterspørsel og produksjon
Par Inc. produserer standard (s) og deluxe (d) golfbager.
La Xi og Pi være mengde og pris av produktene (i = s, d).
Produkt
Etterspørsel
standard
deluxe
𝑋𝑠 = 2250 − 15𝑃𝑠
𝑋𝑑 = 1500 − 5𝑃𝑑
70
150
VEK = c
Skjæreavdeling
7
Sying
1
Montering
Pakking
1
1
10
2
1
10
5
2
1
6
3
4
Kapasitet
630
600
708
135
Om prisen fastsettes er mengden gitt, eller om mengden fastsettes er prisen gitt.
Om vi vil, kan vi derfor redusere antall variabler til å gjelde bare pris eller bare mengde.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
21
Matematisk formulering
Målfunksjon:
maxZ  max  i  s ,d Pi  X i  ci X i
Max Z =
PsXs
 70 Xs
+ PdXd
 150 Xd
Maksimer totalt dekningsbidrag
fra alle produkter.
Totalt dekningsbidrag er lik total inntekt (pris  mengde)
minus variable kostnader (VEK  mengde).
Merk at pris og mengde ikke kan fastsettes uavhengig av hverandre.
Etterspørselsfunksjonen spesifiserer sammenhengen mellom pris og mengde, og er listet
opp sammen med de øvrige restriksjonene.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
22
Matematisk formulering
Restriksjoner:

i  s ,d
ai , j X i  b j for alle j
Skjæreavdeling
7
Sying
Montering
Pakking
Sum ressursbruk i avdeling j
fra alle produkter (s og d)
kan ikke overstige total kapasitet i avdeling j.
1
1𝑋𝑑
 630
5
6 𝑋𝑑
 600
+
2
3 𝑋𝑑
 708
+
1
4 𝑋𝑑
 135
10 𝑋𝑠
1 𝑋
2 𝑠
+
+
1𝑋𝑠
10 𝑋𝑠
BØK710 OPERASJONSANALYTISKE EMNER
Totalt tidsbruk i en avdeling
kan ikke overskride
tilgjengelig tid i avdelingen.
Rasmus Rasmussen
23
Matematisk formulering
Restriksjoner:
X i  f i  Pi 
Omsatt mengde
er en funksjon av prisen.
𝑋𝑠 = 2250 − 15𝑃𝑠
𝑋𝑑 = 1500 − 5𝑃𝑑
Etterspørselsfunksjonen viser at etterspørselen synker når prisen øker.
Konstanten angir total etterspørsel hvis produktet er gratis, mens den negative
stigningskoeffisienten angir hvor mye etterspurt mengde reduseres ved en prisøkning på én
prisenhet.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
24
XD
Mulighetsområde
5
1062
(1) Skjæreavd.
3
720
630
540
7
(2) Sying
(3) Montering
2
(4) Pakking
(5)
1
1𝑋𝑑
 630
5
6 𝑋𝑑
 600
+
2
3 𝑋𝑑
 708
+
1
4 𝑋𝑑
 135
10 𝑋𝑠
1 𝑋
2 𝑠
+
+
1𝑋𝑠
10 𝑋𝑠
0
𝑋𝑠
(6)
0
𝑋𝑑
308,2
4
459,7
708
1
900
1200 1350
6
XS
Ved større kapasiteter kan optimal løsning være inne i mulighetsområdet.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
25
Prissetting i regneark
Celle
Formel
Kopieres til
C5
=C3+C4*C9
D5
C7
=C5-C6
D7
E7
=SUMPRODUCT($C$9:$D$9;C7:D7)
BØK710 OPERASJONSANALYTISKE EMNER
E11:E14
Rasmus Rasmussen
26
Symboler alternativ modell
Parametere:
G
N
ci
aij
bj
Ei
Mengden av produkter
Mengden av produksjonsavdelinger
Variabel enhetskostnad produkt i
Tidsforbruk produkt i i avdeling j
Tilgjengelig tid i avdeling j
Etterspørsel produkt i
G = {s, j}
i {G}
i {G}; j {N}
j {N}
i {G}
Beslutningsvariabler:
Xi Antall enheter produsert av produkt i
Yi Antall enheter solgt av produkt i
Pi Pris pr. enhet av produkt i
BØK710 OPERASJONSANALYTISKE EMNER
i {G}
i {G}
i {G}
Rasmus Rasmussen
27
Matematisk formulering
Målfunksjon:
maxZ  max  Pi  Yi  ci X i
iG
Maksimer Pris  Solgt mengde
 variabel enhetskostnad  produsert mengde
Restriksjoner:
a
iG
i, j
X i  b j for alle j  N
Ei  f i  Pi  for alle i  G
Sum ressursbruk i avdeling j
fra alle produkter (i  G)
kan ikke overstige total kapasitet i avdeling j.
Etterspurt mengde
er en funksjon av prisen.
Yi  Ei for alle i  G
Solgt mengde
kan ikke overstige etterspurt mengde.
Yi  X i for alle i  G
Solgt mengde
kan ikke overstige produsert mengde.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
28
Pris - Etterspørsel - Produksjon - Salg
Celle
Formel
Kopieres til
C7
=C5+C6*C4
D7
C10
=C4*C8
D10
C11
=C3*C9
D11
C12
=C10-C11
D12
E12
=SUM(C12:D12)
OPERASJONSANALYTISKE EMNER
E15BØK710
=SUMPRODUCT($C$9:$D$9;C15:D15)
-
E16:E18
Rasmus Rasmussen
29
Forskjellige optimale løsninger til NLPs
Nivåkurve for
målfunksjonen
(som ikke er hjørne-løsninger)
optimal løsning
Nivåkurve for
målfunksjonen
optimal løsning
Mulighetsområdet
Mulighetsområdet
Lineær målfunksjon,
ikke-lineære restriksjoner
Ikke-lineær målfunksjon,
lineære restriksjoner
Nivåkurve for
målfunksjonen
Nivåkurver for
målfunksjonen
optimal løsning
Mulighetsområdet
Ikke-lineær målfunksjon,
ikke-lineære restriksjoner
BØK710 OPERASJONSANALYTISKE EMNER
optimal løsning
Mulighetsområdet
Ikke-lineær målfunksjon,
lineære restriksjoner
Rasmus Rasmussen
30
En ikke-lineær løsningsstrategi
X2
C
D
E
B
Nivåkurver for
målfunksjonen
Mulighetsområdet
A
(start punkt)
X1
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
31
GRG Algoritmen
Solver bruker Generalized Reduced Gradient (GRG)
algoritmen for å løse ikke-lineære
programmeringsproblemer.
GRG kan også brukes på LP problemer.
Den er tregere enn Simplex metoden.
Den gir ikke garantert beste løsning hvis problemet er
ikke-lineært.
Den gir mindre omfattende sensitivitets-analyse.
Strategi: Prøv LP Solver først!
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
32
Lokale vs. Globalt Optimale Løsninger
X2
Lokal optimal løsning
C
E
Mulighets-området
B
F
Lokal og global
optimal løsning
G
A
D
X1
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
33
Konveksitet
Dette mulighetsområdet er konveks.
Alle rette linjer mellom to punkter i
mulighetsområdet ligger fullstendig
innenfor mulighetsområdet.
BØK710 OPERASJONSANALYTISKE EMNER
Dette mulighetsområdet er ikke-konveks.
Ikke alle rette linjer mellom to punkter i
mulighetsområdet ligger fullstendig
innenfor mulighetsområdet.
Rasmus Rasmussen
34
Kommentarer til konveksitet
Konvekse problemer er mye enklere å løse enn
ikke-konvekse problemer.
ASP kan teste for konveksitet:
Klikk: Optimize, Analyze Without Solving.
Model type “NLP Convex” indikerer at et lokalt
optimum også er det globale optimum.
Andre modelltyper er ubestemte angående globale
optimale løsninger. (Som “NLP NonCvx ” , “ NLP ”.)
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
35
Kommentarer til NLP Algoritmer
Det er ikke bestandig best å flytte i den retningen
som skaper den raskeste forbedringen i
målfunksjonen.
Det er heller ikke bestandig best å flytte lengst mulig i
den retningen.
NLP algoritmer vil stoppe ved lokale
optimumsløsninger.
Startpunktet påvirker hvilket lokalt optimumspunkt
en ender opp med.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
36
Kommentarer vedrørende startpunkt
Start i null-punktet bør unngås.
Hvis mulig bør en velge startverdier for
beslutningsvariablene som har noen lunde samme
størrelse som de forventede optimale verdiene.
Automatisk skalering bygger på start-løsningen.
Hvis diagnosen ikke bekrefter at problemet er
konveks, kan en benytte opsjonen MultiStart Search.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
37
En kommentar til “Optimal” løsning
Når Solver løser et ikke-lineært problem, stopper den normalt når den
første av følgende 3 tester er tilfredsstilt, ledsaget av en av følgende:
1) “Solver found a solution. All constraints and optimality conditions are satisfied.”
Dette betyr at Solver har funnet et lokalt optimum, men garanterer ikke at dette er den
globale optimale løsningen. Med mindre du vet at problemet kun har ett lokalt optimum
(som da også må være det globale optimum) bør du kjøre Solver flere ganger med
forskjellige startverdier, for å øke muligheten for at du finner den globale
optimumsløsningen. For ikke-konvekse problemer bruk opsjonen MultiStart Search.
2) “Solver has converged to the current solution. All constraints are satisfied.”
Dette betyr at målfunksjonen har endret seg lite i de siste iterasjonene. Hvis du tror at
løsningen ikke er et lokalt optimumspunkt, så kan det hende at problemet er dårlig skalert.
Convergence opsjonen i Solver Options dialog box kan reduseres for å unngå konvergering
omkring suboptimale løsninger.
3) “Solver cannot improve the current solution. All constraints are satisfied.”
Denne sjeldne meldingen betyr at modellen er degenerert, og at Solver går i ring mellom
samme løsninger. Degenererte løsninger kan ofte elimineres ved å fjerne overflødige
restriksjoner i modellen.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
38
Optimalt innkjøpskvantum (EOQ)
Hvordan finne optimal ordrestørrelse når en
bestiller varer.
Små ordrer (varebestillinger) medfører:
Små lagerbeholdninger & lagringskostnader
Hyppige ordrer & større bestillingskostnader
Store ordrer medfører:
Store lagerbeholdninger & lagringskostnader
Sjeldne order & mindre bestillingskostnader
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
39
Eksempel på lagerprofiler
Lager
60
Årlig etterspørsel = 150
Ordrestørrelse = 50
50
Antall ordrer = 3
Gj. snitt lager = 25
40
30
20
10
0
Lager
0
60
1
2
3
4
5
6
7
Årlig etterspørsel = 150
Ordrestørrelse = 25
50
8
9
10
11
12 Måneder
Antall ordrer = 6
Gj. Snitt lager = 12.5
40
30
20
10
0
0
1
BØK710 OPERASJONSANALYTISKE EMNER
2
3
4
5
6
7
8
9
10
11
12 Måneder
Rasmus Rasmussen
40
EOQ Modellen
D
Q
Totale årlige kostnader  D  C   S   C  i
Q
2
D = årlig etterspørsel etter varen
C = kjøpspris pr. enhet for varen
S = fast kostnad ved bestilling av varen
i = årlig lagerholdskostnad (som en % av C)
Q = bestillingskvantum
Antagelser:
Etterspørsel (eller bruk) er konstant over hele året.
Nye ordrer mottas i sin helhet i det øyeblikk lageret er tomt.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
41
EOQ kostnadssammenhenger
$
1000
800
Totalkostnad
600
400
Lagerkostnader
Bestillingskostnader
200
EOQ
0
0
10
20
30
40
50
Ordrekvantum
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
42
Et EOQ Eksempel: Bestille papir
Alan Wang kjøper papir for kopimaskiner og
laserprintere ved MetroBank.
Årlig etterspørsel (D) er på 24,000 esker
Hver eske koster $35 (C)
Hver bestilling koster $50 (S)
Lagerholdskostnader er 18% (i)
Hva er optimalt bestillingskvantum (Q)?
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
43
Modellen
D
Q
Minimer : D  C   S   C  i
Q
2
og : Q  1
Q er en beslutningsvariabel
Q-1 Inngår i målfunksjonen => ikke-lineær
Merk at målfunksjonen er ikke-lineær!
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
44
Implementere Lagermodellen
Analyze
without
solve
Analyze
without
solve
NLP Convex
- Unikt optimum
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
45
Kommentarer til EOQ Modellen
Matematisk kan en vise at den optimale verdien for Q er :
2DS
Q 
Ci
*
En mengde varianter av EOQ modellen finnes for å ta
hensyn til:
– kvantumsrabatter
– lagerrestriksjoner
– etterbestillinger
– etc.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
46
Problemer med optimering?
Det hender at vi noen ganger ikke får den løsningen vi
forventer.
Regner Solver galt, eller har vi gitt gale opplysninger
til Solver?
Eksempler på hvilke vansker som kan oppstå med
optimering i regneark er beskrevet på:
http://ite.pubs.informs.org/oldsite/Vol2No2/Troxell/
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
47
Lokaliseringsproblemer
Mange beslutninger dreier seg om å finne optimal
lokalisering av bygninger eller servicesentra, f. eks.
Produksjonsfabrikker
Lagerbygninger
Brannstasjon
Ambulansesentra
Slike problemer inneholder vanligvis avstander i
målfunksjonen og/eller i restriksjonene.
Avstanden (Euclidsk) i rett linje mellom to punkter
(X1, Y1) og (X2, Y2) er:
Avstand 
 X1  X 2    Y1  Y2 
BØK710 OPERASJONSANALYTISKE EMNER
2
2
Rasmus Rasmussen
48
Et lokaliseringsproblem:
Rappaport Communications tilbyr mobiltelefontjenester i flere mellomvestlige stater.
De ønsker å ekspandere for å tilby tjenestene også
mellom fire byer i nordre Ohio.
En ny telemast må bygges for å formidle samtalene
mellom disse byene.
Masten vil gi dekning i en radius på 40 mil.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
49
Graf over lokalisering av telemasten
Y
50
Cleveland
x=5, y=45
40
30
Youngstown
Akron
x=12, y=21
20
x=52, y=21
10
Canton
x=17, y=5
0
0
10
20
BØK710 OPERASJONSANALYTISKE EMNER
30
40
50
60
X
Rasmus Rasmussen
50
Definere beslutningsvariablene
X1 = lokalisering av telemasten langs X-aksen
Y1 = lokalisering av telemasten langs Y-aksen
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
51
Definere målfunksjonen
Minimere den totale avstanden mellom den nye
masten og de eksisterende :
 5  X 1    45  Y1 
2
Minimer:
2
 12  X 1    21  Y1 
2
 17  X 1    5  Y1 
2

2
2
 52  X 1    21  Y1 
BØK710 OPERASJONSANALYTISKE EMNER
2
2
Rasmus Rasmussen
52
Definere restriksjonene
Cleveland
 5  X 1    45  Y1   40
Akron
12  X 1    21  Y1   40
Canton
17  X 1    5  Y1 
Youngstown
 52  X 1    21  Y1 
BØK710 OPERASJONSANALYTISKE EMNER
2
2
2
2
2
2
2
 40
2
 40
Rasmus Rasmussen
53
Implementere modellen
Merk: I dette problemet
tillates negative verdier
på beslutningsvariablene.
BØK710 OPERASJONSANALYTISKE EMNER
NonLinearProblem
Solver kan ikke avgjøre
om problemet er
konveks
Rasmus Rasmussen
54
MultiStart vil forsøke
ulike startverdier.
Må ha nedre og øvre
grense på variablene.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
55
Analysere løsningen
Den optimale plasseringen av den “nye masten” er
på samme sted som Akron masten.
Kanskje de bare skulle oppgradere Akron masten.
Den største avstanden er 40 mil til Youngstown.
Dette er på grensen til max rekkevidde.
Hvor skal vi plassere den nye masten hvis vi ønsker å
minimere den maksimale avstanden til eksisterende
sendere ?
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
56
Minste maksimalavstand
Her har vi benyttet MiniMax teknikken:
Minimere: Max avstand Q (E8)
Slik at: Alle avstander ≤ Max avstand
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
57
Kommentarer til lokaliseringsproblemer
Den optimale løsningen til et lokaliseringsproblem vil ikke
alltid virke :
Eiendommen er kanskje ikke til salgs.
Området kan være fredet.
Stedet kan være en innsjø.
I slike situasjoner er den optimale løsningen et godt
utgangspunkt for å finne et passende område i
nærheten.
Restriksjoner kan tilføyes lokaliserings-problemene for å
eliminere umulige områder.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
58
Et ikke-lineært transportproblem:
SafetyTrans har spesialisert seg på frakt av spesielt
verdifull og ekstremt farlig gods.
Det er absolutt nødvendig for firmaet å unngå
ulykker:
Det beskytter deres renommé.
Det holder forsikringspremiene lave.
Mulige miljøkonsekvenser av en ulykke er katastrofale.
Selskapet driver en database over trafikkulykker som
benyttes til å finne de sikreste rutene.
De har nå behov for å finne den tryggeste veien
mellom Los Angeles, CA og Amarillo, TX.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
59
Nettverk for SafetyTrans Problemet
Las
Vegas
2
0.006
0.001
Flagstaff
6
0.006
0.002
-1
0.004
0.004
0.009
Phoenix
4
0.010
0.005
0.002
0.002
San
Diego
3
0.003
0.010
+1
0.001
Amarillo
10
0.010
0.003
Los
Angeles
1
Albuquerque
8
Tucson
5
Las
Cruces
7
0.003
0.006
Lubbock
9
Tallene langs greinene angir sannsynligheten for at en ulykke skal inntreffe.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
60
Definere beslutningsvariablene
1, hvis ruten fra node i til node j velges
Yi , j  
0, ellers
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
61
Definere målfunksjonen
Velg tryggeste rute ved å
maksimere sannsynligheten av å ikke ha en ulykke:
max : 1  P1,2  Y1,2   1  P1,3  Y1,3   1  P1,4  Y1,4   1  P2,4  Y2,4   1  P1,3  Y1,3   1  P9,10  Y9,10 
der:
Pij = sannsynligheten for en ulykke
når en kjører fra node i til node j
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
62
Definere restriksjonene
Transportrestriksjoner:
–Y1,2 –Y1,3 –Y1,4 = –1
} node 1
+Y1,2 –Y2,4 –Y2,6 = 0
} node 2
+Y1,3 –Y3,4 –Y3,5 = 0
} node 3
+Y1,4 +Y2,4 +Y3,4 –Y4,5 –Y4,6 –Y4,8 = 0 } node 4
+Y3,5 +Y4,5 –Y5,7 = 0
} node 5
+Y2,6 +Y4,6 –Y6,7 –Y6,8 = 0
} node 6
+Y5,7 +Y6,7 –Y7,8 –Y7,9 –Y7,10 = 0
} node 7
+Y4,8 +Y6,8 +Y7,8 –Y8,10 = 0
} node 8
+Y7,9 –Y9,10 = 0
} node 9
+Y7,10 +Y8,10 +Y9,10 = 1
} node 10
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
63
Ikke-lineært transportproblem
NLP NonCvx
Ikke-lineært og
ikke-konveks.
Kan ha flere lokale
optimum.
Må bruke MultiStart
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
64
Kommentarer til ikke-lineære transportproblemer
Små forskjeller i sannsynligheter kan bety store forskjeller
i forventet verdi :
(1-0,9900) * $30.000.000 = $300.000
(1-0,9626) * $30.000.000 = $1.122.000
Slike typer problemer er også nyttige i
pålitelighetsnettverksproblemer
(som å finne svakeste ”ledd” (eller grein) i et
produksjonssystem eller i et telekommunikasjonssystem).
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
65
Valg av investeringsprosjekt:
TMC skal fordele $1,7 millioner av F&U budsjettet og
fordele 25 ingeniører til 6 utviklingsprosjekter.
Sannsynligheten for suksess for et prosjekt er
avhengig av antall ingeniører (Xi) som tildeles
prosjektet, og defineres slik:
Pi = Xi/(Xi + ei)
Prosjekt
Startkostnader
NPV ved suksess
Sannsynlighetsparameter ei
1
$325
$750
3,1
2
$200
$120
2,5
3
$490
$900
4,5
4
5
$125
$710
$400 $1,110
5,6
8,2
6
$240
$800
8,5
(alle pengebeløp er i $1.000s)
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
66
Utvalgte sannsynlighetsfunksjoner
1.0000
0.9000
Sannsynlighet for suksess
0.8000
0.7000
0.6000
0.5000
0.4000
2,5 Project 2
5,6 Project 4
0.3000
8,5 Project 6
0.2000
0.1000
0.0000
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Antall ingeniører tildelt
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
67
Definere beslutningsvariablene
1, hvis prosjekt i velges
Yi  
i  1, 2,3,.., 6
0, ellers
X i  antall ingeniører som tildeles prosjekt i,
i  1, 2,3,.., 6
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
68
Definere målfunksjonen
Maksimer total forventet nåverdi av de valgte prosjektene
X3
X6
X1
X2
max : 750
 120
 900
 ...  800
 X 1  3,1
 X 2  2,5 
 X 3  4,5 
 X 6  8,5 
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
69
Definere restriksjonene
Finansiering av startkostnadene
325Y1 + 200Y2 + 490Y3 + 125Y4 + 710Y5 + 240Y6 ≤1700
Ingeniører
X1 + X2 + X3 + X4 + X5 + X6 ≤ 25
Logiske betingelser
Xi ≤ 25Yi , i = 1, 2, 3, … 6
Merk: Følgende restriksjon kunne benyttes isteden for de
to siste...
X1Y1 + X2Y2+ X3Y3+ X4Y4+ X5Y5 + X6Y6 ≤ 25
Denne restriksjonen er imidlertid ikke-lineær. Det er generelt
best å formulere seg lineært hvis det er mulig.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
70
Implementere modellen
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
71
Global optimering kan ta lang tid
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
72
Optimering av eksisterende modeller
Det er ikke bestandig nødvendig å skrive ut en
algebraisk formulering til et optimeringsproblem, selv
om dette vil sikre en grundig forståelse av problemet.
Solver kan brukes til å optimere en mengde
eksisterende regneark, også med modeller som er
fulle av ikke-lineæriteter.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
73
Finansiering av livsforsikring
Thom Pearman eier en engangs livsforsikringspolise med
innløsningsverdi på $6,000 og utbetaling ved død på
$40,000.
Han ønsker å innløse livsforsikringspolisen og bruke
rentene til å betale terminbeløp på en livsforsikring med
utbetaling ved død på $350,000.
Thom’s marginalskatt er 28%. Hvilken avkastning trenger
han på investeringen på $6,000 for å kunne betale den
nye forsikringen? Terminbeløpene for den nye polisen for
10 år er:
År
Terminbeløp
1
2
3
4
5
6
7
8
9
10
$423 $457 $489 $516 $530 $558 $595 $618 $660 $716
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
74
Implementere modellen
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
75
Optimal portefølje
En finansplanlegger ønsker å sette sammen den minst risikable
porteføljen som gir minimum 12% avkastning, ved å benytte
følgende aksjer :
År
1
2
3
4
5
6
7
8
9
10
11
12
Gj.snitt
Årlig avkastning
IBC
NMC
11,2%
8,0%
10,8%
9,2%
11,6%
6,6%
-1,6%
18,5%
-4,1%
7,4%
8,6%
13,0%
6,8%
22,0%
11,9%
14,0%
12,0%
20,5%
8,3%
14,0%
6,0%
19,0%
10,2%
9,0%
7,64%
13,43%
BØK710 OPERASJONSANALYTISKE EMNER
NBS
10,9%
22,0%
37,9%
-11,8%
12,9%
-7,5%
9,3%
48,7%
-1,9%
19,1%
-3,4%
43,0%
14,93%
IBC
NMC
NBS
Kovariansmatrise
IBC
NMC
0,00258
-0,00025
-0,00025
0,00276
0,00440
-0,00542
NBS
0,00440
-0,00542
0,03677
Rasmus Rasmussen
76
Definere beslutningsvariablene
p1 = andel av investeringen investert i IBC
p2 = andel av investeringen investert i NMC
p3 = andel av investeringen investert i NBS
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
77
Definere målsettingen
Minimere porteføljens varians (risiko).
n 1
n
MIN:   p  2
2
i
i =1
2
i
n

i 1 j i 1
ij
pi p j
 i2 = variansen til avkastning aksje i
 ij   ji  kovariansen mellom avkastning aksje i og j
Matrisenotasjon: Minimer pTCp
p = vektor av andeler
C = kovariansmatrisen
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
78
Definere restriksjonene
Forventet avkastning
0,0764 p1 + 0,1343 p2 + 0,1493 p3 ≥ 0,12
Andeler
p1 + p2 + p3 = 1
p1, p2, p3 ≥ 0
p1, p2, p3 ≤ 1
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
79
Implementere modellen
QP Convex
Kan bruke
LP/QP Solver
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
80
Parametrisk analyse
Vi ønsker å løse problemet med
flere alternative verdier for
minimum avkastning. (Celle K11)
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
81
Implementere modellen
Vi må angi hvor mange
ulike optimeringer vi
ønsker å kjøre.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
82
Parametrisk analyse
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
83
Plot av parametrisk analyse
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
84
Multiple målsettinger i porteføljesammensetning
I porteføljeproblemer ønsker vi å oppnå ett av to mål:
–
–
Minimere risiko (porteføljens varians)
Maksimere forventet avkastning
Vi kan ta hensyn til begge målsettingene samtidig ved å
generere effisiente porteføljer:
(1 – r)(Forventet avkastning) – r(porteføljens varians)
p1 + p2 + … + pm = 1
pi ≥ 0
hvor: 0 ≤ r ≤1 er en risikoaversjons parameter
Merk: Hvis r = 1 minimeres variansen.
Hvis r = 0 maksimeres avkastningen.
MAX:
gitt :
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
85
Implementere modellen
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
86
Effisiensgrensen – Trinn 1
Lag en tabell med ulike verdier for r, risikoaversjonen.
Erstatt cellen for r med formelen PsiOptParam(N4:N14)
Kolonnen for varians: PsiOptValue($K$11;M4)
Kolonnen for Avkastning: PsiOptValue($K$10;M4)
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
87
Effisiensgrensen – Trinn 2
Sett antall optimeringer til 11.
Kjør Solver.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
88
Effisiensgrensen – Trinn 3
Sett inn et Scatterplot av
Varians og Avkastning
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
89
Automatisk plott
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
90
Sensitivitetsanalyse
LP uttrykk
Shadow Price
Reduced Cost
NLP uttrykk
Lagrange Multiplier
Reduced Gradient
Betyr
Marginalverdi for ressursene.
Endringen i målfunksjonene ved en liten endring i
optimal verdi på beslutningsvariablene.
Vi får mindre informasjon fra sensitivitetsanalysen
ved ikke-lineære problemer sammenlignet med LP.
For heltallsproblemer får vi ingen sensitivitetsanalyse.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
91
Sensitivitetsanalyse
Ingen
”Range”
-analyse
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
92
Solver Options for NLP
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
93
Evolutionary Algoritmer
En teknikk av heuristikk-matematikk for optimering
basert på Darwin’s Evolusjonsteori.
Kan brukes på en hvilken som helst regnearkmodell,
inkludert de med “If” og/eller “Lookup” funksjoner.
Også kalt Genetic Algorithms (GAs).
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
94
Evolutionary Algoritmer
Løsninger til et MP problem kan representeres som
en vektor av tall (som et kromosom)
Hvert kromosom har en tilhørende “tilpasning”
(målfunksjons) verdi
GA’er starter med en tilfeldig populasjon av
kromosomer og benytter
Crossover - bytter verdier mellom løsningsvektorer
Mutation - tilfeldig erstatting av verdier i en løsningsvektor
De best tilpassede kromosomene overlever til neste
generasjon, og prosessen gjentas
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
95
Forenklet illustrasjon av evolusjon
X1
7,84
10,26
3,88
9,51
5,96
4,77
INITIAL POPULASJON
X2
X3
24,39
29,95
16,36
31,26
23,03
25,92
19,51
26,23
19,52
33,83
18,31
26,21
X4
6,62
3,55
6,76
2,64
6,89
5,59
Fitness
282,08
293,38
223,31
331,28
453,57
229,49
Kromosom
1
2
3
4
5
6
X1
7,84
10,26
3,88
9,51
4,77
5,96
CROSSOVER & MUTATION
X2
X3
24,39
31,26
16,36
29,95
19,75
25,92
19,51
32,23
18,31
33,83
19,52
26,21
X4
3,55
6,62
6,76
2,64
6,89
4,60
Fitness
334,28
227,04
301,44
495,52
332,38
444,21
Kromosom
1
2
3
4
5
6
X1
7,84
10,26
3,88
9,51
5,96
5,96
NY POPULASJON
X2
X3
24,39
31,26
16,36
31,26
19,75
25,92
19,51
32,23
19,52
33,83
19,52
26,21
X4
3,55
3,55
6,76
2,64
6,89
4,60
Fitness
334,28
293,38
301,44
495,52
453,57
444,21
Kromosom
1
2
3
4
5
6
BØK710 OPERASJONSANALYTISKE EMNER
Alternative løsninger
Crossover
Mutasjoner
De beste ”overlever”
Fra initial populasjon
Rasmus Rasmussen
96
Velge ut jevne grupper
Lederen av et master-studium ønsker å dele inn nye
studenter i grupper. Han ønsker å dele de 34 nye
studentene i 7 grupper.
Studentene er rangert basert på GMAT verdier, og
studielederen ønsker å dele gruppene slik at de får
jevnest mulig rangering.
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
97
Implementere valg av jevne grupper
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
98
Evolutionary Solver
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
99
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
100
Optimal løsning?
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
101
The Traveling Salesperson Problem
En selger ønsker å finne den billigste ruten for å
besøke kunder i n forskjellige byer, slik at hver by
besøkes kun én gang før en returnerer til
utgangspunktet.
n
3
5
9
13
17
20
BØK710 OPERASJONSANALYTISKE EMNER
(n-1)!
2
24
40,320
479,001,600
20,922,789,888,000
121,645,100,408,832,000
Rasmus Rasmussen
102
Eksempel på TSP
Wolverine Manufacturing må bestemme den korteste
veien for en drillemaskin for å borre 9 hull i et
fiberglass panel.
Dette er et TSP problem (bytt ut hull med byer, og
drillemaskin med handelsreisende).
TSP in Spreadsheets – a Guided Tour:
http://www.economicsnetwork.ac.uk/iree/v10n1/rasmussen.pdf
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
103
Implementere TSP i regneark
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
104
Koordinater, avstander og plot TSP
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
105
Slutt på kapittel 20
BØK710 OPERASJONSANALYTISKE EMNER
Rasmus Rasmussen
106