• Keine Ergebnisse gefunden

faikf

N/A
N/A
Protected

Academic year: 2022

Aktie "faikf"

Copied!
199
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Edit-Distanz

JanisVoigtländer

TehnisheUniversitätDresden

Sommersemester 2007

(2)

Problemstellung

Formalisierung

Eziente Berehnung

Retraing

(3)

void sort(int L,int R)

{ int i,j,w,x,k;

i=L; j=R; k=(L+R)/2; x=a[k℄;

do

{ while (a[i℄<x) i++;

while (a[j℄>x) j--;

...

(4)

void sort(int L,int R)

{ int i,j,w,x,k;

i=L; j=R; k=(L+R)/2; x=a[k℄;

do

{ while (a[i℄<x) i++;

while (a[j℄>x) j--;

...

void sort(int L,int R)

{ int i,j,w,x,k;

i=L; j=R;

k=(L+R)/2; x=a[k℄;

do

{ while (a[i℄<x) i++;

while (a[j℄<x) j--;

...

(5)

void sort(int L,int R) | void sort(int L,int R)

{ int i,j,w,x,k; | { int i,j,w,x,k;

i=L; j=R; k=(L+R)/2; x=a[k℄; | i=L; j=R;

do | k=(L+R)/2; x=a[k℄;

{ while (a[i℄<x) i++; | do

while (a[j℄>x) j--; | { while (a[i℄<x) i++;

... | while (a[j℄<x) j--;

| ...

(6)

void sort(int L,int R) | void sort(int L,int R)

{ int i,j,w,x,k; | { int i,j,w,x,k;

i=L; j=R; k=(L+R)/2; x=a[k℄; | i=L; j=R;

do | k=(L+R)/2; x=a[k℄;

{ while (a[i℄<x) i++; | do

while (a[j℄>x) j--; | { while (a[i℄<x) i++;

... | while (a[j℄<x) j--;

| ...

(7)

void sort(int L,int R) | void sort(int L,int R)

{ int i,j,w,x,k; | { int i,j,w,x,k;

i=L; j=R; k=(L+R)/2; x=a[k℄; | i=L; j=R;

do | k=(L+R)/2; x=a[k℄;

{ while (a[i℄<x) i++; | do

while (a[j℄>x) j--; | { while (a[i℄<x) i++;

... | while (a[j℄<x) j--;

| ...

(8)

void sort(int L,int R) | void sort(int L,int R)

{ int i,j,w,x,k; | { int i,j,w,x,k;

i=L; j=R; k=(L+R)/2; x=a[k℄; | i=L; j=R;

do | k=(L+R)/2; x=a[k℄;

{ while (a[i℄<x) i++; | do

while (a[j℄>x) j--; | { while (a[i℄<x) i++;

... | while (a[j℄<x) j--;

| ...

Problem: Abder drittenZeile würdendie Dateienals komplett

vershiedeninterpretiert!

(9)

void sort(int L,int R) | void sort(int L,int R)

{ int i,j,w,x,k; | { int i,j,w,x,k;

i=L; j=R; k=(L+R)/2; x=a[k℄; | i=L; j=R;

do | k=(L+R)/2; x=a[k℄;

{ while (a[i℄<x) i++; | do

while (a[j℄>x) j--; | { while (a[i℄<x) i++;

... | while (a[j℄<x) j--;

| ...

Problem: Abder drittenZeile würdendie Dateienals komplett

vershiedeninterpretiert!

Ziel: intelligentererVergleih

(10)

Abstraktion:

lediglih Vergleih einzelnerZeihen,niht

ganzer Zeilen

(11)

Abstraktion:

lediglih Vergleih einzelnerZeihen,niht

ganzer Zeilen

als mögliheVeränderungen nur Löshung,

Einfügung oderÄnderung einesZeihens

(12)

Abstraktion:

lediglih Vergleih einzelnerZeihen,niht

ganzer Zeilen

als mögliheVeränderungen nur Löshung,

Einfügung oderÄnderung einesZeihens

Anzahl solherOperationen alsVergleihsmaÿ

(13)

Abstraktion:

lediglih Vergleih einzelnerZeihen,niht

ganzer Zeilen

als mögliheVeränderungen nur Löshung,

Einfügung oderÄnderung einesZeihens

Anzahl solherOperationen alsVergleihsmaÿ

Beispiel: Eingabe abbba undabda

mögliheErklärungendes Untershieds:

(14)

Abstraktion:

lediglih Vergleih einzelnerZeihen,niht

ganzer Zeilen

als mögliheVeränderungen nur Löshung,

Einfügung oderÄnderung einesZeihens

Anzahl solherOperationen alsVergleihsmaÿ

Beispiel: Eingabe abbba undabda

mögliheErklärungendes Untershieds:

a b b b a

a b d a

(15)

Abstraktion:

lediglih Vergleih einzelnerZeihen,niht

ganzer Zeilen

als mögliheVeränderungen nur Löshung,

Einfügung oderÄnderung einesZeihens

Anzahl solherOperationen alsVergleihsmaÿ

Beispiel: Eingabe abbba undabda

mögliheErklärungendes Untershieds:

a b b b a

a b d a

a b b b a

a b d a

(16)

Abstraktion:

lediglih Vergleih einzelnerZeihen,niht

ganzer Zeilen

als mögliheVeränderungen nur Löshung,

Einfügung oderÄnderung einesZeihens

Anzahl solherOperationen alsVergleihsmaÿ

Beispiel: Eingabe abbba undabda

mögliheErklärungendes Untershieds:

a b b b a

a b d a

a b b b a

a b d a

a b b b a

a b d a

(17)

Gegeben: har s[n℄, t[m℄;

(18)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

(19)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

Idee: zunähstEntsheidung, ob s[0℄und t[0℄einander

gegenübergestellt,odereinesder beiden

gelösht/eingefügtwerdensoll

(20)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

Idee: zunähstEntsheidung, ob s[0℄und t[0℄einander

gegenübergestellt,odereinesder beiden

gelösht/eingefügtwerdensoll 3 Fälle:

s[0℄

· · ·

t[0℄

· · ·

(21)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

Idee: zunähstEntsheidung, ob s[0℄und t[0℄einander

gegenübergestellt,odereinesder beiden

gelösht/eingefügtwerdensoll 3 Fälle:

s[0℄

· · ·

(s[1℄...s[n-1℄)

t[0℄

· · ·

(t[1℄...t[m-1℄)

(22)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

Idee: zunähstEntsheidung, ob s[0℄und t[0℄einander

gegenübergestellt,odereinesder beiden

gelösht/eingefügtwerdensoll 3 Fälle:

s[0℄

· · ·

(s[1℄...s[n-1℄)

t[0℄

· · ·

(t[1℄...t[m-1℄)

s[0℄

· · ·

· · ·

(23)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

Idee: zunähstEntsheidung, ob s[0℄und t[0℄einander

gegenübergestellt,odereinesder beiden

gelösht/eingefügtwerdensoll 3 Fälle:

s[0℄

· · ·

(s[1℄...s[n-1℄)

t[0℄

· · ·

(t[1℄...t[m-1℄)

s[0℄

· · ·

(s[1℄...s[n-1℄)

· · ·

(t[0℄...t[m-1℄)

(24)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

Idee: zunähstEntsheidung, ob s[0℄und t[0℄einander

gegenübergestellt,odereinesder beiden

gelösht/eingefügtwerdensoll 3 Fälle:

s[0℄

· · ·

(s[1℄...s[n-1℄)

t[0℄

· · ·

(t[1℄...t[m-1℄)

s[0℄

· · ·

(s[1℄...s[n-1℄)

· · ·

(t[0℄...t[m-1℄)

◮ · · ·

t[0℄

· · ·

(25)

Gegeben: har s[n℄, t[m℄;

Gesuht: Distanzd zwishens und tals minimaleAnzahlvon

Edit-Operationen

Idee: zunähstEntsheidung, ob s[0℄und t[0℄einander

gegenübergestellt,odereinesder beiden

gelösht/eingefügtwerdensoll 3 Fälle:

s[0℄

· · ·

(s[1℄...s[n-1℄)

t[0℄

· · ·

(t[1℄...t[m-1℄)

s[0℄

· · ·

(s[1℄...s[n-1℄)

· · ·

(t[0℄...t[m-1℄)

◮ · · ·

(s[0℄...s[n-1℄)

t[0℄

· · ·

(t[1℄...t[m-1℄)

(26)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

(27)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

(28)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

1

+

di

+

1

,

j

(29)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

1

+

di

+

1

,

j

◮ · · ·

(s[i℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

(30)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

1

+

di

+

1

,

j

◮ · · ·

(s[i℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

1

+

di

,

j

+

1

(31)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

1

+

di

+

1

,

j

◮ · · ·

(s[i℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

1

+

di

,

j

+

1

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

(32)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

1

+

di

+

1

,

j

◮ · · ·

(s[i℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

1

+

di

,

j

+

1

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

d

i

+

1

,

j

+

1

wenn s[i℄==t[j℄

(33)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

1

+

di

+

1

,

j

◮ · · ·

(s[i℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

1

+

di

,

j

+

1

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

d

i

+

1

,

j

+

1

wenn s[i℄==t[j℄

1

+

di

+

1

,

j

+

1

sonst

(34)

Gesuht: allgemeinDistanz d

i

,

j

zwishen s[i℄...s[n-1℄und

t[j℄...t[m-1℄

Ansatz: Falluntersheidung (wie eben)ergibt:

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

· · ·

(t[j℄...t[m-1℄)

1

+

di

+

1

,

j

◮ · · ·

(s[i℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

1

+

di

,

j

+

1

s[i℄

· · ·

(s[i+1℄...s[n-1℄)

t[j℄

· · ·

(t[j+1℄...t[m-1℄)

d

i

+

1

,

j

+

1

wenn s[i℄==t[j℄

1

+

di

+

1

,

j

+

1

sonst

(35)

Sonderfälle: i

=

n oderj

=

m:

(36)

Sonderfälle: i

=

n oderj

=

m:

s[n℄...s[n-1℄

t[j℄...t[m-1℄

(37)

Sonderfälle: i

=

n oderj

=

m:

...

t[j℄...t[m-1℄

m

j

(38)

Sonderfälle: i

=

n oderj

=

m:

...

t[j℄...t[m-1℄

m

j

s[i℄...s[n-1℄

t[m℄...t[m-1℄

(39)

Sonderfälle: i

=

n oderj

=

m:

...

t[j℄...t[m-1℄

m

j

s[i℄...s[n-1℄

...

n

i

(40)

Sonderfälle: i

=

n oderj

=

m:

...

t[j℄...t[m-1℄

m

j

s[i℄...s[n-1℄

...

n

i

Insgesamt:

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

1

+

min

{

di

+

1

,

j

;

di

,

j

+

1

;

di

+

1

,

j

+

1

}

sonst

(41)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

(42)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

(43)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

1

+

1

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

d0

,

1

;

d1

,

1

}

(44)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

1

+

1

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

1

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

d1

,

1

}

(45)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

1

+

1

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

1

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

(46)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

1

+

1

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

1

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

=

min

{

2

+

min

{

1

+

min

{

d3

,

0

;

d2

,

1

;

d3

,

1

} ;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

(47)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

1

+

1

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

1

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

=

min

{

2

+

min

{

1

+

min

{

d3

,

0

;

d2

,

1

;

d3

,

1

} ;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

= · · ·

(48)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

1

+

1

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

1

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

=

min

{

2

+

min

{

1

+

min

{

d3

,

0

;

d2

,

1

;

d3

,

1

} ;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

= · · ·

Problem: mehrfahe Berehnung dergleihen Werte

(49)

Eingabe: s[0℄...s[6℄=abbba und t[0℄...t[4℄=abda

Berehnung:

d

0

,

0

=

min

{

1

+

d1

,

0

;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

1

+

1

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

d0

,

1

;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

1

+

1

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

d1

,

1

}

=

min

{

2

+

min

{

d2

,

0

;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

=

min

{

2

+

min

{

1

+

min

{

d3

,

0

;

d2

,

1

;

d3

,

1

} ;

d1

,

1

;

d2

,

1

} ;

2

+

min

{

d1

,

1

;

d0

,

2

;

d1

,

2

} ;

1

+

min

{

d2

,

1

;

d1

,

2

;

d2

,

2

}}

= · · ·

Problem: mehrfahe Berehnung dergleihen Werte

Lösung: dynamisheProgrammierung

(50)

Idee:

Speiherung aller d i

,

j

in Tabelle

(51)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

(52)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(53)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(54)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(55)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(56)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(57)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(58)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(59)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(60)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(61)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(62)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(63)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(64)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(65)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(66)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(67)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(68)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(69)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(70)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(71)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(72)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(73)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(74)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(75)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(76)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(77)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(78)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(79)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(80)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(81)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(82)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(83)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 4 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(84)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

b 5 4 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(85)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

4

b 5 4 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(86)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

3 4

b 5 4 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(87)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

2 3 4

b 5 4 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(88)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

1 2 3 4

b 5 4 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

(89)

Idee:

Speiherung aller d i

,

j

in Tabelle

Berehnung in geeigneterReihenfolge

Beispiel:

a b b b a

a

2 1 2 3 4

b 5 4 3 2 2 1 2 3

d 6 5 4 3 2 1 1 2

a 6 5 4 3 2 1 0 1

7 6 5 4 3 2 1 0

d

i

,

j

=

 

 

m

j wenni

=

n

n

i wennj

=

m

min

{

1

+

di

+

1

,

j

;

1

+

di

,

j

+

1

;

di

+

1

,

j

+

1

}

wenns[i℄==t[j℄

+ { + ; + ; + + }

Referenzen

ÄHNLICHE DOKUMENTE

Dann gibt es für einen Streifen 6 , für einen anderen Streifen 5 und für den.. dritten Streifen

Sofern noh niht vorhanden, füge das neue Element als Blatt. so ein, dass die Suhbaumeigenshaft erfüllt ist,

Dies soll jedoh in linearisierter Form erfolgen,.. insbesondere eine Operation immer nur

(i) Wir sagen, die Kar dinalzahl von M ist kleiner oder gleih der Kardinalzahl von N (i.Z. #M B #N ) genau dann, wenn es eine injektive Abbildung M N gibt. Diese Bedingung hängt

Sie wissen niht wo der Ferrari steht, können aber eine Tür wählen.. Der Spielleiter önet

Wahrsheinlihkeit dass dies die Shahtel ist die ganz mit Äpfeln gefüllt ist oder. zur Hälfte mit Äpfeln und zur Hälfte mit Orangen

parametrishe Statistik ⇒ Man modelliert die Verteilungsfunktion mit Hilfe einer Verteilungsfunktion bestimmten Typs, z.B.. mit der

ein Bauteil, zwei und drei Bauteile parallel geshaltet eingezeihnet.. Man