Concatenação de duas linguagens regulares

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

Predefinição:Sem notas Na teoria das linguagens formais, e em particular na teoria dos autômatos finitos não determinísticos, é conhecido que a concatenação de duas linguagens regulares é uma linguagem regular. Este artigo fornece uma prova desta afirmação.

Teorema

Para quaisquer linguagens regulares L1 e L2, a linguagem L1L2 é regular.[1]


Prova


Uma vez que L1 e L2 são regulares, existem AFNs N1e N2 que reconhecem L1 e L2, respectivamente.

A ideia é adicionar transições ε partindo dos estados de aceitação de N1 para o estado inicial de N2, significando que ele encontrou uma parte inicial da entrada que constitui uma cadeia em L1. Os estados de aceitação de N1 deixam de ser estados de aceitação, e o estado inicial de N2 deixa de ser estado inicial, passando a serem estados do autômato N.

Por conseguinte, N aceita uma cadeia de entrada quando podemos dividi-la em duas partes, sendo a primeira aceita por N1 e a segunda aceita por N2. Portanto, N "adivinha" não-deterministicamente onde fazer a divisão necessária.[2]


Seja

N1=(Q1, Σ, T1, q1, A1)
N2=(Q2, Σ, T2, q2, A2)


Vamos construir


N=(Q, Σ, T, q1, A2)


tal que


1. Q=Q1Q2

Os estados de N são todos os estados de N1 e N2.


2. O estado inicial q1 de N é o estado inicial de N1.


3. Os estados de aceitação A2 de N são os estados de aceitação de N2.


4. Defina T de modo que para qualquer qQ e qualquer xΣε,


T(q,x)={T1(q,x)qQ1 e qA1T1(q,x)qA1 e xεT1(q,x){q2}qA1 e x=εT2(q,x)qQ2

Predefinição:Referências

  1. Michael Sipser - Introduction to the Theory of Computation.
  2. John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman - Introdução à Teoria de Autômatos, Linguagens e Computação (2ª Edição).