August

Størrelse: px
Begynne med side:

Download "August"

Transkript

1 None of us truly understands the P versus NP problem, we have only begun to peel the layers around this increasingly complex question. Perhaps we will see a resolution of the P versus NP problem in the near future but I almost hope not. The P versus NP problem continues to inspire and boggle the mind and continued exploration of this problem will lead us to yet even new complexities in that truly mysterious process we call computation. Lance Fortnow 1 August 2009

2 Grådige strategier 2

3 1. Finn optimal substruktur Vi lager gjerne substrukturen med tanke nettopp på å kunne velge grådig og på å eliminere delproblemer. 2. Lag en rekursiv løsning 3. Vis at grådig valg er trygt 4. Vis vi sitter igjen med bare ett delproblem 5. Lag rekursiv grådig løsning 6. Konverter den til en iterativ løsning 3

4 Strømlinjeformet Såkalte «set systems» er en veldig generell problemstruktur for denne typen ting (se kapitlet om matroider i boka; ikke pensum). 1. Formuler som problem der vi kan velge grådig og sitte igjen med ett delproblem 2. Vis at det alltid er trygt å velge grådig 3. Vis at grådig valg + optimal del-løsning gir optimal løsning De siste to punktene gjelder for generelle strukturer som matroider og greedoider. En helt eksakt karakterisering av slike strukturer er gitt ved såkalte matroid embeddings. (Ikke pensum! :-)) 4

5 Vi har altså to hovedingredienser: Greedy-choice-egenskapen Optimal substruktur (Det finnes andre måter å bevise korrekthet for grådighet på, altså ) Det står om matroider i boka. Dere kan jo evt. også google greedoids eller hvis dere er eventyrlystne, matroid embeddings. 5

6 Eksempel Huffmankoder 6

7 e = a = q = Morsekode. Vi er ute etter noe litt lignende. En effektiv, variabel kode. z = 7

8 Prefikskoder (eller prefiksfrie koder): Koder der ingen koder er prefiks av andre koder. Mao. er det aldri tvil om dekodingen. Ulike tegn får koder med ulik lengde Vi kan bruke prefiks-koder Total tekst-lengde skal minimeres Vi har kun informasjon om tegnfrekvenser 8

9 Kodene blir prefiksfrie fordi vi ikke har tegn i de interne nodene. Venstre = 0, høyre = 1. a = 0 0 c b = 0 1 a b c = 1 Vi ønsker å minimere tegnfrekvens * tegndybde (implisitt også tekstlengde). Minner om de optimale søketrærne våre, men vi har ikke noe krav om rekkefølge. 9

10 Huffmans algoritme: Lag et tre for hvert tegn med frekvens-vekt Gjenta: Slå sammen de to letteste trærne 10

11 Prøv å tegne opp hvordan dette treet bygges helst trinn for trinn A : 8 B : 3 C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 11

12 A : 8 B : 3 C : 1 D : 1 E : 1 F : 1 2 G : 1 H : 1 12

13 A : 8 B : 3 C : 1 D : E : 1 F : 1 G : 1 H : 1 13

14 A : 8 B : C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 14

15 A : 8 B : C : 1 D : E : 1 F : 1 G : 1 H : 1 15

16 A : B : C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 16

17 A : B : C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 17

18 Merk: Dette minimerer forventet sti-lengde hvis vi «søker» etter en bokstav. Med andre ord er dette en mer effektiv variant av de optimale søketrærne fra forrige gang bortsett fra at søketre-egenskapen ikke er oppfylt. A : 8 17 Hvis man kan konstruere «ja/nei»- spørsmålene selv (som f.eks. ved en prosedyre for medisinsk diagnose), i stedet for å bruke søkenøkler, så kan Huffmans algoritme også brukes til denslags. 5 4 B : Dette er jo klart en grådig fremgangsmåte men hvorfor blir det optimalt? C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 18

19 Bevis-skisse: Hvis treet ikke er fullt kan vi kollapse stier der noder bare har ett (internt) barn. Bortkastet å ikke ha et fullt tre Det er OK for de to billigste å være søsken, nederst i treet Hvis de to billigste behandles som ett symbol må det resterende treet være optimalt Hvis vi bytter ut ett av dem med et dyrere vil det dyrere ikke komme lenger opp og det billige vil ikke komme lenger ned så det vil ikke bli billigere totalt. 19

20 Min. forv. koding Kombiner minste O(n lg n) Huffmans algoritme 20

21 21

22 Bellman-Ford BFS/DFS Binære søketrær Binærsøk Bubblesort Bucket sort Counting sort Dijkstra DAGshortest-path Edmonds- Karp Floyd- Warshall Hashing Heapsort Huffmankoding Insertion sort Kruskal Merge sort Prim Quicksort Radix sort Randomized Select Select Selection sort Sterke komponenter Topologisk sortering 22

23 Bellman-Ford BFS/DFS Binære søketrær Binærsøk Bubblesort Bucket sort Counting sort Dijkstra DAGshortest-path Edmonds- Karp Floyd- Warshall Hashing Heapsort Huffmankoding Insertion sort Kruskal Merge sort Prim Quicksort Radix sort Randomized Select Select Selection sort Sterke komponenter Topologisk sortering 23

