Материал: Учебное пособие Немирко Манило

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Алгоритм расчета оптимального выравнивания основан на вычислении расстояния редактирования между префиксами слов U и V длины i и j использованием значения расстояний редактирования для более коротких префиксов. Обозначим через Wδ (i, j), 0 ≤ i ≤ m, 0 ≤ j ≤ n стоимость оптималь-

ного выравнивания (u1, u2, , ui ) и (v1, v2, , v j ). На каждом шаге процедуры выравнивания используются следующие рекуррентные соотношения:

 

 

Wδ = (0, 0)= 0 ;

 

(2.4)

Wδ (i +1, 0)=Wδ (i, 0)+δ(ui+1 → ε);

(2.5)

Wδ (0, j +1)=Wδ (0,

j)+δ(ε → v j+1 );

(2.6)

 

 

W

(i,

j +1)+δ(u

→ ε);

 

 

 

δ

 

i+1

 

 

Wδ (i +1,

j +1)

= min Wδ (i +1, j)+δ(ε → v j+1 );

(2.7)

 

 

 

(i,

j)+δ(ui+1 → v j+1 ).

 

 

 

Wδ

 

 

 

 

 

 

 

 

Здесь Wδ (i, j +1),

Wδ (i +1, j), Wδ (i,

j) – стоимости оптимального вы-

равнивания для пар последовательностей меньшей длины. Оно выполнено на предыдущих шагах процедуры выравнивания.

Собственно выравнивание строится в процессе последовательного продвижения по узлам сети в направлении от истока к стоку. На каждом шаге выравнивания производится условная оптимизация управления, задаваемого

набором возможных операций: замена δ(ui+1 → v j+1 ), вставка δ(ε → v j+1 ) или удаление δ(ui+1 → ε) последнего символа анализируемого фрагмента

слова U . Как следует из (2.4), стоимость выравнивания пустых слов задается равной нулю. Выражение (2.5) оценивает суммарные затраты при движении по узлам, расположенным на верхней горизонтали сети. Соответственно, выражение (2.6) связано с оценкой затрат при движении по левой вертикали сети. Соотношение (2.7) используется для условной оптимизации во всех остальных узлах ориентированного графа: выбирается то шаговое управление, которое обеспечивает минимум суммарных затрат.

Возвращаясь к задаче временного выравнивания последовательностей символов T1 и T2 , следует отметить, что стоимость δ(ui+1 → v j+1 ) здесь принимается равной 0, так как эта операция допустима лишь в случае совпаде-

61

ния указанных символов (хотя в некоторых случаях может быть введена и стоимость операции замены). Стоимости операций удаления δ(ui+1 → ε) и

вставки символа δ(ε → v j+1 ) заданы равными 1.

Используя рекуррентные соотношения (2.4)–(2.7) в процедуре оптимального выравнивания T1 и T2 , которая строится последовательно от вершины S0 к вершине Sk , получим результат условной оптимизации, представленный на рис. 2.18. Здесь для каждого узла сетки (i, j), соответствующего промежуточному состоянию Si, j , стрелками указаны траектории (по-

следовательности элементарных преобразований), необходимых для оптимального выравнивания соответствующих префиксов. Кроме того, указаны и стоимости соответствующих суммарных затрат на процедуру выравнивания (числа в кружках соответствующих узлов сетки).

Так, для промежуточного узла (i,

j)= (4, 2), соответствующего вырав-

ниванию префиксов T1 − a a a b , T2 − a a

одна из оптимальных траекто-

рий выравнивания задается последовательностью вершин графа {S0,0, S1,0,

S2,1, S3,2, S4,2}. При этом в цепочке

a a a b

вначале удаляется символ a ,

последующие два символа сохраняются, а последний символ b также подлежит удалению.

Напротив, в цепочке a a вначале добавляется символ a , последующие два символа сохраняются, а в конце цепочки вставлен символ b. После выравнивания соответствующие префиксы принимают вид T1 (−, a, a, −) и

T2 (a, a, a, b).

62

0

1

2

3

 

4

5

6

7

8

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

a

 

 

a

b

 

b

 

 

c

a

a

 

 

0

S0

1

2

3

4

5

6

7

8

T1

 

a

 

 

 

 

 

 

 

 

 

1

1

0

1

2

3

4

5

6

7

 

 

a

 

 

 

 

 

 

 

 

 

2

2

1

0

1

2

3

4

5

6

 

 

b

 

 

 

 

 

 

 

 

 

3

3

2

1

2

1

2

3

4

5

 

 

c

 

 

 

 

 

 

 

 

 

4

4

