Общая характеристика работы 2
Положения, выносимые на защиту 5
Степень достоверности и апробация результатов 6
Основное содержание работы 7
Заключение 15
Список литературы 17
Актуальность темы. Строка — один из центральных объектов компьютерных наук. Любая последовательность данных может рассматриваться как строка (последовательность символов). Такое абстрактное представление, не учитывающее структуру обрабатываемых данных, имеет очень широкую область применений — от поиска в базах данных до анализа структуры ДНК и белков. Раздел компьютерных наук, занимающийся алгоритмами обработки строк, называется стрингология (англ. stringology от string — строка). Название было предложено в 1985 в работе [19]. Этой динамически развивающейся в настоящее время области посвящен ряд монографий [13,15,24,42] и специализированных конференций с высоким уровнем цитируемости: Combinatorial Pattern Matching (CPM), String Processing and Information Retrieval (SPIRE) и др. Задачи, рассматриваемые в стрингологии, можно сгруппировать в несколько кластеров: поиск по образцу (pattern matching), индексирование данных, сжатие данных и алгоритмы на сжатых представлениях, а также поиск регулярных структур, таких как повторы, палиндромы, периодические фрагменты и различные их обобщения. Последнему кластеру принадлежат задачи, рассматриваемые в диссертации.
Одной из активно исследуемых областей являются строковые алгоритмы в модели потока данных. В этой модели элементы последовательности данных поступают один за одним и не могут быть сохранены в связи с малым объёмом доступной памяти. Первые работы, рассматривающие подобные ограничения, появились в 1970-е годы [39]. При этом понятие модели потока данных было сформулировано в работе [1], авторы которой получили в 2005 г. премию Гёделя за основополагающие исследования в области потоковых алгоритмов. Интересной особенностью модели потока данных является то, что в ней зачастую удаётся получить нижние оценки на вычислительную сложность задач, в первую очередь на необходимый объём памяти.
Первый значительный результат о строковых алгоритмах в модели потока данных был получен в [40]. В последнее десятилетие модель потока данных является заметным трендом в стрингологии. В настоящей работе рассматриваются строковые задачи, связанные с поиском регулярных структур в потоке данных.
Степень разработанности темы исследования. В одной из первых работ в потоковой модели [39] Мунро и Патерсон рассмотрели задачи сортировки потока и вычисления к-ой порядковой статистики, а также медианы как важного частного случая. Среди прочих результатов в статье показывается, что для вычисления медианы детерминированному алгоритму требуется линейная память, при этом представлен рандомизированный алгоритм, вычисляющий медиану с высокой вероятностью и использующий память объёмом О Д/n). Вообще, необходимость рандомизированных алгоритмов является характерной чертой модели потока данных.
В ключевой в области работе Алона, Матиаса и Сегеди [1] рассматривалась задача вычисления к-х частотных моментов потока, где к-й частотный момент равен сумме к-х степеней частот встретившихся в потоке символов. В частности, 0-й частотный момент — это количество различных символов, 1-й — это длина потока, 2-й — это квадрат евклидовой нормы вектора частот. В статье показано, что для приближения к-х частотных моментов при к > 6 требуется линейная память. А вот 0-й, 1-й и 2-й моменты могут быть вычислены с логарифмической. При этом 0-й и 2-й моменты могут быть вычислены только приближённо и только с использованием рандомизированных алгоритмов. Рандомизированному алгоритму, вычисляющему точное значение, или детерминированному алгоритму, решающему задачу приближённо, уже понадобится линейная память.
Для задачи приближения количества различных элементов в потоке Бар- Йосеф и др. [5] представили позже более эффективный рандомизированный алгоритм.
Другие интересные результаты, полученные в модели потока данных, относятся к задачам на графах. В этом случае элементы потока рассматриваются как новые или удаляемые рёбра графа. Например, Кейн и др. [26] рассматривали задачу приближённого подсчёта числа вхождений фиксированного подграфа константного размера в большой граф, заданный потоком. Обзор задач на графах в модели потока данных представлен в работе Макгрегора [36].
Изучение алгоритмов на строках в модели потока данных началось со статьи Пората и Пората [40], в которой рассматривалась задача поиска по образцу в модели потока данных. В ней был представлен алгоритм, который предварительно обрабатывает образец, а затем, используя О (logт) памяти (где т это длина образца), обрабатывает каждый символ текста за О (log т), и с высокой вероятностью находит все вхождения образца в текст. И уже через два года Галил и Бреслауэр [8] представили алгоритм реального времени, то есть обрабатывающий каждый символ потока за О(1), который решает задачу поиска по образцу в полностью потоковой постановке задачи (во входном потоке сначала записан образец и после него через разделитель записан текст) с использованием О (log т) памяти.
Более сложные задачи поиска также рассматриваются в модели потока данных. Один из примеров — это задача поиска с к ошибками. В этой задаче позиция считается вхождением образца, если расстояние Хэмминга между образцом и соответствующей подстрокой текста не превосходит к. Первый результат по этой задаче был представлен в статье [40]. После серии улучшений Клиффорд, Кочумака и Порат [12] представили алгоритм для полностью потоковой версии задачи, использующий память объёмом О (к • poly(log п)) и обрабатывающий один символ потока за О(д/к • poly(log п)). Сходными задачами, рассмотренными в потоковой модели, являются поиск многих образцов [10], приближенный поиск образца [11] и параметризованный поиск образца [25].
Кроме того, в потоковой модели рассматривались задачи поиска регулярных структур в строках. Так, отправной точкой для работы над данной диссертацией послужила статья Беренбринк и др. [6], авторы которой представили потоковые алгоритмы для приближенного поиска палиндромов в строке...
Итоги выполненного исследования. В диссертации рассмотрены задачи поиска основных регулярных структур в строках в модели потока данных.
Все представленные в диссертации алгоритмы являются рандомизированными алгоритмами типа Монте-Карло, т.е. решают задачи с высокой вероятностью, используя детерминированный объём памяти за детерминированное время. При этом доказано, что другие типы алгоритмов для решения поставленных задач требуют как минимум линейных затрат памяти, а значит, непригодны для потоковой модели.
Для задачи LPS о наибольшем палиндроме мы представили алгоритмы реального времени для приближенного решения с аддитивной и мультипликативной погрешностью. Объём памяти, используемый этими алгоритмами, асимптотически точно совпадает с нижними оценками при большинстве значений параметров задачи. Таким образом, вопрос о вычислительной сложности задачи LPS в модели потока данных полностью решён. Отдельно можно отметить введённую нами функцию времени жизни (ttl), которая показала себя удобным инструментом и для решения задачи approxRuns о периодических подстроках.
Мы показали, что задачи поиска наибольшего повтора (LRS) и наибольшего обратного повтора (LRRS) в модели потока данных могут быть решены только с использованием приближенных алгоритмов типа Монте-Карло, а также доказали для таких алгоритмов нижнюю оценку в О(— logmin{|£|, —}) бит памяти для приближения ответа с аддитивной погрешностью Е. Для решения обеих задач представлены алгоритмы типа Монте-Карло, близкие к реальному времени, использующие О(Е + —) слов памяти, где Е — аддитивная ошибка приближения. Используемая память точно совпадает с нижними оценками при условиях Е = ОД/л) и |S| = О(л0'01). Алгоритмы основаны на суффиксных деревьях, что весьма необычно для потоковой модели.
Мы доказали, что в потоковой модели не существует алгоритма, точно решающего задачу Runs о поиске всех максимальных периодических подстрок и сформулировали приближенную версию этой задачи (approxRuns). Для приближенной задачи мы представили алгоритм типа Монте-Карло, близкий к реальному времени и использующий всего О(1"1' п) слов памяти, где е Е (0, |] — параметр ошибки приближения максимальных периодических подстрок.
Перспективы дальнейшей разработки темы. В задачах поиска наибольшего повтора (LRS) и наибольшего обратного повтора (LRRS) в модели потока данных открытыми остаются вопросы о нижней оценке на необходимую память для приближения с мультипликативной ошибкой, а также с аддитивной ошибкой Е = ОД/л). Кроме того, открыт вопрос о потоковом алгоритме с мультипликативной ошибкой.
В задаче приближенного поиска всех максимальных периодических подстрок в потоках открытым остаётся вопрос о нижней оценке на необходимую память.
[1] Alon N., Matias Y., Szegedy M. The space complexity of approximating the frequency moments // Journal of Computer and system sciences. — 1999. — Vol. 58, no. 1. — P. 137-147.
[2] Towards real-time suffix tree construction / A. Amir, T. Kopelowitz, M. Lewenstein, N. Lewenstein // International Symposium on String Processing and Information Retrieval / Springer. — 2005. — P. 6778.
[3] Apostolico A., Breslauer D., Galil Z. Parallel detection of all palindromes in a string // Theoret. Comput. Sci. -- 1995. -- Vol. 141. -- P. 163-173.
[4] The ’’Runs” Theorem / H. Bannai, T. I, S. Inenaga et al. // SIAM J. Comput.— 2017. — Vol. 46, no. 5.-P. 1501-1514.
[5] Counting distinct elements in a data stream / Z. Bar-Yossef, TS Jayram, R. Kumar et al. // International Workshop on Randomization and Approximation Techniques in Computer Science / Springer. — 2002. — P. 1-10.
[6] Palindrome recognition in the streaming model / P. Berenbrink, F. Ergün, F. Mallmann-Trenn, E. Sadeqi Azer // STACS 2014. — Vol. 25 of LIPIcs. — Germany : Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl Publishing, 2014. — P. 149-161.
[7] Palindromic length in linear time / K. Borozdin, D. Kosolobov, M. Rubinchik, A. M. Shur // 28th Annual Symposium on Combinatorial Pattern Matching (CPM 2017) / Schloss Dagstuhl-Leibniz- Zentrum fuer Informatik. -- 2017.
[8] Breslauer D., Galil Z. Real-time streaming string-matching // Combinatorial Pattern Matching.— Vol. 6661 of LNCS. -- Berlin : Springer, 2011. -- P. 162-172.
[9] Computing a longest common palindromic subsequence / S. R. Chowdhury, Md Hasan, S. Iqbal et al. // Fundamenta Informaticae. -- 2014. -- Vol. 129, no. 4. -- P. 329-340.
[10] Dictionary Matching in a Stream / R. Clifford, A. Fontaine, E. Porat et al. // ESA 2015. — Vol. 9294 of LNCS. - Springer, 2015. - P. 361-372.
[11] The k-mismatch problem revisited / R. Clifford, A. Fontaine, E. Porat et al. // SODA 2016. — SIAM, 2016. —P. 2039-2052.
[12] Clifford R., Kociumaka T., Porat E. The streaming k-mismatch problem // Proceedings of the Thirtieth Annual ACM-SIAM Symposium on Discrete Algorithms / SIAM. -- 2019. -- P. 1106-1125.
[13] Crochemore M., Hancart C., Lecroq T. Algorithms on strings.— Cambridge University Press, 2007.
[14] Near-Optimal Computation of Runs over General Alphabet via Non-Crossing LCE Queries / M. Crochemore, C. S. Iliopoulos, T. Kociumaka et al. // String Processing and Information Retrieval - 23rd International Symposium, SPIRE 2016. — Vol. 9954 of Lecture Notes in Computer Science. — 2016. — P. 22-34.
[15] Crochemore M., Rytter W. Jewels of stringology: text algorithms.-- World Scientific, 2002...