2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Энергия ошибки
Сообщение07.10.2019, 02:22 
Аватара пользователя
Дано верное слово и ошибочное. Известен ли алгоритм с помощью которого можно посчитать сколько должно быть пропусков, лишних букв и замен чтобы верное слово превратилось в ошибочное и чтобы сумма таких мутаций была минимальной? Естественно тупой перебор всех мутаций верного слова не интересует.

 
 
 
 Re: Энергия ошибки
Сообщение07.10.2019, 02:36 
Аватара пользователя
Это называется "расстояние Хэмминга" (по Хэммингу, Hamming distance). Гуглите.

 
 
 
 Re: Энергия ошибки
Сообщение07.10.2019, 07:00 
Расстояние Хэмминга - это без вставок, а вам нужно расстояние Левенштейна (Levenshtein distance).

 
 
 
 Re: Энергия ошибки
Сообщение07.10.2019, 12:37 
Как говорит Википедь, расстояние Левенштейна может быть найдено за квадратичное время. Статью из википедии я не смотрел, алгоритма соответствующего не знаю. Но из общих соображений мне кажется, что должен существовать какой-то менее сложный алгоритм, скажем сложности $O(N(d+1))$, где $N$ --- длина слова, а $d$ --- расстояние.

Квадратичные алгоритмы они хоть и полиномиальные, но все же квадратичная сложность --- это слишком долго. Для такого очевидного практического применения, как анализ геномов, квадратичные алгоритмы оказались бы неосуществимы. (Если, скажем, надо сравнить два генома порядка по $10^8$ оснований (не знаю сколько там на самом деле...), то потребовалось бы время порядка $10^{16}$, что нереалистично.

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

 
 
 
 Re: Энергия ошибки
Сообщение07.10.2019, 12:49 
Аватара пользователя
Курить после слова "память".

 
 
 
 Re: Энергия ошибки
Сообщение07.10.2019, 15:38 
Аватара пользователя
vpb в сообщении #1419519 писал(а):
Но из общих соображений мне кажется, что должен существовать какой-то менее сложный алгоритм, скажем сложности $O(N(d+1))$, где $N$ --- длина слова, а $d$ --- расстояние.
Да понятно какой - т.к. между словами, отличающиесемя по длине больше чем на $d$, расстояние больше $d$, достаточно в динамике по префиксу первого слова учитывать только $2d + 1$ вариантов префикса второго.

 
 
 
 Re: Энергия ошибки
Сообщение09.10.2019, 05:27 
Аватара пользователя
venco в сообщении #1419493 писал(а):
расстояние Левенштейна (Levenshtein distance).


Кажется то что нужно. Спасибо.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group