3

2

3

2

3

2

3

4

 

 

b

 

 

 

 

 

 

 

 

 

5

T2 5

4

3

4

3

2

3

4

5

Sk

j

 

 

 

 

 

 

 

 

 

 

Рис. 2.18

Здесь тире обозначает пустые символы, а запятые являются разделителями и введены для удобства сравнения символов, стоящих в одинаковых позициях. Суммарные затраты такого выравнивания составляют 2 единицы, что отмечено в кружке конечной для префикса вершины S4,2 . Как следует из ри-

сунка, оптимальная траектория для сравниваемых префиксов оказалась не единственной, но все эквивалентные пути выравнивания требуют одинаковых затрат.

Затем в соответствии со схемой решения задач динамического программирования строится траектория из S0 в Sk , которая обеспечивает выравнивание полных слова T1 и T2 с минимальными затратами. Результат такой безусловной оптимизации показан на рис. 2.19.

63

 

0

1

2

3

4

5

6

7

8

i

 

a

a

a

b

b

c

a

a

 

 

0

S0

1

 

 

 

 

 

 

 

T1

 

a

 

 

 

 

 

 

 

 

 

1

 

0

1

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

2

 

 

0

1

2

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

3

 

 

 

 

1

2

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

4

 

 

 

 

2

 

2

3

4

 

 

b

 

 

 

 

 

 

 

 

 

5

T2

 

 

 

 

2

3

4

5

Sk

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.19

 

 

 

 

 

Как следует из рисунка, возможно целое множество альтернативных

траекторий

выравнивания слов

T1

и T2 ,

суммарные

затраты

при этом

W (T1, T2 )= 5. Эта величина определяет число элементарных трансформаций,

переводящих цепочку T1

в T2 . Выделим два способа выравнивания, которые

соответствуют верхней и нижней траекториям на сети G (T1, T2 ).

 

 

Результаты такого выравнивания приведены в табл. 2.6, а также проил-

люстрированы на рис. 2.20.

 

 

 

 

 

 

 

Таблица 2.6

Путь

Траектория выравнивания

Результат выравнивания

из S0 в Sk

T1 = a a a b b c a a и T2 = a a b c b

цепочек символов T1 и T2

Верхний

 

T

= (−,a,a,−,b,c,−,−,b)

S0,0, S1,0, S2,1, S3,2, S4,2, S5,3, S6,4, S7,4, S8,4, S8,5

1

= (a,a,a,b,b,c,a,a,−)

путь

T

 

 

2

 

Нижний

 

T

= (a,a,−,b,c,b,−,−,−)

S0,0, S1,1, S2,2, S3,2, S4,3, S4,4, S5,5, S6,5, S7,5, S8,5

1

= (a,a,a,b,−,b,c,a,a)

путь

T

 

 

2

 

Во втором столбце таблицы указана вся последовательность промежуточных шагов, которая приводит к оптимальному выравниванию. Третий

64

столбец содержит упорядоченные последовательности символов, которые получены в результате трансформации исходных слов T1 = a a a b b c a a и

T2 = a a b c b .

Выравнивание слова T1 в соответствии с верхней траекторией ориентированного графа предполагает выполнение следующей последовательности шагов (рис. 2.20):

1) удаление символа a :

(a → ε); S0,0 → S1,0 ; T1 = (−); W (T1, T2 )=1;

2)сохранение символа a :

(a → a); S1,0 → S2,1 ; T1 = (−, a); W (T1, T2 )=1;

3)сохранение символа a :

(a → a); S2,1 → S3,2 ; T1 = (−, a, a); W (T1, T2 )=1;

4)удаление символа b:

(b → ε); S3,2 → S4,2 ; T1 = (−, a, a, −); W (T1, T2 )= 2 ;

5)сохранение символа b:

(b → b); S4,2 → S5,3; T1 = (−, a, a, −, b); W (T1, T2 )= 2 ;

6)сохранение символа с:

(c → c); S5,3 → S6,4 ; T1 = (−, a, a, −, b, c), W (T1, T2 )= 2 ;

7)удаление символа a :

(a → ε); S6,4 → S7,4 ; T1 = (−, a, a, −, b, c, −), W (T1, T2 )= 3;

8)удаление символа a :

(a → ε); S7,4 → S8,4 ; T1 = (−, a, a, −, b, c, −, −), W (T1, T2 )= 4 ;

9)вставка символа b:

(ε → b); S8,4 → S8,5 ; T1 = (−, a, a, −, b, c, −, −, b), W (T1, T2 )= 5.

65

Источник: https://studfile.net/preview/14965028/