mikhail roytberg - sequence analysis (from biology to linguistics) part1

111
Анализ Анализ символьных последовательностей символьных последовательностей от от биоинформатики биоинформатики до лингвистики до лингвистики М.А. Ройтберг Занятие 1 Екатеринбург 21 апреля 2011

Upload: uralcsclub

Post on 12-Jul-2015

902 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Анализ Анализ символьных последовательностейсимвольных последовательностей

отот биоинформатик и биоинформатик и до лингвистики до лингвистики

М.А. Ройтберг

Занятие 1

Екатеринбург 21 апреля 2011

Page 2: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

2

Источники последовательностей (текстов)Источники последовательностей (текстов)

- Интернет- Тексты на естественных языках (лингвистика)- Тексты программ (программирование)- Дискретизация сигналов (технические приложения, анализ речи)- Биологические полимеры – ДНК, РНК, белки (биоинформатика)

Различия:Различия:

- - Длины текстов;- Размеры корпуса текстов в целом; - Размеры исследуемых групп текстов;- Размеры алфавитов

Page 3: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

3

Источники последовательностей (текстов)Источники последовательностей (текстов)

- Интернет- Тексты на естественных языках (лингвистика)- Тексты программ (программирование)- Дискретизация сигналов (технические приложения, анализ речи)- Биологические полимеры – ДНК, РНК, белки

(биоинформатика) Различия:Различия:

- - Длины текстов;- Размеры корпуса текстов в целом; - Размеры исследуемых групп текстов;- Размеры алфавитов- - Постановки задач.

Page 4: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

4

Основные задачиОсновные задачи

- сопоставление в целом (парное, множественное);- определение количественной меры сходства последователь-ностей в целом;-поиск общих мотивов (в двух и нескольких последовательно-стях); поиск в базах данных;- поиск и выделение функционально значимых участков (заданных «паттернов»);- разбиение последовательности на «однородные» участки;- определение статистической значимости результатов сравнения и поиска.

Page 5: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Примеры текстов – два белка Два заголовка статей

Page 6: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

План курса

Динамическое программирование, графы и алгебра

Биологические иллюстрации Поиск локальных сходств, затравки Конечные автоматы и вероятности Гиперграфы и контекстно-свободные грамматики Разные примеры

Page 7: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

7

При анализе данных требуется:При анализе данных требуется:

1. УМЕТЬ ПРИДУМЫВАТЬ не только алгоритмы, но и ФОРМАЛЬНЫЕ ПОСТАНОВКИ ЗАДАЧ.

2. ПРОВЕРЯТЬ, насколько ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ соответствует СОДЕРЖАТЕЛЬНОЙ ПОСТАНОВКЕ.

Page 8: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

8

Раздел 1.Раздел 1.Динамическое программирование, Динамическое программирование,

графы и алгебраграфы и алгебра

1.1 Ориентированные ациклические графы. Оптимальный путь.

1.2. Алгебраическая основа алгоритма Беллмана

Page 9: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

9

ПовторениеПовторение

1.1 Ориентированные ациклические графы. Оптимальный путь.

Page 10: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

10

A

C

Z

B

E

F

D

5 2

3

7

113

14

6

5

7 6

7

Ориентированный ациклический граф с весами на ребрах

Вершина

Ребро

Ребра направлены и снабжены весами.

Путь: ABCEW(ABCE) = = 3+11+ 3 = 17

Источник: A; Сток: Z

Нет циклов

Page 11: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

11

Пути (примеры): BEZ = {(BE), (EZ)} (длина 2); вес W(BEZ) = 7 + 5 = 12 BCEZ = {(BC), (CE), (EZ)} (длина 3); W(BCEZ) = 11+ 3 +5 = 19Полный путь (длина 4); : ADBEZ =={(AD), (DB), (BE), (EZ)} W(ADBEZ) = 14+6+7 + 5 = 32

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Page 12: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

12

Полные пути – пути из источника в сток (примеры): ADEZ: длина = 3;

вес W(ADEZ) = 14+ 7 + 5 = 26; ABCFZ: длина = 4;

вес W(ABCFZ) = 3+7+ 2 + 7 = 19

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Page 13: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

13

ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>

ЗАДАЧА 1 (задача Беллмана) Найти оптимальный полный путь, т.е. полный путь, имеющий минимальный (максимальный) возможный вес.

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Page 14: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

14

Интерпретации: 1. “Экономика”: Вершины – города; Ребра - дороги; Веса: длина, время, стоимость и т.п.

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

2. “Физика” : Вершины – состояния процесса; Ребра: возможные переходы между состояниями; Веса: энергии или вероятности переходов.

Page 15: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Пример: предсказание 3D структуры белков(гемоглобин, код белка 1ash, цепь А)

Page 16: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1
Page 17: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Дано: последовательность аминокислотНадо: где образуются спирали

Page 18: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

18

ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>

ЗАДАЧА 1 (задача Беллмана) Найти оптимальный полный путь, т.е. полный путь, имеющий минимальный (максимальный) возможный вес.

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Page 19: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

19

Метод динамического программированияМетод динамического программирования((Алгоритм Беллмана, 1953Алгоритм Беллмана, 1953))

Проход от стока к источнику: из W есть путь в V => => W обрабатывается позже, чем V.

Рекуррентное уравнение

BestW(A) = min{ W(AB) + BestW(B), W(AC) + BestW(С), W(AD) + BestW(D) }

Page 20: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

20

РангВершина

Исх. ребра

Вес ребра

Вес след. верш.

Лучш вес для

ребра

Лучш вес для

верш

Куда идти

0 Z xxx 0 0 0 0 xxx1 F Z 7 0 7 7 Z1 E Z 5 0 5 5 Z

E 7 5 12Z 6 0 6E 3 5 8F 2 7 9C 11 8 19D 6 6 12 E 7 5 12BCD

12 D, E

6 Z

8 E

2 D

2 C

3 B

4 A

A

C

Z

B

EF

D

5 2 3

7

113

14

6

5

7

6

7

BestW(B) = = min{ W(BC) + BestW(C), W(BD) + BestW(D), W(BE) + BestW(E), }

Page 21: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

21

РангВершина

Исх. ребра

Вес ребра

Вес след. верш.

Лучш вес для

ребра

Лучш вес для

верш

Куда идти

0 Z xxx 0 0 0 0 xxx1 F Z 7 0 7 7 Z1 E Z 5 0 5 5 Z

