Você está na página 1de 16

Universidade Catlica de Pelotas Escola de informtica 058814 Linguagens Formais e Autmatos TEXTO 1

Linguagens Regulares e Autmatos Finitos


Prof. Luiz A M Palazzo Maro de 2008

_______________________________________________

Hierarquia de Chomsky
Ling. Recursivamente Enumerveis ou do Tipo 0 Ling. Sensveis ao Contexto ou do Tipo 1 Ling. Livres de Contexto ou do Tipo 2 Linguagens Regulares ou do Tipo 3

Fig 1: Hierarquia de Chomsky (Lingstica)

O estudo das linguagens regulares (ou linguagens do tipo 3 na Hierarquia de Chomsky, as mais simples, permitindo abordagens de pequena complexidade, grande eficincia e fcil implementao) pode ser abordado atravs de 3 diferentes formalismos: operacional ou reconhecedor: Autmato Finito, que pode ser determinstico, no determinstico ou com movimento vazio. axiomtico ou gerador: Gramtica Regular denotacional: gerador). Expresso Regular (tambm pode ser considerado

Sistemas de Estados Finitos


Um sistema de estados finitos um modelo matemtico de um sistema com entradas e sadas discretas.

Pode assumir um nmero finito e pr-definido de estados.

Cada estado resume somente as informaes do passado necessrias para determinar as aes para a prxima entrada.

Podem ser associados a diversos tipos de sistemas naturais e construdos.

Exemplo: Elevador (1) No memoriza instrues anteriores. (2) Cada estado sumariza as informaes: andar corrente e direo do movimento. (3) As entradas para o sistema so requisies pendentes.

Outros exemplos de sistemas de estados finitos: analisadores lxicos e processadores de texto

SEF de difcil manipulao: (1) O crebro humano, com 235 clulas e tamanha complexidade que esta abordagem se torna ineficiente. (2) O computador onde o estudo adequado da computabilidade exige uma memria sem limite pr-definido.

Autmatos Finitos
Um autmato finito determinstico, ou simplesmente autmato finito, pode ser vista como uma mquina composta basicamente por trs partes:

Controle
Figura 2: Autmato Finito como uma mquina com controle finito.

a. Fita: Dispositivo de entrada que contm a informao a ser processada. A fita finita esquerda e direita. dividida em clulas onde cada uma armazena um smbolo. Os smbolos pertencem a um alfabeto de entrada. No possvel gravar sobre a fita. No existe memria auxiliar. Inicialmente a palavra a ser processada, isto , a informao de entrada ocupa toda a fita.

b. Unidade de Controle: Reflete o estado corrente da mquina. Possui uma unidade de leitura (cabea de leitura, que acessa uma unidade da fita de cada vez. Pode assumir um nmero finito e pr-definido de estados. Aps cada leitura a cabea move-se uma clula para a direita.

c. Programa ou Funo de Transio: Funo que comanda as leituras e define o estado da mquina. Dependendo do estado corrente e do smbolo lido determina o novo estado do autmato. Usa-se o conceito de estado para armazenar as informaes necessrias determinao do prximo estado, uma vez que no h memria auxiliar.

Definio: Autmato Finito Determinstico (AFD) Um autmato finito determinstico (AFD), ou simplesmente autmato finito M uma quntupla: M = (, Q, , q0, F), onde: Q q0 F Alfabeto de smbolos de entrada Conjunto finito de estados possveis do autmato Funo programa ou funo de transio : Q x Q Estado inicial tal que q0 Q Conjunto de estados finais, tais que F Q.

A funo programa pode ser representada como um grafo orientado finito conforme representado abaixo:

p estado anterior

a smbolo lido

q novo estado

Figura 3: Representao da Funo programa como um grafo

q0

qf

Figura 4: Representao dos estados inicial e final como nodos de um grafo

O processamento de um autmato finito M para uma palavra de entrada w consiste na sucessiva aplicao da funo programa para cada smbolo de w, da esquerda para direita, at ocorrer uma condio de parada. 4

Exemplo: Autmato Finito O autmato finito M1 = ({a, b}, {q0, q1, q2, qf}, 1, q0, {qf}) , onde representada pela tabela abaixo, reconhece a linguagem L1 = {w | w possui aa ou bb como subpalavra} 1

1 q0 q1 q2 qf

a q1 qf q1 qf

b q2 q2 qf qf

a b q1

q0

q2 a

qf

a, b
Figura 5: Grafo do autmato finito determinstico

O algoritmo apresentado usa os estados q1 e q2 para memorizar o smbolo anterior. Assim q1 representa o smbolo anterior a e q2 representa o smbolo anterior b. Aps identificar dois aa ou dois bb consecutivos o autmato assume o estado qf (final) e varre o sufixo da palavra de entrada sem 5

qualquer controle lgico, somente para terminar o processamento. A figura 2.5 ilustra o processamento do autmato finito M1 para a palavra de entrada w = abba, a qual aceita.

a
0

b b

Figura 6: Seqncia de processamento

Note-se que um autmato finito sempre pra ao processar qualquer entrada, pois como toda palavra finita e como um novo smbolo de entrada lido a cada aplicao da funo programa, no existe a possibilidade de ciclo (loop) infinito. A parada do processamento pode ocorrer de duas maneiras: aceitando ou rejeitando uma entrada w. As condies de parada so as seguintes: a. Aps processar o ltimo smbolo da fita o autmato finito assume um estado final. O autmato para e a entrada w aceita. b. Aps processar o ltimo smbolo da fita, o autmato finito assume um estado no-final. O autmato para e a entrada w rejeitada c. A funo programa indefinida para o argumento (estado corrente e smbolo lido). O autmato para e a entrada w rejeitada. Para definir formalmente o comportamento de um autmato finito (ou seja, dar semntica sintaxe de um autmato finito) necessrio estender a definio da funo programa, usando como argumento um estado e uma palavra.

Exerccio Desenvolver AFDs que reconheam as seguintes linguagens sobre = {a, b}: a) {w | w possui aaa como subpalavra} 6

b) {w | o sufixo de w aa} c) {w | w possui um nmero mpar de a e b} d) {w | w possui nmero par de a e mpar de b ou vice-versa} e) {w | o quinto smbolo da esquerda para a direita de w a} Definio: Funo Programa Estendida Seja M = (, Q, , q0, F) um AFD. A funo programa estendida, denotada por: : Q x * Q a funo programa : Q x Q, estendida para palavras, e indutivamente definida como se segue: (q, ) = q (q, aw) = ( (q, a), w) Exemplo: Funo Programa Estendida Seja o AFD M1 = ({a, b}, {q0,q1,q2,qf}, 1, q0, {qf}), definida no exemplo anterior. Ento a funo programa estendida aplicada palavra abaa a partir do estado inicial q0 como se segue: (q0, abaa) = (q1, baa) = (q2, aa) = ( (q2, a), a) = (q1, a) = ( (q1, a), ) = (qf, ) = qf Comentrios Por simplicidade tanto quanto sero denotadas simplesmente por . funo estendida sobre abaa funo estendida sobre baa funo estendida sobre aa processa aa funo estendida sobre a processa abaa funo estendida sobre . Fim da induo. A palavra aceita.

