Algoritmo per verificare se una lingua è regolare


11

Esiste un algoritmo / procedura sistematica per verificare se una lingua è regolare?

In altre parole, dato un linguaggio specificato in forma algebrica (pensa a qualcosa come ), verifica se il linguaggio è regolare o meno. Immagina di scrivere un servizio web per aiutare gli studenti a fare tutti i compiti; l'utente specifica la lingua e il servizio Web risponde con "normale", "non regolare" o "non lo so". (Vorremmo che il servizio web rispondesse "Non lo so" il più raramente possibile.) Esiste un buon approccio per automatizzare questo? È trattabile? È decidibile (cioè è possibile garantire che non abbiamo mai bisogno di rispondere "Non lo so")? Esistono algoritmi ragionevolmente efficienti per risolvere questo problema ed essere in grado di fornire una risposta diversa da "non lo so"L={anbn:nN}

Il metodo classico per dimostrare che una lingua non è regolare è il lemma del pompaggio. Tuttavia, sembra che a un certo punto sia necessario un approfondimento manuale (ad esempio, per scegliere la parola da pompare), quindi non sono chiaro se questo possa essere trasformato in qualcosa di algoritmico.

Un metodo classico per dimostrare che una lingua è regolare sarebbe usare il teorema di Myhill-Nerode per derivare un automa a stati finiti. Sembra un approccio promettente, ma richiede la capacità di eseguire operazioni di base sulle lingue in forma algebrica. Non mi è chiaro se esiste un modo sistematico per eseguire simbolicamente tutte le operazioni che potrebbero essere necessarie, su linguaggi in forma algebrica.


Per porre bene questa domanda, dobbiamo decidere come l'utente dovrà specificare la lingua. Sono aperto ai suggerimenti, ma sto pensando a qualcosa del genere:

L={E:S}

dove è un'espressione di parole e è un sistema di disuguaglianze lineari sulle variabili di lunghezza, con le seguenti definizioni:SES

  • Ognuno di è un'espressione di parole. (Rappresentano variabili che possono assumere qualsiasi parola in .)Σ x,y,z,Σ

  • Ognuno di è un'espressione di parole. (Qui rappresenta il rovescio della stringa .)x r xxr,yr,zr,xrx

  • Ciascuno di è un'espressione di parole. (Implicitamente, , quindi rappresentano un singolo simbolo nell'alfabeto sottostante.)Σ = { a , b , c , ... } a , b , c , ...a,b,c,Σ={a,b,c,}a,b,c,

  • Ognuno di è un'espressione di parole, se è una variabile di lunghezza.ηaη,bη,cη,η

  • La concatenazione di espressioni di parole è un'espressione di parole.

  • Ognuno di è una variabile di lunghezza. (Questi rappresentano variabili che possono assumere qualsiasi numero naturale.)m,n,p,q,

  • Ciascuno di è una variabile di lunghezza. (Questi rappresentano la lunghezza di una parola corrispondente.)|x|,|y|,|z|,

Questo sembra abbastanza ampio da gestire molti dei casi che vediamo negli esercizi da manuale. Naturalmente, puoi sostituire qualsiasi altro metodo testuale per specificare una lingua in forma algebrica, se hai un suggerimento migliore.


Non ho ancora avuto il tempo di pensare molto alla tua scelta delle espressioni linguistiche. Approssimativamente che tipo di lingue copre? Se aggiungi il vincolo che una variabile di parola si presenta una sola volta, tutte queste lingue sono senza contesto?
Gilles 'SO- smetti di essere malvagio' il

Forse puoi provare a scrivere stesso con una grammatica? Come e, è succintamente quello che descrivi? EE::=cηxEEErη::=n|x|
jmad

1
Puoi esprimere quindi questo va ben oltre le lingue senza contesto. Tuttavia, sospetto che il problema sia difficile almeno quanto decidere se una grammatica senza contesto definisce un linguaggio regolare. {anbncnnN}
Gilles 'SO- smetti di essere malvagio' il

@jmad, sì, sarebbe perfettamente ragionevole. Non sono legato a questa scelta di espressioni linguistiche: sentiti libero di scegliere qualcos'altro, se vedi qualcos'altro più appropriato. Gilles, grande angolo d'attacco! (Per gli spettatori, ci sono risultati noti che dimostrano che verificare se una grammatica arbitraria senza contesto definisce una lingua normale è indecidibile.) Se il problema è indecidibile, suggerirei di modificare il problema per consentire al servizio Web di rispondere "I don "t know", quindi chiedi un algoritmo che risponda "non lo so" il più raramente possibile.
DW

