24. Поиск с ошибками
Дано:
текст T
шаблон P
целое число K
Найти: позиции вхождения P в T с
максимум К ошибками (несовпадениями)
суббота, 6 октября 12 г.
25. Решение
Разобьём шаблон на K+1 фрагментов.
Одна из подстрок должна встречается в
тексте точно.
суббота, 6 октября 12 г.
26. Решение
Разобьём шаблон на K+1 фрагментов.
Один из фрагментов должен встречается в
тексте точно.
суббота, 6 октября 12 г.
27. Решение
Найдём вхождения всех K+1 фрагментов с
помощью любого точного алгоритма.
Расширим все вхождения и проверим
количество ошибок.
суббота, 6 октября 12 г.
28. Решение
Найдём вхождения всех K+1 фрагментов с
помощью любого точного алгоритма.
Расширим все вхождения и проверим
количество ошибок.
суббота, 6 октября 12 г.
29. Сложность
Найти фрагменты:
O(K • (N + M/K)) = O(KN + M)
O(N + K • M/K) = O(N + M)
Проверить одно вхождение: O(M)
Чем больше K, тем больше ложных
вхождений нам проверять...
суббота, 6 октября 12 г.
30. BLAST
Basic Local Alignment Search Tool
(самая цитируемая статья 1990х)
http://blast.ncbi.nlm.nih.gov
суббота, 6 октября 12 г.