E 7 5 12Z 6 0 6E 3 5 8F 2 7 9C 11 8 19D 6 6 12 E 7 5 12B 3 12 15C 5 8 13D 14 6 20

3 B

4 A

2 D

2 C

6 Z

8 E

12 D, E

13 C

A

C

Z

B

EF

D

5 2 3

7

113

14

6

5

7

6

7

BestW(B) = = min{ W(BC) + BestW(C), W(BD) + BestW(D), W(BE) + BestW(E), }

Best Weight: 13Best Path: ACEZ

Page 22: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

22

РангВершина

Исх. ребр

а

Вес ребра

Вес след. верш.

Лучший вес для ребра

Лучший вес для

вершины

Куда идти

0 Z xxx 0 0 0 0 xxx1 F Z 7 0 7 7 Z1 E Z 5 0 5 5 Z

E 7 5 12Z 6 0 6E 3 5 8F 2 7 9C 11 8 19D 6 6 12 E 7 5 12B 3 12 15C 5 8 13D 14 6 20

3 B

4 A

2 D

2 C

6 Z

8 E

12 D, E

13 C

BestW(A) = = min{ W(AB) + BestW(B), W(AC) + BestW(C), W(AD) + BestW(D), }

Для любой вершины T: BestW (T) = min{ W(T N1) + BestW(N1), ….., W(T Nt) + BestW(Nt), } где N1, ..., Nt – все наследники T

AC

Z

B

EF

D

5 2 3

7

113

14

6

5

7

6

7

Page 23: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

23

РангВершина

Исх. ребр

а

Вес ребра

Вес след. верш.

Лучший вес для ребра

Лучший вес для

вершины

Куда идти

0 Z xxx 0 0 0 0 xxx1 F Z 7 0 7 7 Z1 E Z 5 0 5 5 Z

E 7 5 12Z 6 0 6E 3 5 8F 2 7 9C 11 8 19D 6 6 12 E 7 5 12B 3 12 15C 5 8 13D 14 6 20

3 B

4 A

2 D

2 C

6 Z

8 E

12 D, E

13 C

ВРЕМЯ РАБОТЫ ~ к-во РЕБЕР ПАМЯТЬ ~ к-во ВЕРШИН

AC

Z

B

EF

D

5 2 3

7

113

14

6

5

7

6

7

Page 24: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

24

1.2. Алгебраическая основа алгоритма Беллмана

1. Динамическое программирование, 1. Динамическое программирование, графы и алгебраграфы и алгебра

Page 25: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

25

Задача-подсказкаЗадача-подсказка

S =

= a1 ⋅ b1 + a1 ⋅ b2 + ... + a1 ⋅ b1000 +

+ a2 ⋅ b1 + a2 ⋅ b2 + ... + a2 ⋅ b1000 +

+ ...

+

+ a1000 ⋅ b1 + a1000 ⋅b2 + ... + a1000 ⋅

b1000

Найти 1 000 000 сумму слаг аемых за

< 5000 .операций

Page 26: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

26

РешениеРешение

S = a1 ⋅ (b1 + b2 + ... + b1000 ) +

+ a2 ⋅ (b1 + b2 + ... + b1000 ) +

+ ...

+

+ a1000 ⋅ (b1 + b2 + ... + b1000 ) =

= (a1 + a2 + ... + a1000 ) ⋅ (b1 + b2

+ ... + b1000 )

*** Алгоритм ***

A = a1 + a2 + ... + a1000 // 999

операций

B = b1 + b2 + ... + b1000 // 999

операций

S = A ⋅ B // 1 операция

*** Всего: 2001 операций

Page 27: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

27

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)

Переместительный закон (коммутативность):Сложение Умножение

a+b = b+a a*b = b*a

Нейтральный элемент:Сложение Умножение

a+0 = 0+a =а a*1 = 1*a = a

Обратные элементы (3-й класс) :Сложение Умножение

a+(-a) = 0 a*(1/a) = 1a

Повторение: 1-й класс

Page 28: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

28

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)Переместительный закон (коммутативность):

Сложение Умножение

a+b = b+a a*b = b*aНейтральный элемент:

Сложение Умножение

a+0 = 0+a =а a*1 = 1*a = a Обратные элементы (3-й класс) :

Сложение Умножение

a+(-a) = 0 a*(1/a) = 1a

РАСПРЕДЕЛИТЕЛЬНЫЙ ЗАКОН (ДИСТРИБУТИВНОСТЬ)умножение относительно сложения

(a+b)*c = a*c + b*c a*(b+c) = a*b+a*c

Повторение: 1-й класс

Page 29: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

29

Мультипликативные веса путей BEZ = {(BE), (EZ)} (длина 2); вес W(BEZ) = 7 + 5 = 12 мультипликативный вес (м-вес) WM(BEZ) = 7•5 = 35 BCEZ = {(BC), (CE), (EZ)} (длина 3); W(BCEZ) = 11+ 3 +5 = 19 WM(BCEZ)=11•3•5=165 Полный путь (длина 4); : ADBEZ =={(AD), (DB), (BE), (EZ)} W(ADBEZ) = 14+6+7 + 5 = 32 WM(ADBEZ) = 14•6•7•5 = 2940

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Page 30: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

30

ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>

ЗАДАЧА 2 («задача Больцмана») Найти сумму мультипликативных весов всех полных путей.

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

ЛюL двиг Больцман (нем. Ludwig Eduard Boltzmann, 1844 - 1906), основатель статистической механики и молекулярно-кинетической теории

Page 31: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Джозайя Уиллард Гиббс (Josiah Willard Gibbs; 1839 – 1903, США) — математик, физик и физикохимик, один из создателей статистической физики и математи-ческой теории термодинамики

ЛюRдвиг Больцман (Ludwig Eduard Boltzmann, 1844 – 1906; Австро-Венгрия, Италия), основатель статистической меха-ники и молекулярно-кинетической теории

Эрнст Изинг (Ernst Ising, 1900-1998, Германия-США) - физик, позже - педагог, автор модели Изинга (см. предсказание спиралей в белке и т. п.)

Page 32: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

32

Интерпретации: 1. Вероятность прохода лабиринта: Вершины – города; Ребра - дороги; Вес ребра: вероятность перехода по ребру (сумма вероятностей выхода из вершины может быть меньше 1)

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

2. Статистическая физика – без

комментариев

