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

Størrelse: px
Begynne med side:

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

Transkript

1 Heuristiske søkemetoder I: Simulert størkning og tabu-søk Lars Aurdal Norsk regnesentral Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.1/141

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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}} Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.20/141

21 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

22 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

23 Grafer, substrukturer I grafen under beskriver listen [0,2,3,7,5,4,6,1] en Hamilton-syklus Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.23/141

24 Grafer, substrukturer En graf som inneholder en Hamilton-syklus sies a være en Hamilton-graf. Oppkalt etter Sir William Rowan Hamilton, , 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

25 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

26 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

27 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

28 Grafer, substrukturer Max klikk kardinalitet 2. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.28/141

29 Grafer, substrukturer Max klikk kardinalitet 3. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.29/141

30 Grafer, substrukturer Max klikk kardinalitet 6. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.30/141

31 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

32 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

33 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

34 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

35 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 Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.35/141

36 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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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) = Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.44/141

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

53 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

54 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

55 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

56 Reisende handelsmann-problemet Syklusen 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

57 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

58 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

59 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

60 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

61 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

62 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

63 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

64 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

65 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

66 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

67 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

68 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

69 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

70 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

71 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

72 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

73 Designstrategier: Simulert størkning Fallende T Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.73/141

74 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

75 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

76 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

77 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

78 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

79 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

80 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

81 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

82 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

83 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

84 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

85 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

86 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

87 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

88 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

89 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

90 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

91 Fjell-klatring, tursekk-problemet >> X_0=zeros(1,15); >> P=[ ]; >> W=[ ]; >> 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

92 Fjell-klatring, tursekk-problemet >> P=[ ]; >> W=[ ]; >> 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 = >> Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.92/141

93 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

94 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

95 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 Løpende og maksimal gevinst Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.95/141

96 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 Antall valg av Y med P(Y) < P(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.96/141

97 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 Løpende og maksimal gevinst Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.97/141

98 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 Antall valg av Y med P(Y) < P(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.98/141

99 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

100 Simulert størkning, tursekk-problemet Løpende og maksimal gevinst Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.100/141

101 Simulert størkning, tursekk-problemet Antall valg av Y med P(Y ) < P(X). Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.101/141

102 Simulert størkning, tursekk-problemet >> P=[ ]; >> W=[ ]; >> 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 = >> Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.102/141

103 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

104 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

105 Tabu-søk, tursekk-problemet >> P=[ ]; >> W=[ ]; >> 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 = >> Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.105/141

106 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

107 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

108 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

109 Fjell-klatring, reisende handelsmann-problemet Opprinnelig konstellasjon Optimal løsning med minimal kostnad Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.109/141

110 Fjell-klatring, reisende handelsmann-problemet Opprinnelig konstellasjon Fjellklatring, max iterasjoner,ulike X 0. Minimal kost varierer fra til Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.110/141

111 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

112 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

113 Simulert størkning, reisende handelsmann-problemet Opprinnelig konstellasjon Optimal løsning med minimal kostnad Finnes nesten systematisk med simulert størkning, ulike X 0, 5000 iterasjoner, T 0 = 10, α = Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.113/141

114 Simulert størkning, reisende handelsmann-problemet Opprinnelig konstellasjon Simulert størkning, ulike X 0, iterasjoner, T 0 = 50, α = Minimal kost varierer fra til Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.114/141

115 Simulert størkning, reisende handelsmann-problemet 14 3 x Løpende og minimal kost. x 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

116 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

117 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

118 Tabu-søk, reisende handelsmann-problemet Opprinnelig konstellasjon Tabu-søk, ulike X 0, iterasjoner, L = 18. Minimal kost varierer fra til Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.118/141

119 Tabu-søk, reisende handelsmann-problemet Løpende og minimal kost. L = 10. x Løpende og minimal kost. L = 18. x 10 4 Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.119/141

120 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

121 Heuristiske søkemetoder I: Matlab-funksjoner. Alle MATLAB-funksjonene finnes på adressen: 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

122 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

123 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

124 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

125 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

126 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

127 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

128 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

129 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

130 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

131 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

132 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

133 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

134 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

135 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

136 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

137 Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 13: Heuristiske søkemetoder, en liten utfordring. a) På adressen finner dere definisjonen av et 50-byers reisende handelsmann problem. Heuristiske søkemetoder I:Simulert størkning ogtabu-søk p.137/141

138 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

139 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! 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

140 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

141 Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 14 fortsatt: Heuristiske søkemetoder, nok en utfordring. a) På adressen 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

