Проблема разделения слов - Separating words problem
Нерешенная проблема в информатике: Сколько состояний нужно в детерминированный конечный автомат который ведет себя по-разному на двух заданных струны длины п? (больше нерешенных проблем в информатике) |
В теоретическая информатика, то проблема разделения слов проблема поиска наименьшего детерминированный конечный автомат который ведет себя по-разному на двух заданных струны, что означает, что он принимает одну из двух строк и отклоняет другую. Это открытая проблема насколько большим должен быть такой автомат в худшем случае в зависимости от длины входных строк.
Пример
Две строки 0010 и 1000 могут отличаться друг от друга автоматом с тремя состояниями, в котором переходы из начального состояния переходят в два разных состояния, оба из которых являются конечными в том смысле, что последующие переходы из этих двух состояний всегда возвращаются в такое же состояние. Состояние этого автомата записывает первый символ входной строки. Если одно из двух конечных состояний принимает, а другое отвергает, то автомат примет только одну из строк 0010 и 1000. Однако эти две строки не может различить ни один автомат с менее чем тремя состояниями.[1]
Упрощение предположений
Для доказательства границ этой проблемы можно без ограничения общности предположить, что входными данными являются строки в двухбуквенном алфавите. Ведь если две строки в большем алфавите различаются, то существует гомоморфизм струн который отображает их в двоичные строки одинаковой длины, которые также различаются. Любой автомат, который различает двоичные строки, может быть преобразован в автомат, который различает исходные строки, без увеличения количества состояний.[1]
Также можно предположить, что две строки имеют одинаковую длину. Для строк неравной длины всегда существует простое число п значение которой является логарифмическим от меньшего из двух входных значений длины, так что эти две длины различаются по модулю п. Автомат, который считает длину своего входа по модулю п в этом случае можно использовать, чтобы отличить две строки друг от друга. Следовательно, цепочки неравной длины всегда можно отличить друг от друга автоматами с несколькими состояниями.[1]
История и границы
Проблема ограничения размера автомата, различающего две заданные строки, была впервые сформулирована Горалчик и Коубек (1986), который показал, что размер автомата всегда сублинейен.[2] Потом, Робсон (1989) доказала лучшую известную верхнюю границу, О(п2/5(бревноп)3/5), от размера автомата, который может потребоваться.[3] Это было улучшено Чейз (2020) к О(п1/3(бревноп)7).[4]
Существуют пары входных данных, которые представляют собой двоичные строки длины п для которого любой автомат, различающий входы, должен иметь размер Ω (журнал п). Устранение разрыва между этой нижней границей и верхней границей Робсона остается открытой проблемой.[1] Джеффри Шаллит предложил приз в размере 100 британских фунтов за любое улучшение верхней границы Робсона.[5]
Особые случаи
Известно, что несколько частных случаев проблемы разделяющих слов разрешимы с использованием нескольких состояний:
- Если два двоичных слова имеют разное количество нулей или единиц, то их можно отличить друг от друга, посчитав их Веса Хэмминга по модулю простого числа логарифмического размера с использованием логарифмического числа состояний. В более общем смысле, если образец длины k встречается в двух словах разное количество раз, их можно отличить друг от друга с помощью О(k бревно п) состояния.[1]
- Если два двоичных слова отличаются друг от друга в пределах их первого или последнего k позиции, их можно отличить друг от друга с помощью k + О(1) состояния. Отсюда следует, что почти все пары двоичных слов можно отличить друг от друга с помощью логарифмического числа состояний, потому что только полиномиально малая часть пар не различается в своих начальных О(бревно п) позиции.[1]
- Если два двоичных слова имеют Расстояние Хэмминга d, то существует простое число п с п = О(d бревно п) и должность я на котором две строки различаются, так что я не равно по модулю п на позицию любой другой разницы. Вычислив паритет входных символов в позициях конгруэнтных я по модулю п, можно различать слова с помощью автомата с О(d бревно п) состояния.[1]
Рекомендации
- ^ а б c d е ж грамм Демейн, Эрик Д.; Айзенстат, Сара; Шаллит, Джеффри; Уилсон, Дэвид А. (2011), «Замечания о разделении слов», Описание сложности формальных систем: 13-й международный семинар, DCFS 2011, Гиссен / Лимбург, Германия, 25-27 июля 2011 г., Труды, Конспект лекций по информатике, 6808, Heidelberg: Springer-Verlag, стр. 147–157, arXiv:1103.4513, Дои:10.1007/978-3-642-22600-7_12, МИСТЕР 2910373, S2CID 6959459.
- ^ Goralčík, P .; Кубек, В. (1986), «О распознавании слов автоматами», Автоматы, языки и программирование: 13-й международный коллоквиум, Ренн, Франция, 15–19 июля 1986 г., Труды, Конспект лекций по информатике, 226, Берлин: Springer-Verlag, стр. 116–122, Дои:10.1007/3-540-16761-7_61, МИСТЕР 0864674.
- ^ Робсон, Дж. М. (1989), "Разделение строк с помощью небольших автоматов", Письма об обработке информации, 30 (4): 209–214, Дои:10.1016/0020-0190(89)90215-9, МИСТЕР 0986823.
- ^ Чейз, З. (2020), «Новая верхняя граница для разделения слов», arXiv:2007.12097 [math.CO ].
- ^ Шаллит, Джеффри (2014), "Открытые проблемы в теории автоматов: индивидуальный взгляд", Британский коллоквиум теоретической информатики (BCTCS 2014), Университет Лафборо (PDF).