Tekstalgoritmer. Søk etter delstrenger i array

Størrelse: px
Begynne med side:

Download "Tekstalgoritmer. Søk etter delstrenger i array"

Transkript

1

2 Tekstalgoritmer Søk etter delstrenger i array

3 Definisjoner Et alfabet er en endelig mengde tegn A = {a 1, a 2,, a k }. En (tekst)streng S = S [0: n -1] med lengde n er en sekvens av tegn fra A. Vi vil i programmene representer strengen S som en array S[0:n -1].

4 Definisjoner Et alfabet er en endelig mengde tegn A = {a 1, a 2,, a k }. En (tekst)streng S = S [0: n -1] med lengde n er en sekvens av tegn fra A. Vi vil i programmene representer strengen S som en array S[0:n -1]. Søkeproblemet: Gitt to strenger, T (= Tekst) and P (= Pattern) mønster, hvor P er kortere enn T (vanligvis mye kortere). Finn ut om P finnes som en (sammenhengende) substreng i T, og hvis ja, hvor i T n -1 m-1 T [0:n -1] (Tekst) P [0:m -1] (Mønster)

5 Definisjoner Et alfabet er en endelig mengde tegn A = {a 1, a 2,, a k }. En (tekst)streng S = S [0: n -1] med lengde n er en sekvens av tegn fra A. Vi vil i programmene representer strengen S som en array S[0:n -1]. Søkeproblemet: Gitt to strenger, T (= Tekst) and P (= Pattern) mønster, hvor P er kortere enn T (vanligvis mye kortere). Finn ut om P finnes som en (sammenhengende) substreng i T, og hvis ja, hvor i T n -1 H [0:n -1] (Høystakk) m-1 N [0:m -1] (Nål)

6 Definisjoner Let P be a string of size m A substring P[i.. j] of P is the subsequene of P onsisting of the haraters with ranks between i and j A prefix of P is a substring of the type P[0.. i] A suffix of P is a substring of the type P[i..m - 1] i j m -1 P [0:m -1]

7 Definisjoner Let P be a string of size m A substring P[i.. j] of P is the subsequene of P onsisting of the haraters with ranks between i and j A prefix of P is a substring of the type P[0.. i] A suffix of P is a substring of the type P[i..m - 1] i m -1 P [0:m -1]

8 Definisjoner Let P be a string of size m A substring P[i.. j] of P is the subsequene of P onsisting of the haraters with ranks between i and j A prefix of P is a substring of the type P[0.. i] A suffix of P is a substring of the type P[i..m - 1] i m -1 P [0:m -1]

9

10 Examples of strings: Python program HTML doument DNA sequene Digitized image import math print("enter the oeffiients of the form ax^3 + bx^2 + x + d") lst=[] for i in range(0,4): a=int(input("enter oeffiient:")) lst.append(a) x=int(input("enter the value of x:")) sum1=0 j=3 for i in range(0,3): while(j>0): sum1=sum1+(lst[i]*math.pow(x,j)) break j=j-1 sum1=sum1+lst[3] print("the value of the polynomial is:",sum1)

11 Examples of strings: Python program HTML doument DNA sequene Digitized image <!DOCTYPE html> <html lang="no"> <head> <meta hwp-equiv="x-ua-compa\ble" ontent="ie=edge" /> <meta id="viewport" name="viewport" ontent="width=devie-width, ini\al-sale=1" /> <meta harset="u_-8" > <meta name="format-dete\on" ontent="telephone=no"> <meta name="generator" ontent="vortex" /> <\tle>obligatoriske innleveringer høsten IN Høst Universitetet i Oslo</\tle> <meta property="og:\tle" ontent="obligatoriske innleveringer høsten IN Høst Universitetet i Oslo" /> <meta name="twiwer:ard" ontent="summary" /> <meta name="twiwer:site" ontent="@unioslo" /> <meta name="twiwer:\tle" ontent="obligatoriske innleveringer høsten 2018" /> <meta name="twiwer:desrip\on" ontent="les denne saken på UiOs newsider." /> <meta name="twiwer:url" ontent="hwps:// /> <meta property="og:url" ontent="hwps:// /> <meta property="og:type" ontent="website" /> <link rel="shortut ion" href="/vrtx/deora\ng/resoures/dist/images/favion.io" > <link rel="apple-touh-ion-preomposed" href="/vrtx/deora\ng/resoures/dist/images/apple-touhion.png" > <sript><!-- if (/ipad Android 3/i.test(navigator.userAgent)) { var tabletvp = doument.getelementbyid('viewport'); tabletvp.setawribute("ontent", "width=1020, user-salable=yes"); } if (/googlebot/i.test(navigator.useragent)) { doument.addeventlistener("domcontentloaded", fun\on(event) { var ss = '@media only sreen and (max-width: 16m) and (orienta\on : portrait),' + ' var head = doument.getelementsbytagname('head')[0]; var s = doument.reateelement('style'); s.setawribute('type', 'text/ss'); if (s.stylesheet) { s.stylesheet.sstext = ss; } else { s.appendchild(doument.reatetextnode(ss)); } head.appendchild(s); }); } only sreen and (max-width: 19m) and (orienta\on : landsape) { * { max-width: 420px; } }';

12 Examples of strings: Python program HTML doument DNA sequene Digitized image

13 Examples of strings: Python program HTML doument DNA sequene Digitized image

