Heuristiske søkemetoder I

Størrelse: px
Begynne med side:

Download "Heuristiske søkemetoder I"

Transkript

1 Heuristiske søkemetoder I Lars Aurdal Intervensjonssenteret Lars.Aurdal@labmed.uio.no 14. september 2003

2 Plan Hva slags søkemetoder snakker vi om? Kombinatoriske strukturer. Sett. Lister. Grafer. Søkealgoritmer Tilbakenøsting ( Backtracking ). Tilbakenøsting med beskjæring ( Backtracking with pruning ). Tilbakenøsting med begrensningsfunksjoner ( Backtracking with bounding functions ). 1

3 Plan Eksempler: Tursekk-problemet (knapsack problem). Finn alle klikker i en graf. Reisende handelsmann (travelling salesman). 2

4 Hva slags søkemetoder snakker vi om? Vi skal fokusere på algoritmer som opererer på kombinatoriske strukturer. Slike strukturer er: Sett. Lister. Grafer. etc. 3

5 Hva slags søkemetoder snakker vi om? Algoritmer som opererer på 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 (ekstremale) kombinatoriske strukturer. 4

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

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

8 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. x X x Y Vi skriver dette X Y. Et k-subsett av Y er et subsett av Y med kardinalitet k. 7

9 Lister En (endelig) liste er en ordnet samling objekter som kalles elementene i listen. Vi benytter hakeparenteser rundt objektene i settet: [ ]. 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. 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. 8

10 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]. 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 } 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]} 9

11 Permutasjoner Dersom X et et endelig sett med kardinalitet n, så er en permutasjon 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 π. Det finnes: n! (n k)! = n(n 1) (n k+1) k-permutasjoner av et n-sett. 10

12 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 (ν,ε). 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}}

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

14 Grafer, substrukturer En Hamilton-syklus er en vei langs kantene i en graf som går innom hver node nøyaktig en gang. I grafen under beskriver listen [0,2,3,7,5,4,6,1] en Hamilton-syklus

15 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. Alle Platonske legemer 1 (også kalt regulære legemer), har en Hamilton-syklus (der hjørnene er noder). 1 All konvekse polyhedra med like sider dannet av kongruente, konvekse polygoner. Det finnes nøyaktig fem slike, en kube er et eksempel) 14

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

17 Grafer, substrukturer 16

18 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 Det å finne en Hamilton-syklus med minste vekt i en graf er kjent som reisende handelsmann problemet ( travelling salesman problem ). 17

19 Tilbakenøsting (backtracking) Tilbakenøsting er en rekursiv metode for trinnvis å bygge opp mulige løsninger på kombinatoriske problemer. Utfører uttømmende søk, det vil si at alle løsninger genereres. Vil alltid finne den (eller de) optimale løsningen(e). Skal også betrakte metoder (såkalt pruning ) for å begrense antallet løsninger som betraktes. 18

20 Tursekk-problemet ( knapsack problem ) Du skal på fjelltur og vil bære maksimalt 20 kg i sekken. Du har gjort klart et stort utvalg utstyr. Du kjenner vekten på hver gjenstand. Du har assosiert en faktor med hver gjenstand som beskriver hvor viktig denne gjenstanden er for gjennomføringen av turen. Hvordan skal du velge gjenstander slik at vekten blir under 20 kg, men samtidig slik at summen av viktighetsfaktorene blir maksimal? Sagt på en annen måte, hvordan skal du få med deg flest mulig viktige ting, under forutsetning av at du ikke vil bære mer enn 20 kg. 19

21 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. 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 w i x i M i=0 20

22 Tilbakenøsting (backtracking) Prøv alle mulige n-tupler. Finn det n-tuppel som gir maksimal P under forutsetning av at summen av vektene W i holdes innenfor grensen M. Det finnes i alt 2 n slike n-tupler som må prøves. En enkel metode for å generere alle n-tupler består i først å velge en verdi for x 0, så en verdi for x 1 etc. 21

