Ближайшая строка

В теоретической информатике ближайшая строка представляет собой NP-трудную вычислительную задачу [1], которая пытается найти геометрический центр набора входных строк.

Чтобы понять слово «центр», необходимо определить расстояние между двумя струнами. Обычно эта задача изучается с учетом расстояния Хэмминга .

Формальное определение

Более формально, если заданы n строк s 1 , s 2 , ..., s n длины m , то задача поиска ближайшей строки ищет новую строку s длины m такую, что d ( s , si )k для всех i , где dрасстояние Хэмминга , а k — как можно меньше. [2] Версия задачи поиска ближайшей строки, которая является NP-полной , вместо этого принимает k в качестве другого входного значения и спрашивает, есть ли строка в пределах расстояния Хэмминга k всех входных строк. [1]

Задачу о ближайшей струне можно рассматривать как частный случай общей задачи с одним центром , в которой расстояния между элементами измеряются с помощью расстояния Хэмминга.

Мотивация

В биоинформатике ближайшая струнная задача — это интенсивно изучаемый аспект проблемы поиска сигналов в ДНК .

Упрощения и сокращение данных

Экземпляры ближайшей строки могут содержать информацию, которая не является существенной для проблемы. В некотором смысле, обычный ввод ближайшей строки содержит информацию, которая не вносит вклад в сложность проблемы. Например, если некоторые строки содержат символ a , но ни одна не содержит символ z , замена всех a s на z s даст по сути эквивалентный экземпляр, то есть: из решения измененного экземпляра можно восстановить исходное решение, и наоборот.

Нормализация входных данных

Когда все входные строки одинаковой длины записываются друг на друга, они образуют матрицу. Определенные типы строк по сути имеют одинаковые последствия для решения. Например, замена столбца с записями ( a , a , b ) другим столбцом ( x , x , y ) может привести к другой строке решения, но не может повлиять на разрешимость, поскольку оба столбца выражают одну и ту же структуру, а именно: первые две записи равны, но отличаются от третьей.

Входной экземпляр можно нормализовать , заменив в каждом столбце символ, который встречается чаще всего, на a , символ, который встречается вторым по частоте, на b и т. д. При наличии решения для нормализованного экземпляра исходный экземпляр можно найти, переназначив символы решения на его исходную версию в каждом столбце.

Порядок столбцов не влияет на сложность задачи. Это означает, что если мы переставим все входные строки в соответствии с определенной перестановкой π и получим строку решения s для этого измененного экземпляра, то π −1 ( s ) будет решением для исходного экземпляра.

Пример

Пространство поиска для нормализованной задачи. Центральная строка aaaa и aaab приводит к расстояниям Хэмминга 1,2,1 и 2,1,1 соответственно.

Дан экземпляр с тремя входными строками uvwx , xuwv и xvwu . Это можно записать в виде матрицы, например:

тывжх
хтыжв
хвжты

Первый столбец имеет значения ( u , x , x ). Поскольку x — это символ, который встречается чаще всего, мы заменяем его на a , а u , второй по частоте символ, заменяем на b , получая новый первый столбец ( b , a , a ). Второй столбец имеет значения ( v , u , v ). Что касается первого столбца, v заменяется на a , а u заменяется на b , получая новый второй столбец ( a , b , a ). Проделав то же самое со всеми столбцами, мы получим нормализованный экземпляр

бааа
абаб
ааас

Сокращение данных, полученных в результате нормализации

Нормализация ввода уменьшает размер алфавита до максимума числа входных строк. Это может быть полезно для алгоритмов, время выполнения которых зависит от размера алфавита.

Аппроксимируемость

Ли и др. разработали схему аппроксимации с полиномиальным временем [3], которая практически непригодна из-за больших скрытых констант.

Возможность обработки с фиксированными параметрами

Ближайшая строка может быть решена за , где k — количество входных строк, L — длина всех строк, а d — желаемое максимальное расстояние от строки решения до любой входной строки. [4] О ( к Л + к г г г ) {\displaystyle O(kL+kd\cdot d^{d})}

Связь с другими проблемами

Ближайшая строка — это частный случай более общей проблемы ближайшей подстроки, которая строго сложнее. В то время как ближайшая строка оказывается поддающейся фиксированным параметрам во многих отношениях, ближайшая подстрока является W[1]-трудной в отношении этих параметров.

Ссылки

  1. ^ ab Lanctot, J. Kevin; Li, Ming; Ma, Bin; Wang, Shaojiu; Zhang, Louxin (2003), "Различение проблем выбора строк", Information and Computation , 185 (1): 41– 55, doi :10.1016/S0890-5401(03)00057-9, MR  1994748
  2. ^ Bin Ma; Xiaming Sun (2008). "Более эффективные алгоритмы для задач поиска самых близких строк и подстрок" (PDF) . Исследования в области вычислительной молекулярной биологии . 12-я ежегодная международная конференция по исследованиям в области вычислительной молекулярной биологии (RECOMB). LNCS . Том 4955. Springer. стр.  396– 409. doi :10.1007/978-3-540-78839-3_33. ISBN 978-3-540-78838-6.
  3. ^ M. Li; B. Ma; L. Wang. (2002), «О проблемах ближайших строк и подстрок». (PDF) , Журнал ACM , 49 (2): 157– 171, arXiv : cs/0002012 , doi :10.1145/506147.506150, S2CID  965332
  4. ^ Йенс Грамм; Рольф Нидермайер ; Питер Россманит (2003), «Алгоритмы с фиксированными параметрами для решения ближайших строк и связанных с ними задач», Algorithmica , 37 : 25–42 , CiteSeerX 10.1.1.61.736 , doi :10.1007/s00453-003-1028-3, S2CID  8206021 
Retrieved from "https://en.wikipedia.org/w/index.php?title=Closest_string&oldid=1192462825"