14 Anvendelser GREP(1) User Commands GREP(1) NAME top grep, egrep, fgrep - print lines that math pawerns SYNOPSIS top grep [OPTION...] PATTERNS [FILE...] grep [OPTION...] -e PATTERNS... [FILE...] grep [OPTION...] -f PATTERN_FILE... [FILE...] DESCRIPTION top grep searhes for PATTERNS in eah FILE. PATTERNS is one or pawerns separated by newline haraters, and grep prints eah line that mathes a pawern. A FILE of - stands for standard input. If no FILE is given, reursive searhes examine the working diretory, and nonreursive searhes read standard input. In addi\on, the variant programs egrep and fgrep are the same as grep -E and grep -F, respe\vely. These variants are depreated, but are provided for bakward ompa\bility.

15 Anvendelser

16 Anvendelser

17 Anvendelser

18 0 1 2 n -1 T [0:n -1] P [0:m -1]

19 Vindu n -1 T [0:n -1] P [0:m -1] Hvordan vil du gjøre dette? Beskriv en algoritme!

20 Vindu n -1 T [0:n -1] P [0:m -1] Sammenlign Vinduet med P: Hvis mismath, flytt vinduet ett hakk forover

21 0 1 2 n -1 T [0:n -1] P [0:m -1] Sammenlign Vinduet med P: Hvis mismath, flytt vinduet ett hakk forover

22 0 1 2 n -1 T [0:n -1] P [0:m -1] Sammenlign Vinduet med P: Hvis mismath, flytt vinduet ett hakk forover

23 0 1 2 n-m n -1 T [0:n -1] P [0:m -1] Sammenlign Vinduet med P: Hvis mismath, P finnes ikke i T (som substreng)

24 Sammenligner fra 0 mot n Vindu n-m n -1 T [0:n -1] P [0:m -1] for i 0 to n - m do if T [i : i+m-1] = P then // er vindu = P? return(i) endif endfor return(-1)

25 Den naive algoritmen for strengsammenligning Vindu Sammenligner fra 0 mot n n -1 T [0:n -1] P [0:m -1]

26 Den naive algoritmen for strengsammenligning Vindu Sammenligner fra 0 mot n n -1 T [0:n -1] P [0:m -1] Brute fore (rå kraft) brukes ofte synonymt med unødvendig tungvindt dårlig, men korrekt treg enkel lite gjennomtenkt nødløsning lite effektiv

27 Den naive algoritmen for strengsammenligning Vindu Sammenligner fra 0 mot n n -1 T [0:n -1] P [0:m -1] Brute fore (rå kraft) brukes ofte synonymt med unødvendig tungvindt dårlig, men korrekt treg enkel lite gjennomtenkt nødløsning lite effektiv men er noen ganger nødvendig brute fore løsninger er typisk den første ideen vi får i IN2010 søker vi som oftest mer effektive algoritmer

28 Den naive algoritmen for strengsammenligning Vindu Sammenligner fra 0 mot n n -1 T [0:n -1] The brute-fore pattern mathing algorithm ompares the pattern P with the text T for eah possible shift of P relative to T, until either a math is found, or all plaements of the pattern have been tried Brute-fore pattern mathing runs in time O(nm) Example of worst ase: T = aaa ah P = aaah may our in images and DNA sequenes unlikely in English text P [0:m -1]

29 Den naive algoritmen for strengsammenligning Vindu Sammenligner fra 0 mot n n -1 T [0:n -1] Algorithm BruteForeMath(T, P) Input text T of size n and pattern P of size m Output starting index of a substring of T equal to P or -1 if no suh substring exists for i 0 to n - m { test shift i of the pattern } j 0 while j < m T[i + j] = P[j] j j + 1 if j = m return i {math at i} else break while loop {mismath} return -1 {no math anywhere} P [0:m -1]

30 Boyer-Moore a p a t t e r n m a t h i n g a l g o

31 Boyer-Moore a p a t t e r n m a t h i n g a l g o

32 Boyer-Moore a p a t t e r n m a t h i n g a l g o

33 Boyer-Moore a p a t t e r n m a t h i n g a l g o

34 Boyer-Moore a p a t t e r n m a t h i n g a l g o

35 Boyer-Moore a p a t t e r n m a t h i n g a l g o

36 Boyer-Moore a p a t t e r n m a t h i n g a l g o

37 Boyer-Moore a p a t t e r n m a t h i n g a l g o

38 Boyer-Moore a p a t t e r n m a t h i n g a l g o

39 Boyer-Moore a p a t t e r n m a t h i n g a l g o

40 Boyer-Moore a p a t t e r n m a t h i n g a l g o

41 Boyer-Moore a p a t t e r n m a t h i n g a l g o

42 Boyer-Moore a p a t t e r n m a t h i n g a l g o

43 Boyer-Moore a p a t t e r n m a t h i n g a l g o

44 Boyer-Moore a p a t t e r n m a t h i n g a l g o

45 Boyer-Moore a p a t t e r n m a t h i n g a l g o

46 Boyer-Moore a p a t t e r n m a t h i n g a l g o

47 Boyer-Moore a p a t t e r n m a t h i n g a l g o

48 Boyer-Moore a p a t t e r n m a t h i n g a l g o

49 Boyer-Moore a p a t t e r n m a t h i n g a l g o

50 Boyer-Moore a p a t t e r n m a t h i n g a l g o

51 Boyer-Moore a p a t t e r n m a t h i n g a l g o

52 Boyer-Moore a p a t t e r n m a t h i n g a l g o

53 Boyer-Moore a p a t t e r n m a t h i n g a l g o

54 Boyer-Moore a p a t t e r n m a t h i n g a l g o

55 Boyer-Moore a p a t t e r n m a t h i n g a l g o

