Lingue senza contesto chiuse sotto Inversione


8

In classe questa settimana abbiamo imparato a conoscere i CFL e le loro proprietà di chiusura. Ho visto prove di unione, intersezione e complimenti, ma per l'inversione il mio conferenziere ha appena dichiarato chiuso. Volevo vedere la prova, quindi ho cercato negli ultimi giorni, ma tutto quello che ho trovato è che la maggior parte della gente dice solo che per invertire le produzioni è sufficiente per dimostrarlo. Quelli che diventano un po 'più formali affermano che esiste una semplice prova induttiva che puoi dare. Qualcuno può fornirmi ulteriori informazioni / suggerimenti sulla prova induttiva? Per quanto ci provi, non riesco a pensarci.

Risposte:


11

Le tue fonti sono giuste e temo che ci sia solo poco da aggiungere, tranne il formalismo. I la retromarcia (specchio) di stringa per .wwR

Se è una grammatica, lasciate essere il suo invertita, quindi per la produzione di in dobbiamo a .GHAwGAwRH

Poi per induzione mostriamo che se e solo se .AGwAHwR

  • ( Base ) a Zero passi che abbiamo se e solo se .AG0AAH0A
  • ( induzione ) Supponendo iff possiamo applicare qualsiasi produzione in (e in al contrario) e ottenere e rispettivamente, dove effettivamente è il contrario di .AGw1Bw2AHw2RBw1RBuGHAGw1uw2AHw2RuRw1Rw2RuRw1Rw1uw2

Questa è una prova molto condensata, ma contiene tutti gli ingredienti necessari. Ancora una volta, una derivazione della grammatica inversa è il contrario di quella originale. Ciò è particolarmente chiaro quando si osservano i due alberi di derivazione.


questo vale per un linguaggio libero dal contesto deterministico.
Akashchandrakar,

@aksam Deterministic CFL non sono chiusi per inversione. Il determinismo della nota per CFL di solito è definito con automi pushdown, non grammatiche.
Hendrik Jan

7

C'è un altro modo di esaminare questo problema.

Considera che il linguaggio è un CFL. Ciò significa che esiste una grammatica che soddisfa il CFL. Possiamo presumere che questo sia in forma normale di Chomsky.LG={N,,P,S}

Se fa parte del linguaggio, anche banalmente fa parte del linguaggio. Ora per ogni produzione del modulo , sostituirlo con, e per le produzioni del modulo , dove , lasciarlo lo stesso.ϵϵRP1ABP1BAP1aa

Dall'albero di analisi della stringa derivata, è facile vedere che la lingua derivata sarà esattamente il contrario della lingua iniziale poiché la costruzione rispecchia l'albero di analisi originale.


Non penso che questo sia "un altro modo": è esattamente allo stesso modo espresso in un modo diverso (e in realtà, penso, più facile da seguire). La parte in cui dici "è facile da vedere" è la parte in cui arriva l'induzione. Comunque, +1 poiché questa risposta è sicuramente utile.
David Richerby,

4

Prima di tutto I CFL non sono chiusi sotto intersezione o complemento (o differenza per quella materia). Sono chiusi sotto Unione, Concatenazione, chiusura della stella di Kleene, sostituzione, omomorfismo, omomorfismo inverso e inversione. NOTA: i due omomorfismi di solito non sono trattati in un corso di introduzione alla teoria dei computer.

Per dimostrare l'inversione, Sia L un CFL, con grammatica G = (V, T, P, S). Sia L R il contrario di L, in modo tale che la grammatica sia G R = (V, T, P R , S). Cioè, invertire ogni produzione.

Ex. P -> AB diventerebbe P -> BA

Poiché G R è un CFG, quindi L (G R ) è un CFL.


Benvenuti nel sito! Sono sorpreso che nessuno abbia notato prima che la domanda afferma erroneamente che i CFL sono chiusi sotto intersezione e complemento.
David Richerby,
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.