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

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

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

Apresentações semelhantes


Apresentação em tema: "Autômatos finitos com transições o autômato vai do estado p para o estado q sem ler um símbolo de entrada. pq."— Transcrição da apresentação:

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

2 EXEMPLO 1 b b 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}. st u p qr

3 EXEMPLO 2 a a a a a a a a q2q2 q3q3 q4q4 q1q1 q5q5 q8q8 q7q7 q9q9 q6q6

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

5 Propriedades de Linguagens Regulares Concatenação de dois conjuntos A e B AB = 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.

7 EXEMPLO 4 Seja A = {aa}, B = {bb} a a b b a a b b q0q0 q1q1 q3q3 q4q4 q0q0 q1q1 q2q2 q3q3 q4q4 q2q2 q5q5 q5q5

8 Fecho de Kleene Se A é regular então A* também é. A* = { } A A 2 A 3 … = { x 1 x 2 …x n | n 0 e x i 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 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 dos estados finais de M para o estado q.

10 EXEMPLO 5 Dado o autômato para A {aa}, o para A* : a a qq0q0 q1q1 q2q2

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,,, … Associado a definição de padrões, temos quais cadeias x * casam com os padrões definidos. Notação: L( ) é o conjunto de cadeias em * que casam um dado padrão. L(X) = {x * | X casa com }

13 Padrões Básicos a para cada símbolo a, L(a) = {a} casa com a palava vazia,L( ) = { } casa com nada, L( ) =, 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( ) e L( ) casando e respectivamente. Então dizemos: x casa com +, se x casa ou com ou com L( + ) = L( ) L( )

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

16 X casa * se x pode ser dividido na concatenação de várias (talvez nenhuma) cadeias finitas, x=x 1 x 2 x 3 …x n, n 0 tal que cada x i casa com. L( *) = {x 1 x 2 …x n | n e x i L( ),1 i n} = L( ) 0 L( ) 1 L( ) 2 …= L( )* Note que Padrões são cadeias de símbolos sobre o alfabeto: { a | a } {,, +,, ~, *, (, )}

17 EXEMPLOS * = = 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 x 1, …, x m *, então {x 1, x 2, …, x m } = L(x 1 + x 2 + … + x m )

18 cadeias contendo pelo menos 3 ocorrências de cadeias contendo um a seguido mais tarde por um b, isto é cadeias da forma xaybz para algum x, y, \ { 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 {a n b n | n 0} não é representado por nenhum padrão.)

20 Quais operadores são redundantes? pois é equivalente a e a pois é equivalente a #* # se = a 1, a 2, …, a n então # é equivalente a a 1 + a 2 + … + a n. é equivalente a ~(~ + ~ )

21 Todos os padrões são equivalentes a um padrão usando somente o padrão básico a para a, 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( +( + )) = L(( + )+ ) L( ( )) = L(( ) ), e podemos escrever + + 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( ) para algum padrão (iii) A = L( ) para alguma expressão regular.

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 Note que: - o conjunto unitário { a } é regular, a - o conjunto unitário { } é regular - o conjunto vazio é regular, uma vez que cada um destes conjuntos é um conjunto aceito por algum autômato. a q0q0 q1q1 q0q0 q0q0 (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 um dado padrão. Queremos mostrar que L( ) é um conjunto regular. Procedemos por indução na estrutura de.

28 O padrão é de uma das seguintes formas: (i) a, para algum a (vi) + (ii) (vii) (iii) (viii) (iv) # (ix) ~ (x) *

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( ) = 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( + ) = L( ) L( ) pela definição do operador +. Pela hipótese da indução, L( ) e L( ) são regulares. Como conjuntos regulares são fechados sobre a união, L( + ) = L( ) L( ) é 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: T uv representando o conjunto de todas as cadeias x tal que existe um caminho de u para v em M rotulado x (isto é, (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 = Seja a 1, …, a k todos os símbolos em tal que (u, a i ) = v. uv = a 1 + … + a k se u v a 1 + … + a k + se u = v

33 Indução T Escolha um elemento qualquer q T T uv = uv T-{q} + uq T-{q} ( qq T-{q} )* qv T-{q}

34 Note que qualquer caminho de u para v com todos os estados intermediários em T ou : (i) nunca visita q : uv T-{q} ou (ii) visita q uma primeira vez: uq T-{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 : ( qq T-{q} )* Seguido por um caminho de q para v deixando q pela última vez qv T-{q}

35 A expressão: Q sf 1 + Q sf 2 + … + Q sf k representa o conjunto de cadeias aceitas por M, onde Q é o conjto de todos os estados de M, s é o estado inicial e { f 1, …, f k } é o conjunto de estados finais.

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

37 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 * 1 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 o autômato vai do estado p para o estado q sem ler um símbolo de entrada. pq."

Apresentações semelhantes


Anúncios Google