56 Boyer-Moore a p a t t e r n m a t h i n g a l g o

57 Boyer-Moore a p a t t e r n m a t h i n g a l g o

58 Boyer-Moore a p a t t e r n m a t h i n g a l g o

59 Boyer-Moore a p a t t e r n m a t h i n g a l g o

60 Boyer-Moore a p a t t e r n m a t h i n g a l g o

61 Boyer-Moore a p a t t e r n m a t h i n g a l g o

62 Boyer-Moore a p a t t e r n m a t h i n g a l g o

63 Boyer-Moore a p a t t e r n m a t h i n g a l g o

64 Boyer-Moore a p a t t e r n m a t h i n g a l g o Hvilke forberedelser må vi gjøre for å kunne bestemme hvor langt vi skal rykke fram når det er en mismath?

65 Boyer-Moore a p a t t e r n m a t h i n g a l g o Charater-jump heuristi: When a mismath ours at T[i] = If P ontains, shift P to align the last ourrene of in P with T[i] Else, shift P to align P[0] with T[i + 1]

66 Boyer-Moore a p a t t e r n m a t h i n g a l g o Charater-jump heuristi: When a mismath ours at T[i] = If P ontains, shift P to align the last ourrene of in P with T[i] Else, shift P to align P[0] with T[i + 1] Vi må for alle tegn i alfabetet vite: Finnes i mønsteret P? Hvis ja, må vi vite hvor siste forekomst er.

67 Boyer-Moore a p a t t e r n m a t h i n g a l g o d e f g h i j k last() Vi må for alle tegn i alfabetet vite: Finnes i mønsteret P? Hvis ja, må vi vite hvor siste forekomst er.

68 Boyer-Moore Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math } Case 1: j 1 + l Case 2: 1 + l j a i b a j l m j.... b a j a a.. i b. l j m (1 + l). a.. b. 1 + l

69 Analyse Kjøretiden for Boyer-Moores algoritme er O(nm + s) Worst ase-eksempel: T = aaa a P = baaa Kan oppstå i bilder og DNAsekvenser men er usannsynlig i norsk/engelsk tekst Algoritmen er signifikant raskere enn brute-fore på norsk/engelsk tekst a a a a a a a a a b a a a a a 12 b a a a a a b a a a a a b a a a a a

70 Boyer-Moore a a a a a a b b a L() Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

71 Boyer-Moore i = 5 a a a a a a b b a L() j = 5 l L[T[i]] i i + m min(j, 1 + l) j m - 1 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

72 Boyer-Moore i = 5 a a a a a a b b a L() j = 5 l L[T[5]] i i + m min(j, 1 + l) j m - 1 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

73 Boyer-Moore i = 5 a a a a a a b b a L() j = 5 l L[a] i i + m min(j, 1 + l) j m - 1 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

74 Boyer-Moore i = 5 a a a a a a b b a L() j = 5 l 4 i i + m min(j, 1 + l) j m - 1 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

75 Boyer-Moore i = 5 a a a a a a b b a L() j = 5 l 4 i min(5, 1 + 4) j m - 1 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

76 Boyer-Moore i = 5 a a a a a a b b a L() j = 5 l 4 i min(5, 5 ) j m - 1 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

77 Boyer-Moore i = 5 a a a a a a b b a l 4 i j m - 1 L() j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

78 Boyer-Moore i = 5 a a a a a a b b a l 4 i 6 j m - 1 L() j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

79 Boyer-Moore i = 5 a a a a a a b b l 4 i 6 j 5 a L() j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

80 Boyer-Moore i = 6 a a a a a a b b l 4 i 6 j 5 a L() j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

81 Boyer-Moore i = 6 a a a a a a b b a L() j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

82 Boyer-Moore i = 4 a a a a a a b b a j = 3 L() Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

83 Boyer-Moore i = 4 a a a a a a b b a j = 3 L() Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

84 Boyer-Moore i = 7 a a a a a a b b a L() j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

85 Boyer-Moore i = 7 a a a a a a b b a L() j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

86 Boyer-Moore i = 8 a a a a a a b b L() a j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

87 Boyer-Moore i = 8 a a a a a a b b L() a j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

88 Boyer-Moore i = 8 a a a a a a b b L() a j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

89 Boyer-Moore i = 8 a a a a a a b b L() a j = 5 Algorithm BoyerMooreMath(T, P, Σ) L lastourenefuntion(p, Σ ) i m - 1 j m - 1 repeat if T[i] = P[j] if j = 0 return i { math at i } else i i - 1 j j - 1 else { harater-jump } l L[T[i]] i i + m min(j, 1 + l) j m - 1 until i > n - 1 return -1 { no math }

90 Boyer-Moore i = 10 a a a a a a b b a j = 5

91 Boyer-Moore i = 10 a a a a a a b b a j = 5

92 Boyer-Moore a a a a a a b b a

93 Boyer-Moore i = 8 a a a a a a b b a j = 2 L() 4 5 3

94 Boyer-Moore i = 12 a a a a a a b b a j = 5 L() 4 5 3

95 Boyer-Moore i = 12 a a a a a a b b a j = 5 L() 4 5 3

96 Boyer-Moore i = 12 a a a a a a b b a j = 5 L() 4 5 3

97 Boyer-Moore i = 13 a a a a a a b b a j = 5 L() 4 5 3

98 Boyer-Moore i = 15 a a a a a a b b a j = 5 L() 4 5 3

99 Boyer-Moore i = 10 a a a a a a b b a

100 Boyer-Moore a a a a a a b b a Men hva er svakheten til Boyer-More?

