Escolar Documentos
Profissional Documentos
Cultura Documentos
Er Afd
Er Afd
Tpicos em Computaao I o c
Expresso Regular a
Uma ER sobre pode ser denida como: uma ER e denota a linguagem vazia e uma ER e denota a linguagem {} e x uma ER e denota a linguagem {x} e Se r e s so ER e denotam as linguagens R e S a (r+s) ER R S e (rs) ER RS = {uv | u Rev S} e (r ) ER R e (r|s) ER R ou S e
As linguagens regulares pertencem ` classe das linguagens a mais simples. As cadeias (palavras) da linguagem regular podem ser reconhecidas atravs de algoritmos com pouco complexidade. e A expresso regular considerada geradora pois pode-se inferir a e como construir (gerar) as palavras da linguagem.
Qualquer s mbolo x ou uma ER e denota a linguagem e contendo exclusivamente a palavra x ou a palavra vazia respectivamente. Tambm podemos denir as ER atravs de unio e e e a concatenao como visto no slide. A unio representa de duas ca a linguagens R e S o conjunto de cadeias que esto em R ou e a em S ou em ambas. O fechamento (ou estrela ou fechamento de Kleene) de uma linguagem denotado L e representa o cone junto de cadeias que podem ser formados tomando-se qualquer nmero de cadeias de L. u
Uma expresso regular denida a partir de conjuntos (linguaa e gens) bsicos e operaoes de concatenao e unio e oferece um a c ca a modo declarativo de expressar as cadeias que queremos aceitar. As expresses regulares so consideradas adequadas para a comuo a nicao homem homem e, principalmente, para a comunicao ca ca homem mquina. a
Tpicos em Computaao I o c
Exemplos de ER
ER aa ba Linguagem Representada somente a palavra aa iniciam com b seguido por 0 ou mais a
Autmatos Finitos o
recebe como entrada uma string no produz sa a da indica se a entrada aceita ou no e a memria xa e limitada o tambm denominado Autmato Finito e o Determin stico (AFD)
(a+b) todas as palavras sobre { a, b } Qual a linguagem correspondente as ER abaixo? 1. (a+b) aa(a+b) 2. a ba ba 3. (a+b) (aa+bb) 4. (a+)(b+ba)
As linguagem representadas pelas ER citadas no slide acima so: a 1. todas as palavras contendo aa como subpalavra 2. todas as palavras contendo exatamente dois b 3. todas as palavras que terminam com aa ou bb 4. todas as palavras que no possuem dois a consecutivos a
O autmato nito compartilha com um computador real o o fato de que ele tem uma unidade central de processamento de capacidade xa, nita. Recebe sua entrada como uma string e no produz nenhuma sa exceto uma indicao informando se a da, ca a entrada foi ou no considerada aceitvel. a a
Nesta disciplina, devemos denir modelos de computao proca gressivamente poderosos e dispositivos cada vez mais sosticados para aceitar e gerar linguagens. Um sistema de estados nitos um modelo matemtico de e a um sistema com entradas e sa das. Um exemplo clssico um a e elevador. Trata-se de um sistema que no memoriza instruoes. a c Cada estado sumariza as informaoes: andar corrente e direo c ca do movimento. As entradas para o sistema so requisioes pena c dentes.
A ta nita ` esquerda e ` direita, sendo dividida em clulas, e a a e onde cada uma armazena um s mbolo. Os s mbolos pertencem a um alfabeto de entrada. No poss gravar sobre a ta e a e vel no existe uma memria auxiliar. Inicialmente, a palavra a ser a o processada ocupa toda a ta.
Tpicos em Computaao I o c
Autmato Finito o
in cabea na clula mais ` esquerda cio c e a aps leitura movimento p/ direita o estado corrente e s mbolo lido determinam o novo estado
estado anterior
AFD
a
smbolo lido
q
novo estado
Estado Inicial
Estado Final
qi
Controle
qf
A unidade de controle possui um nmero nito e pr-denido u e de estados. A unidade de leitura l o s e mbolo de uma clula a e cada vez. Aps a leitura, a cabea da ta move-se uma clula o c e para a direita. Inicialmente a cabea da ta est posicionada na c a clula mais a esquerda. e O programa uma funo que dependendo do estado corrente e ca e do s mbolo lido, determina o novo estado do autmato. o
Um autmato nito pode ser representado atravs de um grafo o e (diagrama de estados) como mostra o slide acima. Note na representao dos estados iniciais e nais. ca
AFD - Denio ca
M = (, Q, , q0 , F ) alfabeto de s mbolos de entrada Q conj. de estados poss veis do autmato o o qual nito e funo de transio ( : Q x Q) ca ca q0 estado inicial (q0 Q) F conjunto dos estados nais tal que F est contido em Q a
Exemplo 1
L = {w | w possui a como subpalavra} M = (, Q, , q0 , F ) = {a} Q = {q0 } F = {q0 } q0 a q0
q0
Exemplo 2
Um autmato nito determin o stico (AFD), ou simplesmente autmato nito M , determinado pela qu o e ntupla:
M = (, Q, , q0 , F )
Tpicos em Computaao I o c
Exerc cio 1
L = (a b) M = (, Q, , q0 , F ) = {a, b} Q = {q0 } F = {q0 } a b q0 q0 q0
q0 a
Exerc cio 4
L = (a.b)+ M = (, Q, , q0 , F ) = { a, b} Q = {q0 , q1 , qf } F = {q0 } a b qf -
q0 q1 q1 -
a, b
qf q1
q0
a q1 b qf
Exerc cio 2
L = (a b)+ M = (, Q, , q0 , F ) = { a, b} Q = {q0 , qf } F = {qf } a b
q0 b a qf
a,b
q0 qf qf qf qf qf
aps processar o ultimo s o mbolo da ta, assume um estado nal: o autmato pra e a o a entrada aceita. e aps processar o ultimo s o mbolo da ta, assume um estado no nal: o autmato pra a o a e a entrada rejeitada e
b
q0 qf qf -
a funo programa indenida para o ca e argumento (estado corrente e s mbolo lido): o autmato pra e a entrada rejeitada o a e
Um autmato sempre pra aps processar qualquer entrada, o a o pois como toda palavra nita e como um novo s e mbolo de entrada lido a cada aplicao da funo programa, no existe e ca ca a a possibilidade de ciclo (loop) innito. A parada de processamento pode ocorrer de duas maneiras: aceitando ou rejeitando uma entrada w
Tpicos em Computaao I o c
Exerc cios
Desenvolver AFDs que reconheam as seguintes c linguagens sobre = {a, b} 1. L1 = {w | o prexo de w aa} e 2. L2 = {w | w possui aa ou bb como subpalavra} 3. L3 = {w | w possui um nmero par de a e b} u 4. L4 = {w|w possui um nmero u mpar de a}
q0 q0
A
0 q0 1 q1
1 0 0 1 0 q1 q1 q1 q0 1 q0
linguagem aceita por um autmato o nito M = (, Q, , q0 , F ) denotada por ACEITA(M), ou L(M) o conjunto de todas as palavras pertencentes a que so e a aceitas por M . Analogamente, REJEITA(M) o conjunto de todas as e palavras pertencentes a que so rejeitadas por M. a a interseco dos conjunto ACEITA(M) e REJEITA(M) ca e vazio a unio dos conjuntos ACEITA(M) e REJEITA(M) a e
Construa um autmato nito determin o stico dada as linguagens acima. Dena o formalismo do autmato, sua tabela de o transio e verique se uma cadeia que pertena a linguagem ca c e reconhecida pelo autmato. Em todas as linguagens o alfabeto o {a,b}. e 1. M1 = (, Q, , q0 , F ) = {a, b} Q = {q0 , q1 , q2 } F = {q2 } q0 q1 q2 a q1 q2 q2 b q2
a,b
Exerc cio
Dado o diagrama de estado do AFD, monte-o e verique se aceita a cadeia aabba. M = (, Q, , q0 , F ) = {a, b} Q = {q0 , q1 } F = {q0 }
q0 a q1 a q2
q0 q0 q1 q1 q1 q0
Soluo: ca
0 1 q0 1 q1 0
Tpicos em Computaao I o c
b a q0 a
q1
q0 a q1 b a a q3 b a,b b
Exerc cios
q2
q0 q0 q1 q1 q0 q2 q2 q0 q3 q3 q3 q3
q0 q2 q1 q1 q1 q0 q2 q4 q5 q3 q5 q4 q4 q3 q2 q5 q2 q3
Construa um AFD a partir das tabelas de transio acima. ca Dena o formalismo do AFD e verique se uma cadeia recoe nhecida.