A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

autômatos finitos com transições e

Apresentações semelhantes


Apresentação em tema: "autômatos finitos com transições e"— Transcrição da apresentação:

1 autômatos finitos com transições e
o autômato vai do estado p para o estado q sem ler um símbolo de entrada. p q

2 EXEMPLO 1 e e b e b e b Estando no estado s e recebendo o símbolo b:
ler b e ir para p ir para t e então ler b e ir para q ir para t, ir para u e então ler b e ir para r. O conjunto aceito pelo autômato acima é {b, bb, bbb}. s t u q r p

3 EXEMPLO 2 e e a a a a a a a a q2 q3 q4 q1 q5 q8 q7 q9 q6

4 O conjunto aceito pelo autômato acima é { x Î {a
O conjunto aceito pelo autômato acima é { x Î {a*} | |x| é divisível por 3 ou 5}. A maior vantagem de transições e é a conveniência. Autômato com transições e tem o mesmo poder computacional que afds e afnds

5 Propriedades de Linguagens Regulares
Concatenação de dois conjuntos A e B A•B = AB = { xy | x Î A e y Î B} EXEMPLO. {a, ab} • {b, ba} = {ab, aba, abb, abba} Se A e B são conjuntos regulares, AB também é.

6 Prova Intuitiva Seja M o autômato para A e N para B.
Construir um novo autômato P cujo os estados são a união dos de M e N. Todas as transições de M e N serão transições de P. O estado inicial de M será o de P. Os estados finais de N serão os de P. Finalmente, ligue os estados finais de M ao estado inicial de N com uma transição e.

7 EXEMPLO 4 Seja A = {aa}, B = {bb} a a b b a a e b b q2 q0 q1 q3 q4 q5

8 Fecho de Kleene Se A é regular então A* também é.
A* = { e} È A È A2 È A3 È … = { x1x2…xn | n ³ 0 e xiÎA , 1 ó i ó n}

9 Prova Intuitiva Seja M o autômato para A então P para A* é como segue:
Comece com todos os estados e transições de M. Adicione um novo estado q e uma transição e de q para o estado inicial de M. Faça q o estado inicial de P. Faça q o único estado final de P. Adicione transições e dos estados finais de M para o estado q.

10 EXEMPLO 5 Dado o autômato para A {aa}, o para A* : e a a e q q0 q1 q2

11 Casamento de Padrões e Expressões Regulares
O que acontece quando digitamos ‘rm *’ no Unix? E ‘rm *.dvi’? Casamento de padrões é uma aplicação importante da teoria dos afds. Seja å um alfabeto finito. Um padrão é uma cadeia de símbolos de um certo formato representando um conjunto (possivelmente infinito) de cadeias sobre å*.

12 Casamento de Padrões Padrões: Básicos Compostos
Notação: letras gregas a , b , g , … Associado a definição de padrões, temos quais cadeias x Î å* casam com os padrões definidos. Notação: L(a) é o conjunto de cadeias em å* que casam um dado padrão a. L(X) = {x Î å* | X casa com a }

13 Padrões Básicos e casa com a palava vazia e,L(e) = { e }
a para cada símbolo a Î å, L(a) = {a} e casa com a palava vazia e,L(e) = { e } f casa com nada, L(f) = f, o cjto.vazio # casa com qualquer símbolo em å, L(#) = å @ casa qualquer cadeia em å*,

14 Padrões compostos São formados indutivamente usando os operadores: +, Ç, * , ~ , • Suponha que definimos os conjuntos de cadeias L(a) e L(b) casando a e b respectivamente. Então dizemos: x casa com a + b , se x casa ou com a ou com b L(a + b ) = L(a ) È L(b)

15 X casa com a Ç b se X casa com ambos a e b
L(a Ç b ) = L(a) Ç L(b) X casa com ab se existem cadeias y e z tal que y casa com a, z casa com b e x = yz. L(ab) = L(a)•L(b) X casa ~a se X não casa com a. L(~a) = ~ L(a ) = å* \ L(a) Esta definição depende de å.

16 { a | a Î å } È {e, f , #, @, +, Ç, ~, *, (, )}
X casa a* se x pode ser dividido na concatenação de várias (talvez nenhuma) cadeias finitas, x=x1x2x3…xn, n ³0 tal que cada xi casa com a. L(a*) = {x1x2…x n| n³0 e xiÎL(a),1 £ i £ n} = L(a)0 È L(a)1 È L(a)2 È …= L(a)* Note que Padrões são cadeias de símbolos sobre o alfabeto: { a | a Î å } È {e, f , +, Ç, ~, *, (, )}

17 EXEMPLOS å* = L(@) = L(#*)
Conjuntos com um único símbolo: se x Î å* , então, x por se só é um padrão e casa somente com a cadeia x, i.e , {x} = L(x) Conjuntos finitos: se x1 , … , xm Î å* , então {x1, x2 , …, xm } = L(x1 + x2 + … + xm )

18 cadeias contendo pelo menos 3 ocorrências de a: @ a @ a @ a @
cadeias contendo um a seguido mais tarde por um b, isto é cadeias da forma xaybz para algum x, y, z @ å \ { a } # Ç (~a) cadeias sem a ocorrência da letra a (# Ç (~a) ) *

19 Algumas Questões Importantes
Quão difícil é determinar se uma dada cadeia casa um determinado padrão? (Existem algoritmos muitos eficientes, veremos alguns deles. Esta é uma questão prática. Todos os conjuntos são representados por algum padrão? (Não! Veremos, por exemplo, que o conjunto {an bn | n ³ 0} não é representado por nenhum padrão.)

20 Quais operadores são redundantes?
e pois é equivalente a e a f* @ pois é equivalente a #* # se å = a1 , a2 , … , an então # é equivalente a a1 + a2 + … + an . Ç a Ç b é equivalente a ~(~a + ~ b)

21 Todos os padrões são equivalentes a um padrão usando somente o padrão básico a para a Î å , f e os operadores ~,+ , * e •. Padrões usando somente estes símbolos são chamados expressões regulares.

22 Evitando Parentesis + e . São associativas, i. e.
L(a+(b+g)) = L((a+b)+g) L(a(bg)) = L((ab)g) , e podemos escrever a + b + g a b g Precedência: * • Menor +

23 Equivalência de Padrões, Expressões Regulares e Autômatos Finitos
Teorema: Seja A Í å*. As três afirmações abaixo são equivalentes: (i) A é regular; i.e., A = L(M) para algum autômato finito M. (ii) A = L(a ) para algum padrão a (iii) A = L(a ) para alguma expressão regular a .

24 Prova: (iii) ® (ii) A implicação (iii) ® (ii) é trivial, uma vez que toda expressão regular é um padrão por definição.

25 (ii) ® (i) O coração desta prova envolve mostrar que outros conjuntos básicos (correspondendo aos padrões básicos) são regulares, e que conjuntos são fechados sobre operações de fechamento correspondendo aos operadores usados para construir padrões.

26 - o conjunto unitário { a } é regular, a Î å
Note que: - o conjunto unitário { a } é regular, a Î å - o conjunto unitário {Î} é regular - o conjunto vazio f é regular, uma vez que cada um destes conjuntos é um conjunto aceito por algum autômato. a q0 q1 q0 q0 (1) (2)

27 Mostramos previamente que os conjuntos regulares são fechados sobre o conjunto de operações È, Ç, ~ , *, e, ·, i.e. , se A e B são conjuntos regulares então A È B, A Ç B, ~A = å*\ A, AB e A* são regulares. Seja a um dado padrão. Queremos mostrar que L(a) é um conjunto regular. Procedemos por indução na estrutura de a.

28 O padrão é de uma das seguintes formas:
(i) a, para algum a Î å (vi) b+g (ii) Î (vii) bÇg (iii) f (viii) bg (iv) # (ix) ~b (v) @ (x) b*

29 São cinco casos base (i) - (v) corres-pondendo aos padrões atômicos e cinco casos de indução correspon-dendo aos padrões compostos. Para (i) - (iii) temos L(a) = {a} para a Î å, L(Î) = {Î} e L(f) = f estes são conjuntos regulares. Para (iv) e (v), argumentamos antes que os operadores # são dundantes logo podemos desconsiderar estes casos.

30 Para (vi), lembre que L(b+g) = L(b)L(g) pela definição do operador +
Para (vi), lembre que L(b+g) = L(b)L(g) pela definição do operador +. Pela hipótese da indução, L(b) e L(g) são regulares. Como conjuntos regulares são fechados sobre a união, L(b+g) = L(b) È L(g) é regular. Para os casos (vii) - (x) use argumen-tos similares aos usados em (vii).

31 convertendo autômatos em expressões regulares (I) ® (iii)
Dado um subconjunto de estados T de um AFND M e estados u e v, construamos a expressão regular: aTuv representando o conjunto de todas as cadeias x tal que existe um caminho de u para v em M rotulado x (isto é , d*(u, x) = v) e todos os estados no caminho, com a possível exceção de u e v estarem em T.

32 As expressões são construídas por indução no tamanho de T.
Base T = f Seja a1, … , ak todos os símbolos em å tal que d (u, ai) = v. afuv = a1 + … + ak se u ¹ v a1 + … + ak + Î se u = v

33 Indução T ¹ f Escolha um elemento qualquer q Î T aTuv = auvT-{q} + auqT-{q} (aqqT-{q} )* aqvT-{q}

34 Note que qualquer caminho de u para v com todos os estados intermediários em T ou :
(i) nunca visita q : auvT-{q} ou (ii) visita q uma primeira vez: auqT-{q} Seguido por um número finito (≥ zero) de laços de q para q sem visitar q no meio tempo e ficando em q : (aqqT-{q} )* Seguido por um caminho de q para v deixando q pela última vez aqvT-{q}

35 A expressão: aQsf1 + aQsf2 + … + aQsfk representa o conjunto de cadeias aceitas por M, onde Q é o conjto de todos os estados de M, s é o estado inicial e { f1 , … , fk } é o conjunto de estados finais.

36 Ex: Converta o autômato em uma expressão regular equivalente .
1 q p 1 r

37 pp{p,q,r} = 0* + 0*1 ( + 01 + 000*1 )*000*
pp{p,q,r} T={p,q,r} Remova q T- {q} pp{p,q,r} = pp{p,r} + pq {p,r}(qq{p,r})* qp{p,r} pp{p,r} = 0* pq{p,r} = 0* qq{p,r} =  *1 qp{p,r} = 000* pp{p,q,r} = 0* + 0*1 ( *1 )*000*


Carregar ppt "autômatos finitos com transições e"

Apresentações semelhantes


Anúncios Google