next up previous contents index
Next: Lokales Alignment Up: Semi-globales Alignment Previous: Anwendungen

Der Algorithmus

Der Vollständigkeit halber geben wir hier den entsprechenden Satz und Algorithmus für semi-globales Alignment an.

Satz 3   Sei S0,0 = 0, S0,j = 0, Si,0 = 0. Dann gilt:
Si,j $\textstyle = \max\{$ Si-1,j + s(ai,-),  
    Si-1,j-1+s(ai,bj),  
    $\displaystyle S_{i,j-1} +s(-,b_j) \quad\}$  

Der Wert eines optimalen semi-globalen Alignments ist das Maximum der Einträge in der letzten Zeile und Spalte.

Der folgende Algorithmus berechnet den Wert eines optimalen semi-globalen Alignments.
S[0][0] = 0; 
for(int i = 1; i <= n; i++)  S[i][0] = 0; 
for(int j = 1; j <= m; j++)  S[0][j] = 0; 

for(int i = 1; i <= n; i++){
  for(int j = 1; j <= m; j++)
    S[i][j] = max(S[i-1][j]  + s(a[i],-),
                  S[i-1][j-1]+ s(a[i],b[j]),
                  S[i][j-1]  + s(-,b[j]));
out << max(S[n][j] | j = 0..m, S[i][m] | i = 0..n);


Knut Reinert
1998-03-09