Может ли постоянная неоднозначность уменьшить сложность состояния обычных языков?


16

Мы говорим , что НКА является постоянно Неоднозначность , если существует K ∈ N такое , что любое слово W ∈ Е * принимается либо 0 или (точно) К путям.Mk∈Nw∈Σ∗0k

Если автомат постоянно неоднозначен при k = 1 , то M называется однозначным FA (UFA).Mk=1M

Пусть обычный язык.L

Может ли какой-то постоянно неоднозначный автомат для L быть меньше, чем самый маленький UFA, который принимает L ? Насколько меньше это может быть?McLL

Может ли конечно неоднозначный автомат быть экспоненциально меньшим, чем самый маленький CFA для того же языка?

Известно, что существуют конечно неоднозначные автоматы (существует , так что каждое слово может быть принято до k путями), которые экспоненциально меньше, чем наименьшая UFA для того же языка, но я не видел кое-что о постоянной неоднозначности.k k

Кроме того, вот связанный вопрос, который я отправил здесь несколько месяцев назад.

РЕДАКТИРОВАТЬ:

Ответ Domotorp показывает, что является полиномиально сводимым к U F A , но не затрагивает вопрос о том, можем ли мы получить это сокращение полиномиального пространства с помощью C F A s.CFAUFACFA

Таким образом, возникает новый вопрос: насколько меньше (линейно / квадратично / и т. Д.) по сравнению с минимальным U F A ? для того же языка?CFAUFA


являются ; -переходы разрешено? ϵ
— Денис

Возможно , это может быть полезно: в Kupke, Разделяющие константы из полиномиальной неоднозначности конечных автоматов следующая иерархия представлена: я не проверял соответствующий документ , потому что он находится за платного доступа. dfa≺2nunfa≺2ncafa≺2n???≺2npafa≺2nnfa
— Марцио Де Биаси

Спасибо @MarzioDeBiasi, но, к сожалению, это не помогает (я также надеялся, когда увидел презентацию). Они используют другое обозначение, чем то, которое я использую (и я видел в разных статьях). Их «постоянная неоднозначность» - это то, что я назвал конечной двусмысленностью, поэтому связь между их Кафа и УФА была мне уже известна. Так как мое приложение подсчитывает решения проблем NPC, мой язык всегда конечен, и поэтому каждое слово принимается путями, которые они называют «постоянными». O(1)
— РБ

Мне интересно, помогает ли мое определение уменьшить сложность состояний, поскольку у меня есть CFA, который экспоненциально меньше, чем самая маленькая UFA, которую я знаю, чтобы построить, и мне было интересно, возможно ли, что для языка не существует маленькой UFA.
— РБ

1
@ Денис, да, но поможет ли это уменьшить сложность состояния? Я бы предположил, что вы можете уменьшить количество ребер только такими ходами.
— РБ

Ответы:


4

Я утверждаю , что если на каком - то языке есть CFA с с состояниями и 0 или с принятием путей для каждого слова, то есть УФА с C s s гр состояний. Основная идея состоит в том, что состояния UFA являются (упорядоченными) c-кортежами состояний CFA, и он принимает, если и только если все c состояния принимают. Конечно, мы также должны убедиться, что это были действительно разные вычисления и что мы не считаем все c ! перестановки, поэтому для них нам нужны дополнительные биты C s памяти.s0cCsscc!Cs

Немного более подробное описание основной идеи: если является состоянием UFA, то оно имеет переход из него (читая некоторую букву a ) в состояние ( s ′ 1 , … , s ′ c ) тогда и только тогда, когда CFA имеет переход (чтение буквы a ) от s i к s ′ i для каждого i . Состояние ( s 1 , … , s c )(s1,…,sc)a(s1′,…,sc′)asisi′i(s1,…,sc)принимает, если и только если принимает для каждого i . Конечно, начальное состояние UFA - это ( s 0 , … , s 0 ), где s 0 - начальное состояние CFA.sii(s0,…,s0)s0

Проблема с вышеупомянутым состоит в том, что моделируемые пробеги CFA могли бы быть тем же самым. Таким образом , мы добавим некоторую дополнительную информацию, закодированную, скажем, в графе на гр вершин, имеет ребро между вершиной я и вершина J , если во время запуска до сих пор , по крайней мере , когда мы имели , что гр я ≠ гр J .ccijci≠cj

c!iji


Спасибо за ваш ответ @domotorp. К сожалению, я не могу сказать, что понимаю это. Можете ли вы дать более подробную информацию (например, как будет закодировано доказательство первичности?). Благодарность !
— РБ

Я так или иначе понял, что для этого языка также есть UFA, так что забудьте об этом. Как насчет оставшейся части моего ответа?
— Домоторп

Mk=ccw, just that only c of them will end in an accepting state. What would the states of the UFA be? Can you please try to formalize it?
— R B

There you go, I hope now it's clear.
— domotorp
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.