Condizioni per l'universalità NFA


28

Considera un automi finito non deterministico e una funzione . Inoltre definiamo .A=(Q,Σ,δ,q0,F)f(n)Σk=ikΣi

Ora analizziamo la seguente dichiarazione:

Se , quindi .Σf(|Q|)L(A)L(A)=Σ

È facile dimostrare che per è vero, quindi se gli automi producono ogni parola con lunghezza fino a , allora produce .f(n)=2n+12|Q|+1Σ

Ma è ancora valido se è un polinomio?f

Se no, che potrebbe un costruzione di un NFA per un polinomio dato assomigliare, st ?ApΣp(|Q|)L(A)Σ


Vorrei dare la grazia a una prova o una confutazione che f(n)=2no(n) per il caso |Σ|2 . E se non ce n'è nessuno, lo darò alla migliore costruzione che si possa ottenere.
Hsien-Chih Chang 張顯 之

Risposte:


22

Affinché l'affermazione sia valida, f deve crescere in modo esponenziale, anche con l'alfabeto unario.

[Modifica: l'analisi è leggermente migliorata nella revisione 2.]

Ecco uno schizzo di prova. Supponiamo che l'istruzione sia valida e che f sia una funzione in modo tale che ogni NFA con al massimo n indica che accetta tutte le stringhe con lunghezza al massimo f ( n ) accetta tutte le stringhe. Dimostreremo che per ogni C > 0 e n sufficientemente grande , abbiamo f ( n )> 2 C ⋅√ n .

Il teorema dei numeri primi implica che per ogni c <lg e e per k sufficientemente grande , ci sono almeno c ⋅2 k / k numeri primi nell'intervallo [2 k , 2 k +1 ]. Prendiamo c = 1. Per tale k , sia N k = ⌈2 k / k ⌉ e definire un NFA M k come segue. Sia p 1 , ..., p N k primi distinti nell'intervallo [2 k , 2 k +1]. NFA M k ha S k = 1 + p 1 +… + p N k stati. Oltre allo stato iniziale, gli stati sono partizionati in cicli N k dove l' i ciclo ha lunghezza p i . In ogni ciclo, tutti gli stati tranne uno sono stati accettati. Lo stato iniziale ha N k bordi in uscita, ognuno dei quali passa allo stato immediatamente dopo lo stato rifiutato in ciascun ciclo. Infine, viene accettato anche lo stato iniziale.

Sia P k il prodotto p 1p N k . È facile vedere che M k accetta tutte le stringhe di lunghezza inferiori a P k ma rifiuta la stringa di lunghezza P k . Pertanto, f ( S k ) ≥ P k .

Si noti che S k ≤ 1 + N k ⋅2 k +1 = o (2 2 k ) e che P k ≥ (2 k ) N k ≥ 2 2 k . Il resto è standard.


Qual è la tua congettura sul miglior valore di ? Di ' , o tra e ? f ( n ) = 2 n + 1 2 n 2 c ff(n)=2n+12n2cn
Hsien-Chih Chang 張顯 之

@ Hsien-Chih: mi chiedevo la stessa cosa e non ho congetture ragionevoli. Innanzitutto, è banale vedere f (n) ≤2 ^ n (non abbiamo bisogno di +1) e, anche se mi aspetto un miglioramento lineare su questo limite superiore, non ho idea se sia stretto a un fattore costante. (altro)
Tsuyoshi Ito

(seguito) In secondo luogo, per quanto riguarda il limite inferiore, se non sbaglio, un leggero affinamento dell'analisi di cui sopra fornisce il limite inferiore seguente: per ogni costante 0 <c < e sufficientemente grande n, abbiamo . Ulteriori perfezionamenti sono probabilmente possibili, ma non possiamo ottenere un limite inferiore come 2 ^ {n ^ p} per p> 1/2 se utilizziamo la stessa costruzione di NTM. Penso che sia una domanda interessante se l'uso della distribuzione di numeri primi (come il PNT) sia essenziale per la costruzione di esempi negativi. (altro) f(n)>e c 1/2f(n)>ecnlnn
Tsuyoshi Ito

(proseguendo) Tuttavia, se sei interessato e vuoi approfondire ulteriormente, probabilmente è più saggio cercare prima la letteratura. Non sarò sorpreso se questa risposta o qualcosa di meglio è già apparso in letteratura.
Tsuyoshi Ito,

5
@Tsuyoshi: Chrobak mostra che un DFA n-state per un linguaggio unario può essere simulato da un NFA m-state per . Quindi la tua costruzione è stretta se la lingua è unaria. Vedi [Chr86]: cs.ust.hk/mjg_lib/Library/Chro86.pdfm=O(enlogn)
Hsien-Chih Chang 張顯 之

19

MODIFICA AL 10/12/06:

ok, questa è praticamente la migliore costruzione che posso ottenere, vedi se qualcuno ha idee migliori.

Teorema. Per ogni Esiste un NFA sopra gli alfabeti con tale che la stringa più corta non in è di lunghezza .( 5 n + 12 ) M Σ | Σ | = 5 L ( M ) ( 2 n - 1 ) ( n + 1 ) + 1n(5n+12)MΣ|Σ|=5L(M)(2n1)(n+1)+1

Questo ci darà .f(n)=Ω(2n/5)

La costruzione è praticamente la stessa di quella di Shallit , tranne per il fatto che costruiamo direttamente un NFA invece di rappresentare prima la lingua con un'espressione regolare. Permettere

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

Per ogni , costruiremo un linguaggio di riconoscimento NFA , dove è la seguente sequenza (ad esempio ):Σ - { s n } s n n = 3nΣ{sn}snn=3

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

L'idea è che possiamo costruire un NFA composto da cinque parti;

  • uno starter , che assicura che la stringa inizi con ;[00][00][01]
  • un terminatore , che assicura che la stringa termini con ;[11][11][01]
  • un contatore , che mantiene il numero di simboli tra due 's come ;nn
  • un controllo aggiuntivo , che garantisce che vengano visualizzati solo i simboli con la forma ; finalmente,xx+1
  • un controllore coerente , che garantisce che solo i simboli con la forma possano comparire contemporaneamente.xyyz

Nota che vogliamo accettare invece di , quindi una volta scoperto che la sequenza di input disobbedisce a uno dei comportamenti sopra, accettiamo immediatamente la sequenza. Altrimenti dopopassi, l'NFA sarà nell'unico stato di rifiuto possibile. E se la sequenza è più lunga di, accetta anche l'NFA. Pertanto, qualsiasi NFA soddisfa le cinque condizioni precedenti rifiuterà solo .{ s nΣ{sn}| s n | | s n | s n{sn}|sn||sn|sn

Può essere facile controllare direttamente la seguente figura anziché una prova rigorosa:

NFA per il rifiuto di s_n

Iniziamo dallo stato in alto a sinistra. La prima parte è il dispositivo di avviamento e il contatore, quindi il controllore coerente, il terminatore, infine il controllore aggiuntivo. Tutto l'arco senza nodi terminali punta allo stato in basso a destra, che è un accettore di tutti i tempi. Alcuni bordi non sono etichettati a causa della mancanza di spazi, ma possono essere recuperati facilmente. Una linea tratteggiata rappresenta una sequenza di stati con bordi .n - 2n1n2

Possiamo (dolorosamente) verificare che l'NFA respinga solo , poiché segue tutte e cinque le regole precedenti. Quindi è stato costruito un NFA con , che soddisfa il requisito del teorema. ( 5 n + 12 ) | Σ | = 5sn(5n+12)|Σ|=5

Se ci sono problemi di non lucidità / problemi con la costruzione, lascia un commento e proverò a spiegarlo / risolverlo.


Questa domanda è stata studiata da Jeffrey O. Shallit et al., E in effetti il ​​valore ottimale di è ancora aperto per . (Per quanto riguarda il linguaggio unario, vedi i commenti nella risposta di Tsuyoshi )| Σ | > 1f(n)|Σ|>1

Nelle pagine 46-51 del suo discorso sull'universalità , ha fornito una costruzione tale che:

Teorema. Per per qualche abbastanza grande, c'è un NFA su alfabeti binari tale che la stringa più corta non in è di lunghezza per .N n M L ( M ) Ω ( 2 c n ) c = 1 / 75nNNnML(M)Ω(2cn)c=1/75

Pertanto, il valore ottimale per è compreso tra e . Non sono sicuro che il risultato di Shallit sia stato migliorato negli ultimi anni.2 n / 75 2 nf(n)2n/752n


Sto giocando con il lavoro di Shallit, spero di ottenere un limite migliore molto vicino a . La loro costruzione sembra interessante, specificando una sequenza di lunghezza che non può essere rappresentata da una "breve" espressione regolare di lunghezza , e ogni espressione regolare di lunghezza può essere descritto da un NFA di dimensione . Attualmente sono in grado di lasciare , ma è necessaria un'idea più intelligente per avvicinarsi . Ω ( 2 n ) c n + o ( n ) f ( n ) f ( n ) + 1 c 22 2 n2nΩ^(2n)cn+o(n)f(n)f(n)+1c222n
Hsien-Chih Chang 張顯 之

2
Non credo che fornisca ulteriori spunti per lo studio di questo problema, ma il riferimento scientifico appropriato per il discorso di Shallit è: K. Ellul, B. Krawetz, J. Shallit, M. Wang: Espressioni regolari: nuovi risultati e problemi aperti. Journal of Automata, Languages ​​and Combinatorics 10 (4): 407-437 (2005)
Hermann Gruber,

@Hermann: Grazie per il riferimento, al momento non riesco ad accedere al documento, ma troverò un modo per farlo.
Hsien-Chih Chang 張顯 之

Penso che usando il contatore possiamo sostituire lo starter e il terminatore con una minuscola macchina a 2 stati. Quindi questo riduce ulteriormente le dimensioni di NFA a . 3n+O(1)
Hsien-Chih Chang 張顯 之

1
La versione prestampata dell'autore del noto documento JALC è qui: cs.uwaterloo.ca/~shallit/Papers/re3.pdf Il limite e la prova sono gli stessi nella versione stampata.
Hermann Gruber,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.