Una condizione sufficiente e necessaria sulla regolarità di una lingua


11

Quale delle seguenti affermazioni è corretta?

  1. esistono condizioni sufficienti e necessarie sulla regolarità di una lingua ma non ancora scoperte.
  2. Non ci sono condizioni sufficienti e necessarie sulla regolarità di una lingua.

  3. Il pompaggio del lemma è una condizione necessaria per la non regolarità di una lingua.

  4. Pompare il lemma è una condizione sufficiente per la non regolarità di una lingua.

So che # (4) è corretto e # (3) è falso perché "il contrario di questa affermazione non è vera: un linguaggio che soddisfa queste condizioni può essere ancora non regolare", ma cosa si può dire di (1) e (2)?


2
Preferirei dire che (4) è corretto: il lemma del pompaggio è progettato per mostrare che un po 'di lingua non è regolare (afferma che L è regolare allora ...). Inoltre, (3) è falso: en.wikipedia.org/wiki/…
jmad

Concordo con @jmad: il lemma di pompaggio è sufficiente, non necessario.
Patrick87

@jmad: L'articolo del WP a cui ho collegato la mia domanda sostiene che "sia la versione originale che quella generale del lemma di pompaggio forniscono una condizione necessaria ma non sufficiente per un linguaggio regolare".
Gigili

@Gigli: si. Regolare. Non "non regolare".
jmad

@jmad: Oops, hai ragione. Modificherò la domanda, grazie.
Gigili

Risposte:


18

Ecco alcune condizioni necessarie e sufficienti affinché una lingua sia regolare.

Teorema. Lascia . Le seguenti condizioni sono equivalenti:LΣ

  • L è generato da un'espressione regolare (cioè la definizione di linguaggio regolare).
  • L è riconosciuto da un automa finito non deterministico ( Kleene ).
  • εL è riconosciuto da un automa finito non deterministico senza transizioni di .ε
  • L è riconosciuto da un automa finito deterministico ( Scott e Rabin ).
  • ( N , Σ , P , S ) N Σ L è generato da una grammatica , dove è un sottoinsieme finito di ( Frazier and Page ).(N,Σ,P,S)NΣ
  • L è generato da una grammatica regolare sinistra-libera (o destra).
  • L'indice della relazione Nerode è finito (Anil Nerode, Trasformazioni di automi lineari , 1958). Questo è ampiamente (e erroneamente) noto come teorema di Myhill-Nerode. è la relazione utilizzata per creare il DFA minimo di un linguaggio normale.LLL
  • L'indice della relazione Myhill è finito (John Myhill, Finite Automata and the Representation of Events , 1957). è la relazione utilizzata per costruire il monoide sintattico di un linguaggio arbitrario.LLL
  • Il monoide sintattico di è finito (conseguenza del risultato di Myhill). Notiamo qui che il monoide sintattico, oltre ad essere definito usando la relazione , può essere definito come un monoide minimo (in termini di dimensioni) che riconosce come pre-immagine di un omomorfismo.L LLLL
  • L può essere riconosciuto da una Turing Machine di sola lettura (banale).
  • L può essere definito da una formula nella logica monadica del secondo ordine sulle stringhe ( Büchi ).

Se una lingua non non soddisfa le condizioni del lemma di pompaggio per linguaggi regolari , allora è non regolare. Ciò significa che pompare il lemma è una condizione sufficiente per la non regolarità di una lingua.

In sintesi, le affermazioni 1, 2 e 3 sono false, mentre l'istruzione 4 è vera, come hai detto.


Si noti che per l'ultima affermazione, dobbiamo limitarci a WMSO o, equivalentemente, parole finite. MSO in generale può anche esprimere linguaggi -regolari. ω
Raffaello

1
Potresti voler aggiungere " è riconosciuta da una grammatica libera da contesto regolare sinistra / destra", per amor di completamento. L
Alex ten Brink,

@AlextenBrink Dimenticato quello! Grazie per averlo menzionato. Hai un riferimento da includere?
Janoma

@ Janoma: scusa, non ne trovo nessuno. La prova è estremamente semplice (andando a un NFA e ritorno).
Alex ten Brink

