Você está na página 1de 7

Captulo

Autmatos Finitos No Determin o a sticos com Transies Vazias co


5.1 Transies vazias co

Nesta aula, ns introduziremos um outro tipo de autmato nito no determin o o a stico: aquele que contm transies vazias. Este tipo de transio bastante util para se provar certas e co ca e propriedades das linguagens regulares, como veremos mais adiante. Mas, no acarreta nenhum a ganho de poder de reconhecimento de linguagens; isto , AFNDs com transies vazias aceitam e co exatamente a mesma classe de linguagens que os AFDs e AFDNs sem transies vazias: as co linguagens regulares. Formalmente, uma transio vazia uma transio cujo s ca e ca mbolo . O autmato pode realizar e o uma transio vazia sem precisar ler nenhum s ca mbolo da entrada. Por exemplo, considere o AFDN com transies vazias dado abaixo: co

s b p

t b q

u b r

Figura 5.1: Um AFND com transies vazias. co Se o autmato est no estado s e o prximo s o a o mbolo a ser lido b, ele pode (no deterministie a camente) 22

ler o s mbolo b e mudar para o estado p; ler o s mbolo b e mudar para o estado p e, em seguida, mudar para o estado t sem ler nenhum s mbolo de entrada; ler o s mbolo b e mudar para o estado p e, em seguida, mudar para o estado t e depois u sem ler nenhum s mbolo de entrada; mudar para o estado t sem ler nenhum s mbolo de entrada, e da ler b e mudar para o estado q; mudar para o estado t sem ler nenhum s mbolo de entrada, e da ler b e mudar para o estado q e, em seguinda, mudar para o estado u sem ler nenhum s mbolo de entrada; ou mudar para o estado t sem ler nenhum s mbolo de entrada, mudar para o estado u sem ler nenhum s mbolo de entrada, e da ler b e mudar para o estado r.

5.2

Denio ca

Denio 5.1. Um autmato nito no-determin ca o a stico com transies vazias (ou um AFND-) co N , uma qu e ntupla N = (Q, , , S, F ) onde Q, , S e F so denidos exatamente como em um AFDN e : Q ( {}) 2Q , a a funo de transio, possui um dom ca ca nio distinto daquele da funo de transio de um AFND, ca ca pois seus dois argumentos so um estado em Q e um elemento de {}, que pode ser um a s mbolo de entrada de ou o s mbolo . Aqui, ns assumimos que o s o mbolo no um a e elemento de . Por exemplo, o AFND- da Fig. 5.1 tal que e Q = {s, p, t, q, u, r}, = {b}, S = {s}, F = {r}, e dada pela tabela abaixo: e

23

s p t q u r

b {p} {q} {r}

{t} {t} {u} {u}

5.3

Fecho-

A funo de transio estendida de um AFND- denida em termos do conceito de fecho- ca ca e de um estado. Informalmente, o fecho- de um estado p em Q, denotado por fecho-(p), e o conjunto de todos os estados de Q que podem ser atingidos a partir de p atravs de uma e seqncia de transies vazias. Formalmente, ns denimos a seqncia de conjuntos de estados ue co o ue (feci -(p))i0 como segue: feci -(p) = {p}, se i = 0

feci -(p) = feci1 -(p) {q Q | s feci1 -(p) tal que q (s, )}, se i > 0. Como feci1 -(p) feci -(p), feci -(p) Q, para todo i 0, e Q um conjunto nito, ns e o podemos concluir que h um menor inteiro i, digamos i0 , tal que feci0 -(p) = feci0 +1 -(p), e ns a o podemos vericar imediatamente que fecho-(p) = feci0 -(p). Note que se no houver nenhuma transio vazia do estado p para qualquer outro estado de N , a ca ento fec1 -(p) = fec0 -(p) = {p}. Logo, a fecho-(p) = {p}. Exemplo 5.1. Considere o AFND- da Fig. 5.1. O fecho- de cada um de seus estados dado e a seguir: fecho-(s) = fec2 -(s) = {s, t, u}, pois fec0 -(s) = {s}, fec1 -(s) = {s, t}, fec2 -(s) = fec3 -(s) = {s, t, u}. fecho-(p) = fec2 -(s) = {p, t, u}, pois fec0 -(p) = {p}, fec1 -(p) = {p, t}, fec2 -(p) = fec3 -(p) = {p, t, u}. fecho-(t) = fec1 -(t) = {t, u}, pois fec0 -(t) = {t}, fec1 -(t) = fec2 -(t) = {t, u}. 24

fecho-(q) = fec1 -(q) = {q, u}, pois fec0 -(q) = {q}, fec1 -(q) = fec2 -(q) = {q, u}. fecho-(u) = fec0 -(u) = {u}, pois fec0 -(u) = fec1 -(u) = {u}. fecho-(r) = fec0 -(r) = {r}, pois fec0 -(r) = fec1 -(r) = {r}. Denio 5.2. Dado um subconjunto S de Q, ns denimos fecho-(S) como ca o fecho-(S) =
pS

fecho-(p).

Note que quando N no possui nenhuma transio vazia, ento a ca a fecho-(S) = S.

