Как я могу построить пример DFA, который имеет состояний, где эквивалентный NFA имеет состояний. Очевидно, набор состояний DFA должен содержать все подмножества набора состояний NFA, но я не знаю, с чего начать. Любые предложения, чтобы поставить меня на правильный путь?
automata
finite-automata
saadtaame
источник
источник
Ответы:
Стандартным примером является язык всех слов в алфавите размера которые не содержат все разные буквы. Существует NFA, принимающий с состояниями (или состояниями, если вы разрешаете несколько начальных состояний): сначала угадать отсутствующую букву , затем перейдите (с -move) в принимающее состояние с помощью собственных циклов для всех , кроме букв .A n L n + 1 n a ϵ AL A n L n+1 n a ϵ A
Любой DFA для требует как минимум состояний. Это можно увидеть с помощью теоремы Майхилла-Нероде. Пусть - два разных подмножества слов и которые содержат все и только буквы в соответственно. Без ограничения общности предположим, что , и пусть . Тогда , а .2 n S 1 , S 2 A w ( S 1 ) , w ( S 2 ) SL 2n S1,S2 A w(S1),w(S2) a ∈ S 1 ∖ S 2 w = w ( A - a ) w ( S 1 ) w ∉ L w ( S 2 ) w ∈ LS1,S2 a∈S1∖S2 w=w(A−a) w(S1)w∉L w(S2)w∈L
источник
это упражнение в книге Марка В. Лоусона "Университет конечных автоматов", Эдинбург, стр. 68 "Конечные автоматы":
Пусть . Покажите, что язык может быть распознан недетерминированным автоматом с состояниями. Покажите, что любой детерминированный автомат, который распознает этот язык, должен иметь как минимум состояний. Этот пример показывает, что экспоненциальный рост числа состояний при переходе от недетерминированного автомата к соответствующему детерминированному автомату иногда неизбежен.( 0 + 1 ) ∗ 1 ( 0 + 1 ) n - 1 n + 1 2 nn≥1 (0+1)∗1(0+1)n−1 n+1 2n
источник
Я собираюсь догадаться, что вы имеете в виду, что оптимальный DFA имеет состояний. Может быть, это не даст вам состояний, но это .2 n Ω ( 2 n )2n 2n Ω(2n)
Из «Сложности общения» Кушилевица и Нисана в упражнении 12.6:
«Для некоторого постоянного [неотрицательного целого числа] рассмотрим (конечный) язык ."L c = { w w ∣ w ∈ { 0 , 1 } c }c Lc={ww∣w∈{0,1}c}
и книга продолжает просить вас доказать, что вы можете найти со-NFA, распознающий который использует состояния а также что вы не можете сделать лучше, чем состояния для DFA. O ( c ) Ω ( 2 c )Lc O(c) Ω(2c)
источник
Это поздний ответ, но, видимо, никто не дал оптимального решения. Возьмем , et , с Этот НФА на Двухбуквенный алфавит имеет состояний, только одно начальное и одно конечное состояния, а его эквивалентный минимальный DFA имеет состояний.A={a,b} Qn={0,1,…,n−1} An=(Qn,A,En,{0},{0}) n 2 n
источник