24 D&C Bellman-Ford BFS/DFS Binære søketrær LP Binærsøk Bubblesort Bucket sort Counting sort Dijkstra DAGshortest-path Edmonds- Karp Floyd- Warshall Hashing Gr. Heapsort Huffmankoding Insertion sort NPC Flyt+ Kruskal Merge sort Prim Quicksort Radix sort Randomized Select Select Θ etc. Selection sort Sterke komponenter Topologisk sortering DP 24

25 D&C Bellman-Ford BFS/DFS Binære søketrær LP Binærsøk Bubblesort Bucket sort Counting sort Dijkstra DAGshortest-path Edmonds- Karp (Par.) Floyd- Warshall Hashing Gr. Heapsort Huffmankoding Insertion sort NPC Flyt+ Kruskal Merge sort Prim Quicksort Radix sort Randomized Select Select Θ etc. Selection sort Sterke komponenter Topologisk sortering DP 25

26 Det er lett å gjøre problemet A Enklere B Vanskeligere

27 I dag skal vi se litt på hvor vanskelig livet kan være (i vår lille algoritmeverden) Life s a Tolvte forelesning Jeg finner ingen algoritme Men først, et par kryptiske foiler :-) 27

28 klarer du minesveiper, klarer du alt Hva i all verden kan jeg mene med dette? 28

29 Og hvordan kan *dette* være nøkkelen til å forstå utsagnet? Hvis du bare husker én ting fra forelesningen, husk dette. (Forklaring følger ) 29

30 Men, altså 30

31 To typer «verstinger»: A. 1. Ikke beregnbare problemer («undecidable») 2. Problemer som uansett krever superpolynomisk tid («intractable») Første mulighet: Det er beviselig umulig å finne en god algoritme! B.? For mange (noen vil kanskje si de *fleste* praktiske) problemer klarer vi verken finne en løsning eller et bevis for at det er umulig. Hva gjør vi da? 31

32 1. Tile-game. Vi har et sett med flistyper (kan ikke roteres). Problem: Kan ethvert rektangulært gulv dekkes med flis-typene (så halvsirkler med samme farge ligger inntil hverandre)? 32

33 33

34 34

35 2. Tower(s) of Hanoi. Flytt én og én ring. Aldri legg en større på en mindre. Få alle fra første til tredje pinne. 35

36 3. Ikke lenger flis-typer med uendelig tilgang til fliser, men et (endelig) sett med brikker. Sett dem sammen i et kvadrat, så man får aper (eller hva det nå er) med hode og bein i samme farge. 36

37 ! 37

38 Reduksjon. Reduser ukjent problem til et enkelt, kjent et. Kan også snus på hodet: Reduser kjent, vanskelig problem til ukjent problem (for å vise at det er vanskelig). 38

39 Vi er usikre på om det er vanskelig å komme seg til toppen, men vet at det er vanskelig (uansett hva vi gjør) å komme oss til en liten topp på veien opp. Men Hvis vi drar opp til toppen kan vi jo bare stå på ski ned til den mindre toppen (som jo er enkelt). Så: Hvis det hadde vært enkelt å komme til toppen så ville det også være enkelt å komme til den litt mindre toppen og det er det jo ikke. Altså: Det kan umulig være enkelt å komme til toppen. (Lett å se i dette tilfelle ikke alltid like opplagt.) Vi har her (i følge den litt forvirrende terminologien) redusert problemet med å komme til den *lille* toppen til problemet med å komme til den *store*. Ved å redusere A til B sier vi egentlig: Hvis B hadde vært lett så ville A også være lett, fordi vi kan bruke B til å løse A. Eller, for å snu på flisa: Hvis A er vanskelig så må B også være vanskelig. Reduksjoner 39 Og: Vi vet jo at A er vanskelig. Derfor kan vi slutte at B også må være vanskelig. Og så gjelder det bare å holde tunga rett i munnen, og redusere riktig vei

40 Hvis vi lett kunne redusere til et enklere problem så kunne vi ha jukset, og lett ha løst vanskelige problemer. Det er lett å gjøre problemet A Enklere B Vanskeligere Polynomiske reduksjoner er «lette» så vi kan bare gjøre ting «vanskeligere».

41 Du ønsker å vise at den ene er stor. Du kan sette den andre til en stor verdi. Hvilken er den kjente og hvilken den ukjente? Du ønsker å vise at den ene er liten. Du kan sette den andre til en liten verdi. Hvilken er den kjente og hvilken den ukjente? x y Dette er en parallell til det å vise at problemer er vanskelige eller enkle. Men hvordan får vi på plass «ulikhetstegnet» for problemer? 41

