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 :q∈ QDUN1UN2UN1qUN2q
[ 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
[ 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, a ,q2)(q1, a ,q2)
La costruzione rigorosa e la prova di correttezza rimangono come esercizio.