Аноним

Последовательное приближенное сравнение строк: различия между версиями

Материал из WEGA
м
 
(не показаны 3 промежуточные версии этого же участника)
Строка 82: Строка 82:




Существует немало расширений задачи ASM, особенно в вычислительной биологии. К примеру, можно заменить полные подстроки другими (''обобщенное расстояние редактирования''), поменять символы в строке (''сравнение строк с заменами или транспозициями''), выполнить обращение подстрок (''расстояние обращений''), присвоить разную стоимость операциям вставки и удаления в случае их группировки (''сходство со штрафами за пропуски'') или искать любую пару подстрок обеих строк, обладающую достаточным сходством (''локальное сходство''). Примеры можно найти в книге Гусфилда [7], где рассматривается множество родственных задач.
Существует немало расширений задачи ASM, особенно в вычислительной биологии. К примеру, можно заменить полные подстроки другими (''обобщенное расстояние редактирования''), поменять символы в строке (''сравнение строк с заменами или транспозициями''), выполнить обращение подстрок (''расстояние обращений''), присвоить переменную стоимость операциям вставки и удаления в случае их группировки (''сходство со штрафами за пропуски'') или искать любую пару подстрок обеих строк, обладающую достаточным сходством (''локальное сходство''). Примеры можно найти в книге Гусфилда [7], где рассматривается множество родственных задач.


== Открытые вопросы ==
== Открытые вопросы ==
Сложность задачи в наихудшем случае не вполне понятна. Для расстояния редактирования с единичной стоимостью она составляет <math>\Theta(n)</math> в случае, если <math>m = O(min(log \; n, (log_{\sigma} n)^2))</math> или <math>k = O(min(m^{1/4},log_{m \sigma} n))</math>. Для взвешенного расстояния редактирования сложность составляет <math>\Theta(n)</math> в случае <math>m = O(log_{\sigma} n)</math>. Неизвестно также, для какого значения k/m можно получить среднее время <math>O(n)</math>; до настоящего момента его удавалось получить для <math>k/m = 1/2 - O(1 / \sqrt{\sigma})</math>.
Сложность задачи в наихудшем случае не вполне понятна. Для расстояния редактирования с единичной стоимостью она составляет <math>\Theta(n)</math> в случае, если <math>m = O(min(log \; n, (log_{\sigma} n)^2))</math> или <math>k = O(min(m^{1/4},log_{m \sigma} n))</math>. Для взвешенного расстояния редактирования сложность составляет <math>\Theta(n)</math> в случае <math>m = O(log_{\sigma} n)</math>. Неизвестно также, вплоть до какого значения k/m можно получить среднее время <math>O(n)</math>; до настоящего момента его удавалось получить для <math>k/m = 1/2 - O(1 / \sqrt{\sigma})</math>.


== Экспериментальные результаты ==
== Экспериментальные результаты ==
Строка 94: Строка 94:
   
   
== См. также ==
== См. также ==
* [[Приближенное сравнение регулярных выражений]] – более сложный случай, где P может быть регулярным выражением]]
* [[Приближенное сравнение регулярных выражений]] – более сложный случай, где P может быть регулярным выражением
* [[Индексированное приближенное сравнение строк]] относится к случаю, при котором возможна предварительная обработка текста]]
* [[Индексированное приближенное сравнение строк]] относится к случаю, при котором возможна предварительная обработка текста
* [[Локальное выравнивание (с вогнутыми штрафами за пропуски)]] относится к более сложной схеме с весами]]
* [[Локальное выравнивание (с вогнутыми штрафами за пропуски)]] относится к более сложной схеме с весами, используемой в вычислительной биологии
* [[Последовательное точное сравнение строк]] – упрощенная версия, в которой ошибки не допускаются
* [[Последовательное точное сравнение строк]] – упрощенная версия, в которой ошибки не допускаются


4430

правок