Você está na página 1de 8

NOTA DE AULA TALF 2006-2

EQUIVALNCIA AUTMATOS DETERMINSTICOS


E NO DETERMINSTICOS
MARCELINO PEQUENO

Fortaleza, 30 de outubro de 2006

1.
1.1

Equivalncia e-NDFA com NDFA


Mtodo Hopcroft Ingls

A idia construir, eliminando de uma nica vez todas as e-transies, um NDFA


equivalente.
Seja M = <K, , , q0, F>, o e-NDFA inicial, onde : K X {e} 2K uma funo.
Construa M = <K, , , q0, F>
As nicas alteraes so e F.

'(q, a) = (q, a).


F { q0 }, se E( q0 ) F
F =
F , caso contrrio
1.2

Mtodo Rangel-Marcelino

A idia tirar uma transio e por vez, encontrando-se um e-NDFA equivalente com uma
e-transio a menos. Como elas so finitas, aps n transies teremos um NDFA
equivalente.
Seja M = <K, , , q0, F>, o e-NDFA inicial, onde : K X {e} 2K uma funo.
Vamos tirar uma transio
e
q

do autmato M obtendo-se um autmato:


M = <K, , , q0, F>

As nicas coisas que se alteram so a funo de transio e o conjunto dos estados finais
F.
1. '(r, ) = (r, ), para todo r q e {e}.
2. '(q, e) = (q, e) {p}.
3. '(q, a) = (q, a) (s, a), para todo s E(p) e a .
4. F = F {q}, se E(p) F .
1.3

Exemplo

Dado o e-NDFA abaixo (Fig. 2.8 da pg. 24 do Hopcroft Ingls, ver autmato JFLAP
correspondente), compare os NDFAs equivalentes pelos dois mtodos acima.
1.4

Prova da Equivalncia Mtodo Hopcroft Ingls

Note os seguintes fatos referentes a um e-NDFA:


Fatos:

a) (q, e) (q, e).

b) (q, e) = E((q, e)) = E(q).

c) (q, a) E((q, a)).

d) (q, a) = E( (q, a)).

e) (q, w) = E( (q, w)).

Lema 1: ( q , xa ) =

( r ,a )

r ( q ,x )

Vamos usar dois sublemas:

Sublema 1: E((q,a)) (q,a), para todo estado q em qualquer e-NDFA.

Sublema 2: E((q,a)) (q,a) sse existe s E(q) tal que (s,a) (q,a).

Prova do Lema 1. (q,xa) = E ( r ,a ) = E( ( r ,a )) .


r ( q ,x )
r ( q ,x )
Para completar a prova precisamos mostrar que E( ( r ,a )) =
r ( q ,x )

( r ,a ) .

r ( q ,x )

() Segue diretamente do sublema 1.

() Pelo sublema 2, se existe r (q,x) tal que E((r,a)) (r,a) ento existe s E(r)

tal que (s,a) (r,a). Mas note que se r (q,x), E(r) (q,x), assim s (q,x), e

logo (s,a) E( ( r ,a )) , assim, ( r ,a ) E( ( r ,a )) , CQD.


r ( q ,x )

r ( q ,x )

r ( q ,x )

Note que '(q, a) alcana em M todos os estados que q alcana com a entrada a em M.
Vamos generalizar este fato para todos os strings w e, i.e., vamos provar que

(q, w) = (q, w), para todo w +. Note que o resultado no vale para w = e, pois

(q, e) = {q} enquanto (q, e) = E(q).

Teorema 1. (q,w) = (q,w).

BASE: |w| =1, i.e, w = a . Neste caso, (q,a) = (q,a), pela definio de '.

H.I: (q,x) = (q,x).

TESE: (q,xa) = (q,xa).

(q,xa)

= '( (q,x),a)
= ( r , a )

Definio de
Definio de ' de um conjunto

r ( q ,x )

=
=

( r , a )

( r ,a )

r ( q ,x )

Pela H.I.
Pela construo de '

r ( q ,x )

= (q,xa)

Pelo Lema 1

Corolrio. L(M) = L(M)

Prova. Vamos mostrar que para todo w *, (q0,w) F sse (q0,w) F .

