Heuristiske søkemetoder II



Like dokumenter
Heuristiske søkemetoder I: Simulert størkning og tabu-søk

Heuristiske søkemetoder I

Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, kontinuasjonseksamen

Oversikt. Heuristisk søk 1. Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk. Prinsipper og metoder

Heuristisk søk 1. Prinsipper og metoder

Heuristiske søkemetoder II: Simulert størkning og tabu-søk

INF1010 notat: Binærsøking og quicksort

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

IN2010: Forelesning 11. Kombinatorisk søking Beregnbarhet og kompleksitet

MAT1030 Plenumsregning 1

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk

MAT1030 Diskret matematikk

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

MAT1030 Diskret matematikk

Notat for oblig 2, INF3/4130 h07

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

Oppsummering fra sist

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

Løsnings forslag i java In115, Våren 1998

MAT1030 Diskret Matematikk

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Løsningsforslag: Deloppgave om heuristiske søkemetoder

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

TMA4140 Diskret Matematikk Høst 2016

TDT4105 Informasjonsteknologi, grunnkurs

Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf

Norsk informatikkolympiade runde

Dynamisk programmering Undervises av Stein Krogdahl

MAT1030 Forelesning 25

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

Grunnleggende Grafteori

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

MAT1030 Forelesning 2

INF-MAT Geir Hasle - Leksjon 3 2

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Grunnleggende Grafalgoritmer II

Forelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf

Repetisjon. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 15: Rekursjon og induksjon. Roger Antonsen

Algoritmer og Datastrukturer IAI 21899

MAT1030 Diskret Matematikk

6. oktober Dagens program: Første time: Andre time, gjesteforelesning: Uavgjørbarhet. Stein Krogdahl. (Ikke pensum, egne foiler legges ut)

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

MAT1030 Forelesning 25

Maks Flyt og NPkompletthet

LØSNINGSFORSLAG ØVING 2 - APPROKSIMERING AV TSP

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

TDT4110 IT Grunnkurs Høst 2014

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Oppgave 1. Sekvenser (20%)

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Ikke lineære likninger

Løsningsforslag for utvalgte oppgaver fra kapittel 9

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Norsk informatikkolympiade runde

Mengder, relasjoner og funksjoner

UNIVERSITETET I OSLO

MAT1030 Diskret Matematikk

Velkommen til MAT1030!

Kompleksitetsteori reduksjoner

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder

INF Algoritmer og datastrukturer

Søking i strenger. Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen

Informasjon Eksamen i IN1000 høsten 2017

INF1010. Sekvensgenerering Alle mulige sekvenser av lengde tre av tallene 0, 1 og 2: Sekvensgenerering. Generalisering. n n n! INF1010 INF1010 INF1010

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

TDT4165 PROGRAMMING LANGUAGES. Exercise 02 Togvogn-skifting

Steg 1: Rest etter divisjon

Transkript:

Heuristiske søkemetoder II Lars Aurdal Intervensjonssenteret Lars.Aurdal@labmed.uio.no 4. september 23

Plan Hva er en heuristisk søkealgoritme? Hvorfor heuristiske søkealgoritmer framfor tilbakenøsting? Generell heuristisk søkealgoritme Noen matematiske begreper. Nabolags-funksjoner. Generell algoritme.

Plan Designstrategier Fjell-klatring ( Hill climbing ). Simulert størkning ( Simulated annealing ). Tabu-søk ( Tabu search ). Eksempler. Tursekk-problemet (knapsack problem). Reisende handelsmann (travelling salesman). 2

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. Endringene som gjøres innebærer nabolagssøk. En heuristisk algoritme består i å anvende en eller flere slike heuristikker. 3

Hvorfor heuristisk søking framfor tilbakenøsting? Hovedproblem: beregningstid. Tilbakenøsting går gjennom alle mulige løsninger og finner garantert 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. 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. 4

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) j, j m En optimal løsning er en løsning X som gir maksimal gevinst P(X). 5

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, j m Finn den maksimale verdien av P(X) slik at X χ og slik at g j (X) for j m. 6

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). 7

Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel: Anta at χ = {,} n, det vil si at χ består av alle binære n-tupler. Vi definerer nå: N d (X) = {Y χ : d(x,y) d } der d er et eller annet positivt heltall, og der d(, ) er Hammingavstanden mellom to n- tupler. I dette tilfellet kan størrelsen på et nabolag lett bestemmes til: N d = d i= ( ) n i 8

Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel: Anta at χ består av alle permutasjoner av settet {,2,...,n}. Gitt to permutasjoner α = [α,α 2,...,α n ] og β = [β,β 2,...,β n ], la avstanden mellom dem være: d(α,β) = {i : α i β i } Som i forrige eksempel kan vi definere: N d (X) = {Y χ : d(x,y) d } der d er et positivt heltall. 9