Page 33: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

33

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Проход от стока к источнику: из W есть путь в V => => W обрабатывается позже, чем V.

Пример: вершина B.

Пути из B в Z: BCEZ, BCFZ, BDZ, BDEZ, BEZ Sum(B) = M(BCEZ) + M(BCFZ) + + M(BDZ) + M(BDEZ) +

+ M(BEZ) =

= W(BC)*M(CEZ) + W(BC)*M(CFZ) + +W(BD)*M(DZ) + W(BD)*M(DEZ) + +W(BE)* M(EZ) =

= W(BC)*(M(CEZ) + M(CFZ)) ++ W(BD)*(M(DZ) + M(DEZ)) + + W(BE)* M(EZ) = ….

Page 34: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

34

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Проход от стока к источнику: из W есть путь в V => => W обрабатывается позже, чем V.

Пример: вершина B.

Пути из B в Z: BCEZ, BCFZ, BDZ, BDEZ, BEZ Sum(B) =…= W(BC)*(M(CEZ) + M(CFZ)) ++ W(BD)*(M(DZ) + M(DEZ)) + + W(BE)* M(EZ) =

= W(BC)* Sum(C) ++ W(BD)* Sum(D) + + W(BE)* Sum(E)

Page 35: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

35

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Проход от стока к источнику: из W есть путь в V => => W обрабатывается позже, чем V.

Пример: вершина B. Пути из B в Z: BCEZ, BCFZ, BDZ, BDEZ, BEZ Sum(B) = M(BCEZ) + M(BCFZ) + + M(BDZ) + M(BDEZ) +

+ M(BEZ) =

Рекуррентное уравнение (сумма м-весов): Sum(A) = W(AB)*Sum(B) + + W(AC)*Sum(C) + + W(AD)*Sum(D)}

Page 36: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

36

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Проход от стока к источнику: из W есть путь в V => => W обрабатывается позже, чем V.

Рекуррентное уравнение (минимальный путь) BestW(A) = min{ W(AB) + BestW(B), W(AC) + BestW(C), W(AD) + BestW(D)} Рекуррентное уравнение (сумма м-весов): Sum(A) = W(AB)*Sum(B) + + W(AC)*Sum(C) + + W(AD)*Sum(D)}

Page 37: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

37

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)Переместительный закон (коммутативность):

Сложение Умножение

a+b = b+a a*b = b*aНейтральный элемент:

Сложение Умножение

a+0 = 0+a =а a*1 = 1*a = a Обратные элементы (3-й класс) :

Сложение Умножение

a+(-a) = 0 a*(1/a) = 1a

РАСПРЕДЕЛИТЕЛЬНЫЙ ЗАКОН (ДИСТРИБУТИВНОСТЬ)умножение относительно сложения

(a+b)*c = a*c + b*c a*(b+c) = a*b+a*c

Что использовали?

Page 38: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

38

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)Переместительный закон (коммутативность):

Сложение Умножение a+b = b+a a*b = b*a

Нейтральный элемент:Сложение Умножение

a+0 = 0+a =а a*1 = 1*a = a

Обратные элементы (3-й класс) :Сложение Умножение

a+(-a) = 0 a*(1/a) = 1a

РАСПРЕДЕЛИТЕЛЬНЫЙ ЗАКОН (ДИСТРИБУТИВНОСТЬ)умножение относительно сложения

(a+b)*c = a*c + b*c a*(b+c) = a*b+a*c

Что использовали?

Page 39: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

39

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Sum(B) = = M(BCEZ) + M(BCFZ) + M(BDZ) + M(BDEZ) + M(BEZ) =

= W(BC)*M(CEZ) + W(BC)*M(CFZ) + +W(BD)*M(DZ) + W(BD)*M(DEZ) + +W(BE)* M(EZ) =

= W(BC)*(M(CEZ) + M(CFZ)) ++ W(BD)*(M(DZ) + M(DEZ)) + + W(BE)* M(EZ) =

= W(BC)*(M(CEZ) + M(CFZ)) ++ W(BD)*(M(DZ) + M(DEZ)) + + W(BE)* M(EZ) =

= W(BC)* Sum(C) ++ W(BD)* Sum(D) + + W(BE)* Sum(E)

Page 40: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

40

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)Переместительный закон (коммутативность):

Сложение Умножение a+b = b+a a*b = b*a

Нейтральный элемент:Сложение Умножение

a+0 = 0+a =а a*1 = 1*a = a Обратные элементы (3-й класс) :

Сложение Умножение a+(-a) = 0 a*(1/a) = 1a

РАСПРЕДЕЛИТЕЛЬНЫЙ ЗАКОН (ДИСТРИБУТИВНОСТЬ)умножение относительно сложения

(a+b)*c = a*c + b*c a*(b+c) = a*b+a*c

Что использовали?

Page 41: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

41

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Sum(B) = = M(BCEZ) + M(BCFZ) + M(BDZ) + M(BDEZ) + M(BEZ) =

= W(BC)*M(CEZ) + W(BC)*M(CFZ) + +W(BD)*M(DZ) + W(BD)*M(DEZ) + +W(BE)* M(EZ) =

= W(BC)*(M(CEZ) + M(CFZ)) ++ W(BD)*(M(DZ) + M(DEZ)) + + W(BE)* M(EZ) =

= W(BC)*(M(CEZ) + M(CFZ)) ++ W(BD)*(M(DZ) + M(DEZ)) + + W(BE)* M(EZ) =

= W(BC)* Sum(C) ++ W(BD)* Sum(D) + + W(BE)* Sum(E)

Page 42: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

42

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)

Переместительный закон (коммутативность):Сложение Умножение

a+b = b+a a*b = b*aНейтральный элемент:

Сложение Умножение a+0 = 0+a =а a*1 = 1*a = a

Обратные элементы (3-й класс) :Сложение Умножение

a+(-a) = 0 a*(1/a) = 1a

РАСПРЕДЕЛИТЕЛЬНЫЙ ЗАКОН (ДИСТРИБУТИВНОСТЬ)умножение относительно сложения

(a+b)*c = a*c + b*c a*(b+c) = a*b+a*c

Что использовали?

Page 43: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

43

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)

Переместительный закон (коммутативность):Сложение Умножение

a+b = b+a a*b = b*aНейтральный элемент:

Сложение Умножение a+0 = 0+a =а a*1 = 1*a = a

