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

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

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

Page 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.

autômatos finitos com transições

o autômato vai do estado p para o estado q sem ler um símbolo de entrada.

p q

Page 2: 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.

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}.

s tu

p q r

Page 3: 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.

EXEMPLO 2

a a

a a a a

a a

q2

q3 q4

q1

q5

q8

q7

q9

q6

Page 4: 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.

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 tem o mesmo poder computacional que afds e afnds

Page 5: 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.

Propriedades de Linguagens Regulares

Concatenação de dois conjuntos A e BA•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 é.

Page 6: 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.

Prova IntuitivaSeja 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 .

Page 7: 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.

EXEMPLO 4

Seja A = {aa}, B = {bb}

a a b b

a a b b

q0 q1 q3 q4

q0 q1 q2 q3 q4

q2 q5

q5

Page 8: 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.

Fecho de Kleene

Se A é regular então A* também é.

A* = { } A A2 A3 …

= { x1x2…xn | n 0 e xiA , 1 i n}

Page 9: 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.

Prova IntuitivaSeja 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.

Page 10: 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.

EXEMPLO 5Dado o autômato para A {aa}, o para

A* :

a a

q q0 q1 q2

Page 11: 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.

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 *.

Page 12: 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.

Casamento de PadrõesPadrões: Básicos CompostosNotaçã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 }

Page 13: 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.

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 *, L(@)=*.

Page 14: 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.

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()

Page 15: 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.

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 .

Page 16: 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.

X casa * 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 .

L(*) = {x1x2…x n| n e xiL(),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 } {, , #, @, +, , ~, *, (, )}

Page 17: 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.

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 )

Page 18: 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.

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 @ b @ \ { a } # (~a) cadeias sem a ocorrência da letra a

(# (~a) ) *

Page 19: 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.

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.)

Page 20: 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.

Quais operadores são redundantes?

pois é equivalente a ~(#@) e a *

@ pois é equivalente a #*# se = a1 , a2 , … , an então # é

equivalente a a1 + a2 + … + an .

é equivalente a ~(~ + ~ )

Page 21: 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.

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.

Page 22: 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.

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

Page 23: 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.

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 .

Page 24: 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.

Prova: (iii) (ii)

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

Page 25: 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.

(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.

Page 26: 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.

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

q0 q1 q0 q0

(1) (2)

Page 27: 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.

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 .

Page 28: 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.

O padrão é de uma das seguintes formas:

(i) a, para algum a (vi) + (ii) (vii) (iii)

(viii)

(iv) # (ix) ~(v) @ (x)*

Page 29: 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.

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 # e @ são dundantes logo podemos desconsiderar estes casos.

Page 30: 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.

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).

Page 31: 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.

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:

Tuv

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.

Page 32: 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.

As expressões são construídas por indução no tamanho de T.

Base T = Seja a1, … , ak todos os símbolos em tal

que (u, ai) = v.

uv = a1 + … + ak se u v

a1 + … + ak + se u = v

Page 33: 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.

Indução T Escolha um elemento qualquer q T

Tuv = uv

T-{q} + uqT-{q} (qq

T-{q} )* qvT-{q}

Page 34: 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.

Note que qualquer caminho de u para v com todos os estados intermediários em T ou :

(i) nunca visita q : uvT-{q} ou

(ii) visita q uma primeira vez: uqT-{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 :

(qqT-{q} )*

Seguido por um caminho de q para v deixando q pela última vez

qvT-{q}

Page 35: 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.

A expressão:

Qsf1 + Q

sf2 + … + Qsfk

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.

Page 36: 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.

Ex: Converta o autômato em uma expressão regular equivalente .

p

q

r0

01 0

1

Page 37: 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.

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} = + 01 + 000*1

qp{p,r} = 000*

pp{p,q,r} = 0* + 0*1 ( + 01 + 000*1 )*000*