Умови універсальності NFA


28

Розглянемо недетерміновані кінцеві автомати та функцію . Додатково визначаємо .A=(Q,Σ,δ,q0,F)f(n)Σk=ikΣi

Тепер давайте проаналізуємо наступне твердження:

Якщо , то .Σf(|Q|)L(A)L(A)=Σ

Неважко показати, що для це правда, отже, якщо автомати виробляють кожне слово довжиною до , то воно виробляє .f(n)=2n+12|Q|+1Σ

Але чи все-таки це справедливо, якщо - поліном?f

Якщо ні, то як може виглядати побудова NFA для даного полінома , st ?ApΣp(|Q|)L(A)Σ


Я хотів би дати винагороду доказом чи спростуванням того, що f(n)=2no(n) для випадку |Σ|2 . А якщо його немає, я дам його найкращій конструкції, яку можна отримати.
Сісен-Чі Чанг 張顯 之

Відповіді:


22

Для того, щоб твердження було правильним, f має зростати експоненціально, навіть з одинарним алфавітом.

[Редагувати: Аналіз дещо покращений у версії 2.]

Ось доказний ескіз. Припустимо, що твердження має місце, і нехай функція f така, що кожна NFA з максимум n станами, що приймає всі рядки довжиною не більше f ( n ), приймає всі будь-які рядки. Доведемо, що для кожного C > 0 і досить великого n маємо f ( n )> 2 C ⋅√ n .

З теореми простих чисел випливає, що для кожного c <lg e і для досить великого k в діапазоні є щонайменше c ⋅2 k / k прайми [2 k , 2 k +1 ]. Беремо c = 1. Для такого k нехай N k = ⌈2 k / k ⌉ і визначають NFA M k наступним чином. Нехай p 1 ,…, p N k - чіткі праймери в діапазоні [2 k , 2 k +1]. NFA M k має стани S k = 1 + p 1 +… + p N k . Крім початкового стану, стани поділяються на N k циклів, де i- й цикл має довжину p i . У кожному циклі всі держави, крім однієї, є загальноприйнятими. Початковий стан має N k вихідних ребер, кожен з яких переходить у стан одразу після відхиленого стану в кожному циклі. Нарешті, початковий стан також приймається.

Нехай P k - добуток p 1p N k . Неважко помітити, що M k приймає всі рядки довжиною менше P k, але відкидає рядок довжиною P k . Тому f ( S k ) ≥ P k .

Зауважимо, що S k ≤ 1 + N k ⋅2 k +1 = o (2 2 k ) і що P k ≥ (2 k ) N k ≥ 2 2 k . Решта стандартна.


Яка ваша думка про найкраще значення ? Скажіть , або десь між і ? ff(n)=2n+12n2cn
Сісен-Чі Чанг 張顯 之

@ Hsien-Chih: Мені було цікаво те саме, і я не маю жодної розумної думки. По-перше, тривіально бачити f (n) ≤2 ^ n (нам не потрібен +1), і, хоча я очікую деякого лінійного поліпшення за цією верхньою межею, я не маю уявлення, чи є вона напруженою до постійного коефіцієнта. (детальніше)
Цуйосі Іто

(продовження) По-друге, що стосується нижньої межі, якщо я не помиляюся, невелике уточнення вищевказаного аналізу дає таку нижню межу: для кожної постійної 0 <c < та достатньо великої n ми маємо . Подальші уточнення, ймовірно, можливі, але ми не можемо отримати нижню межу, таку як 2 ^ {n ^ p} для p> 1/2, якщо ми будемо використовувати ту саму конструкцію NTM. Я думаю, що цікаве питання, чи використання розподілу прайметів (наприклад, PNT) є важливим для побудови поганих прикладів. (детальніше)1/2f(n)>ecnlnn
Цуйосі Іто

(продовження) Однак, якщо ви зацікавлені і хочете дослідити це далі, напевно, розумніше спочатку шукати літературу. Я не здивуюсь, якщо ця відповідь чи щось краще вже з’явилося в літературі.
Цуйосі Іто

5
@Tsuyoshi: Chrobak показав, що n-державний DFA для одинарної мови може бути імітований m-state NFA для . Таким чином, ваша конструкція є тісною, якщо мова неоднакова. Дивіться [Chr86]: cs.ust.hk/mjg_lib/Library/Chro86.pdfm=O(enlogn)
Hsien-Chih Chang 張顯 之

19

РЕДАКТУЙТЕСЯ В 12.12.2006:

ОК, це майже найкраща конструкція, яку я можу отримати, подивіться, чи хтось придумає кращі ідеї.