23 Tilbakenøsting (backtracking), pseudokode Require: l {X,W,P,OptP,OptX er globale} 1: if l = n then 2: if n 1 i=0 w ix i M then 3: CurP n 1 i=0 p ix i 4: if CurP > OptP then 5: OptP CurP 6: OptX [x 0,x 1,...,x n 1 ] 7: end if 8: end if 9: else 10: x l 1 11: backtrack(l + 1) 12: x l 0 13: backtrack(l + 1) 14: end if 22

24 Tilbakenøsting (backtracking) Tilstandsrommet blir seende ut som følger: [] [1] [0] [1,1] [1,0] [0,1] [0,0] [1,1,1] [1,1,0] [1,0,1] [1,0,0] [0,1,1] [0,1,0] [0,0,1] [0,0,0] 23

25 Tilbakenøsting (backtracking) Denne algoritmen genererer de 2 n binære n- tuplene i omvendt leksikografisk rekkefølge. Det tar tid Θ(n) tid å sjekke hver løsning X slik at total tid blir Θ(n2 n ). Ikke praktisk brukbar ved n > 40. Ikke alle n-tupler er mulige, vi skal se enkle modifikasjoner som tar hensyn til dette senere. 24

26 Tilbakenøsting (backtracking) >> P=[ ]; >> W=[ ]; >> Cap=324; >> >> tic;[optp1,optx1,r1]=backtrack1(1,zeros(1,length(w)),w,p,0,[],... Cap,0),t1=toc optp1 = 676 optx1 = Columns 1 through Columns 13 through r1 = t1 = >> B1P=sum(optX1.*P) B1P = 676 >> B1W=sum(optX1.*W) B1W = 323 >> 25

27 Generell tilbakenøsting Vi generaliserer den grunnleggende algoritmen. I mange kombinatoriske problemer kan løsningen uttrykkes som en liste X = [x 0,x 1,...] der hver x i velges fra et endelig mulighets-sett P i. Elementene x i defineres en etter en etter hvert som tilstandsrommet traverseres. Tilbakenøstingsalgoritmen betrakter derfor alle medlemmene av settet P 0 P 1 P i for hver i = 0,1,2,... Lengden til listen X er den samme som dybden til den tilsvarende noden i tilstandsrom-treet. 26

28 Generell tilbakenøsting Gitt en partiell løsning X = [x o,x 1,...,x l 1 ] så vil randbetingelsene i optimaliseringsproblemet begrense de mulige verdiene for x l til subsettet C l P l som vi kaller et valg-sett. kalles beskjæring av til- Beregning av C l standsrom-treet. Dersom y P l \C l så vil nodene i subtreet med rotnode [x o,x 1,...,x l 1,y] ikke tas i betraktning av tilbakenøstingsalgoritmen. Vi sier da at dette subtreet er blitt beskåret. 27

29 Generell tilbakenøsting, pseudokode Require: l {X er global} 1: if [x 0,x 1,...,x l 1 ] mulig løsning then 2: process it 3: end if 4: compute C l 5: for x : x C l do 6: x l x 7: backtrack(l + 1) 8: end for 28

30 Generell tilbakenøsting I den første versjonen av tilbakenøstingsalgoritmen brukte vi ikke beskjæing i det hele tatt. Effektivt er det det samme som å sette C l = {0, 1} i den generelle tilbakenøstingsalgoritmen. I praksis må vi begrense C l for at tilbakenøsting skal ha verdi. 29