Обратные элементы (3-й класс) :Сложение Умножение

a+(-a) = 0 a*(1/a) = 1a

РАСПРЕДЕЛИТЕЛЬНЫЙ ЗАКОН (ДИСТРИБУТИВНОСТЬ)умножение относительно сложения

(a+b)*c = a*c + b*c a*(b+c) = a*b+a*c

Что использовали?

Page 44: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

44

Сочетательный закон (ассоциативность):Сложение Умножение

(a+b)+c = a+(b+c) (a*b)*c = a*(b*c)

Переместительный закон (коммутативность):

Сложение

a+b = b+a Нейтральный элемент:

Умножение a*1 = 1*a = a

РАСПРЕДЕЛИТЕЛЬНЫЙ ЗАКОН (ДИСТРИБУТИВНОСТЬ)

умножение относительно сложения

(a+b)*c = a*c + b*c a*(b+c) = a*b+a*c

Это называется полукольцо

Page 45: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

45

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Полукольцо A – это множество, на котором заданы две бинарные всюду определенные операции + и * («сложение» и «умножение»), удовлетворяющие следующим свойствам:

операции + и * ассоциативны; операция + коммутативна, коммутативность операции *

не обязательна; в A есть правый нейтральный элемент относительно

операции *; Операции и обычно называют сложением и

умножением.

+ - «целевая» операция * - «соединительная» операция

Page 46: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

46

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Примеры полуколец. Первая операция – аналог сложения («целевая

операция»), вторая – аналог умножения («соединяющая операция»):

на числах: {+, x}, {max, +}; {max, min}; на множествах: {∪, ∩} на множествах слов: {∪, •} на матрицах: {+, x}.

+ - «целевая» операция * - «соединительная» операция

Page 47: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

47

ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>

ЗАДАЧА 1 Найти оптимальный полный путь, т.е. полный путь, имеющий минимальный (максимальный) возможный вес. ЗАДАЧА 2 Найти сумму мультипликативных весов всех полных путей.

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Page 48: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

48

Метод динамического программированияМетод динамического программирования((Алгоритм БеллманаАлгоритм Беллмана))

Проход от стока к источнику: из W есть путь в V => => W обрабатывается позже, чем V.

Рекуррентное уравнение (минимальный путь) BestW(A) = min{ W(AB) + BestW(B), W(AC) + BestW(C), W(AD) + BestW(D)} Рекуррентное уравнение (сумма м-весов): Sum(A) = W(AB)*Sum(B) + + W(AC)*Sum(C) + + W(AD)*Sum(D)}

Page 49: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

49

ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>;

веса W(e) – элементы полукольца K с операциями + и *. ЗАДАЧА 3 Найти сумму мультипликативных весов всех полных путей. Операция * («умножение») определяет веса путей («соединительная операция»). Операция + («сложение») определяет целевую функцию («соединительная операция»).

A

C

Z

B

EF

D

5 23

7

113

14

6

5

76

7

Page 50: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

50

ВРЕМЯ РАБОТЫ ~ к-во РЕБЕР ПАМЯТЬ ~ к-во ВЕРШИН

AC

Z

B

EF

D

5 2 3

7

113

14

6

5

7

6

7

ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>;

веса W(e) – элементы полукольца K с операциями + и *.

ЗАДАЧА 3 Найти сумму мультипликативных весов всех полных путей.

Page 51: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Замечание 1.

Память

ВРЕМЯ РАБОТЫ ~ к-во РЕБЕР ПАМЯТЬ ~ к-во ВЕРШИН

ПАМЯТЬ МОЖЕТ БЫТЬ МЕНЬШЕ !(если в графе можно выделить «слои»)

Пример: нахождение веса оптимального выравнивания (но не самого выравнивания !)

Space ~ L1 = SQRT(|Vertex|)

!! Выравнивание тоже можно найти с памятью Space ~ L1 и временем Time ~ L1*L2, но для этого нужны новые идеи [Hirschberg D.S. Algorithms for the Longest Common Subsequence Problem. // Journal of the ACM . 1977. Vol. 24 , N.4. P. 664 – 675. ]

Page 52: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

52

Замечание 2.Замечание 2.Различие между Различие между min min и суммой: и суммой: argminargmin

Рекуррентное уравнение (минимальный путь)

BestW(V) = min{ W(VB) + BestW(B), W(VC) + BestW(C), W(VD) + BestW(D) }

Рекуррентное уравнение (сумма Больцмана)

Sum(V) = ∑{ W(VB) * BestW(B), W(VC) * BestW(C), W(VD) * BestW(D) }

Операция min предполагает не только получение числа, но и (неявно) выбор одного из операндов. Поэтому при работе с min мы кроме значения веса «оптимального» пути находим и сам оптимальный путь.Для этого при вычислении значения BestW(V) = min{…} мы запоминаем дополнительно argmin{…} – наследника (-ков) вершиныV, на котором (-рых) минимум достигается.Примеры были раньше.

Page 53: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

ЗАДАЧА 1

Что делать, если порядок просмотра вершин неизвестен?

=> Разберемся на следующем занятии

Page 54: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

ЗАДАЧА 2(«Специальные суммы Больцмана»)

G – ориентированный ациклический граф, ребрам сопоставлены веса, принадлежащие полукольцу K; V – вершина графа G, вес пути – «произведение» весов ребер .

Определение. Специальная сумма Больцмана для SB(V) для вершины V – это «сумма» весов всех полных путей, проходящих через вершину V.

Задача. Для всех вершин V графа G найти значения специальных сумм Больцмана SB(V) Разберем на следующем занятииВопрос: Чему соответствуют специальные суммы Больцмана для полукольца чисел с операциями

(min, +)?

Page 55: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

ЗАДАЧА 2(«Специальные суммы Больцмана»)

G – ориентированный ациклический граф, ребрам сопоставлены веса, принадлежащие полукольцу K; V – вершина графа G, вес пути – «произведение» весов ребер .

Определение. Специальная сумма Больцмана для SB(V) для вершины V – это «сумма» весов всех полных путей, проходящих через вершину V.

Задача. Для всех вершин V графа G найти значения специальных сумм Больцмана SB(V)

Вопрос: Чему соответствуют специальные суммы Больцмана для полукольца чисел с операциями

(min, +)?Ответ: весу минимального пути, проходящего

через данную вершину.

Page 56: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

56

Раздел 2Глобальное выравнивание

2.1. Определение выравнивания2.2. Вес выравнивания. Оптимальное выравнивание2.3. Алгоритм построения оптимального глобального выравнивания

Page 57: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

57

2.1. Определение выравнивания.

Page 58: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

58

Определение.Определение.

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

Пример.

S1 = “КРОКОДИЛИЩЕ”; S2 = «ВОЛКОДАВУШКА»

КРОКОДИЛИЩЕ- КРО-КОДИЛИЩЕ- ВОЛКОДАВУШКА В-ОЛКОДАВУШКА

Page 59: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

59

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

Неформально: предполагается, что последователь-ности были получены «редактированием» («эволюцией») из общего предка. Требуется: установить соответствующие друг другу участки.Предположение: были только замены, удаления и вставки. Не было перестановок фрагментов, дупликаций и т.п.

Page 60: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

60

Пример 2Пример 2

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

S1 = “ПОДБЕРЕЗОВИК”S2 = «ПРЕДОСИНОВИЧКИ»

Page 61: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

61

Варианты Варианты выравниванийвыравниваний

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

--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ

ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ

ПО-ДБЕРЕЗОВИ-К-ПРЕД-ОСИНОВИЧКИ

Page 62: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

62

Какой вариант выбрать?

А) Б)--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ

В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ

Предполагается: последовательности были получены редактированием» («эволюцией») из общего предка.

Требуется: установить соответствующие друг другу участки

Page 63: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

63

Какой вариант выбрать?

Нужно «знать» что-нибудь про эволюцию

А) Б)

--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ

В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ

Предположим: Две одинаковые буквы скорее имеют общего предка,

чем две разные буквыДве буквы «одинаковой гласности» скорее имеют

общего предка, чем две буквы «разные гласности»

Page 64: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

64

Две одинаковые буквы скорее имеют общего предка, чем две разные буквы

Две буквы «одинаковой гласности» скорее имеют общего предка, чем две буквы «разные

гласности»А) Б)

--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ

В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ

Г) лучше, чем В); Б) [немного] лучше А)??? Верно ли, что

Г) лучше, чем Б) ?

Page 65: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

65

Две одинаковые буквы скорее имеют общего предка, чем две разные буквы

Две буквы «одинаковой гласности» скорее имеют общего предка, чем две буквы «разные

гласности»А) Б)

--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ

В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ

??? Верно ли, что Г) лучше, чем Б) ?

=== НЕИЗВЕСТНО. Мы ничего не предположили о механизме удалений/вставок (насколько они вероятны по сравнению с заменами)

Page 66: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

66

2.2. Вес выравнивания. Оптимальное выравнивание.

Page 67: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

67

  

Вес выравнивания

A T – V V I — - T G S G S M V L L E F S G T 0+2 +3+2+3 +2+7+2= 21 -1 -2 = -3

Штрафы за удаление: фрагмента = 0; символа = -1

Score = Σ m(i,j)-GapPen = 21 - 3 = 18

Page 68: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

68

PAM250 matrix recommended by Gonnet et al. Science, June 5, 1992Values rounded to nearest integerC S T P A G N D E Q H R K M I L V F Y W

C 12 0 0 -3 0 -2 -2 -3 -3 -2 -1 -2 -3 -1 -1 -2 0 -1 0 -1S 0 2 2 0 1 0 1 0 0 0 0 0 0 -1 -2 -2 -1 -3 -2 -3T 0 2 2 0 1 -1 0 0 0 0 0 0 0 -1 -1 -1 0 -2 -2 -4P -3 0 0 8 0 -2 -1 -1 0 0 -1 -1 -1 -2 -3 -2 -2 -4 -3 -5A 0 1 1 0 2 0 0 0 0 0 -1 -1 0 -1 -1 -1 0 -2 -2 -4G -2 0 -1 -2 0 7 0 0 -1 -1 -1 -1 -1 -4 -4 -4 -3 -5 -4 -4N -2 1 0 -1 0 0 4 2 1 1 1 0 1 -2 -3 -3 -2 -3 -1 -4D -3 0 0 -1 0 0 2 5 3 1 0 0 0 -3 -4 -4 -3 -4 -3 -5E -3 0 0 0 0 -1 1 3 4 2 0 0 1 -2 -3 -3 -2 -4 -3 -4Q -2 0 0 0 0 -1 1 1 2 3 1 2 2 -1 -2 -2 -2 -3 -2 -3H -1 0 0 -1 -1 -1 1 0 0 1 6 1 1 -1 -2 -2 -2 0 2 -1R -2 0 0 -1 -1 -1 0 0 0 2 1 5 3 -2 -2 -2 -2 -3 -2 -2K -3 0 0 -1 0 -1 1 0 1 2 1 3 3 -1 -2 -2 -2 -3 -2 -4M -1 -1 -1 -2 -1 -4 -2 -3 -2 -1 -1 -2 -1 4 2 3 2 2 0 -1I -1 -2 -1 -3 -1 -4 -3 -4 -3 -2 -2 -2 -2 2 4 3 3 1 -1 -2L -2 -2 -1 -2 -1 -4 -3 -4 -3 -2 -2 -2 -2 3 3 4 2 2 0 -1V 0 -1 0 -2 0 -3 -2 -3 -2 -2 -2 -2 -2 2 3 2 3 0 -1 -3F -1 -3 -2 -4 -2 -5 -3 -4 -4 -3 0 -3 -3 2 1 2 0 7 5 4Y 0 -2 -2 -3 -2 -4 -1 -3 -3 -2 2 -2 -2 0 -1 0 -1 5 8 4W -1 -3 -4 -5 -4 -4 -4 -5 -4 -3 -1 -2 -4 -1 -2 -1 -3 4 4 14

Page 69: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

 

Вес выравнивания A T – V V I — - T G S G S M V L L E F S G T 0+2 +3+2+3 +2+7+2= 21 -1 -2 = -3 Штраф за удаление символа: δ =-1 Матрица весов замен: m(a,b)

Score = Σ m(i,j)-GapPen = 21 - 3 = 18GapPen – сумма штрафов за удаления.

Score -> MAXIMUM

Page 70: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

70