Теорема. Для кожного існує -державний NFA над алфавітами з таким, що найкоротший рядок, що не знаходиться в має довжину .n(5n+12)MΣ|Σ|=5L(M)(2n1)(n+1)+1

Це дасть нам .f(n)=Ω(2n/5)

Конструкція майже однакова з тією, що є у Шалліта , за винятком того, що ми побудуємо NFA безпосередньо замість того, щоб спочатку представляти мову регулярним виразом. Дозволяє

Σ={[00],[01],[10],[11],} .

Для кожного ми побудуємо мову розпізнавання NFA , де є такою послідовністю (наприклад, ):nΣ{sn}snn=3

s3=[00][00][01][00][01][10][11][11][01] .

Ідея полягає в тому, що ми можемо побудувати NFA, що складається з п'яти частин;

  • стартер , який забезпечує рядок починається з ;[00][00][01]
  • термінатор , який забезпечує рядок закінчується ;[11][11][01]
  • лічильник , який зберігає число символів між двома «S , як ;n
  • надбудова один перевірка , який гарантує , що тільки символи з формою символу; нарешті,xx+1
  • послідовно перевірки , який гарантує , що тільки символи з формою може з'явитися одночасно.xyyz

Зауважимо, що ми хочемо прийняти замість , тож коли ми з'ясуємо, що вхідна послідовність не дотримується однієї з наведених вище поведінок, ми приймаємо послідовність негайно. В іншому випадку післякроки, NFA буде в єдиному можливому стані відхилення. І якщо послідовність довша, ніж, NFA також приймає. Отже, будь-яка NFA, що задовольняє вищевказаним п'яти умовам, відхиляє лише .Σ{sn}{sn}|sn||sn|sn

Перевірити наступну фігуру можна замість суворого доказу:

NFA для відхилення s_n

Починаємо з верхнього лівого стану. Перша частина - це стартер і лічильник, потім послідовна перевірка, термінатор, нарешті шашка-додаток. Всі дуги, що не мають кінцевих вузлів, вказують на правий нижній стан, який є акцептором за весь час. Деякі краї не позначені міткою через відсутність пробілів, але їх можна легко відновити. Штриховий рядок являє собою послідовність станів з ребрами.n1n2

Ми можемо (болісно) перевірити, що NFA відхиляє лише , оскільки він дотримується всіх п’яти правил, наведених вище. Так побудовано -державний NFA з , що задовольняє вимозі теореми.sn(5n+12)|Σ|=5

Якщо є якась незрозумілість / проблема з будівництвом, залиште коментар, і я спробую пояснити / виправити це.


Це питання було вивчено Джеффрі О. Шаллітом та ін., І дійсно оптимальне значення все ще відкрите для . (Що стосується одинарної мови, дивіться коментарі у відповіді Цуйосі )f(n)|Σ|>1

На сторінці 46-51 своєї розмови про універсальність він запропонував таку конструкцію, що:

Теорема. Для для деяких достатньо великих існує державний NFA над бінарними алфавітами, таким чином, що найкоротший рядок, що не знаходиться в має довжину для .nNNnML(M)Ω(2cn)c=1/75

Таким чином, оптимальне значення для знаходиться десь між і . Я не впевнений, чи покращився результат Шалліта за останні роки.f(n)2n/752n


Я граю з роботою Шалліта, сподіваюсь, що краще зв'язатись близько . Їх побудова виглядає цікавою, вказавши деяку послідовність довжини яку не можна представити "коротким" регулярним виразом довжини , і кожним регулярним виразом довжини може бути описаний NFA розміром . Наразі я можу дозволити , але розумніша ідея потребує наближення . 2nΩ^(2n)cn+o(n)f(n)f(n)+1c222n
Сісен-Чі Чанг 6 之

2
Я не думаю, що це дає додаткові уявлення про вивчення цієї проблеми, але належним науковим посиланням на розмову Шалліта є: К. Еллул, Б. Кравець, Дж. Шалліт, М. Ванг: Регулярні вирази: нові результати та відкриті проблеми. Journal of Automata, Languages ​​and Combinatorics 10 (4): 407-437 (2005)
Герман Грубер

@Hermann: Дякую за довідку, наразі я не можу отримати доступ до документа, але я знайду спосіб.
Hsien-Chih Chang 張顯 之

Я думаю, що за допомогою лічильника ми можемо замінити стартер і термінатор на 2-х державний крихітний автомат. Таким чином, це додатково зменшує розмір NFA до . 3n+O(1)
Сісен-Чі Чанг 張顯 之

1
Авторська переддрукована версія зазначеної статті JALC знаходиться тут: cs.uwaterloo.ca/~shallit/Papers/re3.pdf Обмежена , а докази такі ж у друкованій версії.
Герман Грубер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.