Generell heuristisk søkealgoritme, nabolagsfunksjoner Eksempel fortsatt: Merk at N (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 2 (X) = + ( ) n 2

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. 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.

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 ). 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. 2

Generell heuristisk søkealgoritme, heuristikker Hvordan definere heuristikkene h N? Enkleste løsning: La heuristikken bestå i å gjennomføre det aktuelle nabolagssøket. 3

Generell heuristisk søkealgoritme, pseudokode Require: c max { N( ),h N ( ) og P( ) er eksterne} : c 2: velg mulig løsning X χ 3: X best X 4: while c c max do 5: Y h N (X) 6: if Y Fail then 7: X Y 8: if P(X) > P(X best ) then 9: X best X : end if : end if 2: c c+ 3: end while 4: return(x best ) 4

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. 5

Designstrategier: Fjell-klatring, pseudokode Require: { N( ),h N ( ) og P( ) er eksterne} : velg mulig løsning X χ 2: søk true 3: while søk do 4: Y h N (X) 5: if Y Fail then 6: X Y 7: if P(X) > P(X best ) then 8: X best X 9: else : søk false : end if 2: end if 3: end while 4: return(x best ) 6

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. 7

Designstrategier: Simulert størkning 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. 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. 8

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. 9

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 fjellklatring). 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. 2

Designstrategier: Simulert størkning Hvordan velges P. Vi benytter en hjelpevariabel T, kalt temperatur. T initialiseres med verdien T >. T reduseres så gradvis i følge en nedkjølingsprosedyre (cooling schedule, annealing schedule). Til enhver tid er sannsynligheten for å erstatte X med Y = h N (X), gitt at P(X) > P(Y) gitt ved: e (P(Y) P(X))/T 2

Designstrategier: Simulert størkning Sagt på en annen måte: Sannsynligheten P for å bytte X med Y = h N (X) er gitt ved: P = {,P(Y) P(X),P(Y) < P(X) e (P(Y) P(X))/T P (P(Y) P(X))/T 22

Designstrategier: Simulert størkning I praksis trekkes r fra en uniform sannsynlighetsfordeling (på intervallet [, ]). Deretter sammenlignes r med e (P(Y) P(X))/T og X byttes med Y dersom: r < e (P(Y) P(X))/T 23

Designstrategier: Simulert størkning Typisk brukes en geometrisk nedkjølingsprosedyre: T n αt n For store T gir dette stor sannsynlighet for å velge en Y der P(Y) < P(X). Etter hvert som T reduseres avtar denne sannsynligheten. 24

Designstrategier: Simulert størkning.8 P.6.4.2 Minskende T 25

Designstrategier: Simulert størkning,pseudokode Require: c max, T, α { N( ),h N ( ), random( ) og P( ) er eksterne} : c 2: T T 3: velg mulig løsning X χ 4: X best X 5: while c c max do 6: Y h N (X) 7: if Y Fail then 8: if P(Y) > P(X) then 9: X Y : if P(X) > P(X best ) then : X best X 2: end if 3: else 4: r random(, ) 5: if r < e (P(Y) P(X))/T then 6: X Y 7: end if 8: end if 9: end if 26

2: c c+ 2: T αt 22: end while 23: return(x best ) 27

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. 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. 28

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. 29

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. 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. 3

Designstrategier: Tabusøk Eksempel: La χ = {,} n, det vil si alle n-tupler med elementer og. La N(X) = {Y χ : d(x,y) = } 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) =. 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. 3

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. 32

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. Heuristikken h N er definert som følger: h N (X) = Y der Y N(X) Y er en mulig løsning change(x,y) /... {TabuList[d] : i L... d i } P(Y)er maks. over alle slike løsninger. 33

Designstrategier: Tabusøk, pseudokode Require: i max, L { N( ),change( ) og P( ) er eksterne} : i 2: Velg en mulig løsning X χ. 3: X best X 4: while i i max do 5: N N(X)\{TabuList[d] : i L d i } 6: for Y N do 7: if Y er en umulig løsning then 8: N N\{Y} 9: end if : end for : if N = / then 2: exit 3: end if 4: finn Y N slik at P(Y) er maksimal 5: TabuList[i] change(y, X) 6: X Y 7: if P(X) > P(X best ) then 8: X best X 9: end if 34

2: i i+ 2: end while 22: return(x best ) 35