31 Generell tilbakenøsting I tursekk-problemet består en enkel beskjæringsstrategi i å beregne følgende: l 1 w i x i M i=0 Dersom l n 1 og vi setter så blir: CurW = l 1 w i x i i=0 C l = { {1,0} dersom CurW + wl M {0} ellers 30

32 Generell tilbakenøsting Require: l,curw {X,W,P,OptP,OptX,C l er globale} 1: if l = n then 2: if n 1 i=0 p ix i > OptP then 3: OptP n 1 i=0 p ix i 4: OptX [x 0,...,x n 1 ] 5: end if 6: end if 7: if l = n then 8: C l /0 9: else 10: if CurW + w l M then 11: C l {1,0} 12: else 13: C l {0} 14: end if 15: end if 16: for x : x C l do 17: x l x 18: backtrack( l + 1,CurW + w l x l ) 19: end for 31

33 Generell tilbakenøsting >> P=[ ]; >> W=[ ]; >> Cap=324; >> >> tic;[optp2,optx2,r2]=backtrack2(1,0,zeros(1,length(w)),w,p,0,[],... Cap,0),t2=toc optp2 = 676 optx2 = Columns 1 through Columns 13 through r2 = t2 = >> B2P=sum(optX2.*P) B2P = 676 >> B2W=sum(optX2.*W) B2W = 323 >> 32

34 Generell tilbakenøsting, alle klikker I grafen under er klikkene (med mer enn en node): {0,1},{0,6},{1,2},{1,5},{1,6}, {2,4},{2,3},{3,4},{5,6},{0,1,6}, {1,5,6} og {2,3,4}. De maksimale klikkene er: {0,1,6},{1,2}, {1,5,6} og {2,3,4} Problemet vi tar for oss nå er det å finne alle klikkene. 33

35 Generell tilbakenøsting, alle klikker Må først definere hva en partiell løsning er. En liste X = [x 0,x 1,...,x l 1 ] av noder er en partiell løsning dersom {x 0,x 1,...,x l 1 } er en klikk. X = [3,4] er en partiell løsning fordi {3,4} er en klikk. X = [4,5] er ikke en partiell løsning fordi {4,5} ikke er en klikk

36 Generell tilbakenøsting, alle klikker Hvordan beregne C l? La S l 1 = {x 0,...,x l 1 } og la C 0 = ν. Da er valgsettet C l gitt ved: C l = {v ν\s l 1 : {v,x} ε, x S l 1 } = {v C l 1 \{x l 1 } : {v,x l 1 } ε} 35

37 Generell tilbakenøsting, alle klikker Valgsettet C l gitt ved: C l = {v ν\s l 1 : {v,x} ε, x S l 1 } = {v C l 1 \{x l 1 } : {v,x l 1 } ε} S={} C0={0,1,2,3,4,5,6} S0={0} S0={1} S0={2} S0={3} S0={4} S0={5} S0={6} C1={1,6} C1={0,2,5,6} S1={0,1} S1={0,6} S1={1,0} S1={1,2} S1={1,5} S1={1,6} C2={6} C2={1} C2={6} C2={6} C2={0,5} S2={0,1,6} S2={0,6,1} S2={1,0,6} S2={1,5,6} S2={1,6,0} S2={1,6,5} 36

38 Generell tilbakenøsting, alle klikker Problem: En algoritme basert på denne definisjonen av C l vil generere hver klikk k! ganger, en gang for hver mulig rekkefølge av nodene. For å løse dette problemet innfører vi en < ordning av nodene ν, og lister dem etter denne ordningen. Det vil si at vi tenker på ν som en ordnet liste: der v 0 < v 1 < v 2...v n 1. ν = [v o,v 1,v 2,...,v n 1 ] 37

39 Generell tilbakenøsting, alle klikker Vi hadde følgende definisjon for C l : C l = {v ν\s l 1 : {v,x} ε, x S l 1 } = {v C l 1 \{x l 1 } : {v,x l 1 } ε} Med de nye definisjonene får vi: C l = {v C l 1 : {v,x l 1 } ε og v > x l 1 }. 38

40 Generell tilbakenøsting, begrensningsfunksjoner Bruk av begrensningsfunksjoner er en mer sofistikert metode for beskjæring. Definisjoner: La pro(x) være gevinsten assosiert med en mulig løsning X. For en partiell løsning X = [x 0,x 1,...,x l 1 ] definerer vi P(X) som den maksimale gevinsten assosiert med løsningene som er barn av X i tilstandsromtreet. P(X) er altså den maksimale verdien av pro(x ) over alle mulige løsninger X = [x 0,x 1,...,x n 1 ] der x i = x i for 0 i l 1. Dersom X = [ ] blir altså P(X) den optimale gevinsten for hele problemet. 39

41 Generell tilbakenøsting, begrensningsfunksjoner P(X) kan beregnes eksakt bare ved å traversere hele subtreet med rot i X. For å unngå dette benytter vi begrensningsfunksjoner. En begrensningsfunksjon er en reell funksjon B, definert på settet av noder i tilstandsrommet. For enhver mulig partiell løsning X tilfredsstiller B følgende relasjon: B(X) P(X) Med andre ord er B(X) en øvre begrensning på gevinsten ved enhver mulig løsning som er et barn av rotnoden X. 40

42 Generell tilbakenøsting, begrensningsfunksjoner En begrensningsfunksjon kan brukes for beskjære tilstandsromtreet. å Anta at vi på et punkt i tilbakenøstingsalgoritmen har en partiell løsning X = [x 0,x 1,...,x l 1 ]. Anta at OptP er den nåværende maksimale gevinsten. Dersom nå B(X) OptP har vi at: P(X) B(X) OptP Dermed vet vi at ingen barn av X i tilstandsromtreet kan forbedre den nåværende kjente OptP. Dermed kan hele dette subtreet beskjæres. 41

43 Generell tilbakenøsting, begrensningsfunksjoner B(X) kan betraktes som en approksimasjon til P(X). Vi vil at B(X) skal ha følgende egenskaper: B(X) må være enkel å beregne. Så lik P(X) som mulig. Disse to egenskapene står i motsetning til hverandre. P(X) er for eksempel selv en begrensningsfunksjon, men er generelt vanskelig å beregne. 42

44 Generell tilbakenøsting med begrensningsfunksjon, pseudokode Require: l {X, OptP, OptX er globale} {pro( ) og B( ) er eksterne funksjoner} 1: if [x 0,x 1,...,x l 1 ] er en mulig løsning then 2: P pro([x 0,x 1,...,x l 1 ]) 3: if P > OptP then 4: OptP P 5: OptX [x 0,x 1,...,x l 1 ] 6: end if 7: end if 8: Beregn C l 9: B B([x 0,x 1,...,x l 1 ]) 10: for x C l do 11: if B OptP then 12: return 13: end if 14: x l x 15: backtrack(l + 1) 16: end for 43

45 Generell tilbakenøsting med begrensningsfunksjon, tursekk-problemet Betrakte et relatert problem, det såkalte rasjonale tursekk-problemet ( rational knap-sack ). Dette problemet er definert som følger: 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. Finn nå det n-tuppel X, [x 0,x 1,...,x n 1 ] der x i velges i intervallet [0,1] slik at: P = n 1 i=0 p i x i blir maksimal under forutsetning av at: n 1 w i x i M i=0 44

46 Generell tilbakenøsting med begrensningsfunksjon, tursekk-problemet Gevinsten i den rasjonale versjonen av tursekkproblemet vil alltid overstige eller være lik gevinsten i den heltallige versjonen av problemet. Vi spesifiserer nå en algoritme for å finne den maksimale gevinsten i den rasjonale versjonen av problemet. Denne algoritmen blir så grunnlaget for å definere en begrensningsfunksjon. 45

47 Det rasjonale tursekk-problemet, pseudokode Require: [p 0, p 1,..., p n 1 ],[w 0,w 1,...,w n 1 ],M 1: permuter slik at p 0 /w o p 1 /w 1 p n 1 /w n 1 2: i 0,P 0,W 0 3: for j 0 to n 1 do 4: x j 0 5: end for 6: while W < M og i < n do 7: if W + w i M then 8: x i 1 9: W W + w i 10: P P+ p i 11: i i+1 12: else 13: x i (M W)/w i 14: W M 15: P P+x i p i 16: i i+1 17: end if 18: end while 46

48 Generell tilbakenøsting med begrensningsfunksjon, tursekk-problemet B(X) defineres nå ved: B(X) = = l 1 i=0 l 1 p i x i + rknap(p l,..., p n,w l,...,w n,m i=0 w i x i ) l 1 p i x i + rknap(p l,..., p n,w l,...,w n,m CurW) i=0 Dermed er altså B(X) lik summen av: Gevinsten fra objektene 0,1,...,l 1, pluss gevinsten fra de resterende objektene slik at målet M nås: M CurW men der faktorene x i kan være rasjonale. 47

49 Generell tilbakenøsting med begrensningsfunksjon, tursekk-problemet Dersom vi i del 2 av definisjonen av B(X) over hadde begrenset hver x i til å være enten 0 eller 1 ville vi effektivt beregnet P(X). Det at x i, l i n kan være rasjonale gjør at vi kan få en større gevinst, altså B(X) P(X), så B er en begrensningsfunksjon. B er dessuten enkel å beregne. 48

50 Generell tilbakenøsting med begrensningsfunksjon, tursekk-problemet Pseudokoden som følger implementerer tilbakenøsting for tursekk-problemet. Merk at vi i denne pseudokoden forutsetter at objektene er sortert i synkende rekkefølge etter deres gevinst-vekt forhold, det vil si: p 0 w 0 p 1 w 1 p n 1 w n 1 Derfor er første linje i pseudokoden for beregningen av begrensningsfunksjonen ikke nødvendig. 49

51 Generell tilbakenøsting med begrensningsfunksjon, tursekk-problemet, pseudokode Require: l,curw {X,OptX,OptP,C l, l = 0,1,... er globale} {B( ) er ekstern} 1: if l = n then 2: if n 1 i=0 p ix i > OptP then 3: OptP n 1 i=0 p ix i 4: OptX [x 0,x 1,...,x n 1 ] 5: end if 6: end if 7: if l = n then 8: C l /0 9: else 10: if CurW + w l M then 11: C l {1,0} 12: else 13: C l {0} 14: end if 15: end if 16: B l 1 i=0 p ix i +B(p l,..., p n,w l,...,w n,m CurW) 50

52 17: for x C l do 18: if B OptP then 19: return 20: end if 21: x l x 22: backtrack(l + 1,CurW + w l x l ) 23: end for 51

53 Generell tilbakenøsting med begrensningsfunksjon, tursekk-problemet >> P=[ ]; >> W=[ ]; >> Cap=324; >> >> tic;[optp3,optx3,r3]=backtrack3(1,0,zeros(1,length(w)),w,p,0,[],... Cap,0,0),t3=toc optp3 = 676 optx3 = Columns 1 through Columns 13 through r3 = 20 t3 = >> ratio=p./w; >> [ratio,index]=sort(ratio); >> index=fliplr(index); >> P=P(index); >> W=W(index); >> B3P=sum(optX3.*P) B3P = 676 >> B3W=sum(optX3.*W) B3W = 323 >> 52

54 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? 53

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

56 Reisende handelsmann-problemet La V = {0,1,...,n 1} 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. 55

57 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. Syklusen kan derfor representeres ved 7-tuplene: [0,3,4,6,2,5,1] eller [0,1,5,2,6,4,3] 56

58 Reisende handelsmann-problemet, pseudokode Require: l,x,c {x, OptX, OptC er globale} 1: if l = n then 2: C cost([x 0,x 1,...,x n 1 ]) 3: if C < OptC then 4: OptC C 5: OptX [x 0,x 1,...,x n 1 ] 6: end if 7: end if 8: if l = 0 then 9: C l {0} 10: else 11: if l = 1 then 12: C l {1,2,...,n 1} 13: else 14: C l C l 1 \{x l 1 } 15: end if 16: end if 57

59 17: for x C l do 18: x l x 19: tsp(l + 1,x,C ) 20: end for 58

60 Heuristiske søkemetoder I: 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 1999, ISBN X. 59

61 Heuristiske søkemetoder I: 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. 60

62 Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 1: Endelige sett. 1. Hva er et endelig sett? 2. Er settene X = {1,5,12,8} og Y = {1,12,5,8} like? 3. Er settet K = {1,5,8} et subsett av settet M = {1,5,7,12}. 61

63 Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 2: Endelige lister. 1. Hva er en endelig liste? 2. Er listene X = [1,5,12,8] og Y = [1,12,5,8] like? 3. Hvordan defineres det kartesiske produktet av settene A og B. 4. Anta at A = {3,9,6,4} og B = {3,5}. Hva er det kartesiske produktet av disse settene? 62

64 Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 3: Permutasjoner. 1. Hva er en permutasjon? 2. Gitt at et sett inneholder n elementer, hvor mange permutasjoner finnes det av dette settet? 3. Hva er en k-permutasjon. 4. Gitt at et sett inneholder n elementer, hvor mange k-permutasjoner finnes det av dette settet? 63

65 Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 4: Grafer. 1. Hvordan er en graf definert? 2. 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? 3. Er denne grafen komplett? 4. Hvilken grad har noden a? Er denne grafen regulær? 5. Finnes det noen Hamilton-syklus i denne grafen. I så fall hvilken? 64

66 Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 5: Grafer. 1. Hva er en klikk? 2. Hva er de maksimale klikkene i grafen definert i oppgave 4? 65

67 Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 6: Tilbakenøsting. 1. Gi pseudokode for en tilbakenøstingsalgoritme som løser tursekk-problemet. 2. Gitt at vektene W er gitt ved W = [10,13,7,6], gevinstene P ved P = [22, 28, 24, 15] og at den maksimale kapasiteten M er M = Tegn tilstandsrommet for dette problemet. Indiker gevinst og vekt ved hver node. 4. Hva er den optimale verdien for X. 5. Indiker hvilke grener av treet som kan ekskluderes fra videre oppfølging på bakgrunn av at maksimal vekt allerede er overskredet. 66

68 Heuristiske søkemetoder I: Øvingsoppgaver Oppgave 7: Tilbakenøsting med begrensningsfunksjon 1. Hva er en begrensningsfunksjon og hvilke egenskaper må en slik funksjon ha? 2. Hva er forskjellen mellom tursekk-problemet og det rasjonale tursekk-problemet? 3. Sett opp et uttrykk for en begrensningsfunksjon for tursekk-problemet der løsningen på det tilsvarende rasjonale tursekk-problemet inngår. 4. Med utgangspunkt i det konkrete tursekkproblemet beskrevet i oppgave 6: Tegn det beskårne tilstandsromtreet etter anvendelse av begrensningsfunksjonen du beskrev over. 67

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

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

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

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

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

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

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

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

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

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013 Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du

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

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

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! 15. august 2013 Eksamenstid (fra til)! 0900 1300 Hjelpemiddelkode D.

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

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

Disjunkte mengder ADT

Disjunkte mengder ADT Binære relasjoner A A = {(x, y) x, y A}: mengden av ordnede par over A. Disjunkte mengder ADT Weiss kap. 8.1 8.5 Løser ekvivalensproblemet Lett og rask implementasjon Vanskelig tidsforbrukanalyse Ark 1

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

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27

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

Repetisjonsforelesning - INF1080

Repetisjonsforelesning - INF1080 Repetisjonsforelesning - INF1080 Mengder, relasjoner og funksjoner 18. november 2015 1 Grunnleggende mengdelære 1.1 Elementært om mengder 1.1.1 Hva er en mengde? Definisjon 1.1 (Mengde). En mengde er en

Detaljer

Korteste vei i en vektet graf uten negative kanter

Korteste vei i en vektet graf uten negative kanter Dagens plan: IN - Algoritmer og datastrukturer HØSTEN 7 Institutt for informatikk, Universitetet i Oslo IN, forelesning 7: Grafer II Korteste vei, en-til-alle, for: Vektet rettet graf uten negative kanter

Detaljer

LP. Leksjon 7. Kapittel 13: Nettverk strøm problemer

LP. Leksjon 7. Kapittel 13: Nettverk strøm problemer LP. Leksjon 7. Kapittel 13: Nettverk strøm problemer Skal studere matematiske modeller for strøm i nettverk. Dette har anvendelser av typen fysiske nettverk: internet, vei, jernbane, fly, telekommunikasjon,

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

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

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

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

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 18. august 2011 Eksamenstid 0900 1300 Sensurdato 8. september Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

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! 15. august 2013 Eksamenstid (fra til)! 0900 1300 Hjelpemiddelkode D.

Detaljer

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 Delkapittel 9.1 Generelt om balanserte trær Side 1 av 13 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 9.1 Generelt om balanserte trær 9.1.1 Hva er et balansert tre? Begrepene balansert og

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

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

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan Øvingsforelesning 4 Topologisk sortering, Strongly Connected Components og Minimale spenntrær Magnus Botnan botnan@stud.ntnu.no 09/10/09 1 I dag Topologisk Sortering Sterke Komponenter Minimale Spenntrær

Detaljer

Løsningsforslag Øving 9 TMA4140 Diskret matematikk Høsten 2008. i for i = 0, 1, 2, 3, 4, og så er W 4 svaret. 0 1 0 0

Løsningsforslag Øving 9 TMA4140 Diskret matematikk Høsten 2008. i for i = 0, 1, 2, 3, 4, og så er W 4 svaret. 0 1 0 0 Løsningsforslag Øving 9 TMA4140 Diskret matematikk Høsten 2008 8.4.27 Vi beregner matrisene W i for i = 0, 1, 2, 3, 4, og så er W 4 svaret. a) W 0 = W 1 = W 2 = 1 0 0 0 1 1 0 0 b) W 0 = c) W 0 = d) W 0

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

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

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