101 Boyer-Moore i = 8 a a a a a a b b a j = 2

102 Boyer-Moore i = 12 a a a a a a b b a j = 5

103 Boyer-Moore i = 8 a a a a a a b b a j = 2

104 Boyer-Moore i = 8 a a a a a a b b a j = 2

105 Boyer-Moore i = 8 a a a a a a b b a j = 2

106 Boyer-Moore i = 15 a a a a a a b b a j = 5

107 Boyer-Moore med good suffix shift i = 15 a a a a a a b b a j = 5

108 Boyer-Moore med good suffix shift i = 8 a a a a a a b b a j = 2

109 Boyer-Moore med good suffix shift i = 15 a a a a a a b b a j = 5

110 Knuth-Morris-Pratt-algoritmen a a a a a a b b a

111 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

112 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

113 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

114 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

115 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

116 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

117 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

118 Knuth-Morris-Pratt-algoritmen i a a a a a a b b a

119 Knuth-Morris-Pratt-algoritmen i a a a a a a b b a

120 Knuth-Morris-Pratt-algoritmen i a a a a a a b b a

121 Knuth-Morris-Pratt-algoritmen i a a a a a a b b a

122 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a Ingen sammenligning nødvendig her

123 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a Første sammenligning etter flytting av j ( j 1 )

124 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a Mismath, og vi flytter ett hakk ( j 0 )

125 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a Mismath, og vi flytter ett hakk ( j 0 )

126 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

127 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

128 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

129 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a

130 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a Mismath, og vi flytter 4 hakk ( j 0 )

131 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a Mismath, og vi flytter 4 hakk ( j 0 )

132 Knuth-Morris-Pratt-algoritmen i a a a a a a b b j a Mismath, og vi flytter 1 hakk ( i 0 )

133 Knuth-Morris-Pratt-algoritmen a a a a a a i b b j a

134 Knuth-Morris-Pratt-algoritmen a a a a a a b b a 7 a a j P[j] a F(j) a a

135 Knuth-Morris-Pratt-algoritmen the failure funtion Også kjent som «partial math-table» j P[j] a F(j)

136 Knuth-Morris-Pratt-algoritmen the failure funtion Også kjent som «partial math-table» Knuth-Morris-Pratt s algorithm preproesses the pattern to find mathes of prefixes of the pattern with the pattern itself j P[j] a F(j)

137 Knuth-Morris-Pratt-algoritmen the failure funtion Også kjent som «partial math-table» Knuth-Morris-Pratt s algorithm preproesses the pattern to find mathes of prefixes of the pattern with the pattern itself The failure funtion F(j) is defined as the size of the largest prefix of P[0..j] that is also a suffix of P[1..j] j P[j] a F(j)

138 Knuth-Morris-Pratt-algoritmen the failure funtion Også kjent som «partial math-table» Knuth-Morris-Pratt s algorithm preproesses the pattern to find mathes of prefixes of the pattern with the pattern itself The failure funtion F(j) is defined as the size of the largest prefix of P[0..j] that is also a suffix of P[1..j] Knuth-Morris-Pratt s algorithm modifies the brute-fore algorithm so that if a mismath ours at P[j] T[i] we set j F( j - 1) j P[j] a F(j)

139 j P[j] a F(j) 0 F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j]

140 j P[j] a F(j) 0 F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..1] = ab P[1..1] = b Altså lengste prefiks i ab som også er suffiks i b

141 j P[j] a F(j) 0 0 F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..1] = ab P[1..1] = b Altså lengste prefiks i ab som også er suffiks i b

142 j P[j] a F(j) 0 0 F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..2] = aba P[1..2] = ba Altså lengste prefiks i aba som også er suffiks i ba

143 j P[j] a F(j) 0 0 F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..2] = aba P[1..2] = ba Altså lengste prefiks i ab som også er suffiks i ba

144 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..2] = aba P[1..2] = ba Altså lengste prefiks i ab som også er suffiks i ba

145 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..3] = aba P[1..3] = ba Altså lengste prefiks i aba som også er suffiks i ba

146 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..3] = aba P[1..3] = ba Altså lengste prefiks i aba som også er suffiks i ba

147 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..4] = abaa P[1..4] = baa Altså lengste prefiks i abaa som også er suffiks i baa

148 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..4] = abaa P[1..4] = baa Altså lengste prefiks i abaa som også er suffiks i baa

149 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..4] = abaa P[1..4] = baa Altså lengste prefiks i abaa som også er suffiks i baa

150 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..5] = abaab P[1..4] = baab Altså lengste prefiks i abaab som også er suffiks i baab

151 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..5] = abaab P[1..4] = baab Altså lengste prefiks i abaab som også er suffiks i baab

152 j P[j] a F(j) F(j) er definert som lengden av lengste prefikset i P[0..j] som også er suffiks i P[1..j] P[0..5] = abaab P[1..4] = baab Altså lengste prefiks i abaab som også er suffiks i baab

153 KMP Failure Funtion Knuth-Morris-Pratt s algorithm preproesses the pattern to find mathes of prefixes of the pattern with the pattern itself The failure funtion F(j) is defined as the size of the largest prefix of P[0..j] that is also a suffix of P[1..j] Knuth-Morris-Pratt s algorithm modifies the brutefore algorithm so that if a mismath ours at P[j] T[i] we set j F(j - 1) j P[j] a a F(j) a x..... a a j a a F(j 1)

