Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2001, ordinær eksamen

Like dokumenter
Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2002, kontinuasjonseksamen

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

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2002, ordinær eksamen

Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, ordinær eksamen

Heuristiske søkemetoder II

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

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

Heuristisk søk 1. Prinsipper og metoder

Heuristiske søkemetoder I

Heuristiske søkemetoder III

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

!"!#$ INF-MAT Geir Hasle - Leksjon 2 2

Løsningsforslag: Deloppgave om heuristiske søkemetoder

INF-MAT-5380

INF-MAT Geir Hasle - Leksjon 3 2

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

45011 Algoritmer og datastrukturer Løsningsforslag eksamen 13. januar 1992

G høgskolen i oslo. Emnekode:!;_unstiq intelliqens lv 145A Gruppe(r) : Dato: Tillatte

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

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

EKSAMEN med løsningsforslag

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

NP-komplett, hva nå?

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer IAI 21899

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Algoritmer og Datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Overview. Heuristic search 1. Target function and optimization. Minimum vertex cover

Grunnleggende Grafalgoritmer III

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

Newtons metode er en iterativ metode. Det vil si, vi lager en funksjon. F x = x K f x f' x. , x 2

Matematikk Øvingsoppgaver i numerikk leksjon 5 for-løkker

UNIVERSITETET I OSLO

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

LØSNINGSFORSLAG. EKSAMEN I SIO 4060 PROSESSINTEGRASJON Lørdag 10. mai 2003 Q H 190 C 180 C R C 170 C 900 kw R C 140 C 100 C 90 C

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

UNIVERSITETET I OSLO

ALGORITMER OG DATASTRUKTURER

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

EKSAMEN. Algoritmer og datastrukturer

INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/ , (lille aud.)

MAT1030 Diskret matematikk

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

UNIVERSITETET I OSLO

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.

Plenumsregning 12. Diverse oppgaver. Roger Antonsen mai Eksamen 12/6-06 Oppgave 2. Plan

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

MAT1030 Plenumsregning 3

Notat for oblig 2, INF3/4130 h07

LP. Leksjon 8: Kapittel 13: Nettverk strøm problemer, forts.1

Øvingsforelesning 12 Maks flyt

UNIVERSITETET I OSLO

Oppgave 1. Sekvenser (20%)

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2

Oversikt. Branch-and-bound. Hvordan løse NP-hard kombinatorisk optimering? Eks: Eksakt Min Vertex cover. Mulige løsninger representert som søketre

TMA4140 Diskret Matematikk Høst 2016

UNIVERSITETET I OSLO

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

INF-MAT-5380

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Løsningsforslag EKSAMEN

INF1010 notat: Binærsøking og quicksort

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO

MAT1030 Diskret matematikk

Forelesning 30. Kompleksitetsteori. Dag Normann mai Informasjon. Oppsummering

Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser

ALGORITMER OG DATASTRUKTURER

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3.

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

A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen

Løsningsforslag for utvalgte oppgaver fra kapittel 9

Oppgave 1 - Linux kommandolinje (%)

MAT-INF 2360: Obligatorisk oppgave 3

Dynamisk programmering

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

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

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

MAT1030 Diskret matematikk

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

Grunnleggende Grafalgoritmer II

MAT1030 Diskret matematikk

Øvingsforelesning 6. Sorteringsalgoritmer. Kristian Veøy

Hva legger vi i spillteori?

Korteste Vei I. Lars Vidar Magnusson Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei

UNIVERSITETET I OSLO

Heuristisk søking (kap. 4) Emner: Kunstig intelligens (MNFIT-272) Forelesning 4

Transkript:

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 21, ordinær eksamen 14. september 23 Innledning En klikk i en graf G er en komplett subgraf av G. Det såkalte maksimum-klikk problemet består i å finne en klikk i G med maksimal kardinalitet. Maksimum klikk problemet er N-komplett og for store grafer må man løse dette problemet med heuristiske søkemetoder. Universet består av alle mulige subsett av nodene i grafen G, mulige løsninger består av alle subsett av noder i grafen G som utgjør klikker. Deloppgave a Hva er en heuristisk søkemetode? Hva er fordelene og ulempene med heuristiske søkemetoder. Når ønsker man å benytte slike metoder. Gi eksempler på ulike designstrategier. Løsningsforslag deloppgave a En heuristisk søkemetode er en optimaliseringsalgoritme som anvender en eller flere heuristikker for å lete etter en optimal løsning på et gitt optimaliseringsproblem. Ordet heuristikk kommer av det greske ordet heuriskein som betyr å finne. I sammenheng med søkealgoritmer benyttes gjerne ordet heuristikk for å indikere en algoritme for å gjøre (små) endringer ved en eksisterende løsning for om mulig å finne en bedre løsning. Heuristiske søkemetoder anvendes typisk på optimaliseringsproblemer der universet χ er så stort at et uttømmende søk blant alle mulige løsninger er uøkonomisk eller umulig. Den store fordelen ved heuristiske søkemetoder er at de kan anvendes på nettopp slike problemer, de finner ofte gode (om ikke optimale) løsninger på problemer med enorme universer. Den største ulempen er naturligvis at man ikke har noen garanti for at den optimale løsningen finnes. Videre er det ofte ikke trivielt å fastsette de ulike parametrene som styrer de forskjellige heuristiske søkemetodenes ytelse. Valg av søkealgoritme og tilsvarende parametre krever ofte betydelig eksperimentering. Det finnes et stort antall ulike designstrategier, for eksempel fjell-klatring (hill climbing), simulert størkning (simulated annealing) og tabu-søk (tabu search). 1