IN Algoritmer og datastrukturer

IN Algoritmer og datastrukturer IN010 - Algoritmer og datastrukturer HØSTEN 018 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer III Ingrid Chieh Yu (Ifi, UiO) IN010 0.10.018 1 / 0 Dagens plan: Dybde-først søk Biconnectivity

Detaljer

Forelesningsplan. Grådighet. LF Øving 9. Hva er grådighet? Aktivitetsvelger En grådig strategi Grådig eller dynamisk? Knapsack Huffmankoding

Forelesningsplan. Grådighet. LF Øving 9. Hva er grådighet? Aktivitetsvelger En grådig strategi Grådig eller dynamisk? Knapsack Huffmankoding 1 Grådighet 2 Forelesningsplan Grådighet Hva er grådighet? Aktivitetsvelger En grådig strategi Grådig eller dynamisk? Knapsack Huffmankoding LF Øving 9 Teori Praksis 3 Forelesningsplan Grådighet Hva er

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

LO118D Forelesning 12 (DM)

LO118D Forelesning 12 (DM) LO118D Forelesning 12 (DM) Trær 15.10.2007 1 Traversering av trær 2 Beslutningstrær 3 Isomorfisme i trær Preorden-traversering 1 Behandle den nåværende noden. 2 Rekursivt behandle venstre subtre. 3 Rekursivt

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

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

