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 kaj.holmberg@liu.se 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