Deloppgave b Du har bestemt deg for å angripe maksimum-klikk problemet med den såkalte simulert størkning (simulated annealing) algoritmen. I grafen du arbeider med er det 5 noder. Som mål for optimaliteten til en mulig løsning X velger du kardinaliteten til X, det vil si (X) = X. Anta at du har en algoritme som løser maksimum klikk problemet basert på simulert størkning. Anta at denne algoritmen benytter målet for optimalitet gitt over. Du har bestemt deg for å bruke 3 iterasjoner og en geometrisk nedkjølingsprosedyre med α = 96. Du vurderer tre ulike initialtemperaturer, henholdsvis: T = 1, T = 1 og T = 1. Hvilken T bør du velge. Argumenter for valget ditt. Illustrer. Løsningsforslag deloppgave b Gitt målet for optimalitet ser vi at avviket mellom to løsninger X og Y der (Y ) < (X) vil ligge i intervallet[ 49, 1]. Vi ønsker et størkningsforløp der man initielt har stor sannsynlighet for valg av løsninger Y der (Y ) < (X). Mot slutten av størkningsforløpet ønsker man at slike valg skal bli mindre og mindre sannsynlige. La oss derfor plotte sannsynligheten for et slikt valg,, som funksjon av antall iterasjoner for tre ulike. Husk at med simulert størkning er gitt ved: = exp( T ) i det tilfelle at <. La oss se på forløpene for = 5, = 3 og = 49. Figurene 1, 2 og 3 viser disse forløpene. Legg merke til at med T = 1 vil vi for all verdier av innledningsvis ha for lav sannsynlighet for å velge en løsningy der (Y ) < (X), algoritmen vil derfor låse seg fast i et lokalt maksimum. Ved T = 1 er det motsatte tilfelle, ved slutten av iterasjonene vil sannsynligheten for å velge en mindre optimal løsning være for høy, dette resulterer i et randomisert søk etter en mulig bedre løsning. Det er bare initialtemperatur T = 1 som gir det ønskede forløpet, tidlig i iterasjonene har valg av løsninger Y der (Y ) < (X) stor sannsynlighet, ved slutten av iterasjonene vil et slikt valg være lite sannsynlig. Derfor vil algoritmen først lete randomisert i universet, etterhvert som en en bedre og bedre løsning finnes utforskes dennes nabolag mer og mer grundig. Deloppgave c Gi pseudokode for en løsning på maksimum-klikk problemet basert på simulert størkning. Forklar strategien du velger. Løsningsforslag deloppgave c La oss først definere et par hjelpefunksjoner vi trenger for å implementere løsningen vår: getrandnode: Denne funksjonen tar som input en liste noder og returnerer en vilkårlig valgt node blant disse. 2

nodesconnectedto: Denne funksjonen tar som input en liste L 1 noder samt grafen G og returnerer en ny liste L 2 noder fra G der alle noder i L 2 har en kant til minst en node i L 1. intersectnodes: Denne funksjonen tar som input to lister noder og returnerer en liste med noder som finnes i begge listene. Løsningsstrategien vår er som følger: 1. Velg vilkårlig en node n 1 blant alle nodene i grafen. Dette er vår opprinnelige løsning X. Dette er også vår opprinnelige beste løsningx opt. 2. Generer en liste L 1 med noder i grafen som har en kant til en eller flere noder i X. 3. Velg et vilkårlig element n 2 fra L 1. 4. Den nye løsningen Y er nå Y = {n 2 inersectnodes(nodesconnectedto(n 2, G), oldm)}. Dette er altså listen sammensatt av den nye løsningen n 2 og alle de noder i den eksisterende løsningen som har en kant til n 2. Merk at vi nå kan være sikre på at den nye løsningen er en klikk, alle nodene i den eksisterende løsningen var jo forbundet parvis med kanter, dessuten har vi valgt n 2 slik at den har en kant til alle de nodene i den gamle løsningen som overføres til den nye. 5. Dersom (Y ) (X) (husk (X) = X ) setter vi X = Y. Dersom (X) > (X opt ) setter vi også X opt = X. 6. Dersom (Y ) < (X) lar vi allikevel X = Y med en sannsynlighet proporsjonal med exp[((y ) (X))/T] der T er temperatur, alt dette fullstendig i tråd med simulert størkning strategien. 7. Iterer fra 2 intil det maksimale antallet iterasjoner er nådd. Med denne strategien blir pseudokoden derfor som vist i figur 4. Merk at det selvfølgelig finnes mange varianter av denne og lignende strategier. 3

1 Figur 1: Størkningsforløp for = 5 ved initialtemperatur T = 1, T = 1 1 Figur 2: Størkningsforløp for = 3 ved initialtemperatur T = 1, T = 1 4

1 Figur 3: Størkningsforløp for = 49 ved initialtemperatur T = 1, T = 1 Require: G, c max, T, α {getrandnode( ), nodesconnectedto(, ), intersectnodes(, ), randomu( ) og ( ) er eksterne} 1: c 2: T T 3: X getrandn ode(g) 4: X best X 5: while c c max do 6: Y nodesconnectedt o(x, G) 7: Y getrandnode(y ) 8: Y {Y intersectn odes(nodesconnectedt o(y, G), X)} 9: if (Y ) > (X) then 1: X Y 11: if (X) > (X best ) then 12: X best X 13: end if 14: else 15: r randomu(, 1) 16: if r < e ((Y ) (X))/T then 17: X Y 18: end if 19: end if 2: c c + 1 21: T αt 22: end while 23: return(x best ) Figur 4: seudokode for løsning av maksimum klikk problemet basert å simulert størkning 5