Tursekk-problemet ( knapsack problem ) Du har: En liste P med gevinster, [p, p,..., p n ]. En liste W med vekter, [w,w,...,w n ]. Et mål M. Finn nå det n-tuppel X, [x,x,...,x n ] der x i {,} slik at: P = n i= p i x i blir maksimal under forutsetning av at: n w i x i M i= 36

Fjell-klatring, tursekk-problemet Løsningene X finnes i universet χ der χ = {,} n, det vil si alle n-tupler bestående av bare og. En mulig definisjon av nabolagsfunksjonen N(X) er: N d (X) = {Y χ : d(x,y) = d } der d(x,y) er Hamming-avstand mellom X og Y.Med d = har vi at: N = ( ) n = n Vi må velge en initial mulig løsning X. 37

Fjell-klatring, tursekk-problemet Med utgangspunkt i X 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 vil gi samme endelige løsning, metoden er med andre ord følsom for initialbetingelsene. 38

Fjell-klatring, tursekk-problemet >> X_=zeros(,5); >> P=[22 2 44 33 52 72 69 5 87 27 3 32 59]; >> W=[63 7 73 24 79 82 23 6 43 66 7 5 65 29]; >> Cap=324; >> >> [optp,optx]=hillks(x_,w,p,cap,);optp optp = 72 >> [optp,optx]=hillks(x_,w,p,cap,2);optp optp = 34 >> [optp,optx]=hillks(x_,w,p,cap,3);optp optp = 485 >> [optp,optx]=hillks(x_,w,p,cap,4);optp optp = 68 >> [optp,optx]=hillks(x_,w,p,cap,5);optp optp = 649 >> [optp,optx]=hillks(x_,w,p,cap,6);optp optp = 65 >> [optp,optx]=hillks(x_,w,p,cap,7);optp optp = 65 >> [optp,optx]=hillks(x_,w,p,cap,8);optp optp = 65 >> 39

Fjell-klatring, tursekk-problemet >> P=[22 2 44 33 52 72 69 5 87 27 3 32 59]; >> W=[63 7 73 24 79 82 23 6 43 66 7 5 65 29]; >> Cap=324; >> >> index=; >> while(index<=) X_=round(rand(,5)); if(x_*w <=Cap) [optp,optx]=hillks(x_,w,p,cap,inf); OPTP(index)=optP; OPTX(index,:)=optX; index=index+; end end >> >> nnz(optp==676) ans = 4 >> mean(optp) ans = 645.2 >> 4

Simulert størkning, tursekk-problemet Samme problemformulering som for fjellklatring. 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. 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 vil gi samme endelige løsning, dette skyldes at nabolagssøket er randomisert. 4

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. 56 54 52 5 48 46 44 42 4 2 3 4 5 6 7 8 9 Løpende og maksimal gevinst 3 2.5 2.5.5 2 3 4 5 6 7 8 9 Antall valg av Y med P(Y) < P(X). 42

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. 7 6 5 4 3 2 2 3 4 5 6 7 8 9 Løpende og maksimal gevinst 5 45 4 35 3 25 2 5 5 2 3 4 5 6 7 8 9 Antall valg av Y med P(Y) < P(X). 43

Simulert størkning, tursekk-problemet T 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.. 44

Simulert størkning, tursekk-problemet 7 6 5 4 3 2 2 3 4 5 6 7 8 9 Løpende og maksimal gevinst 3 25 2 5 5 2 3 4 5 6 7 8 9 Antall valg av Y med P(Y) < P(X). 45

Simulert størkning, tursekk-problemet >> P=[22 2 44 33 52 72 69 5 87 27 3 32 59]; >> W=[63 7 73 24 79 82 23 6 43 66 7 5 65 29]; >> Cap=324; >> >> index=; >> while(index<=) X_=round(rand(,5)); if(x_*w <=Cap) [optp,optx,e,opte,c]=saks(x_,w,p,cap,5,.99,); OPTP(index)=optp; OPTX(index,:)=optX; index=index+; end end >> >> nnz(optp==676) ans = 7 >> mean(optp) ans = 655.739 >> 46

Tabu-søk, tursekk-problemet Samme problemformulering som for fjellklatring. 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. 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 vil gi samme endelige løsning. 47

Tabu-søk, tursekk-problemet >> P=[22 2 44 33 52 72 69 5 87 27 3 32 59]; >> W=[63 7 73 24 79 82 23 6 43 66 7 5 65 29]; >> Cap=324; >> >> index=; >> while(index<=) X_=round(rand(,5)); if(x_*w <=Cap) [optp,optx]=tabuks(x_,w,p,cap,2,); OPTP(index)=optp; OPTX(index,:)=optX; index=index+; end end >> >> nnz(optp==676) ans = 84 >> mean(optp) ans = 67.458 >> 48

