Prove que os idiomas regulares estão fechados no operador de ciclo

8

Eu tenho alguns dias em um exame e tenho problemas para resolver esta tarefa.

Seja uma linguagem regular sobre o alfabeto . Temos a operação E agora devemos mostrar esse também é regular.LΣcycle(L)={xyx,yΣ and yxL}cycle(L)

A referência é que poderíamos construir a partir de um DFA com a -NFA com e estados.D=(Q,Σ,δ,q0,F)L(D)=LϵNL(N)=cycle(L)2·|Q|2+1

user1594
fonte
Exercício 5.4 , com vencimento em 24 de maio.
Raphael

Respostas:

15

A idéia é decidir não-deterministicamente no início quanto a palavra é alternada e ter uma cópia do autômato para cada caso. Em termos de autômato, isso significa que adivinhamos em que estado estaria depois de consumir o prefixo de uma palavra (que é um sufixo de nossa entrada) e começamos nesse estado.D

Agora a construção. Para cada estado , separe em duas partes e . contém os estados dos quais é alcançável e os estados que são alcançáveis ​​de :qQDA1A2A1qA2q

insira a descrição da imagem aqui
[ fonte ]

Observe que qualquer nó pode estar contido em e . Portanto, o número de estados pode dobrar se explicitarmos essa etapa.A1A2

Agora reconectamos esse autômato para que ele aceite todas as palavras para as quais marca o "ponto de ciclo":q

insira a descrição da imagem aqui
[ fonte ]

Nós temosautômatos desta forma; crie um novo estado inicial que tenha -transitions para todos os seus estados iniciais. O autômato resultante aceita . No total, obtemos no máximo estados, apenassão possíveis mais estados do que as reivindicações de referência.|Q|εcycle(L)|Q|(2|Q|+1)+1|Q|

Você pode alcançar estados modificando um pouco os autômatos do componente; elimine todas as substituindo as entrada por cópias de suas transições de saída. Ou seja, para cada par de transições , introduza uma transição .2|Q|2+1q0ε(q1,ε,q0),(q0,a,q2)(q1,a,q2)

Construção rigorosa e prova de correção permanecem como exercício.

Rafael
fonte
mas como você pode provar isso, acabou de criar um nfa?
Sad Golduhren
3
@SadGolduhren Raphael construiu um NFA (é finito porque existe um limite finito no número de estados). Para ver que este NFA reconhece o mesmo idioma que o original, observe os caminhos através dos autômatos: e (onde é qualquer estado final alcançado de ) se torne e e concluem o caminho. q0qqqFqFqqqFq0qqFϵq0
Gilles 'SO- stop be evil'