Pelo teorema 1, (q0,w) = (q0,w) e pela definio de M, F = F | F {q0}. Se

q0 (q0,w) F e q0 F ento existe p E(q0), logo p (q0,w), tal que p F.

Logo, p (q0,w) F .
CQD
1.5

Prova da Equivalncia Mtodo Rangel-Marcelino

e
Lembre-se, estamos retirando a aresta q

p.
Lema 2: Para todo r K,
E( r ), se q E( r )
E ( r ) =
E( r ) menos 0 ou mais estados de E( p ), se q E( r )
Prova: Sai diretamente da definio de M.

Fato 1: Se q (r, w) ento E(p) (r, w).

Lema 3: Para todo w *,


!
!
!
( r , w ), se q ( r , w )
a)
( r , w ) = !
!
( r , w ) menos 0 ou mais estados de E( p ), se q ( r , w )

b)

F ou
F =
F { q }

Prova. Item b) segue diretamente da definio de F.


Vamos provar o item a) por induo no tamanho de w.
BASE: w = e.

Basta observar que (r,e) = E(r) e (r,e) = E(r), o resultado segue diretamente do lema
2.
PASSO INDUTIVO: Vamos provar que o resultado vale para w = xa, assumindo que vale
para x.

(r, w) = E(P), onde P =

(r, w) = E(P), onde P =

"
( s ,a )

"
s ( r ,x )

( s ,a )

"
s ( r ,x )

Temos dois casos a analisar: 1) q (r, x);

2) q (r, x).
O importante verificar que em ambos os casos, P = P.

Caso1: q (r, x), ento, pela H.I,


apenas no estado q.

Caso2: q (r, x), ento, pela H.I,

(r, x) = (r, x) , logo P = P, pois ' difere de


(r, x) = (r, x) , menos 0 ou mais estados de E(p).

Ainda assim, P = P, pois '(q, a) = (q, a) (s, a), para todo s E(p) (observe que pelo

fato 1, E(p) (r, w)).

Resta-nos analisar os casos em que A) q (r, xa);

B) q (r, xa).

Caso A: q (r, xa), ento existe r P = P tal que q E(r). Neste caso, pelo lema 2,
para todo s P = P, E(s) = E(s) ou E(s) = E(s) menos 0 ou mais estados de E(p). Logo
E(P) = E(P) menos 0 ou mais estados de E(p), CQD.

Caso B: q (r, xa), ento no existe r P = P tal que q E(r). Neste caso, pelo lema

2, para todo s P = P, E(s) = E(s). Logo (r, w) = E(P) = E(P) = (r, w), CQD.

Teorema 2: Para todo w *, (r, w) F sse (r, w) F .


Prova.
4

Caso1: q (r, w), ento, pelo Lema 3, (r, w) = (r, w). Como F = F | F {q} e

q (r, w) F, temos que (r, w) F = (r, w) F.


CQD

Caso2: q (r, w), ento, E(p) (r, w) e alguns p E(p) podem no pertencer a

(r, w), ainda assim se (r, w) F ento (r, w) F , pois se

p E(p) (r, w) , e p F, i.e., p (r, w) F , ento q (r, w) F, note que

se q (r, w) ento q (r, w).

Por outro lado, se q (r, w) F, logo, como q (r, w), E(p) (r, w), e se q F,

ento para algum p em E(p), p F, logo (r, w) F .


CQD
Corolrio 2. L(M) = L(M).

2.
2.1

Equivalncia e-NDFA com DFA


Mtodo Hopcroft Portugus

A idia construir diretamente um DFA equivalente ao e-NDFA original. A construo se


assemelha construo de um DFA equivalente a um NDFA, incorporando-se as etransies.
Seja M = <K, , , q0, F>, o e-NDFA inicial, onde : K X {e} 2K uma funo.
Construa M = <2K, , , Q0, F>, onde:
Q0 = E(q0)
F = {Q K | Q F }
( Q ,a ) = E( ( q ,a ))
qQ

Teorema 3. (Q0,w) = (q0,w).


Prova. Por induo no tamanho de w.
BASE: w = e.

(Q0,e) = Q0 = E(q0) = (q0,e).

H.I: (Q0, x) = (q0, x)

TESE: (Q0, xa) = (q0, xa)

(Q0, xa)