Reisende handelsmann-problemet ( travelling salesman problem ) Du er handelsmann og reiser fra by til by og selger produktene dine. 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? 49

Reisende handelsmann-problemet Du har: komplett graf med n noder, G = (V,E). En kostfunksjon, cost: E R +. Finn nå en Hamilton-syklus X i G slik at: blir minimal. cost(x) = cost(e) e E(X) 5

Reisende handelsmann-problemet La V = {,,...,n } være nodene i grafen G. For enkelhets skyld definerer vi: cost(x, y) = cost({x, y}) dersom x y. Vi definerer også: cost(x,y) = dersom x = y. 5

Reisende handelsmann-problemet Husk at en Hamilton-syklus kan representeres som en permutasjon av V, for eksempel: X = [x,x,...,x n ] For enkelhets skyld antar vi at syklusen starter og slutter i node. Syklusen 253462 kan derfor representeres ved 7-tuplene: [,3,4,6,2,5,] eller [,,5,2,6,4,3] 52

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. Med X = {,,2,3} blir N(X)={{,,2,3}, {,2,,3},{,,3,2},{3,,2,}}. Merk at: N(X) = n Vi må velge en initial mulig løsning X. 53

Fjell-klatring, reisende handelsmann-problemet Med utgangspunkt i X 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 vil gi samme endelige løsning, metoden er med andre ord følsom for initialbetingelsene. 54

Fjell-klatring, reisende handelsmann-problemet.8 7 6 4.6 2.4 3 8 5.2.2.4.6.8 Opprinnelig konstellasjon..8 7 6 4.6 2.4 3 8 5.2.2.4.6.8 Optimal løsning, minimal kostnad 2.67. 55

Fjell-klatring, reisende handelsmann-problemet.8 7 6 4.6 2 8.4 3 5.2.2.4.6.8 Optimal løsning.8 6 4.8 6 4 7 7.6 2.6 2 8 8.4 3.4 3 5 5.2.2.2.4.6.8.2.4.6.8.8 6 4.8 6 4 7 7.6 2.6 2 8 8.4 3.4 3 5 5.2.2.2.4.6.8.2.4.6.8 Fjellklatring, max iterasjoner,ulike X Minimal kost varierer fra 3.774 til 2.67. 56

Simulert størkning, reisende handelsmann-problemet Samme problemformulering som for fjellklatring. 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. 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 vil gi samme endelige løsning, dette skyldes at nabolagssøket er randomisert. 57

Simulert størkning, reisende handelsmann-problemet.8 8 7.6.4 3 5 4.2 6 2.2.4.6.8 Opprinnelig konstellasjon..8 8 7.6.4 3 5 4.2 6 2.2.4.6.8 Optimal løsning. Finnes nesten systematisk med simulert størkning, ulike X, iterasjoner, T =, α =.999. 58

Simulert størkning, reisende handelsmann-problemet 3.8 7 9 2 4 2 4 5.6 9 5 6 3.4 8.2 8 7 6.2.4.6.8 Opprinnelig konstellasjon. 3 3.8 7 9 2 4 2 4.8 7 9 2 4 2 4 5 5.6 9 5 6 3.6 9 5 6 3.4 8.4 8.2.2 8 7 8 7 6 6.2.4.6.8.2.4.6.8 3 3.8 7 9 2 4 2 4.8 7 9 2 4 2 4 5 5.6 9 5 6 3.6 9 5 6 3.4 8.4 8.2.2 8 7 8 7 6 6.2.4.6.8.2.4.6.8 Simulert størkning, ulike X, 6 iterasjoner, T =, α =.999998. Minimal kost varierer fra 4.4994 til 5.8664. 59

Simulert størkning, reisende handelsmann-problemet 4 2 8 6 4 2.2.4.6.8.2.4.6.8 2 x 4 Løpende og minimal kost 2 8 6 4 2.2.4.6.8.2.4.6.8 2 x 4 Antall valg av Y med Cost(Y) > Cost(X). 6

Tabu-søk, reisende handelsmann-problemet Samme problemformulering som for fjellklatring. 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. 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 vil gi samme endelige løsning, dette skyldes at nabolagssøket er randomisert. 6