Heuristiske søkemetoder II

Heuristiske søkemetoder II 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?

Detaljer

Heuristiske søkemetoder I

Heuristiske søkemetoder I Heuristiske søkemetoder I Lars Aurdal Intervensjonssenteret Lars.Aurdal@labmed.uio.no 14. september 2003 Plan Hva slags søkemetoder snakker vi om? Kombinatoriske strukturer. Sett. Lister. Grafer. Søkealgoritmer

Detaljer

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

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2001, ordinær eksamen 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

Detaljer

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

Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, ordinær eksamen Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, ordinær eksamen 14. september 2003 Deloppgave a 50-års jubileet for simulert størkning: I juni 1953 publiserte fire amerikanske fysikere,

Detaljer

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

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2002, ordinær eksamen Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 00, ordinær eksamen 1. september 003 Innledning Vi skal betrakte det såkalte grafdelingsproblemet (graph partitioning problem). Problemet kan

Detaljer

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

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2002, kontinuasjonseksamen Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2002, kontinuasjonseksamen 14. september 2003 Innledning Vi skal betrakte det såkalte maksimum-kutt problemet (maximum cut problem). Problemet

Detaljer

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

Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, kontinuasjonseksamen Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, kontinuasjonseksamen 1. september 2003 Deloppgave a I denne oppgaven skal vi ta for oss isomorfismer mellom grafer. To grafer G og H

Detaljer

Heuristiske søkemetoder III

Heuristiske søkemetoder III Heuristiske søkemetoder III Lars Aurdal Intervensjonssenteret Lars.Aurdal@labmed.uio.no 14. september 2003 Plan Eksempel: Bildebehandling, segmentering: Hva er segmentering? Klassisk metode, terskling.

Detaljer

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

Oversikt. Heuristisk søk 1. Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk. Prinsipper og metoder Oversikt Heuristisk søk Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk Prinsipper og metoder Pål Sætrom Traveling sales person (TSP) Kombinatorisk optimering Trondheim

Detaljer

Heuristisk søk 1. Prinsipper og metoder

Heuristisk søk 1. Prinsipper og metoder Heuristisk søk Prinsipper og metoder Oversikt Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk Traveling sales person (TSP) Tromsø Bergen Stavanger Trondheim Oppdal Oslo

Detaljer

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

Heuristiske søkemetoder II: Simulert størkning og tabu-søk Heuristiske søkemetoder II: Simulert størkning og tabu-søk Lars Aurdal Norsk regnesentral lars@aurdalweb.com Heuristiske søkemetoder II:Simulert størkning ogtabu-søk p.1/141 Hva er tema for disse forelesningene?

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 3: Ukeoppgaver fra kapittel 2 & 3 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 31. januar 2008 Oppgave 2.7 - Horners metode (a) 7216 8 : 7 8+2 58

Detaljer

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

IN2010: Forelesning 11. Kombinatorisk søking Beregnbarhet og kompleksitet IN2010: Forelesning 11 Kombinatorisk søking Beregnbarhet og kompleksitet KOMBINATORISK SØKING Oversikt Generering av permutasjoner Lett: Sekvens-generering Vanskelig: Alle tallene må være forskjellige

Detaljer

MAT1030 Plenumsregning 3

MAT1030 Plenumsregning 3 MAT1030 Plenumsregning 3 Ukeoppgaver Mathias Barra - 30. januar 2009 (Sist oppdatert: 2009-02-02 14:26) Plenumsregning 3 Oppgave 2.7 - Horners metode (a) 7216 8 : 7 8+2 58 8+1 465 8+6 3726. Svar: 3726

