mikhail roytberg - sequence analysis (from biology to linguistics) part1
TRANSCRIPT
Анализ Анализ символьных последовательностейсимвольных последовательностей
отот биоинформатик и биоинформатик и до лингвистики до лингвистики
М.А. Ройтберг
Занятие 1
Екатеринбург 21 апреля 2011
2
Источники последовательностей (текстов)Источники последовательностей (текстов)
- Интернет- Тексты на естественных языках (лингвистика)- Тексты программ (программирование)- Дискретизация сигналов (технические приложения, анализ речи)- Биологические полимеры – ДНК, РНК, белки (биоинформатика)
Различия:Различия:
- - Длины текстов;- Размеры корпуса текстов в целом; - Размеры исследуемых групп текстов;- Размеры алфавитов
3
Источники последовательностей (текстов)Источники последовательностей (текстов)
- Интернет- Тексты на естественных языках (лингвистика)- Тексты программ (программирование)- Дискретизация сигналов (технические приложения, анализ речи)- Биологические полимеры – ДНК, РНК, белки
(биоинформатика) Различия:Различия:
- - Длины текстов;- Размеры корпуса текстов в целом; - Размеры исследуемых групп текстов;- Размеры алфавитов- - Постановки задач.
4
Основные задачиОсновные задачи
- сопоставление в целом (парное, множественное);- определение количественной меры сходства последователь-ностей в целом;-поиск общих мотивов (в двух и нескольких последовательно-стях); поиск в базах данных;- поиск и выделение функционально значимых участков (заданных «паттернов»);- разбиение последовательности на «однородные» участки;- определение статистической значимости результатов сравнения и поиска.
Примеры текстов – два белка Два заголовка статей
План курса
Динамическое программирование, графы и алгебра
Биологические иллюстрации Поиск локальных сходств, затравки Конечные автоматы и вероятности Гиперграфы и контекстно-свободные грамматики Разные примеры
7
При анализе данных требуется:При анализе данных требуется:
1. УМЕТЬ ПРИДУМЫВАТЬ не только алгоритмы, но и ФОРМАЛЬНЫЕ ПОСТАНОВКИ ЗАДАЧ.
2. ПРОВЕРЯТЬ, насколько ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ соответствует СОДЕРЖАТЕЛЬНОЙ ПОСТАНОВКЕ.
8
Раздел 1.Раздел 1.Динамическое программирование, Динамическое программирование,
графы и алгебраграфы и алгебра
1.1 Ориентированные ациклические графы. Оптимальный путь.
1.2. Алгебраическая основа алгоритма Беллмана
9
ПовторениеПовторение
1.1 Ориентированные ациклические графы. Оптимальный путь.
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
Нет циклов
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
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
13
ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>
ЗАДАЧА 1 (задача Беллмана) Найти оптимальный полный путь, т.е. полный путь, имеющий минимальный (максимальный) возможный вес.
A
C
Z
B
EF
D
5 23
7
113
14
6
5
76
7
14
Интерпретации: 1. “Экономика”: Вершины – города; Ребра - дороги; Веса: длина, время, стоимость и т.п.
A
C
Z
B
EF
D
5 23
7
113
14
6
5
76
7
2. “Физика” : Вершины – состояния процесса; Ребра: возможные переходы между состояниями; Веса: энергии или вероятности переходов.
Пример: предсказание 3D структуры белков(гемоглобин, код белка 1ash, цепь А)
Дано: последовательность аминокислотНадо: где образуются спирали
18
ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>
ЗАДАЧА 1 (задача Беллмана) Найти оптимальный полный путь, т.е. полный путь, имеющий минимальный (максимальный) возможный вес.
A
C
Z
B
EF
D
5 23
7
113
14
6
5
76
7
19
Метод динамического программированияМетод динамического программирования((Алгоритм Беллмана, 1953Алгоритм Беллмана, 1953))
Проход от стока к источнику: из W есть путь в V => => W обрабатывается позже, чем V.
Рекуррентное уравнение
BestW(A) = min{ W(AB) + BestW(B), W(AC) + BestW(С), W(AD) + BestW(D) }
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), }
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
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
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
24
1.2. Алгебраическая основа алгоритма Беллмана
1. Динамическое программирование, 1. Динамическое программирование, графы и алгебраграфы и алгебра
25
Задача-подсказкаЗадача-подсказка
S =
= a1 ⋅ b1 + a1 ⋅ b2 + ... + a1 ⋅ b1000 +
+ a2 ⋅ b1 + a2 ⋅ b2 + ... + a2 ⋅ b1000 +
+ ...
+
+ a1000 ⋅ b1 + a1000 ⋅b2 + ... + a1000 ⋅
b1000
Найти 1 000 000 сумму слаг аемых за
< 5000 .операций
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 операций
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-й класс
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-й класс
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
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), основатель статистической механики и молекулярно-кинетической теории
Джозайя Уиллард Гиббс (Josiah Willard Gibbs; 1839 – 1903, США) — математик, физик и физикохимик, один из создателей статистической физики и математи-ческой теории термодинамики
ЛюRдвиг Больцман (Ludwig Eduard Boltzmann, 1844 – 1906; Австро-Венгрия, Италия), основатель статистической меха-ники и молекулярно-кинетической теории
Эрнст Изинг (Ernst Ising, 1900-1998, Германия-США) - физик, позже - педагог, автор модели Изинга (см. предсказание спиралей в белке и т. п.)
32
Интерпретации: 1. Вероятность прохода лабиринта: Вершины – города; Ребра - дороги; Вес ребра: вероятность перехода по ребру (сумма вероятностей выхода из вершины может быть меньше 1)
A
C
Z
B
EF
D
5 23
7
113
14
6
5
76
7
2. Статистическая физика – без
комментариев
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) = ….
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)
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)}
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)}
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
Что использовали?
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
Что использовали?
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)
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
Что использовали?
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)
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
Что использовали?
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
Что использовали?
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
Это называется полукольцо
45
A
C
Z
B
EF
D
5 23
7
113
14
6
5
76
7
Полукольцо A – это множество, на котором заданы две бинарные всюду определенные операции + и * («сложение» и «умножение»), удовлетворяющие следующим свойствам:
операции + и * ассоциативны; операция + коммутативна, коммутативность операции *
не обязательна; в A есть правый нейтральный элемент относительно
операции *; Операции и обычно называют сложением и
умножением.
+ - «целевая» операция * - «соединительная» операция
46
A
C
Z
B
EF
D
5 23
7
113
14
6
5
76
7
Примеры полуколец. Первая операция – аналог сложения («целевая
операция»), вторая – аналог умножения («соединяющая операция»):
на числах: {+, x}, {max, +}; {max, min}; на множествах: {∪, ∩} на множествах слов: {∪, •} на матрицах: {+, x}.
+ - «целевая» операция * - «соединительная» операция
47
ДАНО: Ориентированный ациклический граф с весами на ребрах G =< V, E, W; A, Z>
ЗАДАЧА 1 Найти оптимальный полный путь, т.е. полный путь, имеющий минимальный (максимальный) возможный вес. ЗАДАЧА 2 Найти сумму мультипликативных весов всех полных путей.
A
C
Z
B
EF
D
5 23
7
113
14
6
5
76
7
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)}
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
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 Найти сумму мультипликативных весов всех полных путей.
Замечание 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. ]
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, на котором (-рых) минимум достигается.Примеры были раньше.
ЗАДАЧА 1
Что делать, если порядок просмотра вершин неизвестен?
=> Разберемся на следующем занятии
ЗАДАЧА 2(«Специальные суммы Больцмана»)
G – ориентированный ациклический граф, ребрам сопоставлены веса, принадлежащие полукольцу K; V – вершина графа G, вес пути – «произведение» весов ребер .
Определение. Специальная сумма Больцмана для SB(V) для вершины V – это «сумма» весов всех полных путей, проходящих через вершину V.
Задача. Для всех вершин V графа G найти значения специальных сумм Больцмана SB(V) Разберем на следующем занятииВопрос: Чему соответствуют специальные суммы Больцмана для полукольца чисел с операциями
(min, +)?
ЗАДАЧА 2(«Специальные суммы Больцмана»)
G – ориентированный ациклический граф, ребрам сопоставлены веса, принадлежащие полукольцу K; V – вершина графа G, вес пути – «произведение» весов ребер .
Определение. Специальная сумма Больцмана для SB(V) для вершины V – это «сумма» весов всех полных путей, проходящих через вершину V.
Задача. Для всех вершин V графа G найти значения специальных сумм Больцмана SB(V)
Вопрос: Чему соответствуют специальные суммы Больцмана для полукольца чисел с операциями
(min, +)?Ответ: весу минимального пути, проходящего
через данную вершину.
56
Раздел 2Глобальное выравнивание
2.1. Определение выравнивания2.2. Вес выравнивания. Оптимальное выравнивание2.3. Алгоритм построения оптимального глобального выравнивания
57
2.1. Определение выравнивания.
58
Определение.Определение.
Выровнять две символьные последователь-ности – удалить из них несколько фрагмен-тов так, чтобы оставшиеся последовательности имели одинаковую длину.
Пример.
S1 = “КРОКОДИЛИЩЕ”; S2 = «ВОЛКОДАВУШКА»
КРОКОДИЛИЩЕ- КРО-КОДИЛИЩЕ- ВОЛКОДАВУШКА В-ОЛКОДАВУШКА
59
Выровнять две символьные последовательности – удалить из них несколько фрагментов так, чтобы оставшиеся последовательности имели одинаковую длину.
Неформально: предполагается, что последователь-ности были получены «редактированием» («эволюцией») из общего предка. Требуется: установить соответствующие друг другу участки.Предположение: были только замены, удаления и вставки. Не было перестановок фрагментов, дупликаций и т.п.
60
Пример 2Пример 2
Выровнять две символьные последовательности – удалить из них несколько фрагментов так, чтобы оставшиеся последовательности имели одинаковую длину.
S1 = “ПОДБЕРЕЗОВИК”S2 = «ПРЕДОСИНОВИЧКИ»
61
Варианты Варианты выравниванийвыравниваний
Выровнять две символьные последовательности – удалить из них несколько фрагментов так, чтобы оставшиеся последовательности имели одинаковую длину.
--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ
ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ
ПО-ДБЕРЕЗОВИ-К-ПРЕД-ОСИНОВИЧКИ
62
Какой вариант выбрать?
А) Б)--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ
В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ
Предполагается: последовательности были получены редактированием» («эволюцией») из общего предка.
Требуется: установить соответствующие друг другу участки
63
Какой вариант выбрать?
Нужно «знать» что-нибудь про эволюцию
А) Б)
--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ
В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ
Предположим: Две одинаковые буквы скорее имеют общего предка,
чем две разные буквыДве буквы «одинаковой гласности» скорее имеют
общего предка, чем две буквы «разные гласности»
64
Две одинаковые буквы скорее имеют общего предка, чем две разные буквы
Две буквы «одинаковой гласности» скорее имеют общего предка, чем две буквы «разные
гласности»А) Б)
--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ
В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ
Г) лучше, чем В); Б) [немного] лучше А)??? Верно ли, что
Г) лучше, чем Б) ?
65
Две одинаковые буквы скорее имеют общего предка, чем две разные буквы
Две буквы «одинаковой гласности» скорее имеют общего предка, чем две буквы «разные
гласности»А) Б)
--ПОДБЕРЕЗОВИК ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ
В) Г) Д)ПО-ДБЕРЕЗОВИК-- П-ОДБЕРЕЗОВИК-- ПО-ДБЕРЕЗОВИ-К-ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ
??? Верно ли, что Г) лучше, чем Б) ?
=== НЕИЗВЕСТНО. Мы ничего не предположили о механизме удалений/вставок (насколько они вероятны по сравнению с заменами)
66
2.2. Вес выравнивания. Оптимальное выравнивание.
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
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
Вес выравнивания 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
70
Упражнение 2.1. Вес выравнивания задается следующими Упражнение 2.1. Вес выравнивания задается следующими параметрами: параметрами: сопоставление одинаковых гласных букв сопоставление одинаковых гласных букв:: 10; 10; сопоставление одинаковых согласных буквсопоставление одинаковых согласных букв:: 7; 7; сопоставление различных гласных буквсопоставление различных гласных букв:: -3 -3; ; сопоставление различных согласных буквсопоставление различных согласных букв:: -5-5; ; сопоставление гласной и согласной буквсопоставление гласной и согласной букв:: -10-10; ; удаление буквы: -удаление буквы: -d (d >0).d (d >0). А. А. Какие из указанных ниже выравниваний являются Какие из указанных ниже выравниваний являются оптимальными при некоторых значениях параметра оптимальными при некоторых значениях параметра dd? Укажите ? Укажите эти значения.эти значения. Б.* Как нужно изменить определение веса выравнивания, Б.* Как нужно изменить определение веса выравнивания, чтобы выравнивание (Г) могло стать оптимальным? чтобы выравнивание (Г) могло стать оптимальным?
А.--ПОДБЕРЕЗОВИК Б.ПОДБЕРЕЗОВИК-- ПРЕДОСИНОВИЧКИ ПРЕДОСИНОВИЧКИ
В.ПО-ДБЕРЕЗОВИК-- Г.ПО-ДБЕРЕЗОВИК-- Д. ПО-ДБЕРЕЗОВИ-К- ПРЕДОСИН-ОВИЧКИ ПРЕД-ОСИНОВИЧКИ ПРЕД-ОСИНОВИЧКИ
71
2.3. Алгоритм построения оптимального глобального
выравнивания.
Рекурсия для глобального выравнивания
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-м слове}
Рекурсия для глобального выравнивания
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-м слове}
Сведение к задаче на графе?
«Алгоритмическая» интерпретация ориентированных ациклических графов с
весами на ребрах
Цель – построить на данном объекте некоторую «структуру»
Вершины – объекты, производные от исходного («задачи»)
Ребра – действия, которые строят в объекте элемент структуры и, тем самым, сводят построение структуры на исходном объекте к построению структуры на меньшем объекте.
Путь – структура Полный путь – структура, к которой нельзя добавить
новых элементов Соответствие между множеством полных путей и
множеством структур на исходном объекте – взаимно-однозначное.
Пример. Сведение задачи выравнивания к задаче на графе
Исходный объект – пара слов 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] )
Полнота набора действий – см. предыдущий слайд
Полнота набора действий
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-м слове - сопоставление последних букв
Сведение задачи выравнивания к задаче на графе (продолжение)
Исходный объект – пара слов 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);
Общая идея (Динамическое программирование по Беллману)
Решение задачи сводится к решению «более простых» подзадач. При этом нужно:
1. Решение задачи при известных решениях подзадач находится «быстро»
2. Общее количество подзадач, которые возникают в процессе последовательных сведений «невелико»
Решаем ВСЕ подзадачи, начиная с самых простых. Экономия времени: при полном переборе решений
каждая подзадача решается много раз.
Дистрибутивность обеспечивает п.1 Обеспечивать п.2 нужно отдельно
Сведение задачи выравнивания к задаче на графе (продолжение)
Исходный объект – пара слов 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);
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
Порядок обхода вершиночевиден.Вычислять ранги не нужно!
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
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
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
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
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
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
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
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
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
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
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
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
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];
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
95
Построение оптимального глобального Построение оптимального глобального выравниваниявыравнивания
44. . АлгоритмАлгоритм: : обратный проход обратный проход (вычисление оптимального выравниваия)(вычисление оптимального выравниваия)
Упражнение 2.2. 1) Закончите алгоритм - допишите под-алгоритм, который по
уже построенным матрицам S и D строит какое-то оптимальное выравнивание исходных последовательностей.
2) напишите реализацию функции argmax(xv, xw, xd);
Упражнение 2.3.1) скопируйте полный алгоритм в текстовый файл и
дополните его комментариями; 2) реализуйте алгоритм в виде программы на каком-нибудь языке программирования; допишите подпрограммы чтения входных данных и вывода результатов в текстовый файл; отладьте программу.
96
Упражнение 2.4Напишите алгоритм, который по матрице выравниваний (с отмеченными стрелками, см. слайд «Матрица выравниваний построена») вычисляет количество оптимальных выравниваний данных последовательностей.
Упражнение 2.5.1)Постройте вручную матрицу весов замен по позициям («см. слайд «Веса ребер») и матрицу выравниваний для последовательностей IVGWYC и MIYCV.
2) Нарисуйте какое-нибудь оптимальное выравнивание.
3) Сколько оптимальных выравниваний существует? 4) Измените веса так, чтобы для этих
последовательностей было ровно одно оптимальное выравнивание.
97
Раздел 3Гиперграфы: знакомство
Пока без слайдов
Развернутый план 1. Задача о триангуляции выпуклого треугольника.
Неправильное решение. Сведение задачи к нескольким подзадачам меньшего размера. Невозможность моделирования этого с помощью задач на ориентированных графах.
2. Понятие гиперграфа. Гиперребро. Гиперпуть. Вес гиперребра. Вес гиперпуть.
3. Задача Больцмана для гиперграфов. Рекурсия и алгоритм решения. Понятие ранга вершины для гиперграфов.
3.1. Задача о триангуляции (рисунок на доске)
Идея сведения: провести диагональ, разбить на два многоугольника меньшего размера
Недостатки: много промежуточных задачнет взаимно-однозначного соответствия между
структурами и последовательностью сведений
!!!! Сведения образуют не последовательность, а дерево!!!
НЕ СВОДИТСЯ К ЗАДАЧЕ НА ГРАФЕ !!!
Задача о триангуляции (рисунок на доске)
Идея сведения: провести диагональ, разбить на два многоугольника меньшего размера
Недостатки: много промежуточных задачнет взаимно-однозначного соответствия между
структурами и последовательностью сведений!!!! Сведения образуют не последовательность, а
дерево!!! НЕ СВОДИТСЯ К ЗАДАЧЕ НА ориентированном ГРАФЕ
Сводится к задаче на ориентированном ГИПЕРГРАФЕ!!
Задача о триангуляции (рисунок на доске)
Дан выпуклый многоугольник. Каждой диагонали приписан вес – положительное число.
Триангуляция – это разбиение многоугольника на треугольники непересекающимися диагоналями.
Вес триангуляции – сумма весов входящих в нее диагоналей.
Требуется: найти триангуляцию минимального веса. Идея: использовать метод динамического
программирования (сведение к более простым задачам того же типа).
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
.
102
�3.2. Понятие гиперграфа
Определение 3. Путь в графе G=<V, E> – это простая цепь, узлы которой помечены вершинами графа G, такая что ….Начальная вершина пути – это вершина, которой помечена первый узел цепи, конечная вершина – вершина, которой помечен последний узел цепи.
Определение 4. Гиперпуть в гиперграфе Y=<V, H>, > – это упорядоченное дерево, узлы которой помечены вершинами графа G, такое что ….Начальная вершина пути – это вершина, которой помечен корень дерева, конечные вершины – это вершины, которыми помечены листья дерева.
Гиперпуть
Инициальный (гипер) путь Терминальный (гипер) путь Полный (гипер) путь
Вес гиперпути
ДОПИСАТЬ !!!
М-ВЕС НАД ПОЛУКОЛЬЦОМ
106
3.3. Задача Больцмана для гиперграфов.
. Формулировка задачи Больцмана. .
107
�Подход к решению
Терминальная сумма Больцмана вершины V: F(V) – множество всех терминальных гиперпутей с
начальной вершиной V. Sum(V) = ∑{M(T)| T∈ F(V) }
Идея: Найти терминальные суммы Больцмана для всех вершин. Вершины перебираются в порядке возрастания рангов.
Уточнить: что такое ранг вершины в гиперграфе (= максимальная высота гиперпути с данной начальной вершиной)
Пока считаем ранги известными
108
�Терминальные суммы Больцмана для гиперребер
Терминальная сумма Больцмана гиперребра y: FF(y) – множество всех терминальных гиперпутей с
начальной вершиной V. S(y) = ∑{M(T)| T∈ Fr(y) }
Start(V) – множество всех гиперребер с начальной вершиной V.
Утверждение. Sum(V) = ∑{S(y)| y∈ Start(V) }
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=>
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)
Осталось:
1. Вычисление рангов вершин гиперграфа. Решение задачи Больцмана, когда порядок просмотра вершин гиперграфа неизвестен.
2. Вычисление специальных сумм Больцмана. 3. Разбор примеров. 4. Решение задачи про триангуляцию.