Questa classe non è chiusa sotto la stella Kleene, vero? Sai esprimere parentesi equilibrate?
Gilles 'SO-smetti di essere malvagio' il

Risposte:


13

La risposta è no. Decidere se una determinata grammatica senza contesto genera una lingua regolare è un problema indecidibile.

Aggiornamento . Ho dato questa risposta negativa alla domanda generale

Data una lingua specificata in forma algebrica, verifica se la lingua è regolare o meno

poiché le lingue senza contesto sono soluzioni di equazioni algebriche nelle lingue: vedere il capitolo II, Teoremi 1.4 e 1.5 nel libro di J. Berstel Transductions e Context-Free Languages .

Tuttavia, la stessa domanda è decidibile per linguaggi deterministici senza contesto, un risultato non banale dovuto a Stearns [1] e migliorato da Valiant [2]:
[1] RE Stearns, un test di regolarità per macchine pushdown, informazioni e controllo 11 323- 340 (1967). DOI: 10.1016 / S0019-9958 (67) 90.591-8.
[2] LG Valiant. Regolarità e relativi problemi per automi deterministici di pushdown J. ACM 22 (1975), pagg. 1–10.

C'è un altro risultato positivo, più vicino alle specifiche fornite nella seconda parte della domanda. Ricordiamo che i sottoinsiemi semilineari di sono esattamente gli insiemi definibili nell'aritmetica di Presburger. Ci sono anche i sottoinsiemi razionali di . In particolare, un sottoinsieme di definito da disequazioni lineari è razionale. Ora, dato un sottoinsieme razionale di , è decidibile se la lingua è regolare. In effetti, è noto [Ginsburg-Spanier] che è regolare se e solo se è un sottoinsieme riconoscibile diNkNkNkRNk

L(R)={u1n1uknk(n1,...,nk)R}
L(R)RNk ed è determinabile [Ginsburg-Spanier] se è riconoscibile un dato sottoinsieme razionale di .Nk

S. Ginsburg ed EH Spanier., Semigruppi, formule di Presburger e lingue , Pacific J. Math. 16 (1966), 285-296.

S. Ginsburg e EH Spanier. Set regolari limitati , Proc. della matematica americana. Soc. 17 , 1043-1049 (1966).

Questo non risolve la seconda parte della domanda, che potrebbe essere indecidibile a causa delle variabili delle parole, ma dà un frammento ragionevole per cominciare.


(a) Niente pedante: non mi è chiaro se la sintassi algebrica sopra sia abbastanza generale per esprimere tutte le grammatiche libere dal contesto (come Gilles e io abbiamo accennato nei commenti), quindi non è del tutto chiaro se quel particolare risultato si applichi qui . (b) Più importante: si prega di considerare la dichiarazione del problema opportunamente ottimizzata in modo tale che il servizio web possa rispondere "Non lo so" e vorremmo trovare un algoritmo che risponda "Non lo so" come raramente il più possibile. Ho precedentemente suggerito questo nei commenti; Modificherò la domanda per renderlo più chiaro nella domanda stessa.
DW

Ho il sospetto che tu possa adattare la prova, ma il risultato non segue. Penso che ci siano linguaggi senza contesto che non possono essere espressi in questo formalismo: ad esempio, come si esprimono parentesi equilibrate? La classe di lingue non è chiusa sotto la stella Kleene, vero?
Gilles 'SO- smetti di essere malvagio' il

@Gilles, sì, ci ho pensato. Non mi è subito chiaro come adattare la prova. La prova standard che è indecidibile dire se una grammatica senza contesto è regolare è tramite il teorema di Greibach. Tuttavia, non mi sembra che questa classe di lingue soddisfi le premesse del teorema di Greibach (non sembra essere chiuso in concatenazione con insiemi regolari e chiuso in unione). Forse c'è qualche altro approccio di prova che non conosco. Sono d'accordo, non è chiaro come esprimere il linguaggio delle parentesi bilanciate in questa forma algebrica.
DW

Ho appena aggiunto i riferimenti.
J.-E.

Il tuo post non risponde alla domanda, perché si rivolge a una diversa classe di lingue. Le forme algebriche consentite qui (con una sola parola) non sono (per quanto ne sappiamo) generiche quanto le forme algebriche necessarie per esprimere linguaggi arbitrari senza contesto. Potrebbe essere il caso che per l'intersezione dei due, il problema sia decidibile.
Gilles 'SO- smetti di essere malvagio' il
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.