154 The KMP Algorithm The failure funtion an be represented by an array and an be omputed in O(m) time At eah iteration of the whileloop, either i inreases by one, or the shift amount i - j inreases by at least one (observe that F(j - 1) < j) Hene, there are no more than 2n iterations of the whileloop Thus, KMP s algorithm runs in optimal time O(m + n) Algorithm KMPMath(T, P) F failurefuntion(p) i 0 j 0 while i < n if T[i] = P[j] if j = m - 1 return i - j { math } else i i + 1 j j + 1 else if j > 0 j F[j - 1] else i i + 1 return -1 { no math }

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

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

Detaljer

Turingmaskiner.

Turingmaskiner. Turingmaskiner http://www.youtube.com/watch?v=e3kelemwfhy http://www.youtube.com/watch?v=cyw2ewoo6c4 Søking i strenger Vanlige søkealgoritmer (on-line-søk) Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen

Detaljer

INF 4130 / / Dagens foiler hovedsakelig laget av Petter Kristiansen Foreleser Stein Krogdahl Obliger:

INF 4130 / / Dagens foiler hovedsakelig laget av Petter Kristiansen Foreleser Stein Krogdahl Obliger: INF 4130 / 9135 29/8-2012 Dagens foiler hovedsakelig laget av Petter Kristiansen Foreleser Stein Krogdahl Obliger: Tre stykker, som må godkjennes. Frister: 21. sept, 26. okt, 16. nov Andre, «nærliggende»

Detaljer

Pattern matching algorithms. INF Algoritmer og datastrukturer. Lokalisering av Substrenger. Brute force

Pattern matching algorithms. INF Algoritmer og datastrukturer. Lokalisering av Substrenger. Brute force Pattern matching algorithms INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo Algoritmer for lokalisering av substrenger Brute force Enkleste tenkelige

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Tekstalgoritmer 1 Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning 10 1

Detaljer

Stein Krogdahl, Dino Karabeg, Petter Kristiansen. Kenneth A. Berman and Jerome L. Paul.

Stein Krogdahl, Dino Karabeg, Petter Kristiansen. Kenneth A. Berman and Jerome L. Paul. Stein Krogdahl, Dino Karabeg, Petter Kristiansen steinkr at ifi.uio.no dino at ifi.uio.no pettkr at ifi.uio.no INF 4130 / 9135 Algoritmer: Design og effektivitet Algorithms: Sequential Parallel and Distributed

Detaljer

Dynamic Programming Longest Common Subsequence. Class 27

Dynamic Programming Longest Common Subsequence. Class 27 Dynamic Programming Longest Common Subsequence Class 27 Protein a protein is a complex molecule composed of long single-strand chains of amino acid molecules there are 20 amino acids that make up proteins

Detaljer

Slope-Intercept Formula

Slope-Intercept Formula LESSON 7 Slope Intercept Formula LESSON 7 Slope-Intercept Formula Here are two new words that describe lines slope and intercept. The slope is given by m (a mountain has slope and starts with m), and intercept

Detaljer

Neural Network. Sensors Sorter

Neural Network. Sensors Sorter CSC 302 1.5 Neural Networks Simple Neural Nets for Pattern Recognition 1 Apple-Banana Sorter Neural Network Sensors Sorter Apples Bananas 2 Prototype Vectors Measurement vector p = [shape, texture, weight]

Detaljer

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen TABELLPARSING 1. mars 2011 2 I dag Oppsummering fra sist: Recursive-descent og Shift-reduce parser Svakheter med disse Tabellparsing: Dynamisk

Detaljer

Øvingsforelesning 3 Python (TDT4110)

Øvingsforelesning 3 Python (TDT4110) Øvingsforelesning 3 Python (TDT4110) For og While-løkker Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av øving 1 Programmering for Øving 3 2 Studasser og Piazza Studasser er der for å hjelpe

Detaljer

3/1/2011. I dag. Recursive descent parser. Problem for RD-parser: Top Down Space. Jan Tore Lønning & Stephan Oepen

3/1/2011. I dag. Recursive descent parser. Problem for RD-parser: Top Down Space. Jan Tore Lønning & Stephan Oepen INF2820 Datalingvistikk V2011 TABELLPARSING Jan Tore Lønning & Stephan Oepen 1. mars 2011 2 I dag Oppsummering fra sist: Recursive-descent og Shift-reduce parser Svakheter med disse Tabellparsing: Dynamisk

Detaljer

7) Radix-sortering sekvensielt kode og effekten av cache

7) Radix-sortering sekvensielt kode og effekten av cache ) Radix-sortering sekvensielt kode og effekten av cache Dels er denne gjennomgangen av vanlig Radix-sortering viktig for å forstå en senere parallell versjon. Dels viser den effekten vi akkurat så tilfeldig

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

Om Kurset og Analyse av Algoritmer

Om Kurset og Analyse av Algoritmer Om Kurset og Analyse av Algoritmer Lars Vidar Magnusson 8.1.2014 Praktisk informasjon om kurset Hva er en algoritme? (kapittel 1) Hvordan analysere en algoritme? (kapittel 2) Praktisk Informasjon Introduction

Detaljer

stjerneponcho for voksne star poncho for grown ups

stjerneponcho for voksne star poncho for grown ups stjerneponcho for voksne star poncho for grown ups www.pickles.no / shop.pickles.no NORSK Størrelser XS (S) M (L) Garn Pickles Pure Alpaca 300 (350) 400 (400) g hovedfarge 100 (100) 150 (150) g hver av

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. juni 2010 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

MAT1030 Plenumsregning 3

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