Detaljer

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet Forelesning 23 Grafteori Dag Normann - 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og noder kan være naboer. Vi bør kjenne til begrepene om sammenhengende

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og

Detaljer

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori Oppsummering MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 En graf består av noder og kanter Kanter ligger inntil noder, og

Detaljer

LO118D Forelesning 9 (DM)

LO118D Forelesning 9 (DM) LO118D Forelesning 9 (DM) Grafteori 26.09.2007 1 Introduksjon 2 Veier og sykler 3 Hamiltonsykler og omreisende handelsmenn Graf, urettet Definisjon En graf (eller urettet graf) G består av en mengde V

Detaljer

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

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo Forelesning 25 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) MAT1030 Diskret Matematikk 27. april

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 27. april 2010 (Sist oppdatert: 2010-04-27 14:15) Forelesning 25 MAT1030 Diskret Matematikk 27. april

Detaljer

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

Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave MAT1030 Diskret matematikk Forelesning 24: Grafer og trær Dag Normann Matematisk Institutt, Universitetet i Oslo 21. april 2008 Vi har snakket om grafer og trær. Av begreper vi så på var Eulerkretser og

Detaljer

TMA4140 Diskret Matematikk Høst 2016

TMA4140 Diskret Matematikk Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag TMA4140 Diskret Matematikk Høst 2016 Seksjon 10.2 18 La G = (V,E) være en enkel graf med V 2. Ettersom G er enkel er de mulige

Detaljer

INF1010 notat: Binærsøking og quicksort

INF1010 notat: Binærsøking og quicksort INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.

Detaljer

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

Løsnings forslag i java In115, Våren 1998 Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker

Detaljer

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

!!#$ INF-MAT Geir Hasle - Leksjon 2 2 Leksjon 2 !"!#$ Kursinformasjon Motivasjon Operasjonsanalyse Kunstig intelligens Optimeringsproblemer (diskrete) Matematisk program COP Definisjon DOP Anvendelser Kompleksitetsteori Eksakte metoder, approksimasjonsmetoder

Detaljer

MAT1030 Forelesning 25

MAT1030 Forelesning 25 MAT1030 Forelesning 25 Trær Dag Normann - 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende: Eulerstier

Detaljer

MAT1030 Forelesning 24

MAT1030 Forelesning 24 MAT1030 Forelesning 24 Grafteori og trær Roger Antonsen - 28. april 2009 (Sist oppdatert: 2009-04-28 22:32) Forelesning 24 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og

Detaljer

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

Forelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf Forelesning 24 Grafer og trær Dag Normann - 21. april 2008 Vi har snakket om grafer og trær. Av begreper vi så på var Eulerkretser og Eulerstier Hamiltonkretser Minimale utspennende trær. Vi skal nå se

Detaljer

Kompleksitetsteori reduksjoner

Kompleksitetsteori reduksjoner Kompleksitetsteori reduksjoner En slags liten oversikt, eller huskeliste, for kompleksitetsteorien i INF 4130. Ikke ment å være verken fullstendig eller detaljert, men kanskje egnet til å gi noen knagger

Detaljer

MAT1030 Forelesning 25

MAT1030 Forelesning 25 MAT1030 Forelesning 25 Trær Roger Antonsen - 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende. Eulerstier

Detaljer

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann MAT1030 Diskret Matematikk Forelesning 24: Grafer og trær Dag Normann Matematisk Institutt, Universitetet i Oslo Grafteori 21. april 2010 (Sist oppdatert: 2010-04-21 12:55) MAT1030 Diskret Matematikk 21.

Detaljer

Grunnleggende Grafteori

Grunnleggende Grafteori Grunnleggende Grafteori 2. September, 2019 Institutt for Informatikk 1 Dagens plan Terminologi og definisjoner Hvordan representere grafer i datamaskinen Traversering Dybde-først-søk Bredde-først-søk Topologisk

