Escolar Documentos
Profissional Documentos
Cultura Documentos
_______________________________________________
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
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
Cada estado resume somente as informaes do passado necessrias para determinar as aes para a prxima entrada.
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.
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
q0
qf
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
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
a a p0
p1
...
pn
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
<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
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
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