Detaljer

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3 Relational Algebra 1 Unit 3.3 Unit 3.3 - Relational Algebra 1 1 Relational Algebra Relational Algebra is : the formal description of how a relational database operates the mathematics which underpin SQL

Detaljer

Kap 2: Løkker og lister

Kap 2: Løkker og lister Kap 2: Løkker og lister Ole Christian Lingjærde, Inst for Informatikk, UiO 26-30 August, 2019 (Del 2 av 2) Forrige forelesning på en foil Formatert utskrift: %-operator og f-strings To typer løkker: while-løkker

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

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere

Detaljer

IN2010: Algoritmer og Datastrukturer Series 2

IN2010: Algoritmer og Datastrukturer Series 2 Universitetet i Oslo Institutt for Informatikk S.M. Storleer, S. Kittilsen IN2010: Algoritmer og Datastrukturer Series 2 Tema: Grafteori 1 Publisert: 02. 09. 2019 Utvalgte løsningsforslag Oppgave 1 (Fra

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

MAT1030 Diskret matematikk

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

Detaljer

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs Side 1 av 7 Institutt for datateknikk og informasjonsvitenskap Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs Eksamensdato: 2017-08-18 Oppgave 1: Flervalgsoppgave (25%)

Detaljer

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM 2 TEMA 1 MULTIPROSESSERING MED DATASTEGET Multiprosessering har lenge vært et tema i SAS Stadig ny funksjonalitet er med på

Detaljer

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python I disse oppgavene skal vi introdusere Python, og vise hvordan vi kan jobbe med tekst i Python. Vi skal se på hva et programmeringsspråk

Detaljer

Lynkurs i shellprogrammering under Linux

Lynkurs i shellprogrammering under Linux Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).

Detaljer

Information search for the research protocol in IIC/IID

Information search for the research protocol in IIC/IID Information search for the research protocol in IIC/IID 1 Medical Library, 2013 Library services for students working with the research protocol and thesis (hovedoppgaven) Open library courses: http://www.ntnu.no/ub/fagside/medisin/medbiblkurs

Detaljer

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning INF2820 Datalingvistikk V2015 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 26. januar 2015 2 ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 26. januar 2015

Detaljer

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning INF2820 Datalingvistikk V2016 Jan Tore Lønning ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 25. januar 2016 2 Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En innretning som

Detaljer

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning INF2820 Datalingvistikk V2016 Jan Tore Lønning ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 3. februar 2016 2 Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En innretning som

Detaljer

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye) INF234 Er du? Er du? - Annet Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye) Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye) Hvor

Detaljer

Databases 1. Extended Relational Algebra

Databases 1. Extended Relational Algebra Databases 1 Extended Relational Algebra Relational Algebra What is an Algebra? Mathematical system consisting of: Operands --- variables or values from which new values can be constructed. Operators ---

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 4: Ukeoppgaver fra kapittel 3 & 4 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 7. februar 2008 Oppgave 3.15 Forklar følgende påstand ved å vise til

Detaljer

MA2501 Numerical methods

MA2501 Numerical methods MA250 Numerical methods Solutions to problem set Problem a) The function f (x) = x 3 3x + satisfies the following relations f (0) = > 0, f () = < 0 and there must consequently be at least one zero for

Detaljer

Den som gjør godt, er av Gud (Multilingual Edition)

Den som gjør godt, er av Gud (Multilingual Edition) Den som gjør godt, er av Gud (Multilingual Edition) Arne Jordly Click here if your download doesn"t start automatically Den som gjør godt, er av Gud (Multilingual Edition) Arne Jordly Den som gjør godt,

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

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis) Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis) 1. Gå til print i dokumentet deres (Det anbefales å bruke InDesign til forberedning for print) 2. Velg deretter print

Detaljer

Bildebehandling med Python og EzGraphics

Bildebehandling med Python og EzGraphics Bildebehandling med Python og EzGraphics I denne oppgaven skal dere jobbe med bildebehandling. På samme måte som vi jobbet med lyd tidligere, skal vi nå se på bilder. Vi kan bruke EzGraphics til alt vi

Detaljer

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS Postponed exam: ECON420 Mathematics 2: Calculus and linear algebra Date of exam: Tuesday, June 8, 203 Time for exam: 09:00 a.m. 2:00 noon The problem set covers

Detaljer

Øvingsforelesning 1 Python (TDT4110)

Øvingsforelesning 1 Python (TDT4110) Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning

Detaljer

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning ENDELIGE TILSTANDSMASKINER OG REGULÆRE SPRÅK 19. januar 2017 2 Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. april 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

Linux-programmer som bruker regulæruttrykk: grep, sed, awk

Linux-programmer som bruker regulæruttrykk: grep, sed, awk Linux-programmer som bruker regulæruttrykk: grep, sed, awk grep * søking i tekstlige data grep [OPTIONS] REGEX [FILE...] Verktøy som finnes i alle Unix-lignende OS Leser en eller flere tekstfiler, eller

Detaljer

Moving Objects. We need to move our objects in 3D space.

Moving Objects. We need to move our objects in 3D space. Transformations Moving Objects We need to move our objects in 3D space. Moving Objects We need to move our objects in 3D space. An object/model (box, car, building, character,... ) is defined in one position

Detaljer

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Hvordan føre reiseregninger i Unit4 Business World Forfatter: Hvordan føre reiseregninger i Unit4 Business World Forfatter: dag.syversen@unit4.com Denne e-guiden beskriver hvordan du registrerer en reiseregning med ulike typer utlegg. 1. Introduksjon 2. Åpne vinduet

Detaljer

1 User guide for the uioletter package

