Мы говорим , что НКА является постоянно Неоднозначность , если существует K ∈ N такое , что любое слово W ∈ Е * принимается либо 0 или (точно) К путям.
Если автомат постоянно неоднозначен при k = 1 , то M называется однозначным FA (UFA).
Пусть обычный язык.
Может ли какой-то постоянно неоднозначный автомат для L быть меньше, чем самый маленький UFA, который принимает L ? Насколько меньше это может быть?
Может ли конечно неоднозначный автомат быть экспоненциально меньшим, чем самый маленький CFA для того же языка?
Известно, что существуют конечно неоднозначные автоматы (существует , так что каждое слово может быть принято до k путями), которые экспоненциально меньше, чем наименьшая UFA для того же языка, но я не видел кое-что о постоянной неоднозначности.
Кроме того, вот связанный вопрос, который я отправил здесь несколько месяцев назад.
РЕДАКТИРОВАТЬ:
Ответ Domotorp показывает, что является полиномиально сводимым к U F A , но не затрагивает вопрос о том, можем ли мы получить это сокращение полиномиального пространства с помощью C F A s.
Таким образом, возникает новый вопрос: насколько меньше (линейно / квадратично / и т. Д.) по сравнению с минимальным U F A ? для того же языка?
Ответы:
Я утверждаю , что если на каком - то языке есть CFA с с состояниями и 0 или с принятием путей для каждого слова, то есть УФА с C s s гр состояний. Основная идея состоит в том, что состояния UFA являются (упорядоченными) c-кортежами состояний CFA, и он принимает, если и только если все c состояния принимают. Конечно, мы также должны убедиться, что это были действительно разные вычисления и что мы не считаем все c ! перестановки, поэтому для них нам нужны дополнительные биты C s памяти.s 0 c Cssc c! Cs
Немного более подробное описание основной идеи: если является состоянием UFA, то оно имеет переход из него (читая некоторую букву a ) в состояние ( s ′ 1 , … , s ′ c ) тогда и только тогда, когда CFA имеет переход (чтение буквы a ) от s i к s ′ i для каждого i . Состояние ( s 1 , … , s c )(s1,…,sc) a (s′1,…,s′c) a si s′i i (s1,…,sc) принимает, если и только если принимает для каждого i . Конечно, начальное состояние UFA - это ( s 0 , … , s 0 ), где s 0 - начальное состояние CFA.si i (s0,…,s0) s0
Проблема с вышеупомянутым состоит в том, что моделируемые пробеги CFA могли бы быть тем же самым. Таким образом , мы добавим некоторую дополнительную информацию, закодированную, скажем, в графе на гр вершин, имеет ребро между вершиной я и вершина J , если во время запуска до сих пор , по крайней мере , когда мы имели , что гр я ≠ гр J .c c i j ci≠cj
источник