( (q0, a), baa) = processa abaa ( (q1, b), aa) = processa baa

A linguagem aceita por um autmato finito M = (, Q, , q0, F) denotada por ACEITA(M), ou L(M), o conjunto de todas as palavras pertencentes a * que so aceitas por M, ou seja: ACEITA(M) - {w | (q0, w) F}. Analogamente, REJEITA(M) o conjunto de todas as palavras pertencentes a * que so rejeitadas por M. As seguintes afirmaes so verdadeiras a. A interseco dos conjuntos ACEITA(M) e REJEITA(M) vazio. b. A unio dos conjuntos ACEITA(M) e REJEITA(M) *. c. REJEITA(M) o complemento de ACEITA(M) em * d. ACEITA(M) o complemento de REJEITA(M) em * Definio: Equivalncia de Autmatos Finitos Dois autmatos M1 e M2 so equivalentes se e somente se: ACEITA(M1) = ACEITA(M2) Definio: Linguagens Regulares ou do Tipo 3 Uma linguagem aceita por um autmato finito uma Linguagem Regular ou do Tipo 3. Exemplo: Autmato Finito Os autmatos M2 = ({a,b}, {q0}, 2, q0, ) e M3 = ({a, b}, {q0}, 3, q0, {q0}) reconhecem respectivamente as linguagens L1 = e L2 = *, onde 2 e 3 so representadas abaixo em forma de tabela. M2 2 q0 a q0 b q0