9

È sufficiente (e necessario) dimostrare l'esistenza di un DFA, un NFA o un'espressione regolare per dimostrare che una lingua è regolare, che confuta (1) e (2). Per dimostrare che una lingua non è regolare è necessario dimostrare che non esiste un DFA, NFA o un'espressione regolare.

Il lemma del pompaggio è uno strumento utile per mostrare (forse per contraddizione) che un linguaggio non è regolare, dimostrando che non esiste un DFA.


1
Il lemma del pompaggio, tecnicamente parlando, mostra che non esiste un DFA per la lingua.
Patrick87

@ Patrick87: grazie. Ho modificato la risposta per aggiungere questo dettaglio.
Victor Stafusa,

1
Solo per il gusto di essere pedanti: le prove che usano il lemma di pompaggio non sono prove di contraddizione. Dato che provi un'affermazione negativa (P -> Falso), è perfettamente corretto dal punto di vista dell'intuizionista supporre che P valga.
gallais

2
Puoi scriverlo come prova per contraddizione: "Supponi che L sia regolare. Quindi c'è una costante di pompaggio . Scegli ... La parola pompata non è in Contraddizione. $w LpwL
Raffaello

1
Puoi scriverlo, ma non hai bisogno della contraddizione. Questo è il punto.
Janoma

6

La condizione "esiste un'espressione regolare che genera esattamente " è una condizione necessaria e sufficiente per la regolarità di una lingua , per grazia di essere la sua definizione.LLL

Questa condizione, tuttavia, non rende esattamente facile dimostrare la non regolarità di una lingua. Non sono a conoscenza di condizioni facili da verificare che dimostrino sempre la non regolarità di una lingua non regolare.

Esistono altri due "test" che possono dimostrare la non regolarità di una lingua (anche se potrebbero non funzionare): puoi provare a fornire un linguaggio regolare in modo che la loro unione / intersezione / differenza / concatenazione / quoziente non sia regolare ( ci sono più operazioni come questa) e puoi provare a contare quante parole genera e verificare se contraddice l'espressione per il numero di parole in una lingua normale (come puoi trovare sulla pagina Wikipedia che hai collegato).


6

C'è questa meravigliosa connessione tra teoria del linguaggio formale e serie di potenze formali dimostrate da Chomsky e Schützenberger [CS63] . Nella forma trovata in [SS78] Cap. II, Teorema 5.1

Sia un linguaggio regolare e un semiring. Quindi è -razionale.K c h a r ( L ) KLKchar(L)K

Quindi, se guardi la serie caratteristica di una lingua e risulta non essere razionale, non può essere una lingua normale. Quindi non devi usare sempre il lemma del pompaggio. Con l'aiuto dei sistemi di algebra del computer, un controllo del genere non è troppo difficile.char(L)

[SS78] Arto Salomaa e Matti Soittola. Aspetti teorici degli automi delle serie di potenze formali. Springer-Verlag, New York, 1978.

[CS63] Noam Chomsky e Marcel P. Schützenberger. La teoria algebrica dei linguaggi senza contesto. In P. Braffort e D. Hirschberg, editori, Programmazione informatica e lingue formali, pagine 118–161. Olanda settentrionale, 1963.


4

Secondo il teorema di Myhill-Nerode, una lingua è regolare se ci sono finitamente molte classi di equivalenza della relazione di indistinguibilità . Due stringhe e si dice che sono indistinguibili, scritto , se e solo se: x y x I L yILxyxILy

  1. Per tutte le stringhe tali che , anche . x z xL y z xLzxxzxLyzxL
  2. Per tutte le stringhe tale che , anche . y z yL x z yLzyyzyLxzyL

Intuitivamente, ciò corrisponde all'idea che ci siano finitamente molti stati nella macchina a stati. Infatti, il numero di classi di equivalenza distinte nell'ambito del relazione è appunto il numero di stati in un piccolo DFA . LILL

Myhill-Nerode è particolarmente utile perché puoi costruire prove positive (la lingua è normale) e prove negative (la lingua non è regolare) usando lo stesso framework: la relazione .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.