1 User guide for the uioletter package 1 User guide for the uioletter package The uioletter is used almost like the standard LATEX document classes. The main differences are: The letter is placed in a \begin{letter}... \end{letter} environment;

Detaljer

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

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

Detaljer

Ikke lineære likninger

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

Detaljer

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT UNIVERSITETET I OSLO ØKONOMISK INSTITUTT Eksamen i: ECON1910 Poverty and distribution in developing countries Exam: ECON1910 Poverty and distribution in developing countries Eksamensdag: 1. juni 2011 Sensur

Detaljer

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post: EMPIC MEDICAL Etterutdanningskurs flyleger 21. april 2017 Lars (Lasse) Holm Prosjektleder Telefon: +47 976 90 799 E-post: Lrh@caa.no it-vakt@caa.no Luftfartstilsynet T: +47 75 58 50 00 F: +47 75 58 50

Detaljer

Syntax/semantics - I INF 3110/ /29/2005 1

Syntax/semantics - I INF 3110/ /29/2005 1 Syntax/semantics - I Program program execution Compiling/interpretation Syntax Classes of langauges Regular langauges Context-free langauges Scanning/Parsing Meta models INF 3/4-25 8/29/25 Program

Detaljer

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset Programmeringsspråket C Del 2 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! 28.08.17 Hans Petter Taugbøl Kragset 2 Arrays Java int[] arr1 = {1,

Detaljer

KROPPEN LEDER STRØM. Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal.

KROPPEN LEDER STRØM. Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal. KROPPEN LEDER STRØM Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal. Hva forteller dette signalet? Gå flere sammen. Ta hverandre i hendene, og la de to ytterste personene

Detaljer

IN uke 1. Komme i gang med programmering

IN uke 1. Komme i gang med programmering IN1000 - uke 1 Komme i gang med programmering Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if) Plan for forelesingen

Detaljer

MAT1030 Diskret Matematikk

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

Detaljer

TMA4329 Intro til vitensk. beregn. V2017

TMA4329 Intro til vitensk. beregn. V2017 Norges teknisk naturvitenskapelige universitet Institutt for Matematiske Fag TMA439 Intro til vitensk. beregn. V17 ving 4 [S]T. Sauer, Numerical Analysis, Second International Edition, Pearson, 14 Teorioppgaver

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

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver - LF. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver - LF. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver - LF Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og

Detaljer

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

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

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen

Detaljer

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

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå hvorfor vi trenger løkker i programmering Ha kjennskap to ulike typer løkker (while-løkke, for-løkke) Og vite

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program

Detaljer

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning INF2820 Datalingvistikk V2012 Jan Tore Lønning TABELLPARSING OG CHART- PARSING 24. februar 2012 2 I dag Mellomspill: Chomsky Normal Form Tabellparsing: CKY-algoritmen Innlede Chart-Parsing 24. februar

Detaljer

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser. TUSEN TAKK! Det at du velger å bruke mitt materiell for å spare tid og ha det kjekt sammen med elevene betyr mye for meg! Min lidenskap er å hjelpe flotte lærere i en travel hverdag, og å motivere elevene

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

Høgskoleni østfold EKSAMEN

Høgskoleni østfold EKSAMEN Høgskoleni østfold EKSAMEN 7 Emnekode:Emne: ITF10212Innføring i programmering Dato:Eksamenstid: 4. desember 2012 kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: To A4-ark (4 sider) med egenproduserte notater

Detaljer

Trigonometric Substitution

Trigonometric Substitution Trigonometric Substitution Alvin Lin Calculus II: August 06 - December 06 Trigonometric Substitution sin 4 (x) cos (x) dx When you have a product of sin and cos of different powers, you have three different