Detaljer

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

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon Repetisjon og mer motivasjon MAT030 Diskret matematikk Forelesning 22: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 4. april 2008 Først litt repetisjon En graf består av noder og

Detaljer

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

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen MAT1030 Diskret Matematikk Forelesning 25: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 25 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) MAT1030 Diskret Matematikk

Detaljer

Forelesning 30: Kompleksitetsteori

Forelesning 30: Kompleksitetsteori MAT1030 Diskret Matematikk Forelesning 30: Kompleksitetsteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 30: Kompleksitetsteori 19. mai 2009 (Sist oppdatert: 2009-05-19

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske

Detaljer

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

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon Innledning MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske

Detaljer

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Kombinatorikk 14. april 2010 (Sist oppdatert: 2010-04-14 12:43) MAT1030 Diskret Matematikk 14.

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 14. april 2010 (Sist oppdatert: 2010-04-14 12:42) Kombinatorikk MAT1030 Diskret Matematikk 14.

Detaljer

MAT1030 Forelesning 22

MAT1030 Forelesning 22 MAT1030 Forelesning 22 Grafteori Dag Normann - 14. april 2010 (Sist oppdatert: 2010-04-14 12:45) Kombinatorikk Oppsummering av regneprinsipper Ordnet utvalg med repetisjon: n r Ordnet utvalg uten repetisjon:

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 3. desember 2012 Eksamenstid 0900 1300 Sensurdato 3. januar 2013 Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer

Norsk informatikkolympiade runde

Norsk informatikkolympiade runde Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

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

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon

Detaljer

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

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11 Forelesning 33 Repetisjon Dag Normann - 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske repetisjonen av MAT1030. Det som gjensto var kapitlene 11 om trær og

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 18. august 2011 Eksamenstid 0900 1300 Sensurdato 8. september Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer

Matematisk morfologi III

Matematisk morfologi III Matematisk morfologi III Lars Aurdal Norsk regnesentral Lars.Aurdal@nr.no 4. desember 2003 Copyright Lars Aurdal, NTNU/NR Oversikt, kursdag 3 Sammensatte operasjoner: Hit-or-miss-transformen. Skjeletter.

Detaljer

MAT1030 Plenumsregning 1

MAT1030 Plenumsregning 1 MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 7. desember 2013 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode Målform/språk

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi, grunnkurs 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Anders Christensen (anders@idi.ntnu.no) Rune Sætre (satre@idi.ntnu.no) TDT4105 IT Grunnkurs 2 Pensum Matlab-boka: 12.3 og 12.5 Stoffet

Detaljer

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

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf Oppgave 3 3 a IN1020 Algoritmer og datastrukturer orelesning 15: Gjennomgang av eksamen vår 2001 oppgave 3 Arild Waaler Institutt for informatikk, Universitetet i Oslo 11. desember 2006 Oppgave 3 a. Antagelser

Detaljer

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs TDT4125 2010-06-03 Kand-nr: 1/5 Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs Eksamensdato 3. juni 2010 Eksamenstid 0900 1300 Sensurdato 24. juni Språk/målform Bokmål Kontakt under

Detaljer

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

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner Forelesning 14 og induksjon Dag Normann - 27. februar 2008 Oppsummering Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger. Vi snakket videre om funksjoner.

Detaljer

MAT1030 Forelesning 22

MAT1030 Forelesning 22 MAT1030 Forelesning 22 Grafteori Roger Antonsen - 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) Introduksjon Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt rundt oss!

Detaljer

Oppgave 1. Sekvenser (20%)

Oppgave 1. Sekvenser (20%) Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet

Detaljer

Algoritmer og Datastrukturer IAI 21899

Algoritmer og Datastrukturer IAI 21899 Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk

Detaljer

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf Introduksjon MAT13 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 28 Vi skal nå over til kapittel 1 & grafteori. Grafer fins overalt rundt

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 2008 Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt

Detaljer

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen MAT1030 Diskret Matematikk Forelesning 22: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Introduksjon 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) MAT1030 Diskret Matematikk

