È


9

Ho sostenuto la mia teoria degli esami di calcolo qualche settimana fa, e questa era una delle domande:

Supponiamo che la linguaL={(un'nBm)r|n,m,r0}

L è regolare? Se sì, fornisci un'espressione regolare o un automa.

Dopo che gli ho brevemente chiesto la risposta dopo l'esame, sembra che sia davvero regolare (credo che abbia detto che l'espressione è semplice ). Tuttavia, non riesco a capire perché. Per come la vedo io, sta concatenando r volte, in questo modo:(un'*B*)*un'nBm

anbmanbmanbm...anbmanbm ,

che non è regolare poiché non c'è modo per un automa di ricordare n e m ogni volta. Dove sono in colpa qui?

EDIT: ho parlato di nuovo con il professore, ha ammesso che è stato un errore. La lingua non è davvero regolare.


14
Dovresti chiedere al tuo insegnante se la lingua è uguale alla lingua . Se dice "sì", digli che ti ho detto che la sua domanda era mal formata. LK={an1bm1an2bm2anrbnrr0,a1,,ar0,b1,,br0}
Andrej Bauer,

1
Questo sembra l'unico modo in cui potrebbe essere regolare, e in effetti questo è quello che inizialmente ho pensato e considerato in modo frettoloso (a b ) *, ma poi l'ho cancellato rendendomi conto che n e m rimanevano uguali (o dovrebbero ..), e ho dato una dispensa del lemma di pompaggio per r = 2, dicendo che lo stesso valeva per r più grande (probabilmente non è esattamente una soluzione completa, ma sembra essere nella giusta direzione). Inutile dire che ho 0 per quella domanda. Proverò a contattarlo.

Comprenderei sicuramente la domanda come hai fatto inizialmente.
Andrej Bauer,

Vedi qui per altri modi per dimostrare che una lingua non è regolare.
Raffaello

potresti anche provare lo stesso con l'aiuto del pompaggio del lemma
SAHIL THUKRAL

Risposte:


10

La lingua non è regolare, come si può dimostrare usando il metodo di Nerode. Prendere in considerazione le seguenti parole w n = un n b per n N . Poi w 2 nL , ma per n m , w n w mL . Quindi ogni automa per L deve trovarsi in uno stato diverso dopo aver letto ogni w n , il che contraddice la sua finezza.Lwn=anbnNwn2LnmwnwmLLwn


4

Nel suo commento si suggerimento che (cito) "ha dato un pompaggio lemma disproval per , dicendo la stessa applicata per i più grandi r ".r=2r

Questo può effettivamente essere formalizzato applicando una proprietà di chiusura. Le lingue normali sono chiuse sotto intersezione. Quindi se è regolare, allora lo sarebbe anche L a b a b = { a n b a n b n 0 } , impostando effettivamente r = 2 e m = 1 .LLabab={anbanbn0}r=2m=1


1
Caro lettore, ti preghiamo di non togliere "se non è regolare, quindi nemmeno L L ", perché è falso! LLL
Raffaello

1
@Raphael Right. Quindi l'implicazione corretta sarebbe "se non è regolare, quindi nemmeno L ", dove R è regolare. LRLR
Hendrik Jan

1
Ovviamente. Ero preoccupato che i novizi potessero leggere "un'impostazione efficace ..." e applicarlo senza usare le proprietà di chiusura.
Raffaello

0

La lingua: {(a n b m ) r | n, m, r≥0} non è regolare, perché mentre l'automa / macchina legge la prima sequenza di lettere 'a' e quindi le lettere 'b', deve contare il numero di volte in cui legge la lettera 'a' e il numero di volte in cui ha letto la lettera 'b' nella prima sequenza per conoscere il valore di n e m .

Se r> 1, è prevista un'altra stessa sequenza di lettere 'a' e lettere 'b'.

Se l'automa / macchina non non sa quante lettere 'a' e 'b lettere' si leggeva nella prima sequenza allora anche non non conosce il valore di n e m , e quindi si può non dire se le altre sequenze dalla seconda all'ultima sono parole uguali alla prima sequenza.

Ma è noto che solo Macchina di Turing può contare e conoscere i valori di n ed m e riconoscere il linguaggio di cui sopra, in modo non solo che la lingua di cui sopra è non regolare, ma anche è anche non contesto libero, vale a dire lo fa anche non esiste un automa pushdown per riconoscere questa lingua e non esiste una grammatica libera dal contesto che ogni parola derivata da quella grammatica libera del contesto sia nella lingua sopra.

Perché il fatto che sia deterministico finiti automa a pila finiti automa può non contare e conoscere i valori di n ed m , a differenza macchina di Turing, possono non riconoscono il linguaggio sopra e quindi la lingua sopra è non libera dal contesto e non è regolare.

Controesempio al presupposto che la lingua sopra è regolare:

Per n = 3 ∧ m = 5 ∧ r = 2 , la parola seguente è nella lingua sopra:

aaabbbbbaaabbbbb

Ma la parola seguente non è nella lingua:

aaabbbbbaaaaabbb, perché non non esiste n, m ed r così:

(a n b m ) r = aaabbbbbaaaaabbb, perché per soddisfare la prima sequenza di lettere 'a' e poi le lettere 'b', deve essere vero che n = 3 ∧ m = 5 , e perché vediamo 2 sequenze di lettere ' a 'e quindi le lettere' b ', quindi r = 2 , ma se n = 3 ∧ m = 5 ∧ r = 2 quindi (a n b m ) r = (a 3 b 5 ) 2 = (aaabbbbb) 2 = aaabbbbbaaabbbbb ≠ aaabbbbbaaaaabbb, perché i loro suffissi sono diversi, ovvero aaabbbbb ≠ aaaaabbb, sebbene i loro prefissi siano uguali a aaabbbbb per r = 1.

L'automa deterministico finito "migliore" che può essere costruito per questo linguaggio è l'automa finito deterministico che riconosce l'espressione regolare (a * b *) *, ma non riconosce il linguaggio sopra, perché dice che entrambe le parole aaabbbbbaaabbbbb e aaabbbbbaaaaabbb sono nella lingua e questo non è vero, perché aaabbbbbaaabbbbb è nella lingua, ma aaabbbbbaaaaabbb non è nella lingua.

Neanche l'automa finito pushdown può dire se entrambe le parole sono nella lingua o no, quindi solo la macchina di Turing può farlo.

Nella seconda sequenza, la macchina di Turing ha scoperto che n = 5 ∧ m = 3 e questo contraddice che nella prima sequenza ha trovato che n = 3 ∧ m = 5 , quindi dice che la seconda parola non è nella lingua , ma nessuna contraddizione si trova nella prima parola.

Entrambe le sequenze soddisfano che n = 3 ∧ m = 5 , quindi la macchina di Turing afferma che la prima parola è nella lingua.

Solo la macchina di Turing può, se conta e ricorda i valori di n e m scrivendo il loro valore sul suo nastro e in seguito li legge.

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.