Heuristiske søkemetoder II

Størrelse: px
Begynne med side:

Download "Heuristiske søkemetoder II"

Transkript

1 Heuristiske søkemetoder II Lars Aurdal Intervensjonssenteret 4. september 23

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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

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

13 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

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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

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

27 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

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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

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

37 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

38 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

39 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

40 Fjell-klatring, tursekk-problemet >> X_=zeros(,5); >> P=[ ]; >> W=[ ]; >> 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

41 Fjell-klatring, tursekk-problemet >> P=[ ]; >> W=[ ]; >> 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 = >> 4

42 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

43 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 Antall valg av Y med P(Y) < P(X). 42

44 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 Antall valg av Y med P(Y) < P(X). 43

45 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

46 Simulert størkning, tursekk-problemet Løpende og maksimal gevinst Antall valg av Y med P(Y) < P(X). 45

47 Simulert størkning, tursekk-problemet >> P=[ ]; >> W=[ ]; >> 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 = >> 46

48 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

49 Tabu-søk, tursekk-problemet >> P=[ ]; >> W=[ ]; >> 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 = >> 48

50 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

51 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

52 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

53 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 kan derfor representeres ved 7-tuplene: [,3,4,6,2,5,] eller [,,5,2,6,4,3] 52

54 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

55 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

56 Fjell-klatring, reisende handelsmann-problemet Opprinnelig konstellasjon Optimal løsning, minimal kostnad

57 Fjell-klatring, reisende handelsmann-problemet Optimal løsning Fjellklatring, max iterasjoner,ulike X Minimal kost varierer fra til

58 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

59 Simulert størkning, reisende handelsmann-problemet Opprinnelig konstellasjon Optimal løsning. Finnes nesten systematisk med simulert størkning, ulike X, iterasjoner, T =, α =

60 Simulert størkning, reisende handelsmann-problemet Opprinnelig konstellasjon Simulert størkning, ulike X, 6 iterasjoner, T =, α = Minimal kost varierer fra til

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

62 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

63 Tabu-søk, reisende handelsmann-problemet Opprinnelig konstellasjon Tabu-søk, ulike X, iterasjoner, L = 8. Minimal kost varierer fra til

64 Tabu-søk, reisende handelsmann-problemet Løpende og minimal kost. L = Løpende og minimal kost. L = 8. 63

65 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

66 Heuristiske søkemetoder II: Foreløpig pensum Pensum er innholdet i disse transparentene. Transparentene finnes (.ps og.pdf format) på adressen: 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 X. 65

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

68 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

69 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

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

71 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

72 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

73 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

74 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

75 Heuristiske søkemetoder II: Øvingsoppgaver Oppgave 8: Heuristiske søkemetoder, en liten utfordring.. På adressen 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! mulige løsninger. 6. NB: Vær snill med systemene. Start tunge beregninger på tidspunkt da ikke alle andre opplever heng. 74

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

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

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

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

!"!#$ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

INF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere

INF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere INF 4130 1. oktober 2009 Stein Krogdahl Dagens program: Første time: Kap 23.5: Trær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer (Ikke

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

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

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

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

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

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

Dynamisk programmering Undervises av Stein Krogdahl

Dynamisk programmering Undervises av Stein Krogdahl Dynamisk programmering Undervises av Stein Krogdahl 5. september 2012 Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist) Kapittel 9 er lagt ut på undervisningsplanen.

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

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

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,

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

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

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

INF-MAT 5380 - Geir Hasle - Leksjon 3 2

INF-MAT 5380 - Geir Hasle - Leksjon 3 2 Leksjon 3 !"#$ Eksempler på DOP Alternative representasjoner Definisjon nabolag, -operator Lokalsøk Definisjon lokalt optimum Eksakt nabolag Prosedyre for lokalsøk Traversering av nabolagsgraf Kommentarer,

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

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

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som

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

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

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

Repetisjon. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 15: Rekursjon og induksjon. Roger Antonsen MAT1030 Diskret Matematikk Forelesning 15: og induksjon Roger Antonsen Institutt for informatikk, Universitetet i Oslo Repetisjon 11. mars 2009 (Sist oppdatert: 2009-03-10 20:38) MAT1030 Diskret Matematikk

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

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

6. oktober Dagens program: Første time: Andre time, gjesteforelesning: Uavgjørbarhet. Stein Krogdahl. (Ikke pensum, egne foiler legges ut) Dagens program: Første time: INF 4130 6. oktober 2011 Stein Krogdahl Kap 23.5: Spilltrær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer

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

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

Maks Flyt og NPkompletthet

Maks Flyt og NPkompletthet Maks Flyt og NPkompletthet Flyt - Intro Mange av oppgavene om flyt handler om å se at Dette kan vi løse som et flytproblem. Resten er som regel kortsvarsoppgaver, og går på grunnleggende forståelse av

Detaljer

Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist)

Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist) Dynamisk programmering Undervises av Stein Krogdahl 5. september 2012 Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist) Kapittel 9 er lagt ut på undervisningsplanen.

Detaljer