Detaljer

Notat for oblig 2, INF3/4130 h07

Notat for oblig 2, INF3/4130 h07 Notat for oblig 2, INF3/4130 h07 Dag Sverre Seljebotn 15. oktober 2007 Jeg har skrivd et noe langt notat for oblig 2 som interesserte kan se på. Merk at dette er kun for å gi et par tips (for oppgave 3

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 14: Rekursjon og induksjon Dag Normann Matematisk Institutt, Universitetet i Oslo 27. februar 2008 Oppsummering Mandag repeterte vi en del om relasjoner, da spesielt

Detaljer

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

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder Grådige Algoritmer Lars Vidar Magnusson 12.3.2014 Kapittel 16 Grådige algoritmer Aktivitetvelgingsproblemet Huffmankoder Ideen bak Grådige Algoritmer Ideen bak grådige algoritmer er å løse optimaliseringsproblem

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang

Detaljer

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

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke) KONTROLLSTRUKTURER MAT1030 Diskret matematikk Forelesning 2: Flere pseudokoder. Representasjoner av tall. Dag Normann Matematisk Institutt, Universitetet i Oslo 16. januar 2008 Mandag innførte vi pseudokoder

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk Oppgave 1.1 MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Modifiser algoritmen fra 1.2.1 slik at

Detaljer

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

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 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 14. mai 1998 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg:

Detaljer

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer Forelesning 2 Flere pseudokoder. Representasjoner av tall. Dag Normann - 16. januar 2008 KONTROLLSTRUKTURER Mandag innførte vi pseudokoder og kontrollstrukturer. Vi hadde tre typer grunn-instruksjoner:

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Oppgave 1.1 Modifiser algoritmen fra 1.2.1 slik at

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 29: Kompleksitetsteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo 13. mai 2009 (Sist oppdatert: 2009-05-17 22:38) Forelesning 29: Kompleksitetsteori

Detaljer

Forelesning 29: Kompleksitetsteori

Forelesning 29: Kompleksitetsteori MAT1030 Diskret Matematikk Forelesning 29: Kompleksitetsteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 29: Kompleksitetsteori 13. mai 2009 (Sist oppdatert: 2009-05-17

Detaljer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017 Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Grunnleggende Grafalgoritmer II

Grunnleggende Grafalgoritmer II Grunnleggende Grafalgoritmer II Lars Vidar Magnusson March 17, 2015 Kapittel 22 Dybde-først søk Topologisk sortering Relasjonen til backtracking Dybde-Først Søk Dybde-først søk i motsetning til et bredde-først

Detaljer

Kap 9 Tre Sist oppdatert 15.03

Kap 9 Tre Sist oppdatert 15.03 Kap 9 Tre Sist oppdatert 15.03 Definere et tre som en datastruktur. Definere begreper knyttet til tre. Diskutere mulige implementasjoner av tre Analysere implementasjoner av tre som samlinger. Diskutere

Detaljer

INF-MAT-5380

INF-MAT-5380 INF-MAT-5380 http://www.uio.no/studier/emner/matnat/ifi/inf-mat5380/ Leksjon 2 Leksjon 1: Oppsummering Kursinformasjon Motivasjon Operasjonsanalyse Kunstig intelligens Optimeringsproblemer (diskrete) Matematisk

Detaljer

MAT1030 Forelesning 2

MAT1030 Forelesning 2 MAT1030 Forelesning 2 Kontrollstrukturer, tallsystemer, basis Dag Normann - 20. januar 2010 (Sist oppdatert: 2010-01-20 12:31) Kapittel 1: Algoritmer (fortsettelse) Kontrollstrukturer I går innførte vi

Detaljer

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 14. desember 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 6 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Obligatorisk oppgavesett 1 MAT1120 H16

Obligatorisk oppgavesett 1 MAT1120 H16 Obligatorisk oppgavesett MAT0 H6 Innleveringsfrist: torsdag /09 06, innen kl 4.30. Besvarelsen leveres på Matematisk institutt, 7. etasje i N.H. Abels hus. Husk å bruke forsiden som du finner via hjemmesiden.

Detaljer

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

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 2: Kontrollstrukturer, tallsystemer, basis Roger Antonsen Institutt for informatikk, Universitetet i Oslo 14. januar 2009 (Sist oppdatert: 2009-01-14 16:45) Kapittel

Detaljer

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

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre i programmet Fra tastatur:

Detaljer

Backtracking som løsningsmetode

Backtracking som løsningsmetode Backtracking Backtracking som løsningsmetode Backtracking brukes til å løse problemer der løsningene kan beskrives som en sekvens med steg eller valg Kan enten finne én løsning eller alle løsninger Bygger

Detaljer

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

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

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

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030 MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk

Detaljer

MAT1030 Forelesning 28

MAT1030 Forelesning 28 MAT1030 Forelesning 28 Kompleksitetsteori Roger Antonsen - 12. mai 2009 (Sist oppdatert: 2009-05-13 08:12) Forelesning 28: Kompleksitetsteori Introduksjon Da er vi klare (?) for siste kapittel, om kompleksitetsteori!

Detaljer

København 20 Stockholm

København 20 Stockholm UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

Løsningsforslag: Deloppgave om heuristiske søkemetoder

Løsningsforslag: Deloppgave om heuristiske søkemetoder Løsigsforslag: Deloppgave om heuristiske søkemetoder 6. mai 00 Iledig Vi skal betrakte det såkalte grafdeligsproblemet (graph partitioig problem). Problemet ka ekelt formuleres som følger: Gitt e graf

Detaljer

LØSNINGSFORSLAG EKSAMEN V06, MA0301

LØSNINGSFORSLAG EKSAMEN V06, MA0301 Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag Side 1 av 7 LØSNINGSFORSLAG EKSAMEN V06, MA0301 Oppgave 1 a) Sett opp en sannhetsverditabell(truth table) for det logiske uttrykket