Упражнение 2.1. Вес выравнивания задается следующими Упражнение 2.1. Вес выравнивания задается следующими параметрами: параметрами: сопоставление одинаковых гласных букв сопоставление одинаковых гласных букв:: 10; 10; сопоставление одинаковых согласных буквсопоставление одинаковых согласных букв:: 7; 7; сопоставление различных гласных буквсопоставление различных гласных букв:: -3 -3; ; сопоставление различных согласных буквсопоставление различных согласных букв:: -5-5; ; сопоставление гласной и согласной буквсопоставление гласной и согласной букв:: -10-10; ; удаление буквы: -удаление буквы: -d (d >0).d (d >0). А. А. Какие из указанных ниже выравниваний являются Какие из указанных ниже выравниваний являются оптимальными при некоторых значениях параметра оптимальными при некоторых значениях параметра dd? Укажите ? Укажите эти значения.эти значения. Б.* Как нужно изменить определение веса выравнивания, Б.* Как нужно изменить определение веса выравнивания, чтобы выравнивание (Г) могло стать оптимальным? чтобы выравнивание (Г) могло стать оптимальным?

А.--ПОДБЕРЕЗОВИК Б.ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ

В.ПО-ДБЕРЕЗОВИК-- Г.ПО-ДБЕРЕЗОВИК-- Д. ПО-ДБЕРЕЗОВИ-К- ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ

Page 71: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

71

2.3. Алгоритм построения оптимального глобального

выравнивания.

Page 72: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Рекурсия для глобального выравнивания

v, w - слова; a, b – буквы S(v, w) – вес оптимального выравнивания v, w.

Утверждение. S(va, wb) = max{

S(v, w) + m(a,b), // сопоставление последних букв S(v, wb) – k; // удаление посл. буквы в 1-м слове S(va, w) - k // удаление посл. буквы в 2-м слове}

Page 73: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Рекурсия для глобального выравнивания

v, w - слова; a, b – буквы S(v, w) – вес оптимального выравнивания v, w.

Утверждение. S(va, wb) = max{

S(v, w) + m(a,b), // сопоставление последних букв S(v, wb) – k; // удаление посл. буквы в 1-м слове S(va, w) - k // удаление посл. буквы в 2-м слове}

Сведение к задаче на графе?

Page 74: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

«Алгоритмическая» интерпретация ориентированных ациклических графов с

весами на ребрах

Цель – построить на данном объекте некоторую «структуру»

Вершины – объекты, производные от исходного («задачи»)

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

Путь – структура Полный путь – структура, к которой нельзя добавить

новых элементов Соответствие между множеством полных путей и

множеством структур на исходном объекте – взаимно-однозначное.

Page 75: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Пример. Сведение задачи выравнивания к задаче на графе

Исходный объект – пара слов v1, v2 длины n1, n2.Действия – обработка последних букв:

- удаление последней буквы в 1-м слове вес: – k; новый объект: (v1[1..n1-1], v2)

- удаление последней буквы в 2-м слове вес: – k; новый объект: (v1, v2[1..n2-1] )

- сопоставление последних букввес m(v1[n1], v2[n2]), новый объект: (v1[1..n1-1], v2[1..n2-1] )

Полнота набора действий – см. предыдущий слайд

Page 76: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Полнота набора действий

v, w - слова; a, b – буквы S(v, w) – вес оптимального выравнивания v, w.

Утверждение. S(va, wb) = max{

S(v, w) + m(a,b), // сопоставление последних букв S(v, wb) – k; // удаление посл. буквы в 1-м слове S(va, w) - k // удаление посл. буквы в 2-м слове}

Действия – обработка последних букв:- удаление последней буквы в 1-м слове - удаление последней буквы в 2-м слове - сопоставление последних букв

Page 77: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Сведение задачи выравнивания к задаче на графе (продолжение)

Исходный объект – пара слов v1, v2 длины n1, n2.Действия – обработка последних букв:

- удаление последней буквы в 1-м слове; вес: – k; новый объект: (v1[1..n1-1], v2)

- удаление последней буквы в 2-м слове; вес: – k; новый объект: (v1, v2[1..n2-1] )

- сопоставление последних букв; вес m(v1[n1], v2[n2]), новый объект: (v1[1..n1-1], v2[1..n2-1] )

Множество промежуточных объектов: пары слов вида (v1[1..k1], v2[1..k2]), где k1 = 0, …, n1; k2 = 0,…, k2; v[1..0] – пустое слово

Вершины графа: пары вида (k1, k2), k1=0, …, n1; k2=0,…, k2;

Ребра: (k1, k2) -> (k1-1, k2); (k1, k2) -> (k1, k2-1); (k1, k2) -> (k1-1, k2-1);

Page 78: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Общая идея (Динамическое программирование по Беллману)

Решение задачи сводится к решению «более простых» подзадач. При этом нужно:

1. Решение задачи при известных решениях подзадач находится «быстро»

2. Общее количество подзадач, которые возникают в процессе последовательных сведений «невелико»

Решаем ВСЕ подзадачи, начиная с самых простых. Экономия времени: при полном переборе решений

каждая подзадача решается много раз.

Дистрибутивность обеспечивает п.1 Обеспечивать п.2 нужно отдельно

Page 79: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Сведение задачи выравнивания к задаче на графе (продолжение)

Исходный объект – пара слов v1, v2 длины n1, n2.Действия – обработка последних букв:

- удаление последней буквы в 1-м слове; вес: – k; новый объект: (v1[1..n1-1], v2)

- удаление последней буквы в 2-м слове; вес: – k; новый объект: (v1, v2[1..n2-1] )

- сопоставление последних букв; вес m(v1[n1], v2[n2]), новый объект: (v1[1..n1-1], v2[1..n2-1] )

Множество промежуточных объектов: пары слов вида (v1[1..k1], v2[1..k2]), где k1 = 0, …, n1; k2 = 0,…, k2; v[1..0] – пустое слово

Вершины графа: пары вида (k1, k2), k1=0, …, n1; k2=0,…, k2;

Ребра: (k1, k2) -> (k1-1, k2); (k1, k2) -> (k1, k2-1); (k1, k2) -> (k1-1, k2-1);

Page 80: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

80

M I Y C VI 2 4 -1 -1 3V 2 3 -1 0 3G -4 -3 -4 -2 -3W -1 -2 -2 -1 -3Y 0 -1 -1 0 -1C -1 -1 -1 12 0

Граф Веса ребер a) диагонали

-1c) горизонтали

b) вертикали

M I Y C VIVG WYC

Порядок обхода вершиночевиден.Вычислять ранги не нужно!

Page 81: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

81

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 4 -1 -1 3