M2 q0 a, b

M3 3 q0 a q0 b q0

M3 q0 a, b

Exemplo: Autmato Finito O autmato M4 = ({a, b}, {q0, q1, qa2, q3}, , q0, {q0}), reconhece a linguagem: L4 = {w | w possui um nmero par de a e b}

M4 q0

b q1 b a

a b q2 b

a q3

Autmato Finito No-Determinstico (AFN)


No-determinismo uma importante generalizao dos AFs, essencial para a teoria da computao e para a teoria das linguagens formais.

Qualquer AFN pode ser simulado por um autmato finito determinstico

a a p0

p1

...

pn

Em AFNs, a funo programa leva de um par estado-smbolo a um conjunto de estados possveis.

Pode-se entender que o AFN assume simultaneamente todas as alternativas.de estados possveis {p0, p1, ..., pn} a partir do estado atual (q Q) e do smbolo recebido ( a ), como se houvesse uma unidade de controle para processar cada alternativa independentemente, sem compartilhar recursos com as demais.

Assim o processamento de um caminho no influi no estado, smbolo lido e posio da cabea dos demais caminhos alternativos.

10

Definio: Autmato Finito No-Determinstico (AFN) Um AFN uma quntupla M = (, Q, , q0, F), onde: Q q0 F Alfabeto de smbolos de entrada Conjunto finito de estados possveis do autmato Funo programa ou funo de transio : Q x 2Q, parcial. Estado inicial tal que q0 Q Conjunto de estados finais, tais que F Q.

Portanto os componentes do AFN so os mesmos do AFD, com exceo da funo programa (ver figura anterior). O processamento de um AFN M para um conjunto de estados ao ler um smbolo, a unio dos resultados da funo programa aplicada a cada estado alternativo. Definio: Funo Programa Estendida Seja M = (, Q, , q0, F) um AFN. A funo programa estendida, denotada por: : 2Q x * 2Q a funo programa : Qx 2Q, estendida para palavras, e indutivamente definida como se segue: (P, ) = P (P, aw) = (qP (q, a), w)

Assim, tem-se que, para um conjunto de estados {q1, q2, ..., qn} e para um smbolo a: ({q1, q2, ..., qn}, a) = (q1, a) (q2, a) ... (qn, a)

11

Por simplicidade tanto quanto sero denotadas simplesmente por . A linguagem aceita por um AFN M = (, Q, , q0, F) denotada por ACEITA(M), ou L(M), o conjunto de todas as palavras pertencentes a * tais que existe pelo menos um caminho alternativo que aceita a palavra, ou seja: ACEITA(M) = {w | existe q (q0, w) tal que q F}. Analogamente, REJEITA(M) o conjunto de todas as palavras de * que so rejeitadas por todos os caminhos alternativos de M a partir de q0.

Exemplo: Autmato Finito No-Determinstico O AFN M5 = ({a, b}, {q0, q1, q2, qf}, 5, q0, {qf}), reconhece a linguagem L5 = {w | w possui aa ou bb como sub-palavra}, onde 5 dada abaixo, na forma de tabela: 5 q0 q1 q2 qf a {q0, q1} {qf} {qf} b {q0, q2} {qf} {qf}

q0 a q1 a qf

a, b b q2 b

a, b

12

Exemplo: Autmato Finito No-Determinstico: O AFN M6 = ({a,b}, {q0, q1, q2, qf}, 6, q0, {qf}), representado na figura abaixo reconhece a linguagem L6 = { w | w possui aaa como sufixo }

q0 a, b

q1

q2

qf

Teorema: Equivalncia entre AFD e AFN

A classe dos AFD equivalente classe dos AFN.