LØSNINGSFORSLAG ØVING 2 - APPROKSIMERING AV TSP

LØSNINGSFORSLAG ØVING 2 - APPROKSIMERING AV TSP LØSNINGSFORSLAG ØVING 2 - APPROKSIMERING AV TSP Approksimering av Travling Salesman Problem er her illustrert vha. en genetisk algoritme (GA). Den grunnlegge metaforen for en genetisk algoritme er evolusjon

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

TDT4110 IT Grunnkurs Høst 2014

TDT4110 IT Grunnkurs Høst 2014 TDT4110 IT Grunnkurs Høst 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Øving 10 Denne øvingen er en to-ukers øving (prosjekt) og inneholder én

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

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

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 7. desember, 06 Eksamenstid

Detaljer

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

Overview. Heuristic search 1. Target function and optimization. Minimum vertex cover Overview Heuristic search Combinatorial optimization Local search and simulated annealing Population-based search Principles and methods Pål Sætrom Traveling sales person (TSP) Combinatorial optimization

Detaljer

Ikke lineære likninger

Ikke lineære likninger Ikke lineære likninger Opp til nå har vi studert lineære likninger og lineære likningsystemer. 1/19 Ax = b Ax b = 0. I en dimensjon, lineære likninger kan alltid løses ved hjelp av formler: ax + b = 0

Detaljer

Løsningsforslag for utvalgte oppgaver fra kapittel 9

Løsningsforslag for utvalgte oppgaver fra kapittel 9 Løsningsforslag for utvalgte oppgaver fra kapittel 9 9.2 1 Grafer og minne.......................... 1 9.2 4 Omvendt graf, G T......................... 2 9.2 5 Kompleksitet............................

Detaljer

INF 3/ oktober : Avslutte Branch and Bound 23.6: Trær og strategier for spill med to spillere

INF 3/ oktober : Avslutte Branch and Bound 23.6: Trær og strategier for spill med to spillere INF 3/4130 18. oktober 2007 Dagens forelesning: Kapittel 23 i hovedboka 23.5: Avslutte Branch and Bound 23.6: Trær og strategier for spill med to spillere Oblig 2 har ligget ute en stund. Frist 26 oktober.

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

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

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.

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. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5 Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære om begrepet løkker

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

Norsk informatikkolympiade runde

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

Detaljer

Mengder, relasjoner og funksjoner

Mengder, relasjoner og funksjoner MAT1030 Diskret Matematikk Forelesning 15: og induksjon Dag Normann Matematisk Institutt, Universitetet i Oslo Mengder, relasjoner og funksjoner 9. mars 2010 (Sist oppdatert: 2010-03-09 14:18) MAT1030

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side Det matematisk-naturvitenskapelige fakultet Prøveekasmen 2007, med svarforslag Eksamen i: INF 330/430: Algoritmer: Design og effektivitet Eksamensdag: Fredag. desember 200 Tid

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo 13. januar 2009 (Sist oppdatert: 2009-01-14 16:44) Velkommen

Detaljer

Velkommen til MAT1030!

Velkommen til MAT1030! MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo Velkommen til MAT1030! 13. januar 2009 (Sist oppdatert:

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

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

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Hashtabeller Lars Vidar Magnusson 12.2.2014 Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Dictionaries Mange applikasjoner trenger dynamiske sett som bare har dictionary oparsjonene

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

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

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 6: Grafer Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 1 / 31 Dagens plan:

Detaljer

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

Søking i strenger. Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen Søking i strenger Vanlige søkealgoritmer (on-line-søk) Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen Indeksering av

Detaljer

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

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl SIF8010 2003-08-09 Stud.-nr: Antall sider: 1 Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas, tlf.

Detaljer

Informasjon Eksamen i IN1000 høsten 2017

Informasjon Eksamen i IN1000 høsten 2017 Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om

Detaljer

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

INF1010. Sekvensgenerering Alle mulige sekvenser av lengde tre av tallene 0, 1 og 2: Sekvensgenerering. Generalisering. n n n! INF1010 INF1010 INF1010 Sekvensgenerering Alle mulige sekvenser av lengde tre av tallene, og : Kombinatorisk søking Generering av permutasjoner Lett: Sekvensgenerering Vanskelig: Alle tallene må være forskjellige Eksempel: Finne

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.

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

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

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

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

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3 Oppsummering av Uke 3 MAT1030 Diskret matematikk Forelesning 3: Mer om representasjon av tall Dag Normann Matematisk Institutt, Universitetet i Oslo 21. januar 2008 Mandag 14.01 og delvis onsdag 16.01

Detaljer

TDT4165 PROGRAMMING LANGUAGES. Exercise 02 Togvogn-skifting

TDT4165 PROGRAMMING LANGUAGES. Exercise 02 Togvogn-skifting TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 02 Togvogn-skifting Problembeskrivelse Du er sjef for å skifte vognene til et tog. Vi antar at hver vogn selv har en motor og at toget ikke har noe lokomotiv.

Detaljer

Steg 1: Rest etter divisjon

Steg 1: Rest etter divisjon Primtall og effektivitet Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon I matematikktimene

Detaljer