Heuristiske søkemetoder I: Simulert størkning og tabu-søk Lars Aurdal Norsk regnesentral lars@aurdalweb.com Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.1/141
Hva er tema for disse forelesningene? Det finnes beregningsproblemer der beregningsmengden blir enorm selv for høyst realistisk dimensjonering av problemet. Dessverre er dette ikke forbeholdt problemer av rent teoretisk interesse. I disse to forelesningene skal vi studere endel slike problemer......og hvordan man kan løse dem approksimativt. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.2/141
Plan 1 Vi skal se på to ulike algoritmer for å løse slike problemer: Simulert størkning. Tabu-søk. Begge er såkalte heuristiske søkealgoritmer. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.3/141
Plan 2 Hva er en heuristisk søkealgoritme? Hvorfor heuristiske søkealgoritmer? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.4/141
Plan 3 Vi skal se nærmere på følgende problemer: Knapsack-problemet. Reisende handelsmann-problemet. Maksimum klikk-problemet. Grafdelings-problemet. Graf isomorfisme-problemet. Bildebehandlingsapplikasjon. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.5/141
Hva slags søkemetoder snakker vi om? Vi skal fokusere på algoritmer som opererer på kombinatoriske strukturer. Slike strukturer er: Sett Lister Grafer etc. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.6/141
Hva slags søkemetoder snakker vi om? Algoritmer som opererer på slike kombinatoriske strukturer brukes grovt for å løse et av følgende problemer: Generere kombinatoriske strukturer. Telle kombinatoriske strukturer. Søke etter kombinatoriske strukturer. Søke etter optimale (ekstremaliserende) kombinatoriske strukturer. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.7/141
Sett Et (endelig) sett er en endelig samling objekter som kalles elementene i settet. Vi benytter klammeparenteser rundt mengden objekter i settet: { }. Skriver vi X = {1,3,7,9} mener vi at settet X består av elementene 1,3,7 og 9. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.8/141
Sett Merk at sett ikke er ordnede strukturer slik at settene {1,3,7,9} og {7,1,9,3} er like. Vi skriver x X for å indikere at x er et element i X. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.9/141
Sett Kardinalitet (eller størrelse) til et sett X, betegnet X er antall elementer i X. Eksempel: {1,3,7,9} = 4. For k et positivt heltall eller null sier vi at et k-sett er et sett med kardinalitet k. 0-settet er det (unike) tomme settet som ikke inneholder noen elementer. Det betegnes /0. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.10/141
Sett Dersom X og Y er sett sier vi at X er et subsett av Y dersom alle elementer i X er inneholdt i Y. Vi skriver dette X Y. x X x Y Et k-subsett av Y er et subsett av Y med kardinalitet k. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.11/141
Lister En (endelig) liste er en ordnet samling objekter som kalles elementene i listen. Vi benytter hakeparenteser rundt objektene i listen: [ ]. Skriver vi X =[1,3,7,9] mener vi at listen X består av elementene 1,3,7 og 9 i den rekkefølgen. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.12/141
Lister Siden en liste er en ordnet struktur følger det at [1,3,1,9] [1,1,9,3]. Lengden av listen X er antall elementer (ikke nødvendigvis distinkte) i X. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.13/141
Lister For n et positivt heltall eller null sier vi at et n-tuppel er en liste med lengde n. En tom liste er den (unike) listen som ikke inneholder noen elementer. Den betegnes [ ]. Er X en liste med lengde n betegnes elementene i X med X[0],X[1],...,X[n 1]. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.14/141
Lister Det kartesiske produktet av settene X og Y, betegnet X Y, er settet av alle ordnede 2-tupler der første element hentes fra X og andre element fra Y. X Y = {[x,y] : x X og y Y} Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.15/141
Lister Dersom X = {1,3,7,9} og Y = {0,2} så er: {1,3,7,9} {0,2} = {[1,0],[1,2],[3,0], [3,2],[7,0],[7,2], [9,0],[9,2]} Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.16/141
Permutasjoner Dersom X et et endelig sett med kardinalitet n, såerenpermutasjon av X en liste π med lengde n slik at hvert element i X opptrer en gang i π. Husk: Det finnes n! = n(n 1) 1 permutasjoner av et n-sett. For en positiv k < n, sies en k-permutasjon av X å være en liste π med lengde k slik at ikke noe element i X opptrer mer enn en gang i π. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.17/141
Permutasjoner Det finnes: n! (n k)! = n(n 1) (n k + 1) k-permutasjoner av et n-sett. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.18/141
Grafer En graf består av et endelig sett ν av noder og et endelig sett ε av kanter slik at hver kant er et 2-subsett av noder. En graf betegnes gjerne med (ν,ε). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.19/141
Grafer Eksempel: ν = {0,1,2,3,4,5,6,7} ε = {{0,1},{0,2},{2,3},{1,3}, {0,4},{2,5},{1,6},{3,7}, {4,5},{4,6},{6,7},{5,7}} 0 2 4 5 6 7 1 3 Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.20/141
Grafer En komplett graf er en graf der ε består av alle 2-subsett av ν. En node x sies å være del av en kant e dersom x e. Graden til en node x ν, betegnet deg(x), er lik antall kanter noden er en del av. En graf sies å være regulær med grad d dersom hver node har grad d. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.21/141
Grafer, substrukturer En Hamilton-syklus er en vei langs kantene i en graf som går innom hver node nøyaktig en gang. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.22/141
Grafer, substrukturer I grafen under beskriver listen [0,2,3,7,5,4,6,1] en Hamilton-syklus. 0 2 4 6 5 7 1 3 Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.23/141
Grafer, substrukturer En graf som inneholder en Hamilton-syklus sies a være en Hamilton-graf. Oppkalt etter Sir William Rowan Hamilton, 1805-1865, som oppfant en matematisk nøtt der en slik syklus langs kantene til et icosahedron var løsningen. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.24/141
Grafer, substrukturer Alle Platonske legemer a (også kalt regulære legemer), har en Hamilton-syklus (der hjørnene er noder). a All konvekse polyhedra med like sider dannet av kongruente, konvekse polygoner. Det finnes nøyaktig fem slike, en kube er et eksempel) Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.25/141
Grafer, substrukturer En klikk i en graf G =(ν,ε) er et subsett S ν slik at {x,y} ε for alle x,y S,x y. Evt.: En klikk i en graf G =(ν,ε) er en komplett subgraf av G. Vi betrakter det tomme sett /0 som en klikk, videre betrakter vi enhver node x ν som en klikk. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.26/141
Grafer, substrukturer En klikk er en maksimal klikk dersom den ikke er en subgraf av en større klikk. Klikken(e) med størst kardinalitet i en graf kalles maksimum klikken(e). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.27/141
Grafer, substrukturer Max klikk kardinalitet 2. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.28/141
Grafer, substrukturer Max klikk kardinalitet 3. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.29/141
Grafer, substrukturer Max klikk kardinalitet 6. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.30/141
Grafer En graf (ν,ε) er en vektet graf dersom det finnes en vekt-funksjon: assosiert med den. w : ε R Vekten av en substruktur i grafen er summen av vektene langs kantene i denne substrukturen Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.31/141
Grafer Det å finne en Hamilton-syklus med minste vekt i en graf er kjent som reisende handelsmann problemet ( travelling salesman problem ). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.32/141
Hva er en heuristisk søkealgoritme Heuristikk: Av gresk heuriskein-finne: Noe som tjener til å lete etter noe, oppdage noe. I sammenheng med søkealgoritmer: En metode for å gjøre små endringer ved en eksisterende løsning for å finne en annen løsning. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.33/141
Hva er en heuristisk søkealgoritme Endringene som gjøres innebærer nabolagssøk. En heuristisk algoritme består i å anvende en eller flere slike heuristikker. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.34/141
Hvorfor heuristisk søking? Hovedproblem: beregningstid. Backtracking gjør det mulig å gå gjennom alle mulige løsninger å finne den (eller de) optimale(e) løsningene. Det er fullt mulig å måtte løse problemer der antallet mulige løsninger er i størrelsesorden 10 1000. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.35/141
Hvorfor heuristisk søking? Hovedproblem: beregningstid. Heuristiske søkemetoder gjør ikke et uttømmende søk og dermed er det ikke sikkert at den optimale løsningen finnes. Heuristiske søkemetoder gjør oss imidlertid i stand til å løse svært store problemer tilnærmelsesvis. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.36/141
Generell heuristisk søkealgoritme, matematiske begreper Løsningene velges fra et endelig, bestemt sett χ som ofte kalles universet. En løsning X χ sies å være en mulig løsning dersom enkelte gitte betingelser er tilfredsstilt. Disse betingelsene kan skrives på formen: g j (X) 0 j,1 j m En optimal løsning er en løsning X som gir maksimal gevinst P(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.37/141
Generell heuristisk søkealgoritme, matematiske begreper Formelt står vi altså overfor et optimaliseringsproblem: Gitt et endelig sett χ. Gitt en objektivfunksjon P : χ R. Gitt randbetingelsesfunksjoner: g j : χ R,1 j m Finn den maksimale verdien av P(X) slik at X χ og slik at g j (X) 0 for 1 j m. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.38/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Nabolaget til et element X i χ består i all enkelhet av et subsett av elementene i χ. Generelt lar vi nabolaget til et element X i χ være et antall elementer som er like eller nær (i en eller annen forstand) X. Merk at N(X) kan inneholde elementer Y som ikke er mulige løsninger. Ofte er det uvesentlig om X N(X) eller ikke. En nabolagsfunksjon genererer N(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.39/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel: Anta at χ = {0,1} n, det vil si at χ består av alle binære n-tupler. Vi definerer nå: N d0 (X)={Y χ : d(x,y) d 0 } der d 0 er et eller annet positivt heltall, og der d(, ) er Hammingavstanden mellom to n-tupler. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.40/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel fortsatt: I dette tilfellet kan størrelsen på et nabolag lett bestemmes til: a N d0 = d 0 i=0 ( ) n i a Husk: ( ) n i = n! (n i)!i! Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.41/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel: Anta at χ består av alle permutasjoner av settet {1, 2,...,n}. Gitt to permutasjoner α =[α 1,α 2,...,α n ] og β =[β 1,β 2,...,β n ], la avstanden mellom dem være: d(α,β)= {i : α i β i } Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.42/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel fortsatt: Som i forrige eksempel kan vi definere: N d0 (X)={Y χ : d(x,y) d 0 } der d 0 er et positivt heltall. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.43/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel fortsatt: Merk at N 1 (X)=X, fordi to permutasjoner ikke kan avvike fra hverandre i bare en posisjon. Derimot kan to permutasjoner avvike fra hverandre i to posisjoner. Kan vise at: ( ) n N 2 (X) = 1 + 2 Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.44/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Gitt at nabolagsfunksjonen er definert kan man tenke seg mange måter å finne en ny mulig løsning i nabolaget til en mulig løsning X. Uttømmende søk. Vilkårlig søk. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.45/141
Generell heuristisk søkealgoritme, nabolagsfunksjoner Gitt at nabolagsfunksjonen er definert kan man tenke seg mange måter å finne en ny mulig løsning i nabolaget til en mulig løsning X. Mer formelt: Anta at N er en nabolagsfunksjon. Et nabolagssøk basert på N er en algoritme der input er en mulig løsning X χ, og der output er er en mulig løsning Y N(X)\{X} eller Fail. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.46/141
Generell heuristisk søkealgoritme, nabolag søkestrategier Finn en mulig løsning Y N(X) slik at P(Y) maksimeres. Returner Fail dersom ingen mulige løsninger eksisterer. Finn en mulig løsning Y N(X) slik at P(Y) maksimeres. Dersom P(Y ) > P(X), returner Y, ellers returneres Fail (bratteste oppstigning, steepest ascent ). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.47/141
Generell heuristisk søkealgoritme, nabolag søkestrategier Finn en vilkårlig mulig løsning Y N(X). Finn en vilkårlig løsning Y N(X). Dersom P(Y ) > P(X), returner Y, ellers returneres Fail. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.48/141
Generell heuristisk søkealgoritme, heuristikker Hvordan definere heuristikkene h N? Enkleste løsning: La heuristikken bestå i å gjennomføre det aktuelle nabolagssøket. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.49/141
Generell heuristisk søkealgoritme, pseudokode Forutsetninger: c max er input, N( ),h N ( ) og P( ) er eksterne c 0 velg mulig løsning X χ X best X while c c max do Y h N (X) if Y Fail then X Y if P(X) > P(X best ) then X best X end if end if c c + 1 end while return (X best ) Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.50/141
Reisende handelsmann-problemet Du er handelsmann og reiser fra by til by. Du skal ut på en ny reise og skal besøke et forhåndsbestemt antall byer. Du kjører bil så bensinutgiftene for å reise mellom to byer er proporsjonal med avstanden mellom byene. Du vil besøk hver by bare en gang. I hvilken rekkefølge skal du besøke byene for å få lavest mulig bensinkostnader? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.51/141
Reisende handelsmann-problemet Du har: En komplett graf med n noder, G =(V,E). En kostfunksjon, cost: E Z +. Finn nå en Hamilton-syklus X i G slik at: cost(x)= cost(e) e E(X) blir minimal. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.52/141
Reisende handelsmann-problemet La V = {0,1,...,n 1} være nodene i grafen G. For enkelhets skyld definerer vi: dersom x y. cost(x, y)=cost({x, y}) Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.53/141
Reisende handelsmann-problemet Vi definerer også: dersom x = y. cost(x, y)= Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.54/141
Reisende handelsmann-problemet Husk at en Hamilton-syklus kan representeres som en permutasjon av V,for eksempel: X =[x 0,x 1,...,x n 1 ] For enkelhets skyld antar vi at syklusen starter og slutter i node 0. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.55/141
Reisende handelsmann-problemet Syklusen 25103462 kan derfor representeres ved 7-tuplene: [0,3,4,6,2,5,1] eller [0,1,5,2,6,4,3] Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.56/141
Designstrategier: Fjell-klatring Den enklest mulige designstrategien. Nabolagssøket returnerer den Y N(X)\X slik at P(Y) > P(X). Dersom en slik Y ikke finnes returneres Fail. I praksis: Vi beveger oss i retning av den optimale løsningen ved å følge en sekvens av løsninger som stadig gir bedre resultat. Analogi: Den raskeste veien til toppen under fjellklatring finner du ved bestandig å klatre så bratt som mulig oppover. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.57/141
Designstrategier: Fjell-klatring, pseudokode Forutsetninger: N( ),h N ( ) og P( ) er eksterne velg mulig løsning X χ søk true while søk do Y h N (X) if Y Fail then X Y if P(X) > P(X best ) then X best X end if else søk false end if end while return(x best ) Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.58/141
Designstrategier: Fjell-klatring Hovedproblem: For enkel strategi. Kjører seg fast i nærmeste lokale maksimum. Sagt på en annen måte: Dersom P(Y) < P(X) for alle mulige løsninger Y N(X)\X vil en algoritme basert på fjell-klatring kjøre seg fast i det øyeblikk den når X. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.59/141
Designstrategier: Simulert størkning Hva er en diamant? En diamant er egentlig en løsning av et enormt komplekst optimaliseringsproblem. En diamant kan bare oppstå dersom et svært stort antall karbon-atomer finner en felles organisasjon som minimaliserer energien i den totale strukturen. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.60/141
Designstrategier: Simulert størkning Framvekst av en diamant er en tidkrevende prosess som finner sted under høy temperatur og trykk. Faller temeraturen langsomt nok kan det oppstå store diamanter. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.61/141
Designstrategier: Simulert størkning Hvordan løses dette optimaliseringsproblemet? Nøkkelen ligger i prøving og feiling. Det er hastigheten størkningen skjer med som avgjør kvaliteten og størrelsen på krystallstrukturen, langsom størkning gir høy kvaliet. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.62/141
Designstrategier: Simulert størkning Aloritmen vi nå skal diskutere har en litt spesiell historie. Den ble opprinnelig presentert i juni 1953 i artikkelen: Equation of State Calculations by Fast Computing Machines i det anerkjente tidsskriftet The Journal of Chemical Physics. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.63/141
Designstrategier: Simulert størkning En av atombombens fedre, den ungarsk-amerikanske fysikeren Edvard Teller, var medforfatter. I senere år var han mest kjent for sin aktivitet i forbindelse med det amerianske Star Wars programmet. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.64/141
Designstrategier: Simulert størkning Designstrategien simulert størkning kopierer denne prosessen. Benytter et vilkårlig nabolagssøk. Dersom h N (X)=Y er en mulig løsning og dersom P(Y) P(X) byttes X med Y (som ved fjell-klatring). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.65/141
Designstrategier: Simulert størkning Men dersom h N (X)=Y er en mulig løsning og dersom P(Y ) < P(X) byttes også X med Y med en viss sannsynlighet P. Dermed kan denne algoritmen hoppe ut av lokale minima. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.66/141
Designstrategier: Simulert størkning Hvordan velges P. Vi benytter en hjelpevariabel T, kalt temperatur. T initialiseres med verdien T 0 > 0. T reduseres så gradvis i følge en nedkjølingsprosedyre (cooling schedule, annealing schedule). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.67/141
Designstrategier: Simulert størkning Til enhver tid er sannsynligheten for å erstatte X med Y = h N (X), gitt at P(X) > P(Y ) gitt ved: (P(Y ) P(X))/T e Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.68/141
Designstrategier: Simulert størkning Sagt på en annen måte: Sannsynligheten P for å bytte X med Y = h N (X) er gitt ved: { 1,P(Y) P(X) P = e (P(Y ) P(X))/T,P(Y) < P(X) Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.69/141
Designstrategier: Simulert størkning 1 P (P(Y) P(X))/T 0 Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.70/141
Designstrategier: Simulert størkning I praksis trekkes r fra en uniform sannsynlighetsfordeling (på intervallet [0, 1]). Deretter sammenlignes r med e (P(Y ) P(X))/T og X byttes med Y dersom: (P(Y ) P(X))/T r < e Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.71/141
Designstrategier: Simulert størkning Typisk brukes en geometrisk nedkjølingsprosedyre: T n αt n 1 For store T gir dette stor sannsynlighet for å velge en Y der P(Y ) < P(X). Etter hvert som T reduseres avtar denne sannsynligheten. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.72/141
Designstrategier: Simulert størkning 1 0.5 0 Fallende T Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.73/141
Designstrategier: Simulert størkning,pseudokode Forutsetninger: cmax, T 0, α er input, N( ),h N ( ), random( ) og P( ) er eksterne c 0 T T 0 velg mulig løsning X χ X best X while c cmax do Y h N (X) if Y Fail then if P(Y ) > P(X) then X Y if P(X) > P(X best ) then X best X end if else r random(0,1) if r < e (P(Y ) P(X))/T then X Y end if end if end if c c + 1 T αt end while return(x best ) Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.74/141
Designstrategier: Tabusøk En variant av fjellklatring. Grunnleggende ide: Bytt elementet X med elementet Y N(X)\{X} slik at Y er en mulig løsning og slik at P(Y) er maksimal over alle slike elementer Y. Innebærer normalt en uttømmende søk i hele nabolaget N(X). Det kan selvfølgelig skje at P(Y ) < P(X) slik at vi unnslipper lokale maksima. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.75/141
Designstrategier: Tabusøk Fare: Etter å ha byttet X med Y er det svært sannsynlig at neste skritt vil være å bytte tilbake. Da går algoritmen inn i en uendelig løkke. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.76/141
Designstrategier: Tabusøk Problem: Vi må unngå sykler av typen: X Y X Y... X eller for eksempel: X Y Z K... X Løsning: Bruk en tabu-liste. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.77/141
Designstrategier: Tabusøk Definer en funksjon change(x,y) som beskriver endringene som må gjøres med en mulig løsning X for å få en mulig løsning Y. Dersom vi utfører endringen X Y, gjøres endringen beskrevet ved funksjonen change(y, X) ulovlig. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.78/141
Designstrategier: Tabusøk Denne ulovlige endringen legges til den såkalte tabu-listen. Endringer i tabu-listen forblir ulovlige i en viss levetid betegnet L, der L er et bestemt positivt heltall. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.79/141
Designstrategier: Tabusøk Eksempel: La χ = {0,1} n, det vil si alle n-tupler med elementer 0 og 1. La N(X)={Y χ : d(x,y)=1} Nabolaget til X bestå altså av alle n-tupler der ett element er endret i forhold til X. Derfor gjelder: N(X) = n. Definer nå: change(x,y)=i x i y i når d(x,y)=1. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.80/141
Designstrategier: Tabusøk Eksempel fotsatt: Dersom element i i en mulig løsning endres kan det ikke endres igjen før algoritmen har gjennomløpt minst L iterasjoner. Dermed ser vi at syklusen: X Y... X må ha lengde minst lik 2L. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.81/141
Designstrategier: Tabusøk Eksempel fortsatt: Merk også at N(X) vil inneholde n L lovlige (ikke-tabu) elementer. Viktig avveining: Vi vil ha L stor, samtidig må ikke L bli så stor at antallet ikke-tabu kandidater blir for redusert. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.82/141
Designstrategier: Tabusøk, pseudokode I pseudokoden som følger er tabu-listen implementert som listen TabuList der TabuList[i]= dersom er endringen som er ulovlig ved iterasjon i av algoritmen. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.83/141
Designstrategier: Tabusøk, pseudokode Heuristikken h N er definert som følger: Y N(X) Yer en mulig løsning change(x,y) /... h N (X)=Y der {TabuList[d] : i L... d i 1} P(Y)er maks. over alle slike løsninger. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.84/141
Designstrategier: Tabusøk, pseudokode Forutsetninger: imax, L er input, N( ),change( ) og P( ) er eksterne i 1 Velg en mulig løsning X χ. X best X while i imax do N N(X)\{TabuList[d] : i L d i 1} for Y N do if Y er en umulig løsning then N N\{Y } end if end for if N = /0 then exit end if finn Y N slik at P(Y) er maksimal TabuList[i] change(y, X) X Y if P(X) > P(X best ) then X best X end if i i + 1 end while return(x best ) Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.85/141
Tursekk-problemet ( knapsack problem ) Du har: En liste P med gevinster, [p 0, p 1,...,p n 1 ]. En liste W med vekter, [w 0,w 1,...,w n 1 ]. Et mål M. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.86/141
Tursekk-problemet Finn nå det n-tuppel X, [x 0,x 1,...,x n 1 ] der x i {0,1} slik at: P = n 1 i=0 p i x i blir maksimal under forutsetning av at: n 1 i=0 w i x i M Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.87/141
Fjell-klatring, tursekk-problemet Løsningene X finnes i universet χ der χ = {0,1} n, det vil si alle n-tupler bestående av bare 0 og 1. En mulig definisjon av nabolagsfunksjonen N(X) er: N d0 (X)={Y χ : d(x,y)=d 0 } der d(x,y) er Hamming-avstand mellom X og Y. Vi må velge en initial mulig løsning X 0. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.88/141
Fjell-klatring, tursekk-problemet Med d 0 = 1 har vi at: N 1 = ( ) n 1 = n Vi må velge en initial mulig løsning X 0. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.89/141
Fjell-klatring, tursekk-problemet Med utgangspunkt i X 0 gjennomsøkes dennes nabolag og den beste mulige løsningen Y N(X) finnes. Ingen garanti for at et globalt maksimum finnes. Ingen garanti for at ulike X 0 vil gi samme endelige løsning, metoden er med andre ord følsom for initialbetingelsene. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.90/141
Fjell-klatring, tursekk-problemet >> X_0=zeros(1,15); >> P=[122 2 144 133 52 172 169 50 11 87 127 31 10 132 59]; >> W=[63 1 71 73 24 79 82 23 6 43 66 17 5 65 29]; >> Cap=324; >> >> [optp,optx]=hillks(x_0,w,p,cap,1);optp optp = 172 >> [optp,optx]=hillks(x_0,w,p,cap,2);optp optp = 341 >> [optp,optx]=hillks(x_0,w,p,cap,3);optp optp = 485 >> [optp,optx]=hillks(x_0,w,p,cap,4);optp optp = 618 >> [optp,optx]=hillks(x_0,w,p,cap,5);optp optp = 649 >> [optp,optx]=hillks(x_0,w,p,cap,6);optp optp = 651 >> [optp,optx]=hillks(x_0,w,p,cap,7);optp optp = 651 >> [optp,optx]=hillks(x_0,w,p,cap,8);optp optp = 651 >> Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.91/141
Fjell-klatring, tursekk-problemet >> P=[122 2 144 133 52 172 169 50 11 87 127 31 10 132 59]; >> W=[63 1 71 73 24 79 82 23 6 43 66 17 5 65 29]; >> Cap=324; >> >> index=1; >> while(index<=1000) X_0=round(rand(1,15)); if(x_0*w <=Cap) [optp,optx]=hillks(x_0,w,p,cap,inf); OPTP(index)=optP; OPTX(index,:)=optX; index=index+1; end end >> >> nnz(optp==676) ans = 4 >> mean(optp) ans = 645.0120 >> Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.92/141
Simulert størkning, tursekk-problemet Samme problemformulering som for fjell-klatring. Forskjell: vi gjør et randomisert nabolagssøk, det vil si at vi velger vilkårlig en ny mulig løsning Y i nabolaget til X. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.93/141
Simulert størkning, tursekk-problemet Som for fjell-klatring har vi ingen garanti for at vi finner et globalt maksimum. Som for fjell-klatring har vi heller ingen garanti for at ulike X 0 vil gi samme endelige løsning, dette skyldes at nabolagssøket er randomisert. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.94/141
Simulert størkning, tursekk-problemet Vi må unngå en situasjon der initialtemperaturen er for lav. Dette fører til at algoritmen låser seg fast i et lokalt maksimum. 700 600 500 400 300 200 100 0 0 50 100 150 200 250 300 350 400 450 500 Løpende og maksimal gevinst Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.95/141
Simulert størkning, tursekk-problemet Vi må unngå en situasjon der initialtemperaturen er for lav. Dette fører til at algoritmen låser seg fast i et lokalt maksimum. 40 35 30 25 20 15 10 5 0 0 50 100 150 200 250 300 350 400 450 500 Antall valg av Y med P(Y) < P(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.96/141
Simulert størkning, tursekk-problemet Vi må også unngå en situasjon der initialtemperaturen er for høy. Dette fører til at algoritmen hopper fra løsning til løsning uten å søke gjennom nabolaget til hver løsning. 700 600 500 400 300 200 100 0 50 100 150 200 250 300 350 400 450 500 Løpende og maksimal gevinst Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.97/141
Simulert størkning, tursekk-problemet Vi må også unngå en situasjon der initialtemperaturen er for høy. Dette fører til at algoritmen hopper fra løsning til løsning uten å søke gjennom nabolaget til hver løsning. 250 200 150 100 50 0 0 50 100 150 200 250 300 350 400 450 500 Antall valg av Y med P(Y) < P(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.98/141
Simulert størkning, tursekk-problemet T 0 må avpasses i forhold til α, antallet iterasjoner samt det konkrete problemet (strukturen til gevinst-funksjonen). Dette fører til at algoritmen først hopper fra løsning til løsning for så etter hvert å eksplorere nabolaget til hver løsning grundigere.. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.99/141
Simulert størkning, tursekk-problemet 700 600 500 400 300 200 100 0 50 100 150 200 250 300 350 400 450 500 Løpende og maksimal gevinst Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.100/141
Simulert størkning, tursekk-problemet 120 100 80 60 40 20 0 0 50 100 150 200 250 300 350 400 450 500 Antall valg av Y med P(Y ) < P(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.101/141
Simulert størkning, tursekk-problemet >> P=[122 2 144 133 52 172 169 50 11 87 127 31 10 132 59]; >> W=[63 1 71 73 24 79 82 23 6 43 66 17 5 65 29]; >> Cap=324; >> >> index=1; >> while(index<=1000) X_0=round(rand(1,15)); if(x_0*w <=Cap) [optp,optx,e,opte,c]=saks(x_0,w,p,cap,500,0.99,100); OPTP(index)=optp; OPTX(index,:)=optX; index=index+1; end end >> >> nnz(optp==676) ans = 7 >> mean(optp) ans = 655.7390 >> Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.102/141
Tabu-søk, tursekk-problemet Samme problemformulering som for fjell-klatring. Forskjell: I tråd med tabu-søkstrategien velges den nye løsningen Y som den ikke-tabu løsningen i N(X) som gir størst gevinst. Dette kan altså medføre at vi velger en løsning Y som er dårligere enn X. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.103/141
Tabu-søk, tursekk-problemet Som for fjell-klatring har vi ingen garanti for at vi finner et globalt maksimum. Som for fjell-klatring har vi heller ingen garanti for at ulike X 0 vil gi samme endelige løsning. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.104/141
Tabu-søk, tursekk-problemet >> P=[122 2 144 133 52 172 169 50 11 87 127 31 10 132 59]; >> W=[63 1 71 73 24 79 82 23 6 43 66 17 5 65 29]; >> Cap=324; >> >> index=1; >> while(index<=1000) X_0=round(rand(1,15)); if(x_0*w <=Cap) [optp,optx]=tabuks(x_0,w,p,cap,200,10); OPTP(index)=optp; OPTX(index,:)=optX; index=index+1; end end >> >> nnz(optp==676) ans = 84 >> mean(optp) ans = 671.4580 >> Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.105/141
Fjell-klatring, reisende handelsmann-problemet Løsningene X finnes i universet χ der χ er alle mulige permutasjoner av ν, det vil si alle mulige permutasjoner av nodene (merk at χ = n!). Et mulig valg av nabolagsfunksjonen N(X) er å la N(X) bestå av alle permutasjoner av X der to naboelementer har byttet plass. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.106/141
Fjell-klatring, reisende handelsmann-problemet Med X =[0,1,2,3] blir N(X)={[1,0,2,3],[0,2,1,3],[0,1,3,2],[3,1,2,0]}. Merk at: N(X) = n Vi må velge en initial mulig løsning X 0. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.107/141
Fjell-klatring, reisende handelsmann-problemet Med utgangspunkt i X 0 gjennomsøkes dennes nabolag og den beste mulige løsningen Y N(X) finnes. Ingen garanti for at et globalt maksimum finnes. Ingen garanti for at ulike X 0 vil gi samme endelige løsning, metoden er med andre ord følsom for initialbetingelsene. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.108/141
Fjell-klatring, reisende handelsmann-problemet 1 1 0.8 0.8 0.6 5 1 8 7 3 0.6 5 1 8 7 3 0.4 2 6 0.4 2 6 0.2 0 0.2 0 4 4 0 0 0 0.2 0.4 0.6 0.8 1 Opprinnelig konstellasjon. 0 0.2 0.4 0.6 0.8 1 Optimal løsning med minimal kostnad 2.2134. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.109/141
Fjell-klatring, reisende handelsmann-problemet 1 1 1 1 1 0.8 0.8 0.8 0.8 0.8 0.6 5 1 8 7 3 0.6 5 1 8 7 3 0.6 5 1 8 7 3 0.6 5 1 8 7 3 0.6 5 1 8 7 3 0.4 2 6 0.4 2 6 0.4 2 6 0.4 2 6 0.4 2 6 0.2 0 0.2 0 0.2 0 0.2 0 0.2 0 4 4 4 4 4 0 0 0 0 0 0 0.2 0.4 0.6 0.8 1 Opprinnelig konstellasjon. 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 Fjellklatring, max iterasjoner,ulike X 0. Minimal kost varierer fra 2.9686 til 2.2134. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.110/141
Simulert størkning, reisende handelsmann-problemet Samme problemformulering som for fjell-klatring. Forskjell: vi gjør et randomisert nabolagssøk, det vil si at vi velger vilkårlig en ny mulig løsning Y i nabolaget til X, det vil si at vi velger en vilkårlig permutasjon av X der to naboelementer har byttet plass. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.111/141
Simulert størkning, reisende handelsmann-problemet Som for fjell-klatring har vi ingen garanti for at vi finner et globalt maksimum. Som for fjell-klatring har vi heller ingen garanti for at ulike X 0 vil gi samme endelige løsning, dette skyldes at nabolagssøket er randomisert. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.112/141
Simulert størkning, reisende handelsmann-problemet 1 1 0.8 0.8 0.6 5 1 8 7 3 0.6 5 1 8 7 3 0.4 2 6 0.4 2 6 0.2 0 0.2 0 4 4 0 0 0 0.2 0.4 0.6 0.8 1 Opprinnelig konstellasjon. 0 0.2 0.4 0.6 0.8 1 Optimal løsning med minimal kostnad 2.2134. Finnes nesten systematisk med simulert størkning, ulike X 0, 5000 iterasjoner, T 0 = 10, α = 0.999. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.113/141
Simulert størkning, reisende handelsmann-problemet 1 5 1 5 1 5 1 5 1 5 0.8 6 1 15 0.8 6 1 15 0.8 6 1 15 0.8 6 1 15 0.8 6 1 15 0.6 17 2 13 18 8 0 9 0.6 17 2 13 18 8 0 9 0.6 17 2 13 18 8 0 9 0.6 17 2 13 18 8 0 9 0.6 17 2 13 18 8 0 9 0.4 11 0.4 11 0.4 11 0.4 11 0.4 11 12 10 7 12 10 7 12 10 7 12 10 7 12 10 7 0.2 16 14 19 0.2 16 14 19 0.2 16 14 19 0.2 16 14 19 0.2 16 14 19 0 4 3 0 4 3 0 4 3 0 4 3 0 4 3 0 0.2 0.4 0.6 0.8 1 Opprinnelig konstellasjon. 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 Simulert størkning, ulike X 0, 100000 iterasjoner, T 0 = 50, α = 0.9999. Minimal kost varierer fra 5.0861 til 4.4069. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.114/141
Simulert størkning, reisende handelsmann-problemet 14 3 x 104 12 2.5 10 2 8 1.5 6 4 1 2 0.5 0 0 1 2 3 4 5 6 7 8 9 10 Løpende og minimal kost. x 10 4 0 0 1 2 3 4 5 6 7 8 9 10 x 10 4 Antall valg av Y med Cost(Y) > Cost(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.115/141
Tabu-søk, reisende handelsmann-problemet Samme problemformulering som for fjell-klatring. Forskjell: I tråd med tabu-søkstrategien velges den nye løsningen Y som den ikke-tabu løsningen i N(X) som gir minst kost. Dette kan altså medføre at vi velger en løsning Y som er dårligere enn X. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.116/141
Tabu-søk, reisende handelsmann-problemet Som for fjell-klatring har vi ingen garanti for at vi finner et globalt maksimum. Som for fjell-klatring har vi heller ingen garanti for at ulike X 0 vil gi samme endelige løsning, dette skyldes at nabolagssøket er randomisert. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.117/141
Tabu-søk, reisende handelsmann-problemet 1 5 1 16 11 1 16 11 1 16 11 1 16 11 0.8 6 1 15 0.8 17 19 6 0.8 17 19 6 0.8 17 19 6 0.8 17 19 6 0.6 17 2 13 18 8 0 9 0.6 8 15 18 4 1 0.6 8 15 18 4 1 0.6 8 15 18 4 1 0.6 8 15 18 4 1 0.4 11 0.4 0.4 0.4 0.4 0.2 12 16 10 14 7 19 0.2 12 14 0 9 2 10 5 13 0.2 12 14 0 9 2 10 5 13 0.2 12 14 0 9 2 10 5 13 0.2 12 14 0 9 2 10 5 13 0 4 3 0 7 3 0 7 3 0 7 3 0 7 3 0 0.2 0.4 0.6 0.8 1 Opprinnelig konstellasjon. 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 Tabu-søk, ulike X 0, 100000 iterasjoner, L = 18. Minimal kost varierer fra 6.7713 til 6.6351. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.118/141
Tabu-søk, reisende handelsmann-problemet 12 14 10 12 8 10 8 6 6 4 4 2 2 0 0 1 2 3 4 5 6 7 8 9 10 Løpende og minimal kost. L = 10. x 10 4 0 0 1 2 3 4 5 6 7 8 9 10 Løpende og minimal kost. L = 18. x 10 4 Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.119/141
Generelt om reisende handelsmann-problemet Det er veldig vanskelig å sammenligne ulike algoritmer. Algoritmene er følsomme for: Initialisering. Heuristikk. Parametervalg. For hver konkret problemstilling må mange ulike algoritmer, heuristikker og parametervalg prøves. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.120/141
Heuristiske søkemetoder I: Matlab-funksjoner. Alle MATLAB-funksjonene finnes på adressen: http://www.aurdalweb.com/courses.html Merk at filen README inneholder ferdige sekvenser av kommandoer som kan limes rett inn i MATLAB for å teste de ulike algoritmene. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.121/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 1: Endelige sett. a) Hva er et endelig sett? b) Er settene X = {1,5,12,8} og Y = {1,12,5,8} like? c) Er settet K = {1,5,8} et subsett av settet M = {1,5,7,12}. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.122/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 2: Endelige lister. a) Hva er en endelig liste? b) Er listene X =[1,5,12,8] og Y =[1,12,5,8] like? c) Hvordan defineres det kartesiske produktet av settene A og B. d) Anta at A = {3,9,6,4} og B = {3,5}. Hva er det kartesiske produktet av disse settene? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.123/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 3: Permutasjoner. a) Hva er en permutasjon? b) Gitt at et sett inneholder n elementer, hvor mange permutasjoner finnes det av dette settet? c) Hva er en k-permutasjon. d) Gitt at et sett inneholder n elementer, hvor mange k-permutasjoner finnes det av dette settet? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.124/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 4: Grafer. a) Hvordan er en graf definert? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.125/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 4 fortsatt: Grafer. a) Gitt grafen G definert ved (ν,ε) der: og: ν = {a,k,c,v,b} ε = {{a,k},{a,c},{a,v}, {k,c},{b,c},{b,k}, {v,c}} Hvordan ser denne grafen ut? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.126/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 4 fortsatt: Grafer. a) Er grafen i forrige slide komplett komplett? b) Hvilken grad har noden a? Er denne grafen regulær? c) Finnes det noen Hamilton-syklus i denne grafen. I så fall hvilken? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.127/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 5: Grafer. a) Hva er en klikk? b) Hva er de maksimale klikkene i grafen definert i oppgave 4? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.128/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 6: Heuristiske søkemetoder, generelt a) Hva er en heuristisk søkemetode? b) Hvorfor benyttes heuristiske søkemetoder? c) Hva er en nabolagsfunksjon? d) Gi eksempler på nabolagsfunksjoner? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.129/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 7: Heuristiske søkemetoder, generelt a) Hvordan gjennomføres et nabolagssøk? Utdyp dette med å gi eksempler på nabolag søkestrategier. b) Gi pseudokode for en generell heuristisk søkealgoritme. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.130/141
Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 8: Heuristiske søkemetoder, designstrategier. a) Gi eksempler på designstrategier for heuristiske søkemetoder. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.131/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 9: Heuristiske søkemetoder, fjellklatring. a) Fjell-klatring ( hill-climbing ) er en enkel heuristiske søkemetode. Hva består denne strategien i? b) Gi pseudokode for en algoritme som implementerer fjell-klatring. c) Hvilke fordeler og ulemper har denne strategien? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.132/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 10: Heuristiske søkemetoder, simulert størkning. a) Hva består simulert størkning ( simulated annealing ) strategien i? b) Gi pseudokode for en algoritme som implementerer simulert størkning. c) Hvilke fordeler og ulemper har denne strategien? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.133/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 11: Heuristiske søkemetoder, simulert størkning. a) Hva er en nedkjølingsprosedyre? b) Anta en geometrisk nedkjølingsprosedyre av typen: T n = αt n 1 Hva er viktig ved valg av antall iterasjoner, initialtemperatur T 0 og α? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.134/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 11 fortsatt: Heuristiske søkemetoder, simulert størkning. a) Hvordan er det såkalte reisende handelsmann ( travelling salesman ) problemet definert? b) Hvorfor brukes primært heuristiske søkemetoder for å løse dette problemet? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.135/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 12: Heuristiske søkemetoder, tabu-søk. a) Hva består tabu-søk ( tabu search ) strategien i? b) Gi pseudokode for en algoritme som implementerer tabu-søk. c) Hvilke fordeler og ulemper har denne strategien? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.136/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 13: Heuristiske søkemetoder, en liten utfordring. a) På adressen http://www.aurdalweb.com/courses.htm finner dere definisjonen av et 50-byers reisende handelsmann problem. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.137/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 13 fortsatt: Heuristiske søkemetoder, en liten utfordring. a) Byene er fordelt i planet med x- ogy -koordinater i intervallet [0, 1]. b) Benytt euklidsk avstand som avstandsmål mellom byene. c) Hvem finner den korteste syklusen mellom disse byene? Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.138/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 13 fortsatt: Heuristiske søkemetoder, en liten utfordring. a) NB: Ikke prøv uttømmende søk, det finnes 50! 3.0414 64 mulige løsninger. b) NB: Vær snill med systemene. Start tunge beregninger på tidspunkt da ikke alle andre opplever heng. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.139/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 14: Heuristiske søkemetoder, nok en utfordring. a) Ved ordinær eksamen i 2001 ble det stilt spørsmål om søkemetoder for det såkalte maks-klikk problemet. Problemet er en variant av alle-klikker problemet som består i å finne den største klikken i en graf (det vil si den klikken med flest noder, evt. med størst kardinalitet). b) Også dette problemet er NP-komplett. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.140/141
Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 14 fortsatt: Heuristiske søkemetoder, nok en utfordring. a) På adressen http://www.aurdalweb.com/courses.htm finner dere definisjonen av en 50 noders graf. b) Hvem finner den største klikken i denne grafen? c) Ved ordinær eksamen i 2001 ba vi om løsninger basert på simulert størkning. d) NB: Vær snill med systemene. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.141/141