Tabu-søk, reisende handelsmann-problemet 6 4 6 5.8 9 4 7.6 2 5 2 8 7.4.2 9 3 3 8.2.4.6.8 Opprinnelig konstellasjon. 6 6 4 6 5 4 6 5.8 9 4 7.8 9 4 7.6 2 5 2 8 7.6 2 5 2 8 7.4.4.2 9 3.2 9 3 3 8 3 8.2.4.6.8.2.4.6.8 6 6 4 6 5 4 6 5.8 9 4 7.8 9 4 7.6 2 5 2 8 7.6 2 5 2 8 7.4.4.2 9 3.2 9 3 3 8 3 8.2.4.6.8.2.4.6.8 Tabu-søk, ulike X, iterasjoner, L = 8. Minimal kost varierer fra 5.649 til 5.8978. 62

Tabu-søk, reisende handelsmann-problemet 9 8 7 6 5 4 3 2 2 3 4 5 6 7 8 9 Løpende og minimal kost. L =. 2 8 6 4 2 2 3 4 5 6 7 8 9 Løpende og minimal kost. L = 8. 63

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. 64

Heuristiske søkemetoder II: Foreløpig pensum Pensum er innholdet i disse transparentene. Transparentene finnes (.ps og.pdf format) på adressen: http://www.idi.ntnu.no/ lau/ Disse transparentene er i sterk grad basert på boken: Combinatorial Algorithms, Generation, Enumeration and Search av Donlad Kreher og Douglas R. Stinson, CRC Press 999, ISBN - 8493-3988-X. 65

Heuristiske søkemetoder II: Matlab-funksjoner. Alle MATLAB-funksjonene finnes på adressen: http://www.idi.ntnu.no/ lau/ Merk at filen README inneholder ferdige sekvenser av kommandoer som kan limes rett inn i MATLAB for å teste de ulike algoritmene. 66

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave : Heuristiske søkemetoder, generelt. Hva er en heuristisk søkemetode? 2. Hvorfor benyttes heuristiske søkemetoder? 3. Hva er en nabolagsfunksjon? 4. Gi eksempler på nabolagsfunksjoner? 67

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 2: Heuristiske søkemetoder, generelt. Hvordan gjennomføres et nabolagssøk? Utdyp dette med å gi eksempler på nabolag søkestrategier. 2. Gi pseudokode for en generell heuristisk søkealgoritme. 68

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 3: Heuristiske søkemetoder, designstrategier.. Gi eksempler på designstrategier for heuristiske søkemetoder. 69

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 4: Heuristiske søkemetoder, fjellklatring.. Fjell-klatring ( hill-climbing ) er en enkel heuristiske søkemetode. Hva består denne strategien i? 2. Gi pseudokode for en algoritme som implementerer fjell-klatring. 3. Hvilke fordeler og ulemper har denne strategien? 7

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 5: Heuristiske søkemetoder, simulert størkning.. Hva består simulert størkning ( simulated annealing ) strategien i? 2. Gi pseudokode for en algoritme som implementerer simulert størkning. 3. Hvilke fordeler og ulemper har denne strategien? 7

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 6: Heuristiske søkemetoder, simulert størkning.. Hva er en nedkjølingsprosedyre? 2. Anta en geometrisk nedkjølingsprosedyre av typen: T n = αt n Hva er viktig ved valg av antall iterasjoner, initialtemperatur T og α? 3. Hvordan er det såkalte reisende handelsmann ( travelling salesman ) problemet definert? 4. Hvorfor brukes primært heuristiske søkemetoder for å løse dette problemet? 72

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 7: Heuristiske søkemetoder, tabusøk.. Hva består tabu-søk ( tabu search ) strategien i? 2. Gi pseudokode for en algoritme som implementerer tabu-søk. 3. Hvilke fordeler og ulemper har denne strategien? 73

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 8: Heuristiske søkemetoder, en liten utfordring.. På adressen http://www.idi.ntnu.no/ lau/ finner dere definisjonen av et 5-byers reisende handelsmann problem. 2. Byene er fordelt i planet med x- og y - koordinater i intervallet [, ]. 3. Benytt euklidsk avstand som avstandsmål mellom byene. 4. Hvem finner den korteste syklusen mellom disse byene? 5. NB: Ikke prøv uttømmende søk, det finnes 5! 3.44 64 mulige løsninger. 6. NB: Vær snill med systemene. Start tunge beregninger på tidspunkt da ikke alle andre opplever heng. 74

Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 8: Heuristiske søkemetoder, nok en utfordring.. Ved ordinær eksamen i 2 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). 2. Også dette problemet er NP-komplett. 3. På adressen http://www.idi.ntnu.no/ lau/ finner dere definisjonen av en 5 noders graf. 4. Hvem finner den største klikken i denne grafen? 5. Ved ordinær eksamen i 2 ba vi om løsninger basert på simulert størkning. 6. NB: Vær snill med systemene. 75