Detaljer

Korteste vei problemet (seksjon 15.3)

Korteste vei problemet (seksjon 15.3) Korteste vei problemet (seksjon 15.3) Skal studere et grunnleggende kombinatorisk problem, men først: En (rettet) vandring i en rettet graf D = (V, E) er en følge P = (v 0, e 1, v 1, e 2,..., e k, v k

Detaljer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016 Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

Oppsummering fra sist

Oppsummering fra sist 1 av 34 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Terje Rydland - IDI/NTNU 2 av 34 Oppsummering fra sist Betingelser i Python: ,

Detaljer

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

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på. Go with the Niende forelesning Mye matematikk i boka her ikke så komplisert, men mye å holde styr på. Fokuserer på de viktigste ideene i dagens forelesning, så det forhåpentligvis blir lettere å skjønne

Detaljer

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

Korteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei I Lars Vidar Magnusson 9.4.2014 Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei Problemet I denne forelesningen skal vi se på hvordan vi kan finne korteste

Detaljer

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

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl TDT4120 2003-12-09 Stud.-nr: Antall sider: 1/7 Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas,

Detaljer

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105) Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 Faglig kontakt under eksamen: Magnus Lie Hetland LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 8: Ukeoppgaver Mathias Barra Matematisk institutt, Universitetet i Oslo 6. mars 2009 (Sist oppdatert: 2009-03-06 19:11) Oppgave 5.9 La A = {a, b, c} og B = {p,

Detaljer

MAT Oblig 1. Halvard Sutterud. 22. september 2016

MAT Oblig 1. Halvard Sutterud. 22. september 2016 MAT1110 - Oblig 1 Halvard Sutterud 22. september 2016 Sammendrag I dette prosjektet skal vi se på anvendelsen av lineær algebra til å generere rangeringer av nettsider i et web basert på antall hyperlinker

Detaljer

Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori. MAT030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Grafteori 20. april 200 (Sist oppdatert: 200-04-20 4:8) MAT030 Diskret Matematikk 20. april 200

Detaljer