V -2 2 3 -1 0 3

G -3 -4 -3 -4 -2 -3

W -4 -1 -2 -2 -1 -3

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 82: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

82

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 4-1=3 -1 -1 3

V -2 2 3 -1 0 3

G -3 -4 -3 -4 -2 -3

W -4 -1 -2 -2 -1 -3

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 83: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

83

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 3-1=2 -1 3

V -2 2 3 -1 0 3

G -3 -4 -3 -4 -2 -3

W -4 -1 -2 -2 -1 -3

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 84: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

84

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 2-1=1 3

V -2 2 3 -1 0 3

G -3 -4 -3 -4 -2 -3

W -4 -1 -2 -2 -1 -3

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 85: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

85

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 1 1-1=0

V -2 2 3 -1 0 3

G -3 -4 -3 -4 -2 -3

W -4 -1 -2 -2 -1 -3

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 86: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

86

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 1 0

V -2 1(2) 5 (3) 4(-1) 3 (0) 4 (3)

G -3 -4 -3 -4 -2 -3

W -4 -1 -2 -2 -1 -3

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 87: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

87

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 1 0

V -2 1 5 4 3 4G -3 0 (-4) 4 (-3) 3 (-4) 2 (-2) 3 (-3)

W -4 -1 -2 -2 -1 -3

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 88: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

88

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 1 0

V -2 1 5 4 3 4G -3 0 4 3 2 3

W -4 -1 3 2 1 2

Y -5 0 -1 8 0 -1

C -6 -1 -1 -1 12 0

Page 89: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

89

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 1 0

V -2 1 5 4 3 4G -3 0 4 3 2 3

W -4 -1 3 2 1 2

Y -5 -2 2 11 10 9

C -6 -1 -1 -1 12 0

Page 90: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

90

Матрица выравниваний построенаМатрица выравниваний построена

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 1 0

V -2 1 5 4 3 4G -3 0 4 3 2 3

W -4 -1 3 2 1 2

Y -5 -2 2 11 10 9

C -6 -3 1 10 23 22

Page 91: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

91

Оптимальное выравнивание: Оптимальное выравнивание: MI--YCVMI--YCV IIVGWYC-VGWYC- Задается путем по стрелкам, начиная с адается путем по стрелкам, начиная с правого нижнего углаправого нижнего угла--

  ☺ M I Y C V

☺ 0 -1 -2 -3 -4 -5

I -1 2 3 2 1 0

V -2 1 5 4 3 4G -3 0 4 3 2 3

W -4 -1 3 2 1 2

Y -5 -2 2 11 10 9

C -6 -3 1 10 23 22

Page 92: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

92

Построение оптимального глобального Построение оптимального глобального выравниваниявыравнивания

1. 1. Постановка задачиПостановка задачи

ВХОД: Алфавит А; Последовательности: v = v1…vn; w= w1…wm из А*

Матрица весов замен М: АхА -> R; Штраф за удаление символа k

ВЫХОД: Выравнивание v и w (какое-то) имеющее наибольший возможный вес;

Вес этого выравнивания ГРАФ: Вершины {(i, j) | i=0,…, n; j = 0, …, m} Ребра из (i, j)-> (1) (i-1, j); (2) (i, (j-1)); (3) (i-1, j-1) (все координаты – неотрицательные) Веса на ребрах, выходящих из вершины (i, j):

(i-1, j-1): M[v[i], w[j]]; (i, j-1): -k; (i-1, j): -k

Page 93: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

93

Построение оптимального глобального Построение оптимального глобального выравниваниявыравнивания

22. . ДанныеДанные int m, n; char array v[1..m], w[1..n]; float array S[0..m, 0..n]; // веса оптимальных

// выравниваний начал слов v, w int array D[0..m, 0..n] // направление лучшего пути// 1 ≤ D[i, j] ≤ 7; в двоичной записи D[i, j]:// 1-й бит соответствует удалению буквы v[i]; // 2-й бит соответствует удалению буквы w[j];// 3-й бит соответствует сопоставлению v[i] и w[j];

int NumberOfMatches; //кол-во сопоставлений в // выравнивании-результате

// Позиции сопоставлений в v и w int array MatchPositionsV[1.. NumberOfMatches]; int array MatchPositionsW[1.. NumberOfMatches];

Page 94: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

94

Построение оптимального глобального Построение оптимального глобального выравниваниявыравнивания

33. . АлгоритмАлгоритм: : прямой проход (вычисление весов и прямой проход (вычисление весов и локальных напрвлений)локальных напрвлений)

int i, j; float xv, xw, xd; int p;for j = 0 to n do begin S[0, j] := -k•j; D[0, j] := 2; for i = 1 to m do begin S[0, i] := -k•i; D[i, 0] := 1; for j = 0 to n do begin

xv := S[i-1, j]-k; xw:= S[i, j-1]-k; xd:=M[v[i], w[j]] + S[i-1, j-1]; S[i, j] := max(xv, xw, xd); D[I, j] := argmax(xv, xw, xd); endend

Page 95: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

95

Построение оптимального глобального Построение оптимального глобального выравниваниявыравнивания

44. . АлгоритмАлгоритм: : обратный проход обратный проход (вычисление оптимального выравниваия)(вычисление оптимального выравниваия)

Упражнение 2.2. 1) Закончите алгоритм - допишите под-алгоритм, который по

уже построенным матрицам S и D строит какое-то оптимальное выравнивание исходных последовательностей.

2) напишите реализацию функции argmax(xv, xw, xd);

Упражнение 2.3.1) скопируйте полный алгоритм в текстовый файл и

дополните его комментариями; 2) реализуйте алгоритм в виде программы на каком-нибудь языке программирования; допишите подпрограммы чтения входных данных и вывода результатов в текстовый файл; отладьте программу.

Page 96: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

96

Упражнение 2.4Напишите алгоритм, который по матрице выравниваний (с отмеченными стрелками, см. слайд «Матрица выравниваний построена») вычисляет количество оптимальных выравниваний данных последовательностей.

Упражнение 2.5.1)Постройте вручную матрицу весов замен по позициям («см. слайд «Веса ребер») и матрицу выравниваний для последовательностей IVGWYC и MIYCV.

2) Нарисуйте какое-нибудь оптимальное выравнивание.

3) Сколько оптимальных выравниваний существует? 4) Измените веса так, чтобы для этих

последовательностей было ровно одно оптимальное выравнивание.

