next up previous contents index
Next: Erweiterungen Up: Gaps Previous: Anwendungen

  
Der Algorithmus für affine Gapkosten

Im Fall von affinen Gapkosten g(k)=a+b(k-1) hat Osamu Gotoh schon 1982 [Got82] gezeigt, daß man dieses Problem mit den gleichen Zeit- und Platzschranken lösen kann. Dies ist möglich, da sich bei einer Erweiterung eines Gaps in einer der beiden Sequenzen die gap penalty um eine Konstante b ändert. Wir definieren zusätzlich zur Ähnlichkeitsmatrix S drei sogenannte ``History''-Matrizen M,V und H mit der folgenden Bedeutung: Die Matrizen werden nach folgenden Vorschriften gefüllt:

\begin{displaymath}S_{i,j} = \max\{ H_{i,j}, M_{i,j}, V_{i,j}\} \end{displaymath}


Mi,j = Si-1,j-1+s(ai,bj)


\begin{displaymath}H_{i,j} = \max\{ S_{i,j-1}-a, H_{i,j-1}-b\} \end{displaymath}


\begin{displaymath}V_{i,j} = \max\{ S_{i-1,j}-a, V_{i-1,j}-b\} \end{displaymath}

Die Initialisierung der Matrizen ist in der Literatur oft falsch und benötigt einige Überlegung. In Übereinstimmung mit der Definition der drei Matrizen M,H und V. werden die Ränder wie folgt initialisiert:
M0,0 = 0,  
Mi,0 = $\displaystyle -\infty, \ 1\leq i \leq n,$  
M0,j = $\displaystyle -\infty, \ 1\leq j \leq m$  

M gibt den maximalen Wert eines Alignments an, welches nicht mit einem Leerzeichen endet. Da es kein Alignment zwischen $a_1\cdots a_i$ und $b_1\cdots b_0$ gibt, welches nicht mit einem Leerzeichen endet, initialisieren wir Mi,0 mit dem neutralen Element unter der Operation $\max$, nämlich $-\infty$. Das gleiche Argument gilt für M0,j. Ähnliche Argument gelten für die Matrizen V und H.
Vi,0 = $\displaystyle -g(i), \ 1\leq i \leq n,$  
V0,j = $\displaystyle -\infty, \ 1\leq j \leq m$  


Hi,0 = $\displaystyle -\infty, \ 1\leq i \leq n,$  
H0,j = $\displaystyle -g(j), \ 1\leq j \leq m$  

In der Literatur findet man oft folgende (falsche) Initialisierung:
Vi,0 = $\displaystyle -g(i), \ 1\leq i \leq n,$  
V0,j = $\displaystyle -g(j), \ 1\leq j \leq m$  


Hi,0 = $\displaystyle -g(i), \ 1\leq i \leq n,$  
H0,j = $\displaystyle -g(j), \ 1\leq j \leq m$  

In den Übungen sollen Sie anhand eines Gegenbeispiels zeigen, daß diese Initialisierung zum falschen Ergebnis führen kann. Da wir nun lediglich anstatt einer Matrix vier füllen und jeder Schritt konstante Zeit braucht, ist somit klar, daß auch Alignment mit affinen Gapkosten Zeit O(nm) braucht. Wir fassen dieses Ergebnis in folgendem Satz zusammen:

Satz 6   Das Alignment zweier Strings der Länge n und m kann unter Verwendung affiner Gapkosten in Zeit O(nm) berechnet werden. Ein optimales Alignment kann anhand der Tabelle in Zeit O(n+m) ausgegeben werden.

Wir haben nun die grundlegenden Varianten von paarweisem Alignment durchgesprochen. Es gibt zu diesem Thema eine Unmenge von weiterführenden Fragestellungen, von denen wir nur einige wenige ansprechen wollen.
next up previous contents index
Next: Erweiterungen Up: Gaps Previous: Anwendungen
Knut Reinert
1998-03-09