G høgskolen i oslo. Emnekode:!;_unstiq intelliqens lv 145A Gruppe(r) : Dato: Tillatte I Emne: G høgskolen i oslo Emnekode:!;_unstiQ intelliqens lv 145A Gruppe(r) : Dato: 23.04.04 Tillatte Antall sider (inkl. Antall oppgaver: hjelpemidler: forsiden): 5 3 Inoen Faglig veileder: Eva Vihovde

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 20. april 2010 (Sist oppdatert: 2010-04-20 14:17) Grafteori MAT1030 Diskret Matematikk 20. april

Detaljer

MAT1030 Forelesning 23

MAT1030 Forelesning 23 MAT030 Forelesning 23 Grafteori Roger Antonsen - 22. april 2009 (Sist oppdatert: 2009-04-22 2:36) Forelesning 23 Repetisjon og mer motivasjon Først litt repetisjon En graf består av noder og kanter Kanter

Detaljer

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

Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori. MAT030 Diskret Matematikk Forelesning 23: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 23 22. april 2009 (Sist oppdatert: 2009-04-22 2:37) MAT030 Diskret Matematikk

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

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Metoden ble formalisert av Richard Bellmann (RAND Corporation) på 50-tallet. Programmering i betydningen planlegge, ta beslutninger. (Har ikke noe med kode eller å skrive kode å

Detaljer

INF1020 Algoritmer og datastrukturer GRAFER

INF1020 Algoritmer og datastrukturer GRAFER GRAFER Dagens plan: Minimale spenntrær Prim Kapittel 9.5.1 Kruskal Kapittel 9.5.2 Dybde-først søk Kapittel 9.6.1 Løkkeleting Dobbeltsammenhengende grafer Kapittel 9.6.2 Å finne ledd-noder articulation

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 115 Eksamensdag : Lørdag 20 mai, 2000 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider Vedlegg : Intet. Tillatte

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

LO118D Forelesning 5 (DM)

LO118D Forelesning 5 (DM) LO118D Forelesning 5 (DM) Relasjoner 03.09.2007 1 Relasjoner 2 Ekvivalensrelasjoner 3 Matriser av relasjoner 4 Relasjonsdatabaser Relasjon Relasjoner er en generalisering av funksjoner En relasjon er en

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

INF2810: Funksjonell Programmering. Trær og mengder

INF2810: Funksjonell Programmering. Trær og mengder INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Trær og mengder Erik Velldal Universitetet i Oslo 19. februar 2015 Tema Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler

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

EKSAMEN med løsningsforslag

EKSAMEN med løsningsforslag EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:

Detaljer

Object [] element. array. int [] tall

Object [] element. array. int [] tall Datastrukturer Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 40 55 63 17 22 68 89 97 89 graf lenkeliste graf Object data Node neste Node neste Node neste Node neste Node Node neste

Detaljer

3x + 2y 8, 2x + 4y 8.

3x + 2y 8, 2x + 4y 8. Oppgave En møbelfabrikk produserer bord og stoler Produksjonen av møbler skjer i to avdelinger, avdeling I og avdeling II Alle møbler må innom både avdeling I og avdeling II Det å produsere et bord tar

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

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

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

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

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

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

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

SIF8010 ALGORITMER OG DATASTRUKTURER

SIF8010 ALGORITMER OG DATASTRUKTURER SIF8010 ALGORITMER OG DATASTRUKTURER KONTINUASJONSEKSAMEN, 1999; LØSNINGSFORSLAG Oppgave 1 (12%) Anta at du skal lage et støtteprogram som umiddelbart skal varsle om at et ord blir skrevet feil under inntasting

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort

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

Lars Vidar Magnusson

Lars Vidar Magnusson Binære Søketrær Lars Vidar Magnusson 14.2.2014 Kapittel 12 Binære Søketrær Søking Insetting Sletting Søketrær Søketrær er datastrukturer som støtter mange dynamiske sett operasjoner. Kan bli brukt både

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 26: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo 5. mai 2009 (Sist oppdatert: 2009-05-06 22:27) Forelesning 26 MAT1030 Diskret Matematikk 5.

Detaljer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag Algoritmer og datastrukturer Løsningsforslag Eksamen 30. november 2010 Oppgave 1A Et turneringstre for en utslagsturnering med n deltagere blir et komplett binærtre med 2n 1 noder. I vårt tilfelle får

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

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær IN Algoritmer og datastrukturer GRAER IN Algoritmer og datastrukturer Dagens plan: orteste vei, en-til-alle, for: ektet rettet graf uten negative kanter (apittel 9..) (Dijkstras algoritme) ektet rettet

Detaljer

En algoritme for permutasjonsgenerering

En algoritme for permutasjonsgenerering Innledning La oss tenke oss at vi har en grunnskole-klasse på 25 elever der enkelte av elever er uvenner med hverandre. Hvis uvenner sitter nær hverandre blir det bråk og slåssing. Er det mulig å plassere

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

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

LO118D Forelesning 3 (DM)

LO118D Forelesning 3 (DM) LO118D Forelesning 3 (DM) Mengder og funksjoner 27.08.2007 1 Mengder 2 Funksjoner Symboler x y Logisk AND, både x og y må være sanne x y Logisk OR, x eller y må være sann x Negasjon, ikke x x For alle

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

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær: TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer

Detaljer

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag Institutt for matematiske fag Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag Faglig kontakt under eksamen: Martin Strand Tlf: 970 27 848 Eksamensdato:. august 2014 Eksamenstid (fra

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

Relasjoner. Ekvivalensrelasjoner. En relasjon R på en mengde A er en delmengde av produktmengden. La R være en relasjon på en mengde A.

Relasjoner. Ekvivalensrelasjoner. En relasjon R på en mengde A er en delmengde av produktmengden. La R være en relasjon på en mengde A. Relasjoner En relasjon R på en mengde A er en delmengde av produktmengden A A. La R være en relasjon på en mengde A. R er refleksiv hvis ( a, a) R for alle a A. R er symmetrisk hvis ( a, b) R, så er (

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

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