= '( (Q0, x), a)

= '( (q0, x), a)

Definio DFA.
H.I.

E( ( r , a ))

Construo de '

"
r ( q0 ,x )

E ( r ,a )
r ( q0 ,x )

= (q0, xa)
CQD
=

Definio de E(fecho) de um conjunto

Definio de

Corolrio 3. L(M) = L(M)

Prova. w L(M) sse (Q0, w) F sse (Q0, w) F sse

(q0, w) F sse w L(M).


CQD
2.2

Mtodo Papadimitriou Portugus

Como o anterior, a idia construir diretamente um DFA equivalente ao e-NDFA original.


Alis o DFA construdo o mesmo, apenas a notao diferente. A prova tambm ser
diferente, pois a maneira definir a linguagem aceita por autmatos tambm diferente.
Lembre-se que o Papadimitriou recorre noo de configurao e relao de derivao
entre configuraes.
Seja M = <K, , , q0, F>, o e-NDFA inicial, onde K X {e} X K uma relao.
Construa M = <2K, , , Q0, F>, onde:
Q0 = E(q0)
F = {Q K | Q F }
'(Q, a) = Q sse Q = E( r ), onde ( q , a , r )
qQ

Teorema 4. Se (q, w) M* (p, e) ento (E(q), w) M* (P, e), para algum P tal que p P.
Teorema 5. Se (E(q), w) M* (P, e) ento (q, w) M* (p, e), para todo p P.
Os dois teoremas resultam em
Teorema 6. (q, w) M* (p, e) sse (E(q), w) M* (P, e), para algum P tal que p P.
Prova Teo. 4. Induo em |w|.
BASE: w = e.
(q, e) M* (p, e) ento p E(q)

Definio de E(q).

(E(q), e) M* (E(q), e).

Definio de M*.

H.I: Se (q, x) M* (p, e) ento (E(q), x) M* (P, e), para algum P tal que p P.

TESE: Se (q, xa) M* (p, e) ento (E(q), xa) M* (P, e), para algum P tal que p P.
(q, xa) M* (p, e)

sse (q, xa) M* (r1, a) M (r2, e) M* (p, e), para alguns r1, r2 K;

(q, xa) M* (r1, a) sse (q, x) M* (r1, e);


Se (q, x) M* (r1, e), ento (E(q), x) M* (R1, e), para algum R1 tal que r1 R1, pela H.I.;
(r1, a) M (r2, e) sse (r1, a, r2) ento, seja R2 = '(R1, a), temos que E(r2) R2;
(r2, e) M* (p, e) sse p E(r2);
Logo, (R1, a) M (R2, e), onde p R2;
( R1 , a ) = R2
r R

1
*
Assim, (E(q), xa) M (R1, a) M (R2, e), onde: 1
, logo p R2.
( r1 , a , r2 )
E( r2 ) R2
CQD

Prova Teo. 5. Induo em |w|.


BASE: w = e.
Se (E(q), e) M* (E(q), e), ento (q, e) M* (p, e) para todo p E(p).
H.I: Se (E(q), x) M* (P, e) ento (q, x) M* (p, e), para todo p P.
TESE: Se (E(q), xa) M* (P, e) ento (q, xa) M* (p, e), para todo p P.
(E(q), xa) M* (P, e) sse (E(q), xa) M* (R1, a) M (P, e), para algum R1 2K;
(E(q), xa) M* (R1, a) sse (E(q), x) M* (R1, e),
Logo, (q, x) M* (r1, e), p/ todo r1 R1, pela H.I;

(1)

(R1, a) M (P, e) sse '(R1, a) = P;


Logo, P = E( r2 ), onde ( r1 , a , r2 )
r1R1

Assim, se p P ento p E(r2), onde (r1, a, r2) .


Como, de (1), (q, xa) M* (r1, a), p/ todo r1 R1,
(r1, a) M (r2, e) e (r2, e) M* (r, e), p/ todo r E(r2),
Temos que: (q, xa) M* (r1, a) M (r2, e) M* (r, e), p/ todo r E(r2).
Assim, (q, xa) M* (p, e), para todo p P.
CQD

Corolrio 3. L(M) = L(M)


Prova.
CQD

Você também pode gostar