42 Situasjon: Vi har to problemer, A og B. Vi vet at det ene er vanskelig, og vil vise at det andre er vanskelig. (Anta at transformboksen er enkel/effektiv.) Hvilket av A og B må være kjent og hvilket må være ukjent for at vi skal få noe informasjon ut av dette? +-56(4"? O + :?/,576?0"? 8-56(4"? O 8 P 8 P + 42

43 Det at reduksjonen er enkel (dvs. at den kan utføres effektivt) er viktig. hvis vi gjør «heavy lifting» der så mister vi informasjon om forholdet mellom A og B. A enkelt Kan reduseres til Kan løses v.h.a. Her gjelder det å holde tunga rett i munnen, og huske hva reduksjonen betyr. Implikasjonen (hvis vi løser B løser vi A) går motsatt vei av reduksjonen. Og vi reduserer til et problem som er *minst like vanskelig*, *ikke* et som er *lettere*. Dermed er ordet «reduksjon» litt for virrende. B Hvis vi kan løse B, så kan vi løse A Eller, ekvivalent: Hvis vi ikke kan løse A så kan vi heller ikke løse B. 43 så B er minst like vanskelig som A Siden reduksjonen er enkel vil en enkel løsning på B gi deg en «gratis» enkel løsning på A. Så hvis B er enkel så er A enkel. Hvis B er vanskelig så vet vi ikke om A er vanskelig.

44 og her var denne igjen: «Det er jo bare å» «Peker» motsatt vei av reduksjonen. Vi reduserer fra noe lett til noe vanskelig; noe annet ville være en selvmotsigelse. Det vi transformerer til er *minst* like uttrykkskraftig *minst* like vanskelig å løse. 44

45 A kan reduseres til B A kan løses vha B per def. Utsagnene er ekvivalente. Merk at det er snakk om effektive (polynomiske) reduksjoner og løsninger. Selv om det kan være vanskelig å huske «innholdet» er logikken ganske enkel. Hvis vi kan løse B kan vi løse A B er minst like vanskelig som A Hvis vi ikke kan løse A kan vi ikke løse B A er minst like lett som B 45 ellers ble A enklere Denne er kanskje den minst intuitive. Og husk at «Hvis vi kan løse A» så er det fortsatt ikke sikkert vi kan løse B. kontrapositiv

46 ukjent Minst like lett. kjent (lett) Vil vise: Ukjent problem er lett 46 Hvis en løsning på vårt problem kan brukes til å knekke en hard nøtt så må løsningen være heftig og problemet vårt må altså være vanskelig.

47 kjent (vanskelig) ukjent Minst like vanskelig. Vil vise: Ukjent problem er vanskelig 47 Hvis en løsning på vårt problem kan brukes til å knekke en hard nøtt så må løsningen være heftig og problemet vårt må altså være vanskelig.

48 Hvordan «knekke koden»? 48

49 ! knekk! 49

50 reduser fra litt til mer 50

51 Euklidske spenntrær: Kan vi finne dem mer effektivt? Ω(n lg n)? 51

52 Hva med Hvis vi kunne ha funnet et MST for dette med lavere kjøretid så hadde vi brutt vår egen nedre grense for sortering (treet vil gi oss en «sortert liste») og det er jo umulig. Ω(n lg n)! 52

53 effektivt Kan reduseres til SORT EMST Kan løses v.h.a. Transformen må ikke kunne dominere den totale kjøretiden, for da vet vi ingenting om kjøretiden til problemet vårt. 53

54 Kravet her er altså at transformen må være lavere enn den totale kjøretiden («liten o»), slik at problemet vi ser på (her EMTS) *må* bli det dominerende leddet som ikke kan bli enklere enn originalproblemet (her SORT). SORT = + EMST Ω(n lg n) O(n) Ω(n lg n) 54

55 Altså: Vi kan bygge en A-løsnings-maskin ved hjelp av B og en enkel transform. +-56(4"? O + :?/,576?0"? 8-56(4"? O 8 P 8 P + Hvis vi *vet* at det *uansett* er vanskelig å løse A, så kan ikke B være lett å løse (for da ville ved implikasjon A være enkel). 55

56 Hvis vi vil skremme/overtale A trenger vi bare skremme/ overtale B, som så kan gjøre jobben for oss. redd for ninja? 56

57 Hvis vi vil skremme/overtale A trenger vi bare skremme/ overtale B, som så kan gjøre jobben for oss. redd for ninja? ninja! 57

58 A for det er umulig! 58

59 Dette er egentlig nok et eksempel på reduksjoner, og ikke sentralt i pensum. Undecidable Det finnes også problemer som er «Highly undecidable» 59

60 Mulig? HALT(A, X) hvis A(X) stopper return True ellers return False 60

61 Hva med TROUBLE(A): while HALT(A, A) pass Hvis A(A) stopper så stopper ikke TROUBLE(A) (og vice versa). Men TROUBLE(TROUBLE) Øh Her har vi en selvmotsigelse. Og den eneste antagelsen vår var at HALT eksisterte. Altså kan den ikke eksistere. 61

62 Vi vil ved hjelp av vår kunnskap om HALT vise at flisespillet er uløselig (ikke beregnbart). Hvordan går vi frem? Reduksjonen må her også være «effektiv». I dette tilfelle holder det at den er beregnbar (vi bryr oss ikke om kjøretiden). Hvis den ikke var det, ville vi ikke få noe info ut av den. Kan reduseres til HALT Kan løses v.h.a. Vi må redusere HALT til flisespill. Logikken er da: Vi kan løse HALT vha. flisespillet. Hvis vi kan løse flisespillet kan vi løse HALT. Vi vet allerede at vi *ikke* kan løse HALT, og dermed kan vi heller ikke løse flisespillet. (En reduksjon den andre veien ville ikke si oss noe som helst.) 62

63 Problemer som ikke kan løses i polynomisk tid. Intractable 63

64 Lett å bevise at dette har et eksponensielt antall trekk, og vi må innom alle. 64

65 65 Hva om vi kommer over et nytt, merkelig spill og vi vil bruke Towers of Hanoi til å vise at det er intractable hvordan går vi frem?

66 Igjen en reduksjon den andre veien ville bare si oss at det nye spillet ikke var *vanskeligere* enn Towers of Hanoi, som jo ikke er en spesielt interessant nyhet. 66

67 A. B.? Dessverre er det svært mange problemer der vi ikke vet helt hva som er situasjonen. Hva gjør vi der? 67

68 B og det gjør ikke disse heller! Vi kan igjen bruke reduksjoner men fra(!) problemer som *mange andre* har slitt med. 68 Vi vet ikke kjøretiden, men vi vet i hvert fall at vårt er minst like vanskelig.

69 Kjente, uløste problemer La oss si vi har en samling med problemer som folk har slitt lenge med, men som ingen har noen løsning på (eller noe intractabilitybevis for). Hvordan kan vi bruke den? Ukjent problem Obs: Transformen må (som før) ikke være vanskelig i seg selv. Vi må altså kunne redusere i polynomisk tid! Som før: Vi viser at vi kan redusere et av dem til vårt problem og vips, så har vi vist at vårt er minst like vanskelig. ukjent kjøretid 69 Og vårt problem kan da legges til i lista! legg til!

70 Dette er altså problemer vi ikke har noen polynomisk løsning på men vi *vet* ikke om de kan løses i polynomisk tid. (Ja, de er NP-komplette vi kommer til det.) (Forresten: Faktorisering og graf-isomorfisme er også slike ukjente problemer men vi vet *ikke* om de er NPkomplette ) Noen skumle problemer 70

71 SUBSET-SUM 71

72 Gitt et sett med heltall, finnes det en delmengde som summerer til 0? Kan ses som et spesialtilfelle av ryggsekkproblemet, KNAPSACK = 0 Pop quiz: Hvis SUBSET-SUM er vanskelig, beviser det (ut fra det vi vet så langt) at KNAPSACK er vanskelig? Eller blir det omvendt? (Når vi sier at SUBSET-SUM er et spesialtilfelle av KNAPSACK hvilken vei går reduksjonen?) Det er selvfølgelig SUBSET- SUM som reduseres til KNAPSACK. Så KNAPSACK er minst like vanskelig som SUBSET-SUM. (De er faktisk like vanskelige ) 72

73 VERTEX-COVER 73

74 Problem: Finnes det et dekke med maks k noder? Et «dekke» bestående av noder. Disse skal «dekke» kantene i grafen (ved å ligge inntil dem). Dvs.: Hver kant må ligge inntil minst én node i dekket k = 5 En liten glipp: Her skulle 8 eller 9 også ha vært grå ;-) 74

75 Egentlig «Hamilton cycle» HAM-CYCLE 75

76 Problem: Finn en sti som besøker alle noder én (og bare én) gang. 76

77 TSP 77

78 TSP: Minimal HAM- CYCLE i komplett, vektet graf Minimal Hamilton-tur (altså en TSP-løsning) gjennom Sverige (24,978 byer), funnet i 2004 en rekort (på det tidspunktet). (Merk at dette er en graf med visse beskrankninger, som gjør det lettere.) Kjøretid: Mars 2003 til januar 2004 på 96 dual processor Intel Xeon 2.8 GHz workstations med *mengder* av lure tricks og knep for å «gjette lurt» og unngå ren «brute force». 78

79 0/1 Ryggsekkproblemet 79

80 «Vi har alt sett en polynomisk løsning» O(nW), m=lg W, O(n2 m ) 80

81 Men hva betyr dette, egentlig?? klarer du minesveiper, klarer du alt Det betyr vel i hvert fall at minesveiper finner sin plass i lista over vanskelige, uløste problemer 81 men kan det bety noe mer?

82 «Alt» 82

83 Vi fokuserer kun på beslutningsproblemer 83 i første omgang

84 Dvs. hvis vi i alle valgsituasjoner kan «gjette riktig» eller evt. prøve alle muligheter i parallell så får vi polynomisk kjøretid. NP Nondeterministically Polynomial Polynomisk hvis vi har «flaks» gjelder kun for ja-svar! 84

85 Ekvivalent Hvis «ja» så kan beviset sjekkes i polynomisk tid Ekvivalensen den ene veien er ganske grei: Hvilke valg som ble gjort (ved å kaste «mynt og kron») kan rapporteres og sjekkes. Den andre veien: La oss si vi prøver å gjette oss frem til et bevis/ sertifikat: Vi kan da bruke den magiske mynten til å finne det i polynomisk tid. 85

86 Problem SUBSET-SUM VERTEX-COVER HAM-CYCLE TSP Sertifikat Delmengde Noder Sykel Ikke «ja/nei» TSP er ikke i NP, men er en «versting» likevel. (Som vi ser senere er den NP-hard, ikke NP-komplett.) (TSP kan også formuleres i en ja/nei-variant, da. «Finnes det en tour som er kortere enn X?») 86

87 NP Dette er altså en opplagt stor klasse P som inkluderer alle (beslutnings)problemer som kan *løses* i polynomisk tid. Merk at sortering og korteste vei etc. ikke er beslutningsproblemer litt uformelt omtaler jeg dem som medlemmer av P her. (Egentlig er dette en parallell til diskusjonen rundt NP-hard; se senere.) 87

88 Nå har vi en brukbar (om enn ikke helt intuitiv) definisjon av «alt» og nå ønsker vi å lage oss en liste med de problemene som er «verst av alle». Men hva betyr det? If I can make it there I ll make it anywhere 88

89 Vi *definerer* verstingene slik: Alt i Kan reduseres til Verstinger i NP Dvs.: Kan du løse *ett* versting-problem i polynomisk tid kan du løse *alle i NP*! Det virker jo for godt til å være sant. (Mange har prøvd, alle har feilet ) Kan løses v.h.a. «kompletthet» 89 NP Denne (definerende) egenskapen kalles altså kompletthet. Vi døper dermed denne verstingmengden

90 NPC, mengden av NP-komplette problemer. Alt i NP Kan reduseres til Kan løses v.h.a. Alt i NPC Dette er *definisjonen* av NPC. Merk at vi *ikke* i utgangspunktet vet noe om hvorvidt problemer i NPC kan løses i polynomisk tid! Merk at siden alle NPCproblemer ligger i NP så kan de også reduseres til hverandre. Det holder altså å løse *ett* av dem for å ha løst alle. 90 Våre verstinger (SUBSET- SUM, HAM-CYCLE, VERTEX-COVER, TSP) er i NPC (surprise, surprise). Siden ingen har løst disse kan vi altså slutte at ingen har løst noen i NPC.

91 Og så var det optimaliseringsproblemer, da Alt i Kan reduseres til Verstinger i/utenfor NP Kan løses v.h.a. Optimaliseringsproblemer som SHORTEST-PATH har også beslutnings-ekvivalenter som PATH. (Optimaliseringsvariantene er «minst like vanskelige», men med litt binærsøking etter beslutningsparameteren kan man ofte redusere optimaliseringsvarianten til beslutningsvarianten også. 91 «hardness» NP

92 Alt i NP Kan reduseres til Kan løses v.h.a. Alt i NP-hard Så: Hvis du kan redusere et NP-hardt problem (som TSP) til problemet ditt så sliter du uansett. 92

93 Her er noen velkjente NPkomplette (og NP-harde ) problemer (pensum), og noen naturlige reduksjons-retninger (men alle kan selvfølgelig reduseres til alle). CIRCUIT-SAT SAT 3-CNF-SAT CLIQUE SUBSET-SUM VERTEX-COVER HAM-CYCLE TSP 93

94 NP Slik *tror* vi det er. Vi *vet* ikke om det finnes noe i NP som ligger utenfor P/NPC, men tror at kanskje faktorisering og/ eller graf-isomorfisme ligger der. (De er ikke vist å ligge i P eller NPC, i hvert fall.) P NPC 94

95 (Merk at det her er en animasjon der P etter hvert overlapper med NPC uten at P = NP. Det er det som er umulig.) NP Umulig! P NPC Dette er umulig for hvis bare *ett* NPCproblem også ligger i P, så vil *alle* gjøre det og det gjelder faktisk alle problemer i NP! Det vil si P=NP i så fall. 95

96 P = NP = NPC Dette er altså «den andre» mulige verden der NPkomplette problemer kan løses i polynomisk tid. De fleste tror ikke dette er tilfelle. Det vil i så fall ha drastiske konsekvenser. 96

97 klarer du minesveiper, klarer du alt i NP Men NP er en *svær* mengde. 97

98 CIRCUIT- SAT Og En litt spesiell variant av minesveiper («infinite minesweeper») er vist å være Turingkomplett og så snubler vi borti The Halting Problem igjen U u u s a 1 a 2 a 3 t 3 t t t 2 2 u s T 2 3 u u s t t t 1 t t 1 t t 1 t 2 t 1 t t v v r t v r t 2 1 v r b 1 b 2 b 3 t 3 t t 3 2 V 1 v Figure 9: An and gate. 98 For mer:

99 Hvis vi reduserer et NPkomplett problem til vårt problem så er vårt også NP-komplett. Greit nok. Men hvor begynte man i sin tid? Men, men 99

100 Cook og Levin satt på hver sin side av jernteppet under den kalde krigen og begge viste (ved helt *andre* metoder) at (CIRCUIT-)SAT var NP-komplett. CIRCUIT SAT Vi ser ikke på deres bevis her, men antar bare at enkelte problemer (spesifikt CIRCUIT-SAT) er bevist NP-komplette. Erkeproblemet 100

101 Eksempel på NPC-bevis 101

102 Kan reduseres til SAT CLIQUE Kan løses v.h.a. Eller, i vårt tilfelle, 3-CNF-SAT (litt lettere å ha med å gjøre). Vi får en logisk formel på 3-CNF-form (konjunktiv normalform der alle leddene har 3 variable) og skal avgjøre om vi kan gi variablene en tilordning slik at formelen blir sann. Vi antar altså at vi vet at dette er i NPC. 102 Her gjelder det å finne en komplett subgraf av en viss størrelse (dvs. et sett med k noder som alle er koblet til hverandre). MAX-CLIQUE er optimaliseringsvarianten

103 Vi lager en «SAT-løse-maskin» med «CLIQUE-byggeklosser». For å få til en klikk av størrelse 3 må minst én variabel være sann i hver del av formelen og dermed også hele formelen. X Y Z Så: Hvis vi klarer å løse CLIQUE i polynomisk tid kan vi bruke denne teknikken for også å løse SAT. Ergo, siden SAT er i NPC må også CLIQUE være det. X X Y Y Z Z (X or not Y or not Z) and (not X or Y or Z) and (X or Y or Z) 103

104 To grafer er isomorfe hvis vi kan mappe nodene fra den ene til nodene i den andre og bevare kant-relasjonene. Med andre ord, de er «like» så lenge nodene ikke har noen identitet/merkelapp. Vi ser bare på strukturen. Pop Quiz Subgrafisomorfisme: Har grafen G en delgraf som er lik (dvs som har samme struktur som) grafen H? Vis at problemet er NP-komplett. Mulig bevis: Reduser fra CLIQUE 104

105 Til slutt Hva er galt? «NP-komplette problemer har eksponensiell kjøretid» Det er NPC-problemer som er definert slik. (Det kan jo være at P=NP=NPC, dog ) Kanskje vi kan ha flaks eller at de instansene vi må løse har spesielle egenskaper som gjør det løsbart i praksis? Vi vet ikke noe om hvor effektivt de kan løses. «Har du løst ett NPproblem så har du løst alle» «Hvis vi støter på et NPkomplett problem er det bare å gi opp» «Hvis vi antar at P NP så vil ikke NP-komplette problemer kunne verifiseres i polynomisk tid» Vi vet at PATH er i P, men vi vet jo ikke om P NPC Alle problemer i NP (og dermed NPC) kan uansett verifiseres i polynomisk «Hvis P = NP vil alle problemer kunne løses i polynomisk tid» «PATH er ikke NPkomplett» Ikke *alle problemer*, men *alle problemer i NP*. 105

106 NP P NPC P NPC P = NPC P NPC P = NPC 106 EXP NPC Noen mulige (og umulige) verdener. Det at det er flere muligheter skyldes vår manglende kunnskap det er selvfølgelig bare én av variantene som stemmer.

Det er lett å gjøre problemet A Enklere B Vanskeligere

Det er lett å gjøre problemet A Enklere B Vanskeligere None of us truly understands the P versus NP problem, we have only begun to peel the layers around this increasingly complex question. Perhaps we will see a resolution of the P versus NP problem in the

Detaljer

Live life and be merry

Live life and be merry Om grådighet og først litt mer DP. Live life and be merry Ellevte forelesning for tomorrow you may catch some disgusting skin disease. [Edmund Blackadder] 1 2 g i t k i s K o rt Grådighet All form for

Detaljer

Live life and be merry

Live life and be merry Om grådighet og først litt mer DP. Live life and be merry Ellevte forelesning for tomorrow you may catch some disgusting skin disease. [Edmund Blackadder] D&C Bellman-Ford BFS/DFS Binære søketrær LP Binærsøk

Detaljer

Live life and be merry

Live life and be merry Om grådighet og først litt mer DP. Live life and be merry Ellevte forelesning for tomorrow you may catch some disgusting skin disease. [Edmund Blackadder] 1 Litt repetisjon 2 Eksempel Longest Common Subsequence.

Detaljer

Algdat Redux. Fjortende forelesning. Repetisjon av utvalgte emner.

Algdat Redux. Fjortende forelesning. Repetisjon av utvalgte emner. Algdat Redux Fjortende forelesning Repetisjon av utvalgte emner. 1 Nå har vi en brukbar (om enn ikke helt intuitiv) definisjon av «alt» og nå ønsker vi å lage oss en liste med de problemene som er «verst

Detaljer

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi

Detaljer

Pensum: 3. utg av Cormen et al. Øvingstime: I morgen, 14:15

Pensum: 3. utg av Cormen et al. Øvingstime: I morgen, 14:15 http://www.idi.ntnu.no/~algdat algdat@idi.ntnu.no Pensum: 3. utg av Cormen et al. Øvingstime: I morgen, 14:15 b c g a f d e h The pitch drop experiment. Foreløpig kjørt fra 1927 til nå. Åtte dråper har

Detaljer

Kompleksitet og Beregnbarhet

Kompleksitet og Beregnbarhet Kompleksitet og Beregnbarhet 16. September, 2019 Institutt for Informatikk 1 Dagens plan Avgjørelsesproblemer. P EXPTIME NP Reduksjoner NP-kompletthet Uavgjørbarhet UNDECIDABLE DECIDABLE PSPACE NPC NP

Detaljer

Rundt og rundt og. Trettende forelesning

Rundt og rundt og. Trettende forelesning Nettverksalgoritmer. Anvendelser og generaliseringer. Sirkulasjonsproblemet/ lineær programmering. (Kap. 29.1-29.2) Rundt og rundt og Trettende forelesning 1 Merk: Ikke sikkert alt dette blir gjennomgått

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

NP-kompletthet. «Hvordan gjøre noe lett for å vise at noe annet er vanskelig»

NP-kompletthet. «Hvordan gjøre noe lett for å vise at noe annet er vanskelig» NP-kompletthet «Hvordan gjøre noe lett for å vise at noe annet er vanskelig» Gjennomgang Øving 12, maks flyt Oppskrift på et NPkomplett problem 1. Vise at problemet er veldig lett å sjekke 2. Vise at problemet

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

for bare trær Andre forelesning

for bare trær Andre forelesning Formler eller bevis e.l. som er uklare? Si ifra, så kan jeg gå g jennom dem. Forelesningene er ment å være en hjelp til å forstå det man leser i boka ikke «spoon-feeding» av det samme som står der for

Detaljer

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon Kompleksitet IN2010 - algoritmer og datastrukturer Plenumstime / repetisjon Dagens agenda Kompleksitet - hva er det? Avgjørelsesproblemer Kompleksitetsklassene P og NP Reduksjoner - å redusere et problem

Detaljer

Algdat Eksamensforelesning. Nils Barlaug

Algdat Eksamensforelesning. Nils Barlaug Algdat Eksamensforelesning Nils Barlaug Eksamen Pensum Eksamen Pensum Oppgaver du har gjort og ting du har lest Eksamen Pensum Oppgave på eksamen Oppgaver du har gjort og ting du har lest Eksamen Pensum

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

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

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi

Detaljer

deeegimnoorrrsstt Sjette forelesning

deeegimnoorrrsstt Sjette forelesning deeegimnoorrrsstt Sjette forelesning 1 2 Bellman-Ford BFS/DFS Binære søketrær Binærsøk Bubblesort Bucket sort Counting sort Dijkstra DAGshortest-path Edmonds- Karp Floyd- Warshall Hashing Heapsort Huffmankoding

Detaljer

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder. Enkel alle-til-allealgoritme: Kjør Dijkstra (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder. Kan fungere for spinkle grafer blir dyrt ellers. Alle mot alle Åttende forelesning 1 Dijkstra

Detaljer

Eksamen i tdt4120 Algoritmer og datastrukturer

Eksamen i tdt4120 Algoritmer og datastrukturer Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 5 Oppgavestillere: Magnus Lie Hetland Jon Marius Venstad Kvalitetskontroll: Magnar Nedland Faglig

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 9. august, 07 Eksamenstid

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 LØSNINGSFORSLAG,

Detaljer

A new study has found that cockroaches are morons in the morning and geniuses in the evening in terms of their learning capacity.

A new study has found that cockroaches are morons in the morning and geniuses in the evening in terms of their learning capacity. A new study has found that cockroaches are morons in the morning and geniuses in the evening in terms of their learning capacity. Previous studies suggest that the learning capacity of both people and

Detaljer

INF oktober Stein Krogdahl. Altså: Hva kan ikke gjøres raskt (med mindre P = NP)

INF oktober Stein Krogdahl. Altså: Hva kan ikke gjøres raskt (med mindre P = NP) INF 4130 22. oktober 2009 Stein Krogdahl Dagens tema: Mer om NP-kompletthet Altså: Hva kan ikke gjøres raskt (med mindre P = NP) Også her: Dette har blitt framstilt litt annerledes tidligere år Pensum

Detaljer

Agenda. 1 Sortering, heap og select. 2 Binære trær. 3 Grafer, BFS og DFS. 4 Spenntrær og Korteste vei. 5 Maks flyt. 6 Dynamisk programmering

Agenda. 1 Sortering, heap og select. 2 Binære trær. 3 Grafer, BFS og DFS. 4 Spenntrær og Korteste vei. 5 Maks flyt. 6 Dynamisk programmering Agenda 1 Sortering, heap og select Oppsummering Ola Natvig IDI - NTNU 23. november 2007 2 Binære trær 3 Grafer, BFS og DFS 4 Spenntrær og Korteste vei 5 Maks flyt 6 Dynamisk programmering 7 Grådighet 8

Detaljer

ALGORITMER OG DATASTRUKTURER

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

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

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

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

Detaljer

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl Student nr.: Side 1 av 5 Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler: Alle

Detaljer

O(V 2 ) bwfs(v, i=1) λ[v] = i for each neighbor u of v if 0 < λ[u] < i. bwfs(u, i+1) if λ[u] = 0

O(V 2 ) bwfs(v, i=1) λ[v] = i for each neighbor u of v if 0 < λ[u] < i. bwfs(u, i+1) if λ[u] = 0 O(V 2 ) bwfs(v, i=1) λ[v] = i for each neighbor u of v if 0 < λ[u] < i bwfs(u, i) for each neighbor u of v if λ[u] = 0 bwfs(u, i+1) Bacwards-first search; traverserer en graf med kvadratisk worst-casekjøretid.

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 9. august, 07 Eksamenstid

Detaljer

Algdat Oppsummering, eksamen-ting. Jim Frode Hoff

Algdat Oppsummering, eksamen-ting. Jim Frode Hoff Algdat Oppsummering, eksamen-ting Jim Frode Hoff November 18, 2012 1 Definisjoner 1.1 Ordliste Problem Probleminstans Iterasjon Asymtpoisk notasjon O(x) kjøretid Ω(x) kjøretid Θ(x) kjøretid T (x) kjøretid

Detaljer

Algdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland

Algdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland Algdat-ninja på 60 minutter: Et galskapsprosjekt Magnus Lie Hetland 15. november, 2002 Advarsel: Tettpakkede og overfladiske foiler forut! 1 Algtdat i 6 punkter 1. Grunnbegreper og basisverktøy 2. Rekursjon

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

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

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

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

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt.

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt. Side 1 av 5 Noen viktige punkter: (i) (ii) (iii) (iv) Les hele eksamenssettet nøye før du begynner! Faglærer går normalt én runde gjennom lokalet. Ha evt. spørsmål klare! Skriv svarene dine i svarrutene

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 14. desember 2011 Eksamenstid 1500 1900 Sensurdato 14. januar Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

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

Choices, choices. Tiende forelesning. Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før.

Choices, choices. Tiende forelesning. Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før. Choices, choices Tiende forelesning Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før. DAG- SP er erkeeksemplet (og den underliggende modellen for all DP).

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

All good things. Fjortende forelesning

All good things. Fjortende forelesning All good things Fjortende forelesning Div notater finnes på http://www.idi.ntnu.no/~algdat Foiler finnes på http://www.idi.ntnu.no/~mlh/algdat/latitudinary Spørsmål? algdat@idi.ntnu.no Sjekkliste Dette

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 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 11: Huffman-koding & Dynamisk programmering (Ifi, UiO) INF2220 H2015, forelesning 11 1 / 32 Dagens

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

INF2220: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk

INF2220: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk INF0: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk Mathias Lohne mathialo Rekursjonseksempel Eksempel Finn kjøretid for følgende program: (Ex11 b) 1 float foo(a) { n = Alength; 3 4 if

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 13: Dynamisk programmering (Ifi, UiO) INF2220 H2017, forelesning 13 1 / 30 Dagens plan Dynamisk

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 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 918 51 949 Eksamensdato 4. desember, 2017

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

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

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

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005 Studentnummer: Side 1 av 1 Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005 Faglige kontakter under eksamen: Magnus Lie Hetland, Arne Halaas Tillatte hjelpemidler: Bestemt enkel

Detaljer

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl Student nr.: Side 1 av 5 Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler:

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

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

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

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

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

Evt. forklar på tavla. Diskuter kjøretid (best-/ worst-case). Innsetting og søk. Rekursjon igjen. A C E G

Evt. forklar på tavla. Diskuter kjøretid (best-/ worst-case). Innsetting og søk. Rekursjon igjen. A C E G TLDR RTFM Innsetting og søk. Rekursjon igjen. Evt. forklar på tavla. Diskuter kjøretid (best-/ worst-case). D B F A C E G reduksjon! rekursjon dekomp. induksjon gjenbruk travers. Søk i søketre uten balansering

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

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

Løsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

Løsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl Student nr.: Side 1 av 7 Løsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler:

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

Detaljer

Først litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda

Først litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda Først litt praktisk info Sorteringsmetoder Gruppeøvinger har startet http://selje.idi.ntnu.no:1234/tdt4120/gru ppeoving.php De som ikke har fått gruppe må velge en av de 4 gruppende og sende mail til algdat@idi.ntnu.no

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

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

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. 918 51 949 Eksamensdato 12. august, 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D.

Detaljer

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

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

Detaljer

Lineær sortering. Radix sort

Lineær sortering. Radix sort Fra forrige gang 1 Lineær sortering Radix sort 2 Sorter hvert siffer for seg Bruk en stabil sortering (f.eks. CS) for å bevare arbeidet så langt Vi må begynne med minst signifikante siffer Konstant antall

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

Teoriøving 7 + litt om Ford-Fulkerson. Magnus Lie Hetland

Teoriøving 7 + litt om Ford-Fulkerson. Magnus Lie Hetland Teoriøving 7 + litt om Ford-Fulkerson Magnus Lie Hetland Oppgave 1 a s 7 t 3 x 4 2 2 8 2 u 6 v 3 w Bruk DIJKSTRA eller BELLMAN-FORD og finn minste avstand fra s til de andre nodene. Svar/utregning (DIJKSTRA):

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

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

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

MAT1140: Kort sammendrag av grafteorien

MAT1140: Kort sammendrag av grafteorien MAT1140: Kort sammendrag av grafteorien Dette notatet gir en kort oversikt over den delen av grafteorien som er gjennomgått i MAT1140 høsten 2013. Vekten er på den logiske oppbygningen, og jeg har utelatt

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

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

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

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding Grafer Dagens plan INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Avsluttende om grådige algoritmer (kap. 10.1.2) Dynamisk programmering Floyds algoritme

Detaljer

INF Stein Krogdahl. NB: Det som under forelesningen ble kalt et vitne er nå omdøpt til et sertifikat.

INF Stein Krogdahl. NB: Det som under forelesningen ble kalt et vitne er nå omdøpt til et sertifikat. INF 4130 15. oktober 2009 Stein Krogdahl NB: Det som under forelesningen ble kalt et vitne er nå omdøpt til et sertifikat. Dagens tema: NP-kompletthet Eller: hvilke problemer er umulig å løse effektivt?

Detaljer

Innhold. Innledning 1

Innhold. Innledning 1 Innhold Innledning 1 1 Kompleksitetsanalyse 7 1.1 Innledning.............................. 8 1.2 Hva vi beregner........................... 8 1.2.1 Enkle operasjoner...................... 8 1.2.2 Kompleksitet........................

Detaljer

Notater til INF2220 Eksamen

Notater til INF2220 Eksamen Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær

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

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

45011 Algoritmer og datastrukturer Løsningsforslag eksamen 13. januar 1992 45011 Algoritmer og datastrukturer Løsningsforslag eksamen 13. januar 12 Oppgave 1 Idé til algoritme Benytter S n som betegn på en tallmengde med n elementer. For at et tall m skal være et majoritetstall

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

Dynamisk programmering

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

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

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

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

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

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

Fra A til B. Syvende forelesning

Fra A til B. Syvende forelesning Fra A til B Syvende forelesning 1 Amøbeproblemet nok en gang. Hva er 1+2+4+ +n/2? 2 Skal la være å trekke frem binærtrefiguren igjen ;-) La oss se på det på en litt annen måte, som passer dagens tema (fra

Detaljer

MAT1140: Kort sammendrag av grafteorien

MAT1140: Kort sammendrag av grafteorien MAT1140, H-15 MAT1140: Kort sammendrag av grafteorien Dette notatet gir en kort oppsummering av grafteorien i MAT1140. Vekten er på den logiske oppbygningen, og jeg har utelatt all motivasjon og (nesten)

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