Você está na página 1de 6

FACENS - Faculdade de Engenharia de Sorocaba

Tpicos em Computaao I o c

Linguagem Regular e Autmatos Finitos o


Linguagens Regulares
Classe das linguagens mais simples. Reconhecimento de cadeias com pouca complexidade. As palavras de uma linguagem regular e reconhecida por um AF. Formalismos: AF: reconhecedor Expresso Regular: geradora a

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

Expresses Regulares (ER) o Convenoes c


Toda linguagem regular pode ser descrita por uma expresso regular. a Denida atravs de: e conjuntos bsicos a concatenao ca unio a concatenao sucessiva tem precedncia sobre ca e a concatenao e a unio ca a abc+a (((ab)c)+(a)) a concatenao tem precedncia sobre a unio. ca e a ab+a ((ab)+(a))

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

A omisso de parnteses em uma ER usual, respeitando as a e e convenoes citadas no slide acima. c

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

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

Sistema de Estados Finitos Autmato Finito o


Modelo matemtico com entradas e sa a das. Possui um nmero nito pr-denido de u e estados. Cada estado resume somente as informaoes c do passado necessrias para determinar as a aoes para a prxima entrada. c o Exemplos: elevador, analisadores lxicos, e processadores de texto. Mquina composta por trs partes: a e 1. Fita dispositivo de entrada que contm a e informao a ser processada ca 2. Unidade de controle reete o estado corrente da mquina. Possui uma unidade de leitura a (cabea da ta) acessando uma clula de cada c e vez e movimentando-se sempre para a direita 3. Programa ou Funo de Transio comanda ca ca as leituras e dene o estado da mquina 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.

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

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:

L = {w | w possui a+ como subpalavra} M = (, Q, , q0 , F ) = {a} Q = {q0 , qf } F = {qf } q0 qf a qf qf


q0 a qf

M = (, Q, , q0 , F )

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

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

Condioes de Parada em AFD c Exerc cio 3


L = (a.b) M = (, Q, , q0 , F ) = { a, b} Q = {q0 , qf } F = {q0 } a b q0
q0 a 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

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

Tpicos em Computaao I o c

Vericao de Validade da cadeia ca


Dado o autmato nito M abaixo, verique se o 01001011 L(M)
0 1 q0 1 q1 0

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

Cadeia: aabba aceita: q0 q1 q2 q2 q2 q2 a a b b a

q0 q0 q1 q1 q1 q0

Soluo: ca
0 1 q0 1 q1 0

q0 q0 q0 q1 q0 q0 a a b b a A cadeia aabba aceita pois esgotada no estado nal do e e autmato. o

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

Tpicos em Computaao I o c

2. M2 = (, Q, , q0 , F ) = {a, b} Q = {q0 , q1 , q2 , q3 } F = {q3 } q0 q1 q2 q3 a q1 q3 q1 q3 b q2 q2 q3 q3

b a q0 a

q1

Cadeia: abbabab aceita: q0 q1 q1 q1 q0 q0 q1 q1 a b b a b a b

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

Cadeia: babaab aceita: q0 q2 q1 q2 q1 q3 q3 b a b a a b 3. M3 = (, Q, , q0 , F ) = {a, b} Q = {q0 , q1 , q2 , q3 } F = {q0 } q0 q1 q2 q3 a q2 q3 q0 q1 b q1 q0 q3 q2


b q0 b a a b q2 b q3 a a q1

Construa um AFD a partir das tabelas de transio acima. ca Dena o formalismo do AFD e verique se uma cadeia recoe nhecida.

Cadeia: ababaa aceita: q0 q2 q3 q1 q0 q2 q0 a b a b a a 4. M4 = (, Q, , q0 , F ) = {a, b} Q = {q0 , q1 } F = {q1 } q0 q1 a q1 q0 b q0 q1

Profa. Tiemi Christine Sakata

Você também pode gostar