Чи може постійна неоднозначність знижувати складність держави звичайних мов?


16

Ми говоримо, що NFA є постійно неоднозначним, якщо існує такий, що будь-яке слово приймається або або (точно) шляхами.k N w Σ 0 kMkNwΣ0k

Якщо автомат постійно неоднозначний при , то називається однозначним FA (UFA).k = 1 MMk=1M

Нехай - звичайна мова.L

Чи може деякий постійно неоднозначний автомат для бути меншим, ніж найменший UFA, який приймає ? Наскільки меншим він міг бути? L LMcLL

Чи може Кінцево неоднозначний автомат бути експоненціально меншим, ніж найменший CFA для тієї ж мови?

Відомо, що є Кінцево неоднозначні автомати (існують , такі, що кожне слово приймається до доріжок), які є експоненціально меншими, ніж найменший UFA для тієї ж мови, але я не бачив чогось щодо постійної неоднозначності.k k

Також ось відповідне питання, яке я опублікував тут кілька місяців тому.

Редагувати:

Відповідь Домоторпа показує, що поліноміально приводиться до , але не стосується питання про те, чи можемо ми досягти зменшення поліноміального простору за допомогою s.U F A C F ACFAUFACFA

Отже, нове питання стає таким: наскільки меншими (лінійно / квадратично / тощо) може бути порівняння з мінімальним ? для тієї ж мови?U F ACFAUFA


чи дозволено -переходи? ϵ
Денис

Можливо , це може бути корисно: в Kupke, Розділяють константи з поліноміальної неоднозначності кінцевих автоматів наступна ієрархія представлена: я не перевіряв відповідний документ , тому що він знаходиться за платного доступу. dfa2nunfa2ncafa2n???2npafa2nnfa
Марціо Де Біасі

Дякую @MarzioDeBiasi, але, на жаль, це не допомагає (я також сподівався, коли побачив презентацію). Вони використовують різні позначення, ніж те, що я використовую (і я бачив у різних документах). Їх «Постійна неоднозначність» - це те, що я назвав кінцевою неоднозначністю, тому відношення між їх Кафою та УФА мені було вже відоме. Оскільки моя програма підраховує розв’язання проблем NPC, моя мова завжди обмежена, і як таке кожне слово приймається шляхом , які вони назвали "постійними". O(1)
RB

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

1
@Denis, так, але чи допоможе вам зменшити складність держави? Я припускаю, що ви могли зменшити кількість ребер лише такими рухами.
RB

Відповіді:


4

Я стверджую, що якщо для якоїсь мови є CFA зі зі станами та 0 або c, які приймають шляхи до кожного слова, то існує UFA зі станами C s s c . Основна ідея полягає в тому, що штати 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)asisii(s1,,sc)приймає, якщо і тільки якщо приймає для кожного i . Звичайно, початковий стан UFA - це ( s 0 , , s 0 ), де s 0 - початковий стан CFA.sii(s0,,s0)s0

Проблема з вищесказаним полягає в тому, що симульовані запуски CFA можуть бути однаковими. Отже, ми додаємо додаткову інформацію, закодовану, скажімо, у графі на c вершинах, які мають край між вершиною i та вершиною j, якщо під час пробігу хоч раз у нас було це c ic j .ccijcicj

Тепер у нас ще проблема, що ми порахували все разів через можливі перестановки. Ми можемо виправити це, вимагаючи, щоб якщо i -й та j -й стани досі були однаковими, і на наступному кроці вони будуть відрізнятися, то на наступному кроці i -й стан повинен мати більший індекс.c!iji


Дякуємо за вашу відповідь @domotorp. На жаль, не можу сказати, що я це розумію. Чи можете ви надати більш детальну інформацію (наприклад, як було б закодовано доказ первинності?). Спасибі !
RB

Я так чи інакше зрозумів, що для цієї мови також існує UFA, тому забудьте про це. Що з рештою моєї відповіді?
domotorp

Я не впевнений, що слідкую за цим. Якщо - CFA з k = c , то це не означає, що для кожного слова w можуть бути лише c шляхи , тільки те, що лише c з них закінчиться у приймальному стані. Якими були б держави УФА? Чи можете ви, будь ласка, спробувати її формалізувати? Mk=ccwc
RB

Ось ви, сподіваюся, зараз зрозуміло.
domotorp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.