5.4

A linguagem aceita por um AFND-

Para denirmos a linguagem aceita por um AFND-, precisamos primeiro denir a funo ca de transio estendida para este tipo de autmato. Intuitivamente, (s, x) o conjunto de ca o e estados que podem ser atingidos atravs de uma seqncia de transies cujos rtulos, quando e ue co o concatenados, formam a palavra x. Note que as transies em tal seqncia de transies no co ue co a contribuem com nenhum s mbolo de x. Denio 5.3. Dado um AFND- N = (Q, , , S, F ), a funo de transio estendida de N ca ca ca : Q 2Q denida como segue: para todo estado p Q, toda palavra x e todo s e mbolo a , denimos (p, ) = fecho-(p), (p, xa) = fecho-(
q(p,x)

(q, a)).

25

Exemplo 5.2. Considere o AFND- da Fig. 5.1 e a computao de (s, bbb) mostrada a seguir: ca (s, bbb) = fecho-( (s, bb) = fecho-( (s, b) = fecho-( (s, bb) = fecho-( = fecho-( (s, bbb) = fecho-(
k(s,bb) k(s,b) k(s,)

(k, b)), (k, b)) = fecho-({(s, b)})

(k, b)), (k, b)) = fecho-( (k, b)) = (k, b)) = fecho-((p, b) (t, b) (u, b)) (k, b)) = fecho-( (k, b))
kfecho-({s})

= fecho-({p}) = fecho-(p) = {p, t, u},


k(s,b) k{p,t,u}

= fecho-( {q} {r}) = fecho-({q, r}) = fecho-(q) fecho-(r) = {q, u, r},


k(s,bb) k{q,u,r}

= fecho-((q, b) (u, b) (r, b)) = fecho-( {r} ) = fecho-({r}) = fecho-(r) = {r}.

Denio 5.4. A linguagem L(N ) aceita por um AFND- N = (Q, , , S, F ) o conjunto ca e L(N ) = {x | (S, x) F = }.

5.5

Eliminao de transies vazias ca co

Como dissemos antes, transies vazias no acarretam nenhum ganho de poder de reconhecico a mento de linguagens, pois qualquer AFND- pode ser convertido em um AFDN equivalente como segue: Dado qualquer AFND- N = (Q, , , S, F ), considere o AFDN N = (Q {s }, , , S {s }, F ) sem transies vazias tal que : Q 2Q denida para todo p Q {s } e todo a co e como se p = s (p, a) = ({p}, a) se p = s , e F = F se L(N )

F {s } se L(N ).

Exemplo 5.3. Seja N o AFND- da Fig. 5.1. Ento, o AFND N tal que F = F = {r} e a e dada pela tabela abaixo: e

26

s p t q u r

b {p, t, q, u, r} {q, u, r} {u, r} {r} {r}

Ns vamos mostrar que L(N ) = L(N ). Para tal, ns primeiro mostramos que, para toda o o + palavra x , (S {s }, x) = (S, x). Lema 5.1. Para toda palavra x + , (S {s }, x) = (S, x). Demonstrao. Vamos usar induo em |x|. ca ca Base (|x| = 1) Se |x| = 1, ento x = a para algum a e, portanto, a (S {s }, a) =
p (S{s },)

(p, a) (pela denio de ) ca

=
pS{s }

(p, a)

(pois, (S {s }, ) = S {s })

=
pS

(p, a) (p, a)
pS

(pois, para todo b, temos (s , b) = )

(pela denio de ) ca

= (S, a). Hiptese (|x| = k) o Assuma que o lema seja vlido para toda palavra x k , onde k um inteiro arbitrrio (mas, a e a xo) com k 1. Passo Indutivo (|x| = k + 1)

27

Seja x k+1 . Como k 1, podemos escrever x = wa, onde w k e a . Agora, temos que (S {s }, wa) = (p, a) (pela denio de ) ca
p (S{s },w)

=
p(S,w)

(p, a)

(pela hiptese de induo) o ca

=
p(S,w)

(p, a)

(pela denio de ) ca

= ((S, w), a) = (S, wa) = (S, x). (Exerc 6 da lista 3) cio

Teorema 5.1. L(N ) = L(N ). Demonstrao. Para qualquer x , considere os dois seguintes casos: ca 1. x = : Se x L(N ) ento, pela denio de F , temos s F . Como (S {s }, ) = S {s }, a ca temos que ( (S {s }, ) F ) = e, portanto, x L(N ). Por outro lado, se x L(N ) ento, pela denio de F , temos s F . Alm disso, (S F ) = , pois F = F , a ca e S fecho-(S), (S, ) = fecho-(S) e ((S, ) F ) = . Logo, ((S {s }) F ) = e, como (S {s }, ) = S {s }, temos que ( (S {s }, ) F ) = , o que implica que x L(N ). 2. x = : x L(N ) ((S, x) F ) = ( (S {s }, x) F ) = (pela denio de aceitao) ca ca (pelo Lema 5.1)

( (S {s }, x) F ) = (pois, F = F ou F {s } = F ) x L(N ).

28

Você também pode gostar