Dimostrando che la lingua è regolare o non regolare


8

Sia un linguaggio regolare. Prova che:L

  1. L+={w:u|u|=2|w|wuL}

  2. L++={w:u2|u|=|w|wuL}

  3. L+={w:u,v|u|=|w|=|v|uwvL}

sono regolari e:

  1. L++={uv:w|u|=|w|=|v|uwvL}

non è regolare.

Mi sembra molto difficile. Suppongo che 1-3 siano simili (ma potrei sbagliarmi), ma non so come avvicinarmi. L'idea generale è di solito di modificare la macchina a stati finiti affinché accetti un'altra lingua. Ma quelle costruzioni sono spesso molto sofisticate e non riesco ancora a pensarci da solo.L



Non sono sicuro che le tue affermazioni siano corrette perché, secondo il teorema di Myhill-Nerode, le prime tre lingue hanno infinite classi di equivalenza! per la prima: prendi essere l'i-esimo in e sia la (i + 1) -esima parola, quindi per ogni io puoi scegliere per mostrare che esiste un parola che separa le classi di ewiL+wi+1uiwiwi+1
Fayez Abdlrazaq Deab

@Fayez Cosa succede se, ad esempio, ? Quindi ha solo una classe di equivalenza. Vai oltre la prova e vedi cosa non va. L=ΣL+=Σ
Yuval Filmus

@Bartek e tutti gli altri che votano per chiudere: metà della domanda riguarda in realtà la prova che determinate operazioni sulle lingue conservano la proprietà di essere regolari.
Yuval Filmus

Risposte:


5

Ecco una prova che la lingua è regolare. Può essere modificato per mostrare che i primi tre del tuo elenco sono regolari. (Nota che ho cambiato in .) Dato un DFA per , costruiamo un NFA per . La prima cosa che fa NFA è indovinare (prendere una mossa ) uno stato , la cui semantica prevista è lo stato in cui il DFA per finisce dopo aver letto . Quindi esegue simultaneamente due copie del DFA per , una che inizia nello stato iniziale e l'altra che inizia in . Alla lettura di un simboloL0={w:u|u|=|w|uwL}wuuwLL0ϵqLuLqa, si muove secondo un simbolo arbitrario sul primo e si muove secondo sul secondo. Uno stato accetta se la prima copia è nello stato e la seconda è in uno stato accettante.aq

Per l'ultimo, considera la lingua e interseca con .L=a+b+c+L++a+c+


Non lo vedo. , che è chiaramente una lingua normale. Ma suppongo di sbagliarmi :) Puoi indicarmi la giusta direzione? L=a+b+c+L++a+c+={ancm:n+m20}
xan,

Sono riuscito a modificare la tua costruzione di e persino a rimuovere le mosse di modo che diventi più elegante (secondo me). Quindi i primi tre problemi sono stati risolti e grazie per quello! :) Ma l'unica cosa che ti chiedo è di chiarire quella finale e le mie preoccupazioni nel commento sopra. Sarei molto grato. L0ε
xan,

Quando computo ottengo qualcos'altro. Nota che ogni parola in deve contenere a . L++a+c+Lb
Yuval Filmus

Spiacenti, ma non so come calcolare . Suppongo che il risultato sia che ci dia quello che vogliamo, ma non so proprio come giustificarlo. L++a+c+{ancn:nN}
xan,

Ok, ora posso vedere :-)
1313
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.