Изменения

Перейти к: навигация, поиск

Алгоритм Ландау-Шмидта

Нет изменений в размере, 21:48, 17 июня 2014
Алгоритм
Рещение Ландау-Шмидта — это рекурсивный алгоритм типа "разделяй и властвуй", который основан на возможности вычислять запросы о наибольшем общем продолжении за константное время. Пусть <tex>h = (n/2)</tex>. В укрупненном масштабе метод Ландау-Шмидта делит задачу нахождения всех тандемных повторов на четыре подзадачи:
# * Найти все тандемные повторы, содержащиеся целиком в первой половине <tex>S</tex>(до позиции <tex>h</tex> включительно).# * Найти все тандемные повторы, содержащиеся целиком во второй половине <tex>S</tex>(после позиции <tex>h</tex>).# * Найти все тандемные повторы, в которых первая копия покрывает позицию <tex>h</tex>.# * Найти все тандемные повторы, в которых вторая копия покрывает позицию <tex>h</tex>.
Ясно, что никакой тандемный повтор не может встретиться больше чем в одной из этих подзадач. Первые две подзадачи решаются рекурсивно применением того же алгоритма Ландау-Шмидта. Две последние подзадачи симметричны, поэтому мы рассмотрим только третью подзадачу, и алгоритм для нее определит весь алгоритм.
42
правки

Навигация