Page 97: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

97

Раздел 3Гиперграфы: знакомство

Пока без слайдов

Развернутый план 1. Задача о триангуляции выпуклого треугольника.

Неправильное решение. Сведение задачи к нескольким подзадачам меньшего размера. Невозможность моделирования этого с помощью задач на ориентированных графах.

2. Понятие гиперграфа. Гиперребро. Гиперпуть. Вес гиперребра. Вес гиперпуть.

3. Задача Больцмана для гиперграфов. Рекурсия и алгоритм решения. Понятие ранга вершины для гиперграфов.

Page 98: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

3.1. Задача о триангуляции (рисунок на доске)

Идея сведения: провести диагональ, разбить на два многоугольника меньшего размера

Недостатки: много промежуточных задачнет взаимно-однозначного соответствия между

структурами и последовательностью сведений

!!!! Сведения образуют не последовательность, а дерево!!!

НЕ СВОДИТСЯ К ЗАДАЧЕ НА ГРАФЕ !!!

Page 99: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Задача о триангуляции (рисунок на доске)

Идея сведения: провести диагональ, разбить на два многоугольника меньшего размера

Недостатки: много промежуточных задачнет взаимно-однозначного соответствия между

структурами и последовательностью сведений!!!! Сведения образуют не последовательность, а

дерево!!! НЕ СВОДИТСЯ К ЗАДАЧЕ НА ориентированном ГРАФЕ

Сводится к задаче на ориентированном ГИПЕРГРАФЕ!!

Page 100: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Задача о триангуляции (рисунок на доске)

Дан выпуклый многоугольник. Каждой диагонали приписан вес – положительное число.

Триангуляция – это разбиение многоугольника на треугольники непересекающимися диагоналями.

Вес триангуляции – сумма весов входящих в нее диагоналей.

Требуется: найти триангуляцию минимального веса. Идея: использовать метод динамического

программирования (сведение к более простым задачам того же типа).

Page 101: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

101

�3.2. Понятие гиперграфа

Определение 1. Граф G – это пара <V, E>, где V – это множество вершин, E – множество ребер .

Ребро – это пара <V, W>, где V – начальная вершина ребра, W- конечная вершина ребра

V WОпределение 2. Гиперграф Y – это пара <V, H>, где V – это множество вершин, H – множество гиперребер.

Гиперребро – это пара <V, <W1, ..., Wk>, где V – начальная вершина ребра, <W1, ..., Wk>, - упорядоченный набор конечных вершин гиперребра

W1 W2 W3

V

.

Page 102: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

102

�3.2. Понятие гиперграфа

Определение 3. Путь в графе G=<V, E> – это простая цепь, узлы которой помечены вершинами графа G, такая что ….Начальная вершина пути – это вершина, которой помечена первый узел цепи, конечная вершина – вершина, которой помечен последний узел цепи.

Определение 4. Гиперпуть в гиперграфе Y=<V, H>, > – это упорядоченное дерево, узлы которой помечены вершинами графа G, такое что ….Начальная вершина пути – это вершина, которой помечен корень дерева, конечные вершины – это вершины, которыми помечены листья дерева.

Page 103: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Гиперпуть

Page 104: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Инициальный (гипер) путь Терминальный (гипер) путь Полный (гипер) путь

Page 105: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Вес гиперпути

ДОПИСАТЬ !!!

М-ВЕС НАД ПОЛУКОЛЬЦОМ

Page 106: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

106

3.3. Задача Больцмана для гиперграфов.

. Формулировка задачи Больцмана. .

Page 107: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

107

�Подход к решению

Терминальная сумма Больцмана вершины V: F(V) – множество всех терминальных гиперпутей с

начальной вершиной V. Sum(V) = ∑{M(T)| T∈ F(V) }

Идея: Найти терминальные суммы Больцмана для всех вершин. Вершины перебираются в порядке возрастания рангов.

Уточнить: что такое ранг вершины в гиперграфе (= максимальная высота гиперпути с данной начальной вершиной)

Пока считаем ранги известными

Page 108: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

108

�Терминальные суммы Больцмана для гиперребер

Терминальная сумма Больцмана гиперребра y: FF(y) – множество всех терминальных гиперпутей с

начальной вершиной V. S(y) = ∑{M(T)| T∈ Fr(y) }

Start(V) – множество всех гиперребер с начальной вершиной V.

Утверждение. Sum(V) = ∑{S(y)| y∈ Start(V) }

Page 109: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

109

�Терминальные суммы Больцмана для гиперребер: рекурсия

Утверждение.Пусть y = <V, <W1, ..., Wk> - гиперребро. Тогда

S(y) = W(y)*Sum(W1)*…* Sum(Wk)Доказательство. Пусть T ∈ Fr(y),

Ti – поддерево T с корнем в узле, соответствующем i-й конечной вершине гиперрбра y – начального гиперребра дерева T.

Тогда:1) Ti ∈ F(Wi)2) существует взаимно-однозначное соответствие

между деревьями T ∈ Fr(y) и наборами <T1, …, Tk>,

где Ti ∈ F(Wi), i =1,…, k=>

Page 110: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

110

�Терминальные суммы Больцмана для гиперребер: рекурсия

2) существует взаимно-однозначное соответствие между дере-вьями T ∈ Fr(y) и наборами <T1, …, Tk>, где Ti ∈ F(Wi), i =1,…, k

=>

S(y) = ∑{M(T)| T∈ Fr(y) } =

= ∑… ∑{W(y)*M(T1)*…*M(Tk)| T1∈ F(w1, …, F(Wk) } =

= W(y)*∑… ∑{M(T1)*…*M(Tk)| T1∈ F(w1, …, F(Wk) } =

[СУММА ПРОИЗВЕДЕНИЙ = ПРОИЗВЕДЕНИЕ СУММ]

= W(y)* ∑{M(T1)| T1∈ F(w1}* …

…* ∑{M(T1)| T1∈ F(w1} =

= W(y)*Sum(W1)*…* Sum(Wk)

Page 111: Mikhail Roytberg - Sequence Analysis (from Biology to Linguistics) Part1

Осталось:

1. Вычисление рангов вершин гиперграфа. Решение задачи Больцмана, когда порядок просмотра вершин гиперграфа неизвестен.

2. Вычисление специальных сумм Больцмана. 3. Разбор примеров. 4. Решение задачи про триангуляцию.