Escolar Documentos
Profissional Documentos
Cultura Documentos
1 (c). Projete um autômato finito determinı́stico que reconheça a linguagem das palavras
que em toda posição ı́mpar possui 1, sobre o alfabeto Σ = {0, 1}.
Solução. Considere o autômato M = (Q, Σ, δ, q1 , F ) onde
1. Q = {q1 , q2 , q3 },
2. Σ = {0, 1},
3. δ : Q × Σ∗ −→ Q definida como no diagrama abaixo:
δ 0 1
q1 q2 q3
q2 q2 q2
q3 q1 q1
4. q1 : estado inicial e
5. F = {q1 , q3 } estados de aceitação.
∗
Aluno de Doutorado - NUSP: 11921804 - E-mail: carlos.castro@ime.usp.br
1
2. Projete um autômato finito não-determinı́stico que reconheça a linguagem das pa-
lavras {0, 1}∗ que possuem dois 0 separados por uma cadeia de tamanho 4i para
algum i ≥ 1.
Solução. Considere o AFN N = (Q, σ, δ, q0 , F ) onde
1. Q = {q0 , q1 , q2 , q3 , q4 , q5 , qf };
2. Σ = {0, 1};
3. δ : Q × Σε −→ P(Q) definida como no diagrama abaixo:
δ ε 0 1
q0 ∅ {q0 , q1 } {q0 }
q1 ∅ {q2 } {q2 }
q2 ∅ {q3 } {q3 }
q3 ∅ {q4 } {q4 }
q4 ∅ {q1 , q5 } {q1 , q5 }
q5 ∅ {qf } {q0 }
qf ∅ {qf } {qf }
4. q0 : estado inicial;
5. F = {qf }: estados de aceitação.
2
4 (c). Seja L uma linguagem regular sobre um alfabeto Σ. Demonstre que a linguagem
remove(L) = {xy : xσy ∈ L, x, y ∈ Σ∗ , σ ∈ Σ} também é regular.
Solução: Como L é uma linguagem regular, então existe um autômato finito deter-
minı́stico M = (Q, Σ, δ, q0 , F ) que a reconhece, isto é, L(M ) = L. Mostraremos que
a linguagem remove(L) = {xy : xσy ∈ L, x, y ∈ Σ∗ , σ ∈ Σ} é regular. Para tanto,
vamos construir um autômato finito não determinı́stico que reconhece a linguagem
remove(L).
Considere duas cópias de M , digamos M1 e M2 , dadas por
M1 = Q1 , Σ, δ1 , q10 , F1 e
M2 = Q2 , Σ, δ2 , q20 , F2 ,
1. QN = {Q1 , Q2 } × Q;
2. Σ: alfabeto (idêntico ao definido para M, M1 e M2 );
3. δN : QN × Σε −→ QN definida da seguinte forma:
(
{(Q1 , δ(q, a))}, se a ∈ Σ
δN ((Q1 , q), a) =
{(Q2 , δ(q, b)) | b ∈ Σ}, se a = ε
(
{(Q2 , δ(q, a))}, se a ∈ Σ
δN ((Q2 , q), a) =
∅, se a = ε
0
4. qN = (q10 , q0 );
5. FN = {Q2 } × F .
Mostraremos que L(N ) = remove(L) e para isso, precisamos mostrar que L(N ) ⊆
remove(L) e remove(L) ⊆ L(N ).
(⇐)(remove(L) ⊆ L(N ))
Seja w ∈ remove(L) qualquer. Assim, podemos escrever w = xy, com x, y ∈ L∗ de
modo que xσy ∈ L com σ ∈ Σ. Mostraremos que L(N ) aceita w.
3
Note que, se ε ∈ L∗ e x = y = ε temos que xσy = σ e, como xσy ∈ L, temos que
δ(q0 , σ) ∈ F . Logo,
Observe que, pela definição da função δN , b ∈ Σ pode ser σ ∈ Σ, pois ε leva para
todos os estados seguintes possı́veis, o estado em que foi aplicada a transição. Assim.
temos que uma das ramificações de {(Q2 , δ(q0 , σ))} é (q2 , δ(q0 , σ)) ∈ {Q2 } × F , para
algum q2 ∈ Q2 .
Suponha, sem perda de generalidade, que x 6= ε e y 6= ε. Podemos escrever w
como w = xy = x1 x2 · · · xm y1 y2 · · · yn , onde cada xi , yj ∈ Σ, xi 6= ε e yj 6= ε para
1 ≤ i ≤ m e 1 ≤ j ≤ n, m, n ∈ N. AplicandoδN em w, temos:
Pela definição de δN , temos que δN ((q1 , δ(q0 , x)), ε) = {(Q2 , δ(q, b)) | b ∈ Σ}, e
podemos ter, assim, b = σ, pois xσy ∈ L. Logo, uma das ramificações possı́veis para
{(Q2 , δ(q, b)) | b ∈ Σ} é (q2 , δ(δ(q0 , x), σ)), para algum q2 ∈ Q2 , e assim,
4
Seja w ∈ L(N ) qualquer. Vamos mostrar que w ∈ remove(L).
Pela definição de computação, w pode ser escrito como w = w1 w2 · · · wm , em que
wi ∈ Σε e existe uma sequência de estados r0 r1 · · · rm , com rj ∈ QN tais que
0
1. r0 = qN = (q10 , q0 );
2. ri+1 ∈ δN (ri , wi+1 ) para i = 1, 2, · · · , m − 1;
3. rm ∈ FN = {Q2 } × F
• 1≤`<k
Nesse caso, terı́amos δN ((Q1 , r`−1 ), w` ) = {(Q2 .δ(r`−1 , b) | b ∈ Σ}, e assim, r` ∈
{(Q2 .δ(r`−1 , b) | b ∈ Σ}. Então, como wk = ε, temos que δN ((Q2 , rk−1 ), wk ) = ∅,
o que impossibilitaria w ∈ L(N ).
• k<`≤m
De maneira análoga, nesse caso, terı́amos δN ((Q1 , rk−1 ), wk ) = δN ((Q1 , rk−1 ), ε) =
{(Q2 .δ(rk−1 , b) | b ∈ Σ}, e assim, rk ∈ {(Q2 .δ(rk−1 , b) | b ∈ Σ}. Então, como
w` = ε, temos que δN ((Q2 , r`−1 ), w` ) = ∅, o que também impossibilitaria
w ∈ L(N ).
Podemos então definir, sem perda de generalidade, que como ri ∈ Qn = {Q1 , Q2 }×Q,
temos que ri = (Q1 , qi ), 1 ≤ i ≤ k − 1 e rj = (Q2 , qj ), k ≤ j ≤ n.
Aplicando δN em w, temos que δN ((q01 , q0 ), w) = δN ((q01 , q0 ), w1 w2 · · · wk−1 εwk+1 · · · ).
Pela definição de computação, para cada wi , 1 ≤ i ≤ k − 2, temos que ri+1 ∈
δN (ri , wi+1 ) = {(Q1 , δ(qi , wi+1 ))}. Assim, temos que rk−1 ∈ {(Q1 , δ(q0 , w1 w2 · · · wk−1 ))}
.
Para i = k − 1, temos que rk ∈ δN (rk−1 , wk ) = δN (rk−1 , ε) = {(Q2 , δ(qk−1 , b)) | b ∈
Σ}. Então, para algum σ ∈ Σ, temos que δ(qk−1 , σ) = qk e, portanto, rk ∈
{(Q2 , δ(q0 , w1 w2 · · · wk−1 σ))} .
Por fim, para cada wi , k ≤ i ≤ m, temos que ri+1 ∈ δN (ri , wi+1 ) = {(Q1 , δ(qi , wi+1 ))}.
Assim, temos que rm ∈ {(Q1 , δ(q0 , w1 w2 · · · wk−1 σwk+1 · · · wm ))} .
5
Portanto, como L(M ) = L, temos que w0 = xσy ∈ L e, assim, w ∈ remove(L).
Dada arbitrariedade de escolha de w, temos que L(N ) ⊆ remove(L) e remove(L) ⊆
L(N ) e, portanto, remove(L) = L(N ).
n n n n
1. Q = {q0 } ∪ Qn1 ∪ Qn2 ∪ · · · ∪ Qnk , em que Qnj = {q0 j , q1 j , q2 j , · · · , qnjj −1 },
Qni ∩ Qnj = ∅, para i 6= j e q0 ∈
/ Qnj , 1 ≤ i, j ≤ k.
2. Σ = {0}.
3. δ : Q × Σε −→ P (Q) definida por
nj
δ(q0 , 0) = q0
∀j ∈ {1, 2, · · · , k},
n nj
δ(qmj mod nj , 0) = qm+1 mod nj , m ∈ N ∪ {0}, ∀j ∈ {1, 2, · · · , k},
δ(q, ε) = ∅, ∀q ∈ Q.
4. q0 = {q0 }
5. F = {qnn11−1 , qnn22−1 , qnn33−1 , · · · , qnnkk−1 }.
6
Podemos ilustrar N na figura a seguir.
Note que, por construção, cada Qnj com 1 ≤ j ≤ k tem nj elementos, isto é,
|Qnj | = nj , para cada 1 ≤ j ≤ k. Por exemplo, se 1, 2, 3 ∈ B, temos que Q1 = {q01 },
Q2 = {q02 , q12 } e Q3 = {q03 , q13 , q23 }. Assim, como Qnj ∩ Qni = ∅, para todo i 6= j e
{q0 } ∩ Qnj = ∅, para 1 ≤ i, j ≤ k, temos que, como |A ∪ B| = |A| + |B| − |A ∪ B|,
7
para quaisquer conjuntos A, B,
Vamos mostrar que N reconhece C, isto é, mostraremos que L(N ) = C. Para tanto,
mostraremos que L(N ) ⊆ C e C ⊆ L(N ).
(⇒) L(N ) ⊆ C
Seja w ∈ L(N ). Então, pela definição de computação, como N aceita w, podemos
escrever w = w1 · · · wm , onde cada wi é um membro de Σε e uma sequência de estados
r0 , r1 , · · · , rm existe tal que
1. r0 = q0 ;
2. ri+1 ∈ δ(ri , wi+1 ), para i = 0, · · · , m − 1;
3. rm ∈ F.
– w=ε
Nesse caso, pela definição da função δ, temos que
δ(q0 , ε) = ∅,
8
δ(q0n1 , 0n−1 ) = δ(q1n1 , 0n−2 ) = ··· n1
= δ(qn−2 n1
, 0) = qn−1
δ(q n2 , 0n−1 )
= δ(q1n2 , 0n−2 ) = ··· n2
= δ(qn−2 n2
, 0) = qn−1
n 0
δ(q0 , w) = δ(q0 , 0 ) = .. .. .
. .
δ(q0nk , 0n−1 ) = δ(q1nk , 0n−2 ) = · · · nk nk
= δ(qn−2 , 0) = qn−1
j n
Como w é aceito por N , temos que pelo menos um dos qn−1 ∈ F, 1 ≤ j ≤ k.
Assim, ∃q, h ∈ N, 1 ≤ q ≤ k tal que n − 1 = h · nq − 1 ⇔ n = h · nq e, portanto,
w ∈ C e L(N ) ⊆ C.
(⇐) C ⊆ L(N )
Seja w ∈ C qualquer. Pela definição da linguagem, w = 0i para algum i ∈ N, i =
0 mod nj , para algum 1 ≤ j ≤ k, nj ∈ B. Dessa forma, existe um h ∈ N tal que
w = 0h·nj , para algum nj ∈ B, 1 ≤ j ≤ k.
Assim, temos que
δ(q0n1 , 0h·nj −1 )
δ(q n2 , 0h·nj −1 )
h·nj 0
δ(q0 , w) = δ(q0 , 0 ) = . .
..
δ(q0nk , 0h·nj −1 )
n n n n
δ(q0 j , 0h·nj −1 ) = δ(q1 j , 0h·nj −2 ) = · · · = δ(qnjj −1 , 0(h−1)·nj ) = δ(q0 j , 0(h−1)·nj −1 )
n n
= δ(qnjj −1 , 0(h−2)·nj ) = δ(q0 j , 0(h−2)·nj −1 ) = · · · =
n n
= · · · = δ(qnjj −2 , 0) = qnjj −1 ∈ F.