Можно ли недетерминированные конечные автоматы (NDFA) эффективно преобразовать в детерминированные конечные автоматы (DFA) в субэкспоненциальном пространстве / времени?


16

Двадцать лет назад я создал пакет регулярных выражений, который включал преобразования из регулярных выражений в конечный автомат (DFA) и поддерживал множество закрытых операций с регулярными выражениями (звезда Клина, конкатенация, обратное, операции над множествами и т. Д.). Я не был уверен в худшем случае производительности моего пакета.

DFA обладает той же выразительной силой, что и NDFA, поскольку NDFA в n-состоянии можно легко преобразовать в DFA, имеющий 2 ^ n состояний. Однако существуют ли какие-либо нижние ограничения верхней границы для такого преобразования, которые не требуют экспоненциального взрыва в состоянии?

Я не смог придумать примеры некорректных регулярных выражений или NDFA, но я не тратил много времени на размышления об этом. Я предполагаю, что регулярное выражение типа ((((e | A | B | C) * (e | D | E | F)) * (e | G | H | I)) * (e | J | K | L | M)) *, который смешивает много чередований, и у звезд Клини будет NDFA линейного размера, но обширный DFA.


Существуют ли какие-либо ограничения на класс NFA, которые вы хотели бы принять в качестве входных данных? Некоторые ограничения приводят к улучшению верхних границ.
Андрас Саламон

не очень важный момент, но нужно ли иметь свой собственный тег?
Лев Рейзин

Да, есть ограничения. NFA создаются непосредственно из регулярных выражений, рассматривая их как обобщенные графы переходов. seas.upenn.edu/~cit596/notes/dave/regexp-nfa4.html
Веснер Моиз

Ответы:


15

Известно, что для каждой пары натуральных чисел, n,aтаких n <= a <= 2^n, что существует минимальный NDFA с nсостояниями, у которых соответствующий эквивалентный минимальный dfa имеет aсостояния (более четырехбуквенного алфавита).

См. Статью здесь: Детерминированные взрывы минимальных недетерминированных конечных автоматов над фиксированным алфавитом .

Автореферат статьи:

Мы показываем, что для всех целых чисел n и α, таких что n ≤ α ≤ 2 ^ n, существует минимальный недетерминированный конечный автомат из n состояний с четырехбуквенным входным алфавитом, эквивалентный минимальному детерминированному конечному автомату которого точно соответствует состоянию. Отсюда следует, что в случае четырехбуквенного алфавита не существует «магических чисел», то есть дыр в иерархии. Это улучшает аналогичный результат, полученный Geffert для растущего алфавита размера n + 2 (Proc. 7th DCFS, Como, Italy, 23-37).

Итак, я полагаю, что ответ на ваш вопрос - нет.


вопрос состоит в том, чтобы запросить «алгоритм», работающий в субэкспоненциальном времени и пространстве для преобразования NFA.
Маркос Вильягра

@Marcos: Если ваш вывод экспоненциальный, вы не можете иметь алгоритм, который работает в субэкспоненциальном времени.
Арьябхата

1
Это общий результат. Если существуют известные ограничения на класс входных NFA, то, возможно, будет лучше.
Андрас Саламон

@Andras: Согласен, но, учитывая, что это, вероятно, связано с программированием (которое будет поддерживать Kleen * и т. Д.), Я сомневаюсь, будет ли набор входных NFA ограничен соответствующим подмножеством.
Арьябхата

5
Этот результат был недавно усилен для использования трехбуквенного алфавита, а конструкции немного проще: portal.acm.org/…

13

Классическим примером языка с экспоненциальным разделением между размером DFA и размером NFA является следующий конечный язык: двоичные строки длиной ровно 2n, в которых первая половина не равна второй половине. НФА будет угадывать индекс я, в котором первая и вторая половина не согласны. Нижняя граница для DFA следует, например, из сложности связи.


8

Минимальный DFA, соответствующий NFA, имеет 2 ^ n состояний в худшем случае, поэтому вы не можете ничего гарантировать. Не имея конструктивного примера, причина в том, что в NFA вы можете находиться в любом произвольном подмножестве состояний после чтения определенной входной строки, и каждое такое подмножество может вести себя по-разному, наблюдая за одним символом. Предположим, что язык с двумя символами в алфавите (a и b) и NFA N с n состояниями, который начинается с принимающего состояния в s_0. Теперь перечислим все подмножества состояний N и создадим таблицу переходов таким образом, чтобы наблюдение «a» из подмножества S_i привело вас к подмножеству S_i + 1, а наблюдение b - к подмножеству S_i-1 (я думаю, это выполнимо для некоторых перечислений ). Теперь этот автомат имеет n состояний и принимает такие последовательности ma и nb, что mn = 0 mod 2 ^ | N |, и не может быть выражено с DFA, который имеет менее 2 ^ | N | состояния (поскольку может потребоваться циклически проходить через все подмножества состояний NFA N).


Может ли это быть превращено в аргумент, который говорит: «Если (что-то плохое) избегается в NFA, то DFA имеет субэкспоненциальное число состояний»?
Андрас Саламон

1
@ Андрас, да. «Если недетерминизма избегают в NFA, то DFA имеет субэкспоненциальное число состояний».
P Shved

2
Павел, да, очевидно. Есть ли нетривиальное свойство, которое можно эффективно распознать, которое также гарантирует субэкспоненциальное увеличение?
Андрас Саламон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.