A prova consiste em mostrar que para todo AFN M possvel construir um AFD M que realiza o mesmo processamento, ou seja, M simula M. A demonstrao apresenta um algoritmo para converter um AFN qualquer em um AFD equivalente. A idia central do algoritmo a construo de estados de M que simulem as diversas combinaes de estados de M. A transformao contrria - construir um AFN a partir de um AFD - no necessita ser demonstrada, uma vez que decorre trivialmente das definies (Por qu? Porque a funo programa do AFN contm a funo programa do AFD). Seja M = (, Q, , q0, F) um AFN qualquer e seja M = (, Q, , <q0>, F) um AFD construdo a partir de M como se segue: Q : Conjunto de todas as combinaes, sem repeties, de estados de Q, as quais so denotadas por <q1q2...qn> onde qi Q para i em {1, 2, ..., n}. Note-se que a ordem dos elementos no identifica mais combinaes. Por exemplo: <quqv> = <qvqu>. Tal que (<q1...qn>, a) = <p1...pm> sss ({q1, ..., qn}, a) = {p1, ..., pm}, ou seja, um estado de M representa uma imagem de todos os estados alternativos de M. Estado inicial. Conjunto de todos os estados <q1q2...qn> Q tal que alguma componente qi F, para i {1, 2, ..., n}.

<q0>: F :

13

PROVA: A demonstrao de que o AFD M simula o processamento do AFN M dada por induo sobre o tamanho da palavra. Deve-se provar que, para uma palavra qualquer w de : (<q0>, w) = <q1...qu> sse ({q0}, w) = {q1, ..., qu} (A prova est no livro, na pgina 50). Exemplo: Construo de um AFD a partir de um AFN. Seja o AFN M6 = ({a,b}, {q0, q1, q2, qf}, 6, q0, {qf}), dado no exemplo anterior e representado abaixo:
q0 a, b a q1 a q2 a qf

O AFD M6 = ({a, b}, Q, , <q0>, F), construdo conforme o algoritmo dado :


b p0 b a p1 a b p2 a b pf a

onde: Q F 6 = {<q0>,<q1>,<q2>,<qf>,<q0q1>,<q0q2>, ...,<q0q1q2qf>} = {<qf>,<q0qf>,<q1qf>,...,<q0q1q2qf>} = tal conforme os valores dados na tabela abaixo: 6 <q0> <q0q1> <q0q1q2> <q0q1q2qf> a <q0q1> <q0q1q2> <q0q1q2qf> <q0q1q2qf> b <q0> <q0> <q0> <q0>

No grafo que representa M6, acima, p0, p1, p2 e pf denotam respectivaente <q0>, <q0q1>, <q0q1q2>, <q0q1q2qf>.

14

Autmato Finito com Movimento Vazio


Movimentos vazios constituem uma generalizao dos AFN e so transies que ocorrem sem que haja a leitura de smbolo algum Os movimentos vazios podem ser interpretados como um no-determinismo interno do autmato, que encapsulado. A no ser por uma eventual mudana de estados, nada mais pode ser observado sobre um movimento vazio.. Qualquer AF pode ser simulado por um autmato finito no-determinstico Definio: Autmato Finito com Movimento Vazio (AF) Um autmato finito no-determinstico e com movimento vazio (AFN), ou simplesmente autmato finito com movimento vazio (AF), uma quntupla: M = (, Q, , q0, F), onde: QAlfabeto de smbolos de entrada Conjunto finito de estados possveis do autmato

Funo programa ou funo de transio : Q x ( {}) 2Q, parcial. q0 F Estado inicial tal que q0 Q Conjunto de estados finais, tais que F Q.

Portanto os componentes do AF so os mesmos do AFN, com exceo da funo programa (ver figura abaixo).

a1 p0

an

p1

...

pn

O processamento dos AF similar ao dos AFN. Por analogia o processamento de uma transio para uma entrada vazia tambm no-determinstica. Assim um AF ao processar uma entrada vazia assume simultaneamente os estados de origem e destino da transio. 15

Exemplo: Autmato Finito com Movimento Vazio O AF M7 = ({a,b}, {q0, qf}, 7, q0, {qf}), representado na figura abaixo reconhece a linguagem L7 = { w | qualquer smbolo a antecede qualquer smbolo b }, onde 7 representada na forma da tabela:

7 q0 qf

a {q0} -

b {qf}

{qf} -

q0 a

qf b

16

Você também pode gostar