För utskrift: Introduktion, LP-exempel

Transcription

För utskrift: Introduktion, LP-exempel
TAOP88 Optimering för ingenjörer
Optimering
Examinator:
I
I
När inte intuitionen räcker till...
Kaj Holmberg
[email protected]
Kurshemsida: http://courses.mai.liu.se/GU/TAOP88
Lärare:
I
I
Matematisk bas.
Löser verkliga problem.
Föreläsningar: Kaj Holmberg
Lektioner, labbar: Oleg Burdakov, William Lövfors, Johan Vidlund
Använder speciellt utvalda metoder.
Fanns ej utan datorer.
Litteratur:
I
I
Kaj Holmberg: Optimering (Liber, 2010)
Kaj Holmberg: Grön optimering
Kräver kompetens/kunskaper från flera olika områden.
Två specifika svårigheter:
Undervisning:
I
I
I
I
Föreläsningar 11 st
Lektioner 10 st
Laborationer 5 st
F
I
I
I
Skriftlig tenta
Laborationer, redovisas skriftligt
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
1 / 39
Långsiktiga mål med kursen
Ta med relevanta saker (t.ex. kostnader, fysik, miljö).
Lösa modellen.
F
Examination:
I
Konstruera relevant modell.
Välja/använda lämplig metod.
Båda krävs.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
2 / 39
Optimering
“Alla talar om vädret men ingen gör något åt det.”
Charles Dudley Warner (1829-1900)
Känna igen optimeringsproblem.
Nästan samma sak med optimering.
Kunna formulera problem matematiskt.
Förstå principerna bakom olika metoder.
Vi är omgivna av optimeringsproblem hela tiden, men få av dem löses.
Kunna välja lämplig lösningsmetod.
Kunna använda tillgänglig programvara.
Man ser inte att det är ett optimeringsproblem.
Medverka vid utveckling av ny programvara.
Man kan inte formulera det på ett lösbart sätt (dvs. matematiskt).
(Räkna för hand.)
Man kan inte lösa det (dvs. finna en lämplig lösningsmetod).
Detta ska denna kurs ändra på för er.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
3 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
4 / 39
Vad är optimering?
Hur kan man misslyckas?
1
Konsten att göra på bästa möjliga sätt.
Lös problemet felaktigt, dvs. finn en lösning som inte är optimal, utan
sämre och/eller otillåten.
Dålig metod.
(Men inte “konst”, utan “vetenskap”.)
2
“Bästa” definieras av vad jag vill (minimera eller maximera).
Lös fel problem, dvs. finn korrekt optimallösning till fel modell.
Dålig modell.
Kallas “målfunktion”. Exempel: Minimera kostnaden.
3
Både 1 och 2, dvs. finn fel lösning till fel modell.
Dålig modell och metod.
“Möjliga” definieras genom att förbjuda det som är omöjligt/otillåtet.
Kallas “bivillkor”.
2 är vanligast.
Målfunktion och bivillkor måste definieras exakt/matematiskt.
3 kan vara bättre än 2.
Optimering är ett bra sätt att hitta fel i en modell.
Lösningen blir knäpp om man har glömt något viktigt bivillkor.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
5 / 39
Dumma exempel
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
6 / 39
Optimering
Dumt formulerade optimeringsproblem kan ge knäppa optimallösningar:
Optimus: “Bäst” (på latin).
Optimeringsproblem: min f (x) då gi (x) ≤ bi för i = 1, . . . m
Minimera kostnaden för att bygga ett hus, utan att kräva att något får
plats i huset. (Ger troligen mycket litet hus, till kostnaden noll.)
I
I
Minimera kostnaden för reparationer (för väg, järnväg) i år, utan hänsyn till
att det som inte lagas i år måste lagas i framtiden (och kanske blir dyrare).
I
Delområden (beroende på strukturen hos problemet):
I
Maximera priserna på verksamhet (parkering, bussresor) utan att tänka på
att kunderna kan försvinna.
I
I
I
I
Minimera kostnaden för social verksamhet (vård, skola) utan bivillkor på
kvaliteten på verksamheten.
x kallas variabler.
f (x) kallas målfunktion.
gi (x) ≤ bi kallas bivillkor.
I
Linjärprogrammering, LP (Dantzig 1949)
Ickelinjärprogrammering, ILP (Kuhn & Tucker 1951)
Heltalsprogrammering, HP (Gomory 1958)
Dynamisk programmering, DynP (Bellman 1957)
Matematisk programmering: Metoder och teori
Kombinatorisk optimering: Räkna upp kombinationer
Programmering: (grekiska: pro + gramma = föreskrift, planering)
Minimera ansträngningen vid träning.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
7 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
8 / 39
Hur man använder optimering: Operationanalys
1
2
Mål när man gör modellen
Få med allt relevant, dvs. som påverkar vilken lösning som är optimal.
Formulering av problemet. Finns det ett problem? Vad vill man
optimera? Vilka begränsningar finns?
Konstruktion av en matematisk modell. Definiera variabler,
målfunktion samt bivillkor. Är resultatet en LP-, ILP eller HP-modell?
Undvik det som är irrelevant, dvs. som inte påverkar vilken lösning
som är optimal.
Modellen ska vara korrekt, dvs. göra det man vill att den ska göra.
3
Insamling av data.
Modellen ska vara lösbar, dvs. gå att lösa på rimlig/tillgänglig tid.
4
Lösning av det matematiska problemet. Välj lämplig
optimeringsmetod.
Data (koefficienter) ska kunna tas fram.
5
Utvärdering av resultat (och modell). Är resultatet realistiskt,
lämpligt, vettigt, “bra”? Om inte, gå till 2.
6
De förenklingar man kan tvingas göra ska vara medvetna och
genomtänkta.
Undvik onödiga komplikationer, såsom olinjäriteter.
Använd resultatet.
Kaj Holmberg (LiU)
Välj målfunktion.
TAOP88 Optimering
26 augusti 2015
9 / 39
Mål när man väljer optimeringsmetod
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
10 / 39
Är handelsresandeproblemet svårt?
Möjlig metod (?): Jämför alla rundturer.
Exempel med 10 orter (noder):
Lös problemet så effektivt som möjligt.
Viktigt, ty verkliga problem är stora.
En dålig metod kan ta lång tid.
En smart implementering är ej tillräckligt.
Totalt 362 880 möjligheter.
Matematiskt: Det finns (n − 1)! olika sätt att besöka n platser.
För hand: 1 sekund per tur: 362 880 sekunder, dvs. ca 4 dagar.
Dator: 1 ms per tur: 362 sekunder, dvs. ca 6 minuter.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
11 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
12 / 39
Men vi kanske vill lösa större problem
n
6
7
8
9
10
11
12
13
14
15
16
18
20
21
22
23
Turer
120
720
5040
40320
362880
3628800
39916800
479001600
6227020800
87178291200
1307674368000
355687428096000
121645100408832000
2432902008176640000
51090942171709440000
1124000727777607680000
Kaj Holmberg (LiU)
Tid för hand
2 min
12 min
1 timme
11 timmar
4 dagar
42 dagar
1 år
15 år
197 år
2764 år
4.15 * 104 år
1.13 * 107 år
3.86 * 109 år
7.71 * 1010 år
1.62 * 1012 år
3.56 * 1013 år
TAOP88 Optimering
Men vi kanske vill lösa större problem
Tid för dator
120 ms
0.7 s
5s
40 s
6 min
1 timme
11 timmar
5.5 dagar
72 dagar
2.7 år
41.5 år
1.13 * 104 år
3.86 * 106 år
7.71 * 107 år
1.62 * 109 år
3.56 * 1010 år
Snabb dator
120 µs
0.7 ms
5 ms
40 ms
0.4 s
4s
40 s
8 min
1.7 timmar
24 timmar
15 dagar
11 år
3860 år
7.71 * 104 år
1.62 * 106 år
3.56 * 107 år
26 augusti 2015
13 / 39
De största som lösts till optimalitet
År
1954
1971
1975
1977
1980
1987
1987
1987
1994
1998
2001
2004
2006
n
10
20
49
64
100
120
318
532
666
2392
7397
13509
15112
24978
85900
TAOP88 Optimering
Om vi började räkna för hand då, hade vi hunnit med ett problem med 20
noder, men inte ett med 21 noder.
Med en dator hade vi hunnit med ett problem med 22 noder.
Med en snabbare dator hade vi hunnit med ett problem med 24 noder.
Så problemen är svåra om man använder en osmart metod.
Hur bra kan man göra med en smart metod?
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
14 / 39
Tillämpningsområden
Forskare
Dantzig, Fulkerson och Johnson
Held och Karp
Camerini, Fratta och Maffioli
Grötschel
Crowder och Padberg
Padberg och Rinaldi
Grötschel och Holland
Padberg och Rinaldi
Applegate, Bixby, Chvatal och Cook
Applegate, Bixby, Chvatal och Cook
Applegate, Bixby, Chvatal och Cook
Applegate, Bixby, Chvatal och Cook
Applegate, Bixby, Chvatal, Cook, Espinoza,
Goycoolea och Helsgaun
Kaj Holmberg (LiU)
Det sägs att det har gått 13.7 miljarder år sedan “the Big Bang”.
Turer
3.6 * 106
1.2 * 1017
1.2 * 1061
2.0 * 1087
9.3 * 10155
5.6 * 10196
2.1 * 10659
1.5 * 101218
1.5 * 101590
7.5 * 107041
2.5 * 1025405
1.1 * 1049932
1.4 * 1056593
3.9 * 1098992
1.1 * 10386522
26 augusti 2015
15 / 39
Optimal digital kartmatchning.
Optimal formering av studentgrupper.
Optimal snöröjning.
Optimal design av kullager.
Optimal placering av UAVer som kommunikationsreläer.
Optimal planering av militära attackmönster.
Optimal design, styrning och kontroll av IP-nät.
Optimal omruttning för symmetriska trestegs-Closnätverk
Optimal placering och förflyttning av tomvagnar på järnväg.
Optimal packning av pappersrullar i järnvägsvagnar.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
16 / 39
Tillämpningsområden
Trend
Optimal stråldosering vid cancerbehandling.
Optimal planering av sjuksköterskor.
Miljöaspekter blir allt viktigare i optimeringsmodellerna.
Optimal planering av skogsavverkning, transporter mm.
Optimalt vägunderhåll.
Lagkrav.
Trafikplanering (nya vägar, vägtullar).
Optimerade dagbrott.
PR-värden (certifiering etc).
Optimal design av filter.
Samvete.
Frekvensplanering i GSM.
Optimalt utnyttjande av kraftverk.
Optimal ruttplanering för gas-/oljeleverantörer.
Finansiell riskhantering.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
17 / 39
“Optimalt”
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
18 / 39
26 augusti 2015
20 / 39
Vad är optimalt?
Hur används ordet “optimalt” i media?
Vilken målfunktion har “jag”? Vilken målfunktion har SL?
Oftast som “ganska bra”
Maximera vinsten?
(i allmän mening, utan att specificera målfunktion).
Minimera kostnaderna?
Men “optimalt”( = “bäst”) kräver en målfunktion.
Maximera antal nöjda resenärer?
Minimera antal missnöjda resenärer?
Maximera “min” egen nytta?
Prissättning.
Upphandling.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
19 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
Vad är optimalt?
Vad är optimalt?
Trolig målfunktion: Minimera tiden för loppet.
Jag vet vad “bra” ljud är, baserat på bivillkor på frekvensomfång, distorsion
etc, man vad är “optimalt”?
Bivillkor = regler?
Lika för alla?
Doping?
Kaj Holmberg (LiU)
Vilket mått ingår i målfunktionen?
TAOP88 Optimering
26 augusti 2015
21 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
Vad är optimalt?
Vad är optimalt?
Målfunktion: Få plats med så mycket som möjligt?
“Bra” räcker väl?
Bivillkor: Få plats själv?
“Bra” är nog bättre, för då blir lösningen inte så extrem.
26 augusti 2015
22 / 39
26 augusti 2015
24 / 39
Kanske t.o.m. kunna röra sig lite?
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
23 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
Vad är optimalt?
Ett första exempel: Text
Företaget MPigg AB producerar olika sorters datormöss. Man ska nu under
en period fokusera på två sorter, Optimus och Rullmus. Man har begränsat
tillgång av vissa delar. Optimusen har två knappar medan Rullmusen har
tre. Man kan få fram material till maximalt 30 knappar per timme. Varje
Optimus har en optiskt enhet, och man kan använda högst 6 optiska
enheter per timme. Att montera en Optimus kräver 6 minuter i
musmaskinen, medan en Rullmus bara kräver 4 minuter. Under en timme
kan maskinen användas i medel 50 minuter. Resterande tid åtgår till
rengöring och service. En Optimus ger vinsten 4 kr och en Rullmus ger 3
kr. MPigg vill inte ändra produktionen alltför ofta, utan föredrar att
använda samma timplanering tills yttre förutsättningar ändras. Hur många
möss av varje sort skall man göra varje timme för att maximera intäkterna?
(Tillverkning av optiska enheter kräver ett mycket miljöfarligt ämne, men
det struntar man i.)
Tidshorisont?
Maximera välbefinnandet idag?
Maximera välbefinnandet om tio år?
Maximera livslängden?
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
25 / 39
Ett första exempel: Matematisk modell
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
26 / 39
Ett första exempel: Grafisk lösning
x2
Variabeldefinition:
x1 = antal enheter Optimus som görs varje timme.
x2 = antal enheter Rullmus som görs varje timme.
(3)
(2)
Matematisk modell:
max z = 4x1 + 3x2
då
2x1 + 3x2
x1
6x1 + 4x2
x1
x2
Kaj Holmberg (LiU)
≤ 30
≤ 6
≤ 50
≥ 0
≥ 0
(1) (knappar)
(2) (optik)
(3) (monteringstid)
(4)
(5)
TAOP88 Optimering
26 augusti 2015
(1)
(4)
(5)
x1
Tillåtet område Målfunktion Optimallösning: x1 = 3, x2 = 8, z = 36.
Gör 3 st Optimus och 8 Rullmus varje timme vilket ger en vinst på 36 kr
per timme. Alla knappar går åt och all monteringstid används, men det blir
3 optiska enheter över varje timme.
27 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
28 / 39
Ett första exempel: Variation
Ett första exempel: Variation
Man fattar ett principbeslut att halvera tillgången av optiska enheter av
hänsyn till miljön. Bivillkor 2 blir då x1 ≤ 3.
Istället för att ransonera tillgången på optiska enheter införs en straffavgift
på 2 kr per enhet. Ny målfunktion: max z = 2x1 + 3x2 .
x2
x2
(3)
(3)
(2)
(2)
(4)
Icke-unik optimallösning: x1 = 3, x2 = 8, z = 30 och
x1 = 0, x2 = 10, z = 30 samt alla som ligger mellan dem.
Degenererad lösning. Tre bivillkor aktiva. Alla resurser tar slut.
Kaj Holmberg (LiU)
x1
(5)
x1
(5)
(1)
(4)
(1)
TAOP88 Optimering
26 augusti 2015
29 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
Ett första exempel: Olinjär variation
Ett första exempel: Variation
Vinsten avtar med mängden: c1 (x1 ) = 4 − 0.1x1 och c2 (x2 ) = 3 − 0.2x2 ,
vilket ger målfunktionen f (x) = c1 (x1 )x1 + c2 (x2 )x2 =
(4 − 0.1x1 )x1 + (3 − 0.2x2 )x2 = 4x1 − 0.1x12 + 3x2 − 0.2x22 .
Optimus ger intäkt 5 kr per enhet. Målfunktion: max z = 5x1 + 3x2
30 / 39
x2
x2
(3)
(3)
(2)
(2)
(1)
(4)
(4)
(1)
(5)
(5)
x1
LP-lösning: x1 = 6, x2 = 3.5, zLP = 40.5. Icke heltalig optimallösning.
Kan ej lösas grafiskt.
Kaj Holmberg (LiU)
x1
TAOP88 Optimering
26 augusti 2015
31 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
32 / 39
Ett första exempel: Heltalsproblemet
Ett första exempel: Heltalsproblemet
Antalet enheter måste vara heltal. Lägg till: x1 , x2 heltal
Antal enheter måste vara heltal. Lägg till: x1 , x2 heltal
x2
x2
(3)
(2)
(4)
(1)
x1
(5)
x1
Tillåtet område: Enbart de svarta prickarna.
Kaj Holmberg (LiU)
TAOP88 Optimering
Tillåtet område: Enbart de svarta prickarna.
Heltalslösning: x1 = 5, x2 = 5, z ∗ = 40
Gör 5 enheter av båda sorterna.
26 augusti 2015
33 / 39
Ett första exempel: Heltalsproblemet
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
34 / 39
Introduktion till komplexitet
Antalet enheter måste vara heltal. Lägg till: x1 , x2 heltal
x2
Teoretisk bas för frågorna:
• Är en viss metod bra eller dålig?
(3)
• Är ett visst problem lätt eller svårt?
(2)
Hur många operationer krävs, som funktion av indatas storlek, i värsta fall?
(4)
(1)
Vi skiljer på polynomisk komplexitet (lätt) och exponentiell (svår).
(5)
x1
Ex: 2n blir alltid större än n4 , om n blir stort nog.
Skillnaden mellan LP-lösning och heltalslösning: z ∗ − zLP = 0.5.
Heltalsoptimum kan inte fås genom avrundning av LP-optimum.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
35 / 39
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
36 / 39
Introduktion till komplexitet
Introduktion till komplexitet
Vilken tidskomplexitet har den bästa kända metoden för problemet?
Exempel 1:
Sortera n heltal i stigande ordning: O(n log(n)). Polynomisk algoritm.
P är den klass av problem som kan lösas av en polynomisk algoritm.
Svårare klasser: NP-fullständiga, NP-svåra
Tro: Det finns ingen polynomisk algoritm för något NP-fullständigt/-svårt
problem.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
37 / 39
26 augusti 2015
39 / 39
Heuristiker
“Smarta” metoder som ger “skapliga” lösningar.
Ger ej garanterat optimum.
Men kan göra det om man har tur.
Snabbare än optimerande metoder.
Enda möjligheten för riktigt stora svåra problem.
Ofta: NP-svårt problem, polynomisk heuristik.
Kaj Holmberg (LiU)
TAOP88 Optimering
Exempel 2:
Genomlöpa alla hörn i en hyperkub i n dimensioner: O(2n ). Exponentiell
algoritm.
Kaj Holmberg (LiU)
TAOP88 Optimering
26 augusti 2015
38 / 39