Detaljer

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. TDT445 Øving 4 Oppgave a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. Nøkkel: Supernøkkel: Funksjonell avhengighet: Data i en database som kan unikt identifisere (et sett

Detaljer

Level Set methods. Sandra Allaart-Bruin. Level Set methods p.1/24

Level Set methods. Sandra Allaart-Bruin. Level Set methods p.1/24 Level Set methods Sandra Allaart-Bruin sbruin@win.tue.nl Level Set methods p.1/24 Overview Introduction Level Set methods p.2/24 Overview Introduction Boundary Value Formulation Level Set methods p.2/24

Detaljer

MAT1030 Plenumsregning 1

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

Detaljer

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14. Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010

Detaljer

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser. TUSEN TAKK! Det at du velger å bruke mitt materiell for å spare tid og ha det kjekt sammen med elevene betyr mye for meg! Min lidenskap er å hjelpe flotte lærere i en travel hverdag, og å motivere elevene

Detaljer

Endelig ikke-røyker for Kvinner! (Norwegian Edition)

Endelig ikke-røyker for Kvinner! (Norwegian Edition) Endelig ikke-røyker for Kvinner! (Norwegian Edition) Allen Carr Click here if your download doesn"t start automatically Endelig ikke-røyker for Kvinner! (Norwegian Edition) Allen Carr Endelig ikke-røyker

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. EKSAMEN Emnekode: Emne: ITM20606 Webprogrammering med PHP Dato: Eksamenstid: 11/12-2007 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom

Detaljer

Betinget eksekvering og logiske tester i shell

Betinget eksekvering og logiske tester i shell Betinget eksekvering og logiske tester i shell Betinget eksekvering *? Programmet utfører operasjon(er) bare hvis en logisk betingelse er sann Bash tilbyr to kontrollstrukturer for å kunne gjøre betinget

Detaljer

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen. Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();

Detaljer

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser. TUSEN TAKK! Det at du velger å bruke mitt materiell for å spare tid og ha det kjekt sammen med elevene betyr mye for meg! Min lidenskap er å hjelpe flotte lærere i en travel hverdag, og å motivere elevene

Detaljer

MAT Oblig 1. Halvard Sutterud. 22. september 2016

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

Detaljer

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT UNIVERSITETET I OSLO ØKONOMISK INSTITUTT BOKMÅL Eksamen i: ECON1210 - Forbruker, bedrift og marked Eksamensdag: 26.11.2013 Sensur kunngjøres: 18.12.2013 Tid for eksamen: kl. 14:30-17:30 Oppgavesettet er

Detaljer

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen INF2820 Datalingvistikk V2012 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK 17. januar 2012 2 Naturlige språk En mann kjøpte en bil av en mann som hadde

Detaljer

2/24/2012. Dynamic Programming. I dag. Example. Example PARSING. Jan Tore Lønning

2/24/2012. Dynamic Programming. I dag. Example. Example PARSING. Jan Tore Lønning INF2820 Datalingvistikk V2012 Jan Tore Lønning TABELLPARSING OG CHART- PARSING 24. februar 2012 2 I dag Mellomspill: Chomsky Normal Form Tabellparsing: CKY-algoritmen Innlede Chart-Parsing Dynamic Programming

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 Oppgave 1.1 MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Modifiser algoritmen fra 1.2.1 slik at

Detaljer

Gir vi de resterende 2 oppgavene til én prosess vil alle sitte å vente på de to potensielt tidskrevende prosessene.

Gir vi de resterende 2 oppgavene til én prosess vil alle sitte å vente på de to potensielt tidskrevende prosessene. Figure over viser 5 arbeidsoppgaver som hver tar 0 miutter å utføre av e arbeider. (E oppgave ka ku utføres av é arbeider.) Hver pil i figure betyr at oppgave som blir pekt på ikke ka starte før oppgave

Detaljer

INF5820 Natural Language Processing - NLP. H2009 Jan Tore Lønning

INF5820 Natural Language Processing - NLP. H2009 Jan Tore Lønning INF5820 Natural Language Processing - NLP H2009 jtl@ifi.uio.no HMM Tagging INF5830 Lecture 3 Sep. 7 2009 Today More simple statistics, J&M sec 4.2: Product rule, Chain rule Notation, Stochastic variable

Detaljer

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX) Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX) Peter J. Rosendahl Click here if your download doesn"t start automatically Han Ola of Han Per:

Detaljer

Ukeoppgaver fra kapittel 3 & 4

Ukeoppgaver fra kapittel 3 & 4 Plenumsregning 4 Ukeoppgaver fra kapittel 3 & 4 Roger Antonsen - 7. februar 2008 Oppgave 3.15 Forklar følgende påstand ved å vise til beregninger med reelle tall på eksponentiell form: Man mister presisjon

Detaljer

Sitronelement. Materiell: Sitroner Galvaniserte spiker Blank kobbertråd. Press inn i sitronen en galvanisert spiker og en kobbertråd.

Sitronelement. Materiell: Sitroner Galvaniserte spiker Blank kobbertråd. Press inn i sitronen en galvanisert spiker og en kobbertråd. Materiell: Sitronelement Sitroner Galvaniserte spiker Blank kobbertråd Press inn i sitronen en galvanisert spiker og en kobbertråd. Nå har du laget et av elementene i et elektrisk batteri! Teori om elektriske

Detaljer

MAT1030 Diskret matematikk

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

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

Physical origin of the Gouy phase shift by Simin Feng, Herbert G. Winful Opt. Lett. 26, (2001)

Physical origin of the Gouy phase shift by Simin Feng, Herbert G. Winful Opt. Lett. 26, (2001) by Simin Feng, Herbert G. Winful Opt. Lett. 26, 485-487 (2001) http://smos.sogang.ac.r April 18, 2014 Introduction What is the Gouy phase shift? For Gaussian beam or TEM 00 mode, ( w 0 r 2 E(r, z) = E

Detaljer

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT UNIVERSITETET I OSLO ØKONOMISK INSTITUTT Eksamen i: ECON360/460 Samfunnsøkonomisk lønnsomhet og økonomisk politikk Exam: ECON360/460 - Resource allocation and economic policy Eksamensdag: Fredag 2. november

Detaljer

klassisk angoragenser classic angora sweater

klassisk angoragenser classic angora sweater klassisk angoragenser classic angora sweater www.pickles.no / shop.pickles.no NORSK Størrelser XS (S) M (L) XL (XXL) Garn Pickles Angora 150 (175) 200 (225) 250 (275) g Pinner 80 og 40 cm rundpinne og

Detaljer

Gradient. Masahiro Yamamoto. last update on February 29, 2012 (1) (2) (3) (4) (5)

Gradient. Masahiro Yamamoto. last update on February 29, 2012 (1) (2) (3) (4) (5) Gradient Masahiro Yamamoto last update on February 9, 0 definition of grad The gradient of the scalar function φr) is defined by gradφ = φr) = i φ x + j φ y + k φ ) φ= φ=0 ) ) 3) 4) 5) uphill contour downhill

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

FIRST LEGO League. Härnösand 2012

FIRST LEGO League. Härnösand 2012 FIRST LEGO League Härnösand 2012 Presentasjon av laget IES Dragons Vi kommer fra Härnosänd Snittalderen på våre deltakere er 11 år Laget består av 4 jenter og 4 gutter. Vi representerer IES i Sundsvall

Detaljer