Transcript
Page 1: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Algorithmen auf SequenzenFour-Russians-Methode: Subquadratische Berechnung der Edit-Distanz

Sven Rahmann

GenominformatikUniversitatsklinikum EssenUniversitat Duisburg-EssenUniversitatsallianz Ruhr

Page 2: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Fragestellung

Gegeben r ∈ Σm, s ∈ Σn mit m = Θ(n), Alphabetgroße σ = |Σ|d(r , s) (Edit-Distanz) kann in O(n2) berechnet werden.Rekurrenz fur Edit-Distanz D[i , j ] aller Prafixe der Langen i , j :

D[0, 0] = 0.D[i , 0] = i .D[0, j ] = j .

D[i , j ] = min

D[i − 1, j − 1] + d(s[i − 1], t[j − 1]),

D[i − 1, j ] + 1,

D[i , j − 1] + 1.

Reduktion auf subquadratische Zeit?

Ja: mit der Method of Four Russians (1970),benannt nach ihren Erfindern Arlazarov, Dinic, Kronrod und Faradzev,

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 2

Page 3: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Fragestellung

Gegeben r ∈ Σm, s ∈ Σn mit m = Θ(n), Alphabetgroße σ = |Σ|d(r , s) (Edit-Distanz) kann in O(n2) berechnet werden.Rekurrenz fur Edit-Distanz D[i , j ] aller Prafixe der Langen i , j :

D[0, 0] = 0.D[i , 0] = i .D[0, j ] = j .

D[i , j ] = min

D[i − 1, j − 1] + d(s[i − 1], t[j − 1]),

D[i − 1, j ] + 1,

D[i , j − 1] + 1.

Reduktion auf subquadratische Zeit?

Ja: mit der Method of Four Russians (1970),benannt nach ihren Erfindern Arlazarov, Dinic, Kronrod und Faradzev,

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 2

Page 4: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Fragestellung

Gegeben r ∈ Σm, s ∈ Σn mit m = Θ(n), Alphabetgroße σ = |Σ|d(r , s) (Edit-Distanz) kann in O(n2) berechnet werden.Rekurrenz fur Edit-Distanz D[i , j ] aller Prafixe der Langen i , j :

D[0, 0] = 0.D[i , 0] = i .D[0, j ] = j .

D[i , j ] = min

D[i − 1, j − 1] + d(s[i − 1], t[j − 1]),

D[i − 1, j ] + 1,

D[i , j − 1] + 1.

Reduktion auf subquadratische Zeit?

Ja: mit der Method of Four Russians (1970),benannt nach ihren Erfindern Arlazarov, Dinic, Kronrod und Faradzev,

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 2

Page 5: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Grundidee

A

B

C

D

ri

ri ′

sj sj ′

...

. . .

t

Innerhalb eines Rechtecks der Matrixhangen die Eintrage D nur vonden Eintragen A,B,C und von denTeilstrings r [i ..i ′], s[j ..j ′] ab.

Definition: Ein t-Block ist ein t × tgroßer Ausschnitt der Matrix

Idee: Matrix in t-Blocke aufteilen,Werte im Bereich D fur alle Kombinationenvon (A,B,C , r ′, s ′) vorberechnen

Redundanzen vermeiden

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 3

Page 6: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Grundidee

A

B

C

D

ri

ri ′

sj sj ′

...

. . .

t

Innerhalb eines Rechtecks der Matrixhangen die Eintrage D nur vonden Eintragen A,B,C und von denTeilstrings r [i ..i ′], s[j ..j ′] ab.

Definition: Ein t-Block ist ein t × tgroßer Ausschnitt der Matrix

Idee: Matrix in t-Blocke aufteilen,Werte im Bereich D fur alle Kombinationenvon (A,B,C , r ′, s ′) vorberechnen

Redundanzen vermeiden

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 3

Page 7: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Grundidee

Matrix D in uberlappende t-Blocke aufteilen:

tt

t

t

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 4

Page 8: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Beobachtungen

Lemma

Unter Einheitskosten unterscheiden sich die Werte in zwei benachbarten Feldern(horizontal, vertikal oder diagonal) der Edit-Matrix um hochstens 1.

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 5

Page 9: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Beobachtungen

Wenn die Werte in den Bereichen A,B,C in zwei t-Blocke sich jeweils um dieselbeDifferenz v unterscheiden und die Teilstrings identisch sind, dann unterscheiden sichdie Werte in D auch um v .

a b b a

b 5 6 5 4a 6 6 6 5b 6 6 6 6a 7 7 7 6

a b b a

b 2 3 2 1a 3 3 3 2b 3 3 3 3a 4 4 4 3

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 6

Page 10: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Vorberechnung

Um zu verhindern, dass man D fur (unendlich) viele Kombinationen von A,B,Cvorberechnen muss, genugt es einen Offsetvektor VB ,VC aus B und C zu erzeugen.Sei VB [0] := 0, VB [i ] := B[i ]− B[i − 1];sei VC [0] := 0, VC [j ] := C [j ]− C [j − 1]

