Faglig pedagogisk dag 2000, 4. januar Moderne optimering mer enn å derivere!! Geir Dahl, Prof. matematikk, Matematisk inst. og Inst. for informatikk aksjer - eksempel på LP (lineær programmering) noen råd til Marit Breivik (kombinatorisk optimering) et lite bevis og et lynkurs Moderne optimering: #1 of 19
Moderne optimering Oppvarming: funksjon av en variabel, f(x) = x 2 6x+7 derivert lik null, f (x) = 2x 6 = 0såx=3 min eller maks? Sjekk annenderivert! (Konveks) endepunkter (ingen, en eller to) Men: i de fleste interessante optimeringsproblemer har vi mange variable (ofte tusenvis) variablene må oppfylle visse begrensninger visse variable må evt. være heltallige osv. DaharvietoptimeringsPROBLEM!! Moderne optimering: #2 of 19
Aksjer og LP Finne optimal aksjeportefølje: portefølje: investering i ulike aksjer for en viss periode scenario: angir utvikling av hver aksjekurs vektlegging av scenarier (sannsynligheter) redd for tap sammenlikner porteføljen med en basisinvestering ( benchmark ) hvor mye skal investeres i hver aksje? gevinsten ulik for hvert scenario: vi tar veiet sum (forventet gevinst) maksimere forventet gevinst Moderne optimering: #3 of 19
Aksjer og LP Aksjemodell i AMPL: set SCENARIO; set AKSJE; param verdi {SCENARIO,AKSJE} 0; param bench {SCENARIO}; param scenario vekt {SCENARIO}; var Gevinst {SCENARIO} 0 1000; var Tap {SCENARIO} 0 1000; var Invest {AKSJE} 0 150; maximize forventet gevinst: sum {i in SCENARIO} scenario vekt[i] * Gevinst[i] - 2* sum{i in SCENARIO} scenario vekt[i] * Tap[i]; subject to scen {i in SCENARIO}: sum {j in AKSJE}verdi[i,j] * Invest[j]- bench[i] = Gevinst[i]-Tap[i]; subject to budsjett: sum {j in AKSJE}Invest[j] 500; Dette er et LP problem. LP = lineær programmering (optimering): optimere en lineær funksjon under lineære begrensninger (likninger eller ulikheter). Moderne optimering: #4 of 19
Aksjer og LP Data: set SCENARIO := SC1 SC2 SC3 SC4; set AKSJE:=A1A2A3A4A5A6A7A8A9A10; param verdi: A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 := SC1 1.2 1.4 1.6 1.8 1.4 1.4 1.4 1.5 1.4 1.5 SC2 1.2 1.3 1.5 1.3 1.3 1.1 1.7 1.4 1.2 1.8 SC3 1.6 1.5 1.3 1.4 1.2 1.8 1.2 1.4 1.8 1.4 SC4 0.8 0.9 0.7 0.6 0.8 0.8 0.8 0.7 0.9 0.8; param: bench scenario vekt := SC1 550 0.4 SC2 550 0.2 SC3 550 0.2 SC4 550 0.2; Moderne optimering: #5 of 19
Aksjer og LP Løser problemet: ampl: model aksje.mod option solver cplex; ampl: solve; data aksje.dat CPLEX 4.0: No LP presolve or aggregator reductions. Iteration: 1 Infeasibility = 1405.000000 Iteration: 5 Objective = 99.000000 CPLEX 4.0: optimal solution; objective 101 6 iterations (4 in phase I) Solution time = 0.01 sec. ampl: display Invest, Gevinst, Tap; Invest: A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 0 50 0 150 0 0 0 0 150 150. Gevinst Tap: SC1 225 0 SC2 160 0 SC3 215 0 SC4 0 160 Moderne optimering: #6 of 19
Noen råd til Marit Breivik Har vi det beste håndball-landslaget? keeper: alternerer Leganger og Tjugum utespillere velges fra de 13 spillerne Hilmo, Larsen, Duvholt, Sørlie, Davidsen, Rokne, Sættem, Eriksen, Grini, Hundvin, Goksør, Haltvik og Hausmann 6 uteplasser: H VING, V VING, H BEKK, V BEKK, M BEKK og SENTER hver spiller har en viss kvalitet på hver plass hvilket lag er best, og hvem spiller hvor? antall kombinasjoner: 13 12 11 10 9 8 = 1.235.520 Dette er et kombinatorisk optimeringsproblem! Moderne optimering: #7 of 19
Noen råd til Marit Breivik Modell: set SPILLER; set PLASS; param kvalitet {SPILLER,PLASS}; var Bruk {SPILLER,PLASS} 0; maximize total kvalitet: sum {i in SPILLER, j in PLASS} kvalitet[i,j] * Bruk[i,j]; subject to spillerbruk {i in SPILLER}: sum {j in PLASS}Bruk[i,j] 1; subject to plassbruk {j in PLASS}: sum {i in SPILLER} Bruk[i,j] = 1; Data: set SPILLER := Hilmo Larsen Duvholt Sørlie Davidsen Rokne Sættem Eriksen Grini Hundvin Goksør Haltvik Hausmann; set PLASS := H VING V VING H BEKK V BEKK M BEKK SENTER; Moderne optimering: #8 of 19
Noen råd til Marit Breivik param kvalitet: H V V V H B V B M B SENT := Hilmo 1 1 2 2 1 4.5 Larsen 1 2 3 4 3 2 Duvholt 5 4 2 2 1 2 Sørlie 2 2 2 2 2 5 Davidsen 2 2 3 3 3 2.5 Rokne 2 2 2 2 2 2 Sættem 2 2 4.5 4.5 4.5 2 Eriksen 3 2 2 2 1 2.5 Grini 2 2 4.5 5 4.5 2 Hundvin 4 5 2 2 2 2 Goksør 2 2 3.5 3 3 2 Haltvik 2 2 4 4 4 3 Hausmann 3 4 2 2 1 3 Moderne optimering: #9 of 19
Noen råd til Marit Breivik Verdens beste håndball-landslag (!!???) ampl: display Bruk: H B H V M B SENT V B V V:= Davidsen 0 0 0 0 0 0 Duvholt 0 1 0 0 0 0 Eriksen 0 0 0 0 0 0 Goksør 0 0 0 0 0 0 Grini 0 0 0 0 1 0 Haltvik 0 0 1 0 0 0 Hausmann 0 0 0 0 0 0 Hilmo 0 0 0 0 0 0 Hundvin 0 0 0 0 0 1 Larsen 0 0 0 0 0 0 Rokne 0 0 0 0 0 0 Sættem 1 0 0 0 0 0 Sørlie 0 0 0 1 0 0 Score: 28.5 (regnetid 1/100 sek.) Laget: Sørlie Hundvin Grini Haltvik Sættem Duvholt Moderne optimering: #10 of 19
Noen råd til Marit Breivik Men hva med litt sunn fornuft!? Ja, man kan finne en optimal løsning her direkte ved åsepå hvilken spiller som passer best på hver plass + litt drøfting. Betyr dette at alle slike problemer er enkle å løse direkte? Nei, det var enkle data som gjorde det mulig her. Å finne bestemann på en gitt plass kan gi dårlig løsning, avhengig av rekkefølgen man velger for plassene: Plass 1 Plass 2 Spiller 1 10 9 Spiller 2 9 1 11 < 18 Moderne optimering: #11 of 19
Tilordningsproblemet Tilordningsproblemet Gitt en matrise (tabell) med n n tall c 1,1 c 1,2... c 1,n c 2,1 c 2,2... c 2,n... c n,1 c n,2... c n,n Velg ut n tall med nøyaktig ett tall fra hver rad og hver kolonne slik at summen av de valgte tallene er størst mulig. kan skrives som et spesielt LP problem finnes alltid heltallig optimal løsning av dette! fins effektive algoritmer brukes bl.a. i ruteplanlegging: tilordne transportbiler til kunder så noen kombinatoriske optimeringsproblemer kan løses raskt! men mange komb-opt-problemer er vanskelige i betydningen... eksempel: Traveling Salesman Problem (korteste rundtur gjennom gitte byer) Moderne optimering: #12 of 19
Dagens bevis Hvorfor fins alltid en optimal løsning i tilordningsproblemet som er heltallig? maksimer i,j c i,j x i,j slik at n j=1 x i,j = 1 for i = 1,...,n n i=1x i,j = 1 for j = 1,...,n x i,j 0 for alle i,j. Moderne optimering: #13 of 19
Simpleksmetoden Simpleksmetoden: metode for å løse alle LP problemer Metoden ble utviklet av George B. Dantzig rundt 1947 i forbindelse med transportproblemer i U.S. Air Force. Arbeidet ble publisert i 1951. Andre tidlige bidragsytere var T.J.Koopmans og L.V.Kantorovich, og disse to fikk Nobel prisen i økonomi for dette arbeidet i 1975. Forresten: H. Markowitz fikk Nobel prisen i økonomi i 1990 for sitt arbeid med porteføljeoptimering (1959). maksimer 5x 1 + 4x 2 + 3x 3 slik at (i) 2x 1 + 3x 2 + x 3 5 (ii) 4x 1 + x 2 + 2x 3 11 (iii) 3x 1 + 4x 2 + 2x 3 8 x 1,x 2,x 3 0. Konverterer til likninger ved å innføre slakkvariable for hver -ulikhet: f.eks. erstattes (i) av w 1 = 5 2x 1 3x 2 x 3 og w 1 0. Moderne optimering: #14 of 19
Simpleksmetoden Får da: maksimer η = 5x 1 + 4x 2 + 3x 3 slik at (i) w 1 = 5 2x 1 3x 2 x 3 (ii) w 2 = 11 4x 1 x 2 2x 3 (iii) w 3 = 8 3x 1 4x 2 2x 3 x 1,x 2,x 3,w 1,w 2,w 3 0. Venstre side: avhengige variable, basisvariable. Høyre side: uavhengige variable, ikkebasisvariable. Startløsning: Lar x 1 = x 2 = x 3 = 0ogdermedfår vi w 1 = 5,w 2 =11,w 3 =8. Vi lar alltid ikkebasisvariable være 0. Basisvariablene blir bestemt entydig, nemlig lik konstantene på venstre side. Moderne optimering: #15 of 19
Simpleksmetoden Har vi optimal løsning? Nei!! Vi kan f.eks. øke x 1 mens vi fortsatt lar x 2 = x 3 = 0. Da vil η øke vi får nye verdier på basisvariablene som blir bestemt fra x 1 jo mer vi øker x 1 jo mer øker η! men pass på: w j -ene nærmer seg null! Maksimal økning av x 1 : vil unngå at basisvariable blir negative. Fra w 1 = 5 2x 1, w 2 = 11 4x 1 og w 3 = 8 3x 1 får vi at x 1 5/2, x 1 11/4, x 1 8/3 så vi kan øke x 1 til den minste verdien, nemlig 5/2. Dette gir den nye løsningen x 1 = 5/2, x 2 = x 3 = 0 og dermed w 1 = 0,w 2 =1,w 3 =1/2. Og nå er η=25/2. Altså: en mye bedre løsning!! Hvordan komme videre? Listeform er fin for åteste optimalitet, så vi vil komme over i neste liste! Moderne optimering: #16 of 19
Simpleksmetoden Vi ønsker at x 1 og w 1 skal bytte side. Dette kan gjøres ved å bruke w 1 -likningen til å eliminere x 1 fra alle andre likninger. Dette endrer ikke løsningsmengden til likningssystemet. Resultat: η = 12.5 2.5w 1 3.5x 2 + 0.5x 3 x 1 = 2.5 0.5w 1 1.5x 2 0.5x 3 w 2 = 1 + 2w 1 + 5x 2 w 3 = 0.5 + 1.5w 1 + 0.5x 2 0.5x 3 Vi har nå gjennomført en pivotering. Moderne optimering: #17 of 19
Simpleksmetoden Gjentar prosessen og etter nok en pivotering får vi: η = 13 w 1 3x 2 w 3 x 1 = 2 2w 1 2x 2 + w 3 w 2 = 1 + 2w 1 + 5x 2 x 3 = 1 + 3w 1 + x 2 2w 3 Nå kan vi stoppe! Hvorfor? Konklusjon: vi har funnet en optimal løsning! Den er w 1 = x 2 = w 3 = 0ogx 1 =2,w 2 =1,x 3 =1. Optimal verdi er η = 13. Moderne optimering: #18 of 19
Avsluttende kommentarer mange optimeringsproblemer rundt omkring raske algoritmer spennende matematiske problemer motivert av anvendelser optimering svært aktivt forskningsfelt VENNLIGST SEND GODE STUDENTER HIT!! nytt studium i anvendt matematikk anbefalt LP bok: R.J. Vanderbei: Linear programming: foundations and extensions, Kluwer, 1996, se evt. http://www.princeton.edu/ rvdb/lpbook/ anbefalt kombinatorikk bok: R. Brualdi: Introductory combinatorics, Prentice-Hall, 1999. Geir Dahl, telefon 22 85 24 25, Webside: http://www.ifi.uio.no/ geird/ Inneholder div. informasjon om optimering, forskning, studier, Web optimering. Også dette foredraget. Moderne optimering: #19 of 19