РЕДАКТУЙТЕСЯ В 12.12.2006:
ОК, це майже найкраща конструкція, яку я можу отримати, подивіться, чи хтось придумає кращі ідеї.
Теорема. Для кожного існує -державний NFA над алфавітами з таким, що найкоротший рядок, що не знаходиться в має довжину .n(5n+12)MΣ|Σ|=5L(M)(2n−1)(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♯
- послідовно перевірки , який гарантує , що тільки символи з формою може з'явитися одночасно.♯xy♯yz♯
Зауважимо, що ми хочемо прийняти замість , тож коли ми з'ясуємо, що вхідна послідовність не дотримується однієї з наведених вище поведінок, ми приймаємо послідовність негайно. В іншому випадку післякроки, NFA буде в єдиному можливому стані відхилення. І якщо послідовність довша, ніж, NFA також приймає. Отже, будь-яка NFA, що задовольняє вищевказаним п'яти умовам, відхиляє лише .Σ∗−{sn}{sn}|sn||sn|sn
Перевірити наступну фігуру можна замість суворого доказу:
Починаємо з верхнього лівого стану. Перша частина - це стартер і лічильник, потім послідовна перевірка, термінатор, нарешті шашка-додаток. Всі дуги, що не мають кінцевих вузлів, вказують на правий нижній стан, який є акцептором за весь час. Деякі краї не позначені міткою через відсутність пробілів, але їх можна легко відновити. Штриховий рядок являє собою послідовність станів з ребрами.n−1n−2
Ми можемо (болісно) перевірити, що NFA відхиляє лише , оскільки він дотримується всіх п’яти правил, наведених вище. Так побудовано -державний NFA з , що задовольняє вимозі теореми.sn(5n+12)|Σ|=5
Якщо є якась незрозумілість / проблема з будівництвом, залиште коментар, і я спробую пояснити / виправити це.
Це питання було вивчено Джеффрі О. Шаллітом та ін., І дійсно оптимальне значення все ще відкрите для . (Що стосується одинарної мови, дивіться коментарі у відповіді Цуйосі )f(n)|Σ|>1
На сторінці 46-51 своєї розмови про універсальність він запропонував таку конструкцію, що:
Теорема. Для для деяких достатньо великих існує державний NFA над бінарними алфавітами, таким чином, що найкоротший рядок, що не знаходиться в має довжину для .n≥NNnML(M)Ω(2cn)c=1/75
Таким чином, оптимальне значення для знаходиться десь між і . Я не впевнений, чи покращився результат Шалліта за останні роки.f(n)2n/752n