a b b a

b 5 6 5 4a 6b 6a 7

a b b a

b 0 1 -1 -1a 1b 0a 1

B = [5, 6, 6, 7] → VB = [0, 1, 0, ]1

C = [5, 6, 5, 4] → VC = [0, 1,−1,−1]

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 7

Page 11: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Vorberechnung

Um zu verhindern, dass man D fur (unendlich) viele Kombinationen von A,B,Cvorberechnen muss, genugt es einen Offsetvektor VB ,VC aus B und C zu erzeugen.Sei VB [0] := 0, VB [i ] := B[i ]− B[i − 1];sei VC [0] := 0, VC [j ] := C [j ]− C [j − 1]

a b b a

b 5 6 5 4a 6b 6a 7

a b b a

b 0 1 -1 -1a 1b 0a 1

B = [5, 6, 6, 7] → VB = [0, 1, 0, ]1

C = [5, 6, 5, 4] → VC = [0, 1,−1,−1]S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 7

Page 12: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Vorberechnung

Weil VB [0],VC [0] = 0 sind und die anderen Eintrage nur die Werte {−1, 0, 1}annehmen, gibt es maximal 32(t−1) Kombinationen fur (VB ,VC ).

Es gibt σ2(t−1) verschiedene Substringkombinationen.

Die Vorberechnung eines t-Blocks dauert O((t − 1)2) Zeit.

Gesamtlaufzeit: O(32(t−1)σ2(t−1)(t − 1)2

).

Wahle t = 1 + log3σ(n)/2:

Laufzeit wird O(n · (log3σ n)2

)Speicherverbrauch fur D-Region eines t-Blocks: O(t) Bits (differenzcodiert)

Insgesamt: O(n log n) Bits, machbar

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 8

Page 13: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Vorberechnung

Weil VB [0],VC [0] = 0 sind und die anderen Eintrage nur die Werte {−1, 0, 1}annehmen, gibt es maximal 32(t−1) Kombinationen fur (VB ,VC ).

Es gibt σ2(t−1) verschiedene Substringkombinationen.

Die Vorberechnung eines t-Blocks dauert O((t − 1)2) Zeit.

Gesamtlaufzeit: O(32(t−1)σ2(t−1)(t − 1)2

).

Wahle t = 1 + log3σ(n)/2:

Laufzeit wird O(n · (log3σ n)2

)Speicherverbrauch fur D-Region eines t-Blocks: O(t) Bits (differenzcodiert)

Insgesamt: O(n log n) Bits, machbar

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 8

Page 14: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Vorberechnung

Weil VB [0],VC [0] = 0 sind und die anderen Eintrage nur die Werte {−1, 0, 1}annehmen, gibt es maximal 32(t−1) Kombinationen fur (VB ,VC ).

Es gibt σ2(t−1) verschiedene Substringkombinationen.

Die Vorberechnung eines t-Blocks dauert O((t − 1)2) Zeit.

Gesamtlaufzeit: O(32(t−1)σ2(t−1)(t − 1)2

).

Wahle t = 1 + log3σ(n)/2:

Laufzeit wird O(n · (log3σ n)2

)Speicherverbrauch fur D-Region eines t-Blocks: O(t) Bits (differenzcodiert)

Insgesamt: O(n log n) Bits, machbar

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 8

Page 15: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Vorberechnung

Weil VB [0],VC [0] = 0 sind und die anderen Eintrage nur die Werte {−1, 0, 1}annehmen, gibt es maximal 32(t−1) Kombinationen fur (VB ,VC ).

Es gibt σ2(t−1) verschiedene Substringkombinationen.

Die Vorberechnung eines t-Blocks dauert O((t − 1)2) Zeit.

Gesamtlaufzeit: O(32(t−1)σ2(t−1)(t − 1)2

).

Wahle t = 1 + log3σ(n)/2:

Laufzeit wird O(n · (log3σ n)2

)

Speicherverbrauch fur D-Region eines t-Blocks: O(t) Bits (differenzcodiert)

Insgesamt: O(n log n) Bits, machbar

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 8

Page 16: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Vorberechnung

Weil VB [0],VC [0] = 0 sind und die anderen Eintrage nur die Werte {−1, 0, 1}annehmen, gibt es maximal 32(t−1) Kombinationen fur (VB ,VC ).

Es gibt σ2(t−1) verschiedene Substringkombinationen.

Die Vorberechnung eines t-Blocks dauert O((t − 1)2) Zeit.

Gesamtlaufzeit: O(32(t−1)σ2(t−1)(t − 1)2

).

Wahle t = 1 + log3σ(n)/2:

Laufzeit wird O(n · (log3σ n)2

)Speicherverbrauch fur D-Region eines t-Blocks: O(t) Bits (differenzcodiert)

Insgesamt: O(n log n) Bits, machbar

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 8

Page 17: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0bba 3a 4ba 6

V

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 18: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1b 2a 3a 4b 5a 6

VB =

VC =

A =

D =

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 19: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1b 2a 3a 4b 5a 6

VB =

VC =

A = 0

D =

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 20: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1b 2a 3a 4b 5a 6

VB = 0, 1, 1, 1

VC = 0, 1, 1, 1

A = 0

D =

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 21: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1b 2a 3a 4b 5a 6

VB = 0, 1, 1, 1

VC = 0, 1, 1, 1

A = 0

D = 2, 2, 2, 1, 2

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 22: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1 2b 2 1a 3 2 2 2a 4b 5a 6

VB = 0, 1, 1, 1

VC = 0, 1, 1, 1

A = 0

D = 2, 2, 2, 1, 2

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 23: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1 2b 2 1a 3 2 2 2a 4 3b 5 3a 6 5 4 4

VB = 0, 1, 1, 1

VC = 0,−1, 0, 0

A = 3

D = 2, 1, 1, 0, 0

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 24: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1 2 5b 2 1 4a 3 2 2 2 1 2 3a 4 3b 5 3a 6 5 4 4

VB = 0,−1,−1, 1

VC = 0, 1, 1, 1

A = 3

D = −2,−1, 0, 1, 2

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 25: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Berechnung

1 Initialisiere 0-te Zeile und Spalte

2 Fur alle i , j < n/t:

3 Berechne VB ,VC aus B,C .

4 Lookup:D = F [VB ,VC ,r [i ′ : i ′′], s[j ′ : j ′′]].

5 Addiere Wert A zum D-Array

- a b b a b a- 0 1 2 3 4 5 6b 1 2 5b 2 1 4a 3 2 2 2 1 2 3a 4 3 2b 5 3 3a 6 5 4 4 3 3 2

VB = 0, 1, 0, 1

VC = 0,−1, 1, 1

A = 2

D = 1, 1, 0, 1, 0

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 9

Page 26: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Laufzeit

Ein Block:

Berechnen der Offset-Vektoren: O(t)

Lookup in F : O(t) zur Berechnung des Index

Addition von A: O(t)

Laufzeit pro t-Block also O(t)

Gesamtanalyse:

Anzahl der t-Blocke: n2/t2

Laufzeit insgesamt: O(t · n2/t2) = O(n2/ log n)

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 10

Page 27: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Laufzeit

Ein Block:

Berechnen der Offset-Vektoren: O(t)

Lookup in F : O(t) zur Berechnung des Index

Addition von A: O(t)

Laufzeit pro t-Block also O(t)

Gesamtanalyse:

Anzahl der t-Blocke: n2/t2

Laufzeit insgesamt: O(t · n2/t2) = O(n2/ log n)

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 10

Page 28: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Laufzeit

Ein Block:

Berechnen der Offset-Vektoren: O(t)

Lookup in F : O(t) zur Berechnung des Index

Addition von A: O(t)

Laufzeit pro t-Block also O(t)

Gesamtanalyse:

Anzahl der t-Blocke: n2/t2

Laufzeit insgesamt: O(t · n2/t2) = O(n2/ log n)

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 10

Page 29: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Zusammenfassung: Four Russians Methode

Mit dem Four-Russians Trick (Differenzcodierung, Vorberechnung kleiner Blocke)kann man die Edit-Distanz in subquadratischer Zeit berechnen.

Vorberechnung: O(n (log n)2

)Zeit

Berechnung selbst: O(n2/ log n) Zeit

Wegen der hohen Basis im Logarithmus (3σ)ist die Methode fur kleine Alphabete (DNA: σ = 4) erst ab ca. n = 104 sinnvoll.

Fur große Alphabete wird hingegen viel Speicher benotigt.

Daher wird diese Methode in der Praxis selten genutzt.

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 11

Page 30: Algorithmen auf Sequenzen · S. Rahmann j Algorithmen auf Sequenzen j UA Ruhr j Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz3. Grundidee Matrix D in uberlappende

Zusammenfassung: Four Russians Methode

Mit dem Four-Russians Trick (Differenzcodierung, Vorberechnung kleiner Blocke)kann man die Edit-Distanz in subquadratischer Zeit berechnen.

Vorberechnung: O(n (log n)2

)Zeit

Berechnung selbst: O(n2/ log n) Zeit

Wegen der hohen Basis im Logarithmus (3σ)ist die Methode fur kleine Alphabete (DNA: σ = 4) erst ab ca. n = 104 sinnvoll.

Fur große Alphabete wird hingegen viel Speicher benotigt.

Daher wird diese Methode in der Praxis selten genutzt.

S. Rahmann | Algorithmen auf Sequenzen | UA Ruhr | Four-Russians-Methode: Subquadratische Berechnung der Edit-Distanz 11


Top Related