Decidibilità delle lingue di grammatica e automi


16

Nota che questa è una domanda relativa allo studio in un corso CS presso un'università, NON è un compito a casa e può essere trovato qui sotto l'esame dell'autunno 20112.

Ecco le due domande che sto esaminando da un esame passato. Sembrano essere collegati, il primo:

Permettere

FINITECFG={<G>∣G is a Context Free Grammar with |L(G)|<}

Dimostra che è una lingua decidibile. FINITECFG

e...

Permettere

FINITETM={<M>∣M is a Turing Machine with |L(M)|<}

Dimostra che FINITETM è un linguaggio indecidibile.

Sono un po 'perso su come affrontare questi problemi, ma ho alcune intuizioni che penso possano essere nella giusta direzione. La prima cosa di cui sono a conoscenza è che la lingua AREX , dove

AREX={<R,w>∣R is a regular expression with wL(R)}

è un linguaggio decidibile (la prova è nella teoria della computazione di Michael Sipser , pag. 168). La stessa fonte dimostra anche che una grammatica libera da contesto può essere convertita in un'espressione regolare e viceversa. Quindi ACFsol , deve anche essere decidibile in quanto può essere convertito in un'espressione regolare. Questo, e il fatto che ATM è un -decidable, sembra essere correlato a questo problema.

L'unica cosa che mi viene in mente è passare G alle macchine di Turing per (dopo aver convertito G in un'espressione regolare) e . Quindi accettando se G fa e rifiutando se G no. Poiché è indecidibile, ciò non accadrà mai. In qualche modo mi sento come se stessi commettendo un errore qui, ma non sono sicuro di cosa sia. Qualcuno potrebbe darmi una mano, per favore? A T M A T MAREXUNTMUNTM


5
"una grammatica libera dal contesto può essere convertita in un'espressione regolare, e viceversa" Non è vero (a meno che tu non lo interpreti come "esiste un CFG che può essere convertito in un'espressione regolare", ma non penso che sia quello che significava). Le grammatiche regolari possono essere convertite in espressioni regolari. Non esiste un algoritmo per convertire i CFG in espressioni regolari per il semplice motivo che la maggior parte delle lingue libere dal contesto (cioè tutte le lingue libere dal contesto che non sono anche lingue normali) non possono essere descritte usando un'espressione regolare.
sepp2k,

Risposte:


9
  1. Converti G in forma normale di Chomsky . In questo modo, l'unica derivazione vuota sarebbe il simbolo iniziale che non appare da nessun'altra parte e quindi se c'è una produzione che può eventualmente generare se stessa, la grammatica è infinita. Se non esiste tale produzione, ciascun simbolo sarà in grado di generare solo un set finito di stringhe, quindi la grammatica sarà limitata. Quindi, crea un grafico diretto in cui ogni produzione è un nodo e ogni simbolo all'interno di una produzione è un bordo destinato a quel simbolo. Se il grafico ha qualche ciclo, il CFG è infinito, altrimenti non lo è. Quindi una macchina di Turing per potrebbe essere costruita facendo esattamente questo, e quindi è decidibile. F I N I T E C F GFINITECFGFINITECFG

  2. Supponiamo che sia decidibile. Diciamo che è una macchina di Turing che ha una stringa come input e si utilizza come input per . Se restituisce true (ovvero, accetta solo un linguaggio finito), quindi accetta l'input, il che porta a una contraddizione poiché l'insieme di input è infinito (la lunghezza dell'ingresso è illimitata, quindi accetta qualsiasi stringa possibile come input significa accettando una serie infinita di stringhe). Se restituisce false (ovvero il linguaggio è infinito), rifiuta l'input, il che significa cheFINITETMHFINITETMFINITETMHHFINITETMHHHIl linguaggio è finito perché non accetta alcun input (cioè il suo linguaggio è vuoto), il che porta anche a una contraddizione. In questo modo, la supposizione che esista porta alla contraddizione, e questa supposizione si basa sulla supposizione che sia decidibile. Quindi, per contraddizione, abbiamo non decidibile.HFINITETMFINITETM

La stessa fonte dimostra anche che una grammatica libera da contesto può essere convertita in un'espressione regolare e viceversa.

Dubito davvero che Sipser lo affermi, probabilmente hai frainteso o frainteso. Ciò significherebbe che le grammatiche senza contesto generano esattamente gli stessi linguaggi delle grammatiche lineari a destra. Questo è falso; le grammatiche lineari rette generate sono un sottoinsieme proprio delle lingue grammatiche libere dal contesto dp. Detto questo, il modo in cui hai cercato di usare lingue normali per rispondere alle domande non ti porta da nessuna parte.

Come puoi vedere sopra nelle mie prove, le due domande sono davvero due domande ben distinte e non correlate. Succede solo che sono stati formulati in modo simile.


1
Sto riscontrando qualche problema dopo la seconda prova. OK, quindi passi da H a G, sì? Se G ritorna vero di H è finito, ha senso. Tuttavia, non ottengo che il set di input sia infinito, a che input fai riferimento?
Fratello Jack

1
@BrotherJack L' ingresso potrebbe essere di qualsiasi lunghezza, la sua lunghezza è illimitata. Potrebbe essere una stringa con un solo simbolo o un input lungo un milione di terabyte. In questo modo, i possibili input per sono un set infinito perché possiamo renderlo arbitrariamente grande. HH
Victor Stafusa,

1
OK. Questo sembra avere senso. Sarebbe accurato riferirsi a quell'input come "qualsiasi possibile stringa all'interno della lingua di input H"?
Fratello Jack

1
@BrotherJack - Ho modificato la risposta per chiarire questo punto.
Victor Stafusa,

1
Spiegazione eccellente! La ringrazio molto per il vostro tempo.
Fratello Jack

2

Un altro modo per decidere è attraverso il lemma di pompaggio.FINITECFG

Il lemma di pompaggio dice che ogni CFL ha un numero N (che può essere calcolato dalla grammatica, o almeno un suo limite superiore può essere facilmente calcolato), in modo tale che qualsiasi x L più lunga di N possa essere "pompata" ".LNxLN

Ciò significa che se è finito, tutte le parole L sono più corti N .LLN

Ora, tutto ciò che uno ha bisogno di controllare è le parole con lunghezze comprese tra e 2 N . Se esiste una tale parola, allora L è infinito. Non è troppo difficile vedere che questa affermazione è "se e solo se", quindi se non trovi alcuna parola all'interno di questo intervallo, L è finito. L'efficienza qui è molto peggiore della risposta di Victor, ma insegna qualcosa sulla struttura dei CFL.N2NLL

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.