Prova che le lingue normali sono chiuse sotto l'operatore del ciclo


8

Ho tra qualche giorno un esame e ho problemi per risolvere questo compito.

Sia una lingua normale sull'alfabeto . Abbiamo l'operazione E ora dovremmo mostrare che è anche regolare.LΣcycle(L)={xyx,yΣ and yxL}cycle(L)

Il riferimento è che potremmo costruire da un DFA con a -NFA con e stati.D=(Q,Σ,δ,q0,F)L(D)=LϵNL(N)=cycle(L)2·|Q|2+1


Esercizio 5.4 , in scadenza il 24 maggio.
Raffaello

Risposte:


15

L'idea è quella di decidere in modo non deterministico all'inizio di quanto la parola sia ciclica e di avere una copia dell'automa per ogni caso. In termini di automa, ciò significa che indoviniamo in quale stato sarebbe stato dopo aver consumato il prefisso di una parola (che è un suffisso del nostro input) e iniziamo in quello stato.D

Ora la costruzione. Per ogni stato , separa in due parti e . contiene gli stati da cui è raggiungibile e gli stati che sono raggiungibili da :qQDUN1UN2UN1qUN2q

inserisci qui la descrizione dell'immagine
[ fonte ]

Si noti che un determinato nodo può essere contenuto sia in che in . Pertanto, il numero di stati può raddoppiare se rendiamo esplicito questo passaggio.UN1UN2

Ora ricolleghiamo questo automa in modo che accetti tutte le parole per le quali indica il "punto ciclo":q

inserisci qui la descrizione dell'immagine
[ fonte ]

Otteniamoautomi di questo modulo; crea un nuovo stato iniziale che ha -transitions a tutti i loro stati iniziali. L'automa risultante accetta . Complessivamente, otteniamo al massimo stati, solosono possibili più stati rispetto alle rivendicazioni di riferimento.|Q|εciclo(L)|Q|(2|Q|+1)+1|Q|

È possibile ottenere stati modificando leggermente gli automi dei componenti; elimina tutto sostituendo le transizioni arrivo con copie delle sue transizioni in uscita. Cioè, per ogni coppia di transizioni , introdurre una transizione .2|Q|2+1q0ε(q1,ε,q0),(q0,un',q2)(q1,un',q2)

La costruzione rigorosa e la prova di correttezza rimangono come esercizio.


ma come puoi dimostrarlo hai appena fatto un nfa?
Sad Golduhren,

3
@SadGolduhren Raphael ha costruito un NFA (è finito perché c'è un limite finito al numero di stati). Per vedere che questo NFA riconosce la stessa lingua dell'originale, osserva i percorsi attraverso gli automi: e (dove è uno stato finale raggiunto da ) diventa e e completa il percorso. q0qqqFqFqqqFq0q'qFεq0
Gilles 'SO- smetti di essere malvagio'
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.