Рассмотрим недетерминированные конечные автоматы и функцию . Дополнительно определим .
Теперь давайте проанализируем следующее утверждение:
Если , то .
Нетрудно показать, что для это верно, следовательно, если автоматы генерируют каждое слово длиной до , то оно производит .
Но это все еще держится, если - многочлен?
Если нет, то как может выглядеть конструкция NFA для данного полинома : st ?
Ответы:
Чтобы утверждение сохранялось, f должно расти экспоненциально, даже с унарным алфавитом.
[Редактировать: анализ немного улучшен в редакции 2.]
Вот примерный набросок. Предположим, что утверждение выполнено, и пусть f будет функцией, такой, что каждый NFA с не более чем n состояниями, который принимает все строки с длиной не более f ( n ), принимает все строки вообще. Докажем, что для любого C > 0 и достаточно большого n имеем f ( n )> 2 C ⋅√ n .
Из теоремы о простых числах следует, что для любого c <lg e и для достаточно больших k в интервале имеется не менее c ⋅ 2 k / k простых чисел [2 k , 2 k +1 ]. Мы берем с = 1. Для такого k пусть N k = k2 k / k ⌉ и определим NFA M k следующим образом. Пусть p 1 ,…, p N k - различные простые числа в диапазоне [2 k , 2 k +1]. NFA M k имеет S k = 1 + p 1 +… + p N k состояний. Помимо начального состояния, состояния делятся на N k циклов, где i- й цикл имеет длину p i . В каждом цикле все, кроме одного состояния, являются принятыми состояниями. Исходное состояние имеет N k исходящих ребер, каждый из которых переходит в состояние сразу после отклоненного состояния в каждом цикле. Наконец, начальное состояние также принимается.
Пусть P k - произведение p 1 … p N k . Легко видеть, что M k принимает все строки длиной меньше P k, но отклоняет строку длины P k . Следовательно, f ( S k ) ≥ P k .
Отметим, что S k ≤ 1 + N k ⋅2 k +1 = o (2 2 k ) и что P k ≥ (2 k ) N k ≥ 2 2 k . Остальное стандартно.
источник
РЕДАКТИРОВАТЬ В 10/12/06:
хорошо, это в значительной степени лучшая конструкция, которую я могу получить, посмотрим, если кто-нибудь придумает лучшие идеи.
Это даст нам .f(n)=Ω(2n/5)
Конструкция почти такая же, как у Шаллита , за исключением того, что мы создаем NFA напрямую, вместо того, чтобы сначала представлять язык регулярным выражением. Позволять
.Σ={[00],[01],[10],[11],♯}
Для каждого мы собираемся построить язык распознавания NFA Σ ∗ - { s n } , где s n - следующая последовательность (например, n = 3 ):n Σ∗−{sn} sn n=3
.s3=♯[00][00][01]♯[00][01][10]♯…♯[11][11][01]♯
Идея в том, что мы можем построить NFA состоит из пяти частей;
Обратите внимание, что мы хотим принять вместо { s n } , поэтому, как только мы узнаем, что входная последовательность не подчиняется одному из описанных выше способов поведения, мы немедленно принимаем последовательность. В противном случае после | с н | шаги, NFA будет в единственно возможном состоянии отказа. И если последовательность длиннее, чем | с н | НФА также принимает. Таким образом, любой NFA, удовлетворяющий вышеуказанным пяти условиям, будет отклонять только s n .Σ∗−{sn} {sn} |sn| |sn| sn
Может быть легко проверить следующую фигуру непосредственно вместо строгого доказательства:
Мы начинаем с верхнего левого состояния. Первая часть - это стартер, а затем счетчик, затем согласованный контролер, терминатор, и, наконец, проверка на добавление. Вся дуга без конечных узлов указывает на нижнее правое состояние, которое является постоянным акцептором. Некоторые края не помечены из-за отсутствия пробелов, но их можно легко восстановить. Штриховая линия представляет последовательность из состояний с n - 2 ребрами.n−1 n−2
Мы можем (мучительно) проверить, что NFA отклоняет только , поскольку оно следует всем пяти вышеприведенным правилам. Итак ( 5 n + 12 ) -состояния NFA с | Σ | = 5 , что удовлетворяет требованию теоремы.sn (5n+12) |Σ|=5
Если есть какие-то неясности / проблемы со строительством, пожалуйста, оставьте комментарий, и я постараюсь объяснить / исправить это.
На странице 46-51 своего выступления об универсальности он представил такую конструкцию, которая:
Thus the optimal value forf(n) is somewhere between 2n/75 and 2n . I'm not sure if the result by Shallit has been improved in recent years.
источник