ronaldo.rgold@gmail.com LINGUAGENS REGULARES LINGUAGENS REGULARES So linguagens mais simples, segundo Chomsky Tambm chamadas de Linguagens do Tipo 3 Permitem desenvolver algoritmos de: Reconhecimento de formalismos (*) Gerao de formalismos (*) Converso entre formalismos (*) Possuem fortes limitaes de expressividade Ex: Linguagens com duplo balanceamento no so regulares Pascal, C, Java, dentre outras Exemplo de aplicao: Anlise Lxica (*) de pouca complexidade, grande eficincia e fcil implementao LINGUAGENS REGULARES Sistema de Estados Finitos: Modelo matemtico de sistemas com entradas e sadas discretas. Pode assumir um nmero finito e predefinido de estados. Cada estado resume informaes do passado necessrias para determinar as aes sobre a entrada seguinte. Ex. Clssico: Elevador No memoriza requisies anteriores. Cada estado indica andar corrente e direo movimento. Entradas so requisies pendentes. LINGUAGENS REGULARES Um autmato Finito um sistema de estados finitos. Constitui modelo computacional do tipo seqencial, comum em diversos estudos terico-formais da computao. Pode ser: Determinstico (AFD) Estado corrente e smbolo lido determinam um nico estado. No Determinstico (AFN) Estado corrente e smbolo lido determinam um conjunto de estados. Com Movimentos Vazios Dependendo do estado corrente e sem ler qualquer smbolo, o sistema pode assumir um conjunto de estados. Movimentos vazios podem ser vistos como transies encapsuladas nas quais, alm de uma eventual mudana de estado, nada mais pode ser observado. Ideia anloga ao conceito de encapsulamento das Linguagens de Programao. Autmato Finito LINGUAGENS REGULARES Pode ser interpretado como uma mquina com controle finito constituda de: Fita Unidade de Controle Programa (Funo Programa ou Funo Transio) Autmato Finito Determinstico (AFD) Fita finita, dividida em clulas, cada uma armazenando um smbolo do alfabeto de entrada. No possvel gravar sobre a fita. Unidade de controle possui nmero finito e predefinido de estados. Unidade de controle se desloca para a direita. a a b c c b a a b c Controle LINGUAGENS REGULARES Formalmente: AFD=(,Q,o,q 0 ,F) um alfabeto de smbolos de entrada Q um conjunto finito de estados possveis o uma funo parcial denominada funo programa o: Q x Q o(p, a) = q uma transio do estado p para o estado q q 0 um elemento de Q, chamado estado inicial F _ Q, denominado conjunto de estados finais Autmato Finito Determinstico (AFD) LINGUAGENS REGULARES Autmato Finito Determinstico (AFD) Representao Grfica Representao por meio de grafos dirigidos. Estados so ns (vrtices)
Transies so arestas, ligando os ns correspondentes. Ex: o(p, a)=q
Estados iniciais e finais possuem representao distinta dos demais.
Representaes de Transies Paralelas (mesma origem e destino)
LINGUAGENS REGULARES Autmato Finito Determinstico (AFD) Representao Grfica Representaes Alternativas Outros Autores: LINGUAGENS REGULARES Autmato Finito Determinstico (AFD) Representao do Processamento a a b b Controle Finito fita com a cadeia w de entrada Cabea de leitura Incio do processo de reconhecimento pelo estado inicial q o LINGUAGENS REGULARES Representao alternativa de uma funo programa: tabela de dupla entrada. o a b q 0 q 1 q 2 q 1 q f q 2 q 2 q 1 q f
q f q f q f
Autmato Finito Determinstico (AFD) Exemplo de uma funo programa: Argumentos: - Estado Atual - Valor de Entrada Sada: - Prximo Estado LINGUAGENS REGULARES Exemplo: AFD que reconhece strings binrias com um nmero mpar de smbolos 1.
Forma Tabular: Forma Grfica: Autmato Finito Determinstico (AFD) o 0 1 q o q 1 q o q 1 q 1 q o q o q 1 0 1 1 0 LINGUAGENS REGULARES Exemplo: Seja a cadeia 01110 e o AFD do exemplo anterior. Veja o processamento: Autmato Finito Determinstico (AFD) 0 1 1 1 0 Controle Finito Cabea de leitura q 1 e F 0 1 1 1 0 Controle Finito o(q 0 , 0) = q 0
Cabea de leitura q 1 LINGUAGENS REGULARES A computao de um autmato finito, para uma palavra de entrada w, consiste na sucessiva aplicao da funo programa para cada smbolo de w (da esquerda para a direita) at ocorrer uma condio de parada. Autmato Finito (AF) Obs: AF sempre pra (palavra tem comprimento finito) AF:
aceita W quando aps ltimo smbolo processado, o estado final rejeita W quando aps ltimo smbolo processado, o estado no final. ou quando a funo programa indefinida para o argumento LINGUAGENS REGULARES Exemplo: AFD que reconhece palavras de E * , onde E={a}
M = (, Q, o, q o , F)
Q = { q o }, = { a }, F = { q 0 }
Forma Tabular : Forma Grfica :
Autmato Finito Determinstico (AFD) o a q o q o q o a LINGUAGENS REGULARES Exemplo: AFD que reconhece palavras sobre E={a}, iniciadas com a letra a.
M = (, Q, o, q o , F)
Q = {q o , q 1 }, = { a }, F = { q 1 }
Forma Tabular : Forma Grfica :
Autmato Finito Determinstico (AFD) o a q o q 1 q 1 q 1 q o q 1 a a LINGUAGENS REGULARES Ex: Considere a linguagem L = {w / w possui aa ou bb como subpalavra} O AFD M a seguir reconhece L. M = ({a,b}, {q 0 , q 1 , q 2 , q f }, o 1 , q 0 , {q f }) q 0 q 1 q 2 q f a a a b b b a,b o 1 a b q 0 q 1 q 2 q 1 q f q 2 q 2 q 1 q f
q f q f q f
Obs: Os estados q 1 e q 2 so usados para representar a ocorrncia anterior de a e b, respectivamente. E quanto a q 0 e q f ? Para que servem? Autmato Finito Determinstico (AFD) LINGUAGENS REGULARES Exerccio: Represente a funo programa e os componentes (, Q, o, q o , F) do AFD M1 abaixo. Em seguida, indique a sequncia de processamento de M1 diante da cadeia 001122120. Qual o tipo de cadeia reconhecida (ou aceita) por M1? Autmato Finito Determinstico (AFD) LINGUAGENS REGULARES Exerccio: Considere o AFD M2 = ({a,b}, {q 0 , q f }, o 2 , q 0 , {q f }) cuja funo programa encontra-se definida abaixo. Indique a representao grfica de M2. Em seguida, indique a sequncia de processamento de M2 diante da cadeia aaba. Qual o tipo de cadeia reconhecida (ou aceita) por M2? o 2 a b q 0 q 0 q f q f q 0 q f
Autmato Finito Determinstico (AFD) LINGUAGENS REGULARES Exerccio: Represente a funo programa e os componentes (, Q, o, q o , F) do AFD M3 abaixo. Em seguida, indique a sequncia de processamento de M3 diante da cadeia aabbccabc. Quais os tipos de cadeia reconhecidos por M3? Autmato Finito Determinstico (AFD) LINGUAGENS REGULARES Seja M=(,Q,o,q 0 ,F) um AFD. A Funo Programa Estendida ou Computao de M, denotada por: o * : Q x * Q a funo programa o: Q x Q estendida para palavras e indutivamente definida como segue: (i) o * (q, ) = q (base da induo) (ii) o * (q, aw) = o * (o
(q,a), w) (passo indutivo)
Portanto, a funo programa estendida consiste na sucessiva aplicao da funo programa para cada smbolo da palavra, a partir de um dado estado.
Autmato Finito Determinstico (AFD) LINGUAGENS REGULARES Exemplo de Funo Programa Estendida: Cadeia de entrada: abaa Computao de abaa: o * (q 0 , abaa) = o * (o(q 0 ,a), baa) = o * (q 1 , baa) = o * (o(q 1 ,b), aa) = o * (q 2 , aa) = o * (o(q 2 ,a), a) = o * (q 1 , a) = o * (o(q 1 ,a), ) = o * (q f , ) = q f
Autmato Finito Determinstico (AFD) q 0 q 1 q 2 q f a a a b b b a,b Portanto, a cadeia abaa aceita pelo AFD LINGUAGENS REGULARES Outro exemplo de Funo Programa Estendida: Cadeia de entrada: babab Complete a computao de babab: o * (q 0 , babab) =
Autmato Finito Determinstico (AFD) q 0 q 1 q 2 q f a a a b b b a,b A cadeia babab aceita ou rejeitada pelo AFD ? LINGUAGENS REGULARES Seja M=(,Q,o,q 0 ,F) um AFD; A Linguagem Aceita ou Linguagem Reconhecida por M, denotada por ACEITA(M) ou L(M) o conjunto de todas as palavras de * aceitas por M a partir do seu estado inicial q 0 .
Linguagem Aceita L(M)={w/o * (q 0 ,w)eF}, onde o * a Funo Programa Estendida
Analogamente, a Linguagem Rejeitada por M: REJEITA(M)={w/o * (q 0 ,w)eF ou o * (q 0 ,w) indefinida} LINGUAGENS REGULARES Exemplo: Seja M=(,Q,o,q 0 ,F) o AFD abaixo; A Linguagem Aceita ou Linguagem Reconhecida por M formada por cadeias que possuem subcadeias aa ou bb.
= {a, b}, Q = {q 0 , q 1 , q 2 , q f }, F = {q f }
Linguagem Aceita q 0 q 1 q 2 q f a a a b b b a,b LINGUAGENS REGULARES ACEITA(M) REJEITA(M)=* ACEITA(M) REJEITA(M)= * - ACEITA(M) = REJEITA(M) * - REJEITA(M) = ACEITA(M)
Todo autmato M define partio sobre *
ACEITA(M)
REJEITA(M) * Partio de *, induzida por um Autmato Finito M LINGUAGENS REGULARES Exemplo: Seja M=(,Q,o,q 0 ,F) o AFD abaixo. ACEITA(M)={e | e possui aa ou bb como subcadeias}. REJEITA(M)={e | e no possui aa nem bb como subcadeias}.
= {a, b}, Q = {q 0 , q 1 , q 2 , q f }, F = {q f }
Linguagem Aceita e Linguagem Rejeitada q 0 q 1 q 2 q f a a a b b b a,b LINGUAGENS REGULARES Diferentes autmatos finitos podem aceitar uma mesma linguagem.
Assim, sendo M 1 e M 2 autmatos finitos:
M 1 equivalente a M 2
se, e somente se ACEITA(M 1 )=ACEITA(M 2 ) Autmato Finitos Equivalentes LINGUAGENS REGULARES Exemplo: Sejam os autmatos M1 e M2 abaixo. Eles so equivalentes? Autmato Finitos Equivalentes M1 = (, Q, o, q o , F)
Q = {q o , q 1 , q 2 }, = { a,b }, F = { q 1 } M2 = (, Q, o, q o , F)
Q = {q o , q 1 , q 2 , q 3 }, = { a,b }, F = { q 1 } q o q 1 a a, b q 2 b a, b q o q 1 a a, b q 2 b a, b q 3 a, b LINGUAGENS REGULARES Exemplo: Sejam os autmatos M1 e M2 abaixo. Eles so equivalentes? Autmato Finitos Equivalentes M1 = (, Q, o, q o , F)
Q = { q o }, = { a }, F = { q 0 } M2 = (, Q, o, q o , F)
Q = { q o }, = { a }, F = { q 0 } q o a q o q 1 a a LINGUAGENS REGULARES Construa autmatos finitos determinsticos que reconheam cada uma das seguintes linguagens sobre E ={a,b} a) {e e E * : cada a em e imediatamente precedido por um b} b) {e e E * : e possui baba como subcadeia} c) {e e E * : e no possui aa nem bb como subcadeias} d) {e e E * : e possui um nmero mpar de a e um nmero par de b} e) {e e E * : e possui aa e bb como subcadeias}
Exerccios: Ateno: Utilizar a ferramenta JFLAP para implementar e testar cada um dos AFDs construdos no exerccios anterior. LINGUAGENS REGULARES L dita uma Linguagem Regular (ou Linguagem do tipo 3) se existe pelo menos um AFD que aceita L.
Linguagem Regular (Tipo 3) Ex: Considere a linguagem L = {w / w possui aa ou bb como subpalavra} Como vimos, o AFD M abaixo reconhece L. Portanto L uma linguagem regular. M = ({a,b}, {q 0 , q 1 , q 2 , q f }, o 1 , q 0 , {q f }) q 0 q 1 q 2 q f a a a b b b a,b o 1 a b q 0 q 1 q 2 q 1 q f q 2 q 2 q 1 q f
q f q f q f
Atividades Prticas Lista de Exerccios III Exerccios 1 e 5 Exerccio 8 da Lista III: Desenvolva um programa em computador (linguagem a sua escolha) que simule o processamento de qualquer autmato finito determinstico como segue: (a) Entradas: Alfabeto, conjunto de estados, funo de transio, estado inicial, conjunto de estados finais e as palavras a serem processadas; (b) Sadas: Condio de parada ACEITA/REJEITA e identificao do estado de parada. Exerccio de T1 (Valendo Nota) LINGUAGENS REGULARES LINGUAGENS REGULARES Autmato Finito No Determinstico (AFN) LINGUAGENS REGULARES Autmato Finito No Determinstico (AFN) O no determinismo uma importante generalizao dos modelos de mquinas, sendo de fundamental importncia no estudo de modelos para concorrncia e das linguagens formais. A facilidade do no determinismo para AF expressa no programa, sendo este uma funo parcial que: dependendo do estado corrente e do smbolo lido, determina um conjunto de estados do autmato. Um Autmato Finito No Determinstico (AFN) pode assumir um conjunto de estados alternativos, como se existisse uma multiplicao de unidades de controle, uma para cada alternativa, sem compartilhar recursos com as demais. Da a importncia para modelos concorrentes. Qualquer AFN pode ser simulado por um AFD, contribuindo para a simplificao dos modelos. LINGUAGENS REGULARES Autmato Finito No Determinstico (AFN) Formalmente: AFN=(,Q,o,q 0 ,F) um alfabeto de smbolos de entrada Q um conjunto finito de estados possveis o uma funo parcial denominada funo programa o:Qx2 Q
o(p, a) = {q 1 , q 2 , ..., q n } q 0 um elemento de Q, chamado estado inicial F _ Q, denominado conjunto de estados finais LINGUAGENS REGULARES Representao diagramtica em um AFN de uma transio do tipo: o(p, a) = {q 1 , q 2 , ..., q n }
Autmato Finito No Determinstico (AFN) LINGUAGENS REGULARES De forma anloga a um AFD, a computao de uma palavra de entrada w por um AFN consiste na aplicao da funo programa para cada smbolo de w (esquerda direita) at ocorrer condio de parada. Condies de parada em um AFN: Aceita a entrada w, quando aps processar o ltimo smbolo, existe pelo menos um estado pertencente ao conjunto de estados finais. Rejeita a entrada w, quando: Aps processar o ltimo smbolo, todos os estados alcanados no pertencem ao conjunto de estados finais. Em algum momento durante o processamento de w, a funo programa indefinida para o argumento. Autmato Finito No Determinstico (AFN) LINGUAGENS REGULARES Ex: AFN para reconhecer palavras que contenham aa ou bb. Autmato Finito No Determinstico (AFN) o a b q 0 {q 0 ,q 1 }
{q 0 ,q 2 }
q 1 {q f } -
q 2 - {q f } q f {q f } {q f } q 0 q 1 q 2 q f a a b b a,b a,b Com este AFN existem 3 caminhos: O ciclo em q 0 aps passar em toda a entrada O caminho q 0 /q 1 /q f garante a ocorrncia de aa O caminho q 0 /q 2 /q f garante a ocorrncia de bb LINGUAGENS REGULARES Seja M=(,Q,o,q 0 ,F) um AFN. A Funo Programa Estendida ou Computao de M, denotada por: o * : 2 Q x * 2 Q
a funo programa o: Q x 2 Q estendida para palavras e conjuntos de estados, indutivamente definida como segue: (i) o * (P, ) = P (base da induo) (ii) o*(P,aw)= o*( qeP o(q,a),w) (passo indutivo)
Transio estendida: o*({q 1 , q 2 ,..., q n },a) = o(q 1 , a) o(q 2 , a) ... o(q n , a)
Autmato Finito No Determinstico (AFN) LINGUAGENS REGULARES Exemplo de Funo Programa Estendida: Cadeia de entrada: abaa Computao de abaa: o * ({q 0 }, abaa) = o * (o(q 0 , a), baa) = o * ({q 0 , q 1 }, baa) = o * (o(q 0 ,b) o(q 1 ,b), aa) = o * ({q 0 , q 2 }, aa) = o * (o(q 0 ,a) o(q 2 ,a), a) = o * ({q 0 , q 1 }, a) = o * (o(q 0 ,a) o(q 1 ,a), ) = o * ({q 0 , q 1 , q f }, ) = {q 0 , q 1 , q f } F = C
Autmato Finito No Determinstico (AFN) Portanto, a cadeia abaa aceita pelo AFN q 0 q 1 q 2 q f a a b b a,b a,b LINGUAGENS REGULARES Outro exemplo de Computao: Cadeia de entrada: abbaba Computao de abbaba: o * ({q 0 }, abbaba) =
Autmato Finito No Determinstico (AFN) A cadeia abbaba aceita pelo AFN ? q 0 q 1 q 2 q f a a b b a,b a,b LINGUAGENS REGULARES Outro exemplo de Computao: Cadeia de entrada: ababa Computao de ababa: o * ({q 0 }, ababa) =
Autmato Finito No Determinstico (AFN) A cadeia ababa aceita pelo AFN ? q 0 q 1 q 2 q f a a b b a,b a,b LINGUAGENS REGULARES Autmato Finito No Determinstico (AFN) e Linguagem Aceita Seja M=(,Q,o,q 0 ,F) um AFN; A Linguagem Aceita ou Linguagem Reconhecida por M, denotada por ACEITA(M) ou L(M) o conjunto de todas as palavras de * tais que existe pelo menos um caminho alternativo que aceita a palavra a partir do seu estado inicial {q 0 }.
L(M) = {w / o * ({q 0 },w) F = C}
Analogamente, a Linguagem Rejeitada por M: REJEITA(M)={w / o * ({q 0 },w) F = C ou o * ({q 0 },w) indefinida} LINGUAGENS REGULARES Exemplo: Seja M=(,Q,o,q 0 ,F) o AFN abaixo; A Linguagem Aceita ou Linguagem Reconhecida por M formada por cadeias que possuem subcadeias aa ou bb.
= {a, b}, Q = {q 0 , q 1 , q 2 , q f }, F = {q f }
q 0 q 1 q 2 q f a a b b a,b a,b Autmato Finito No Determinstico (AFN) e Linguagem Aceita LINGUAGENS REGULARES Exemplo: Seja a linguagem L={w / w possui aaa como sufixo} sobre o alfabeto {a,b}. Construa um AFN M tal que L=ACEITA(M).
M=({a,b}, {q 0 , q 1 , q 2 , q f }, o, q 0 , {q f })
Os estados q 1 , q 2 e q f so os marcadores das ocorrncias de a. Autmato Finito No Determinstico (AFN) e Linguagem Aceita LINGUAGENS REGULARES Exerccio: Seja a linguagem L={w / w possui aaa como sufixo} sobre o alfabeto {a,b}. Construa um AFD M tal que L=ACEITA(M).
Autmato Finito No Determinstico (AFN) e Linguagem Aceita LINGUAGENS REGULARES Equivalncia entre AFD e AFN Teorema: A classe dos Autmatos Finitos Determinsticos equivalente classe dos Autmatos Finitos No Determinsticos.
Demonstrao: (Menezes, 2005, p.58)
1. Mostrar que a partir de um AFD qualquer M D possvel construir um AFN M N que realiza as mesmas computaes do M D . Isso imediato pois basta adaptar a funo programa de M D de forma que as sadas sejam conjuntos unitrios formados pelos estados definidos na funo original, ou seja, sendo:
o D : Q x Q, tal que: o(p, a) = q, faz-se a seguinte adaptao:
o N :Qx2 Q , tal que: o(p, a) = {q}
AFD AFN LINGUAGENS REGULARES Equivalncia entre AFD e AFN Demonstrao: (cont.1) 2. Mostrar que a partir de um AFN qualquer M N possvel construir um AFD M D que realiza as mesmas computaes do M N .
Seja M N = (E, Q N , o N , q 0 , F N ) um AFN qualquer.
Construmos um AFD M D = (E, Q D , o D , < q 0 >, F D ) da seguinte forma:
a) Q D o construdo a partir de todas as combinaes, sem repeties, de estados de Q N . Cada estado de Q D denotado por: < q 1 q 2 ... q n >, onde q i e Q N , para i e {1, 2, ..., n}
importante observar que a ordem dos elementos no distingue os estados. Exemplo: < q u q v > = < q v q u >
LINGUAGENS REGULARES Equivalncia entre AFD e AFN Demonstrao: (cont.2) 2. Mostrar que a partir de um AFN qualquer M N possvel construir um AFD M D que realiza as mesmas computaes do M N .
Seja M N = (E, Q N , o N , q 0 , F N ) um AFN qualquer.
Construmos um AFD M D = (E, Q D , o D , < q 0 >, F D ) da seguinte forma:
b) o D : Q D x E Q D tal que: o D (<q 1 ...q n >, a) = <p 1 ...p m >, se e somente se, o N *
({q 1 , ..., q n }, a) = {p 1 ...p m }
c) < q 0 > o estado inicial
d) F D o conjunto de todos os estados < q 1 q 2 ...q n > e Q D tal que alguma componente q i pertence a F N , para i e {1, 2, ..., n} LINGUAGENS REGULARES Equivalncia entre AFD e AFN Demonstrao: (cont.3) A demonstrao de que o AFD M D simula as mesmas computaes do AFN M N . por induo no tamanho de uma palavra qualquer w e E * . Deve-se mostrar que: o D * (<q 0 >, w) = <q 1 ...q u >, se e somente se, o N *
({q 0 }, w) = {q 1 , ..., q u }
a) Base de Induo. Seja w tal que |w| = 0. Portanto, w = c, e: o D * (<q 0 >, c) = <q 0 >, se e somente se, o N *
({q 0 }, c) = {q 0 } verdadeiro pela definio de funo programa estendida;
b) Hiptese de Induo. Seja w tal que |w| = n e n > 1. Suponha verdadeiro que: o D * (<q 0 >, w) = <q 1 ...q u >, se e somente se, o N *
({q 0 }, w) = {q 1 , ..., q u };
LINGUAGENS REGULARES Equivalncia entre AFD e AFN Demonstrao: (cont.4)
b) Hiptese de Induo. Seja w tal que |w| = n e n > 1. Suponha verdadeiro que: o D * (<q 0 >, w) = <q 1 ...q u >, se e somente se, o N *
({q 0 }, w) = {q 1 , ..., q u };
c) Passo de Induo. Seja w tal que |wa| = n + 1 e n > 1. Ento, deseja-se mostrar que:
o D * (<q 0 >, wa) = <p 1 ...p v >, se e somente se, o N *
({q 0 }, wa) = {p 1 , ..., p v }. Essa afirmao equivale, pela hiptese de induo, a:
o D (< q 1 ...q u >, a) = <p 1 ...p v >, se e somente se, o N *
({q 1 , ..., q u }, a) = {p 1 , ..., p v }, o que verdadeiro pela prpria definio de o D .
Logo, M D simula M N e, portanto, as classes de AFD e AFN so equivalentes.
LINGUAGENS REGULARES Equivalncia entre AFD e AFN Teorema: A classe dos Autmatos Finitos Determinsticos equivalente classe dos Autmatos Finitos No Determinsticos.
Obs: Determinismo x No Determinismo Muitas vezes mais fcil desenvolver um AFN do que um AFD, pois as solues deterministas, em geral, so no triviais e envolvem um nmero possivelmente grande de estados. Em seguida, a partir do AFN pode-se construir o AFD.
AFD AFN LINGUAGENS REGULARES Equivalncia entre AFD e AFN Exemplo: Considere o AFN reconhecedor da linguagem L={w / w possui aaa como sufixo} sobre o alfabeto {a,b}: M=({a,b}, {q 0 , q 1 , q 2 , q f }, o, q 0 , {q f })
Construa um AFD a partir dele. Seja M D =({a,b}, Q D , o D , (q 0 ), F D ) Q D = {(q 0 ), (q 1 ), (q 2 ), (q f ), (q 0 q 1 ), (q 0 q 2 ), ..., (q 0 q 1 q 2 q f )} F D = {(q f ), (q 0 q f ), (q 1 q f ), (q 2 q f ), ..., (q 0 q 1 q 2 q f )} Obs: Q D e F D so combinaes de estados de Q e F LINGUAGENS REGULARES Equivalncia entre AFD e AFN Exemplo (cont.): M=({a,b}, {q 0 , q 1 , q 2 , q f }, o, q 0 , {q f })
M D =({a,b}, Q D , o D , (q 0 ), F D ) Q D = {(q 0 ), (q 1 ), (q 2 ), (q f ), (q 0 q 1 ), (q 0 q 2 ), ..., (q 0 q 1 q 2 q f )} F D = {(q f ), (q 0 q f ), (q 1 q f ), (q 2 q f ), ..., (q 0 q 1 q 2 q f )}
Por simplicidade, foram explicitados os estados para os quais a funo programa est definida. Alm disso, os estados foram renomeados para p 0 (q 0 ), p 1 (q 0 q 1 ), p 2 (q 0 q 1 q 2 ) e p f (q 0 q 1 q 2 q f ). o D a b (q 0 ) (q 0 q 1 ) (q 0 ) (q 0 q 1 ) (q 0 q 1 q 2 ) (q 0 ) (q 0 q 1 q 2 ) (q 0 q 1 q 2 q f ) (q 0 ) (q 0 q 1 q 2 q f ) (q 0 q 1 q 2 q f ) (q 0 ) LINGUAGENS REGULARES Equivalncia entre AFD e AFN Exemplo: Considere o AFN reconhecedor da linguagem L={w / w possui aa ou bb como subcadeias} sobre o alfabeto {a,b}: M=({a,b}, {q 0 , q 1 , q 2 , q f }, o, q 0 , {q f })
Construa um AFD a partir dele. q 0 q 1 q 2 q f a a b b a,b a,b LINGUAGENS REGULARES Equivalncia entre AFD e AFN Exemplo: Elabore um AFN reconhecedor da linguagem L={w / w possui aa ou bb como subcadeias e ccc como sufixo} sobre o alfabeto {a,b,c} e, em seguida, converta-o em um AFD. LINGUAGENS REGULARES Equivalncia entre AFD e AFN Exerccios: Converta os AFN a seguir em AFD:
a)
b) LINGUAGENS REGULARES Equivalncia entre AFD e AFN Exerccios: Converta os AFN a seguir em AFD:
c)
LINGUAGENS REGULARES Equivalncia entre AFD e AFN Como: Toda linguagem L regular se existe pelo menos um AFD M tal que ACEITA(M)=L. A classe dos AFN equivalente classe dos AFD
Podemos concluir que: Dada uma linguagem L, se existe pelo menos um AFN M tal que ACEITA(M)=L, ento L uma linguagem regular.
Linguagens Aceitas por AFN so, portanto, Linguagens Regulares (Tipo 3) LINGUAGENS REGULARES Autmato Finito com Movimentos Vazios Movimentos vazios generalizam os movimentos no determinsticos. Um movimento vazio uma transio sem leitura de smbolo algum da fita. AFs com movimentos vazios facilitam construes e demonstraes relacionadas a autmatos.
Definio: Um AFN com Movimentos Vazios (AFN c ) um autmato M tal que: M=(,Q,o,q 0 ,F), onde: o:Q x ({c})2 Q e o(p, c) = {q 1 , q 2 , ..., q n } um movimento vazio ou transio vazia do autmato.
LINGUAGENS REGULARES Autmato Finito com Movimentos Vazios Supondo um AFN c =(,Q,o,q 0 ,F) tal que: o(q, c) = {p 0 } o(q, a 1 ) = {p 1 } ... o(q, a n ) = {p n } Ilustrao diagramtica:
q
p 0 p 1 p n ...
a 1 a n c
LINGUAGENS REGULARES Autmato Finito com Movimentos Vazios Exemplo: Considere o AFN
abaixo que aceita a linguagem
L={a i b j / i, j > 0}
LINGUAGENS REGULARES Autmato Finito com Movimentos Vazios Exemplo: Considere o AFN
abaixo que aceita a linguagem
L={a i b j c k a m / i, j, k, m > 0}
Compare com a complexidade do AFD abaixo:
LINGUAGENS REGULARES Equivalncia entre AFN e AFN
Teorema: A classe dos Autmatos Finitos com Movimentos Vazios equivalente classe dos Autmatos Finitos No Determinsticos.
Demonstrao: (Menezes, 2005, p.65)
Obs: Linguagens aceitas por autmatos finitos com movimentos vazios so, portanto, Linguagens Regulares (Tipo 3).
AFN
AFN LINGUAGENS REGULARES Equivalncia entre AFD, AFN e AFN
Teorema: A classe dos Autmatos Finitos com Movimentos Vazios equivalente classe dos Autmatos Finitos Determinsticos.
Demonstrao: (Transitividade)
AFN
AFN AFD
LINGUAGENS REGULARES Toda linguagem regular pode ser descrita por uma Expresso Regular.
Trata-se de um formalismo denotacional, porm gerador, pois se pode inferir como construir as palavras de uma linguagem.
Expresses regulares so consideradas adequadas para a comunicao humano x humano e, principalmente, para a comunicao humano x mquina. Expresses Regulares LINGUAGENS REGULARES Expresses regulares so notaes padronizadas para caracterizar sequncias de textos.
Possuem muita aplicao prtica no contexto de busca na web, recuperao de informao, processamento de textos, clculo de freqncias de termos em corpora (colees de documentos), dentre outras.
Formalmente, uma expresso regular uma notao algbrica para caracterizar um conjunto de strings. Expresses Regulares LINGUAGENS REGULARES Exemplo de aplicao no Google para busca na Web:
Linguagens Formais Pginas contendo combinao exata
Linguagens Formais Pginas contendo ambas as palavras
Linguagens OR Formais Pginas contendo pelo menos uma
Linguagens Formais Pginas contendo somente a primeira
Parnteses definem precedncia (T1 OR T2) T3 Expresses Regulares LINGUAGENS REGULARES Definio: Uma Expresso regular (abreviada por ER) sobre um alfabeto E indutivamente definida como:
a) Base de Induo Para qualquer x e E, a expresso x regular e representa a linguagem {x} A expresso C regular e representa a linguagem vazia A expresso regular e representa a linguagem {}
b) Passo de Induo: Se r e s so expresses regulares e representam as linguagens R e S, respectivamente, ento a expresso: (r + s) regular e representa a linguagem R S (Unio) (rs) regular e representa a linguagem RS={uv / u e R e v e S} (Concatenao) (r * ) regular e representa a linguagem R * (Concatenao Sucessiva) Expresses Regulares LINGUAGENS REGULARES Se r uma expresso regular, a linguagem que ela representa chamada Linguagem Gerada por r, cuja notao : L(r) ou GERA(r)
A omisso de parnteses em uma ER usual, respeitando as seguintes convenes: A concatenao sucessiva tem precedncia sobre a concatenao e a unio. A concatenao tem precedncia sobre a unio. Expresses Regulares LINGUAGENS REGULARES A tabela abaixo apresenta exemplos de expresses regulares e as correspondentes linguagens geradas: Expresses Regulares Expresso Regular Linguagem Gerada aa Somente a palavra aa ba* Todas as palavras iniciadas por b, seguidas por zero ou mais a (a+b)* Todas as palavras sobre {a, b} (a+b)*aa(a+b)* Todas as palavras contendo aa como subpalavra a*ba*ba* Todas as palavras contendo exatamente dois b (a+b)*(aa+bb) Todas as palavras terminadas por aa ou bb (a+)(b+ba)* Todas as palavras que no possuem dois a consecutivos LINGUAGENS REGULARES Exemplo: Detalhe a linguagem gerada pela expresso regular (a+b)*(aa+bb): a e b denotam {a} e {b}, respectivamente a + b denota {a} {b} = {a, b} (a + b)* denota {a, b}* aa denota {a}{a}={aa} e bb denota {b}{b}={bb} (aa+bb) denota {aa} {bb} = {aa, bb} (a+b)*(aa+bb) denota {a,b}*{aa, bb} Portanto, GERA ((a+b)*(aa+bb)) corresponde linguagem: {aa, bb, aaa, abb, baa, bbb, aaaa, aabb, abaa, abbb, baaa, babb, bbaa, bbbb, ...}
Expresses Regulares LINGUAGENS REGULARES Exerccio: Defina expresses regulares para as seguintes linguagens sobre {a,b}: a) Cadeias que possuam aa como prefixo e bb como sufixo. b) Cadeias que s possuam trs a no necessariamente consecutivos. c) Cadeias em que todo a seja seguido de um nico b. d) Cadeias em que todo a seja precedido de um nico b. e) Cadeias que no possuam dois b consecutivos. f) Cadeias iniciadas por aa ou bb e que possuam ab como subcadeia. g) Cadeias sem ocorrncias de b. h) Cadeias aa ou bb ou ab.
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular.
Demonstrao: (Menezes, 2005, p.68)
Seja r uma expresso regular, precisamos mostrar que existe um AF M tal que ACEITA(M) = GERA(r).
Na construo de M, ACEITA(M) = GERA(r) demonstrada por induo no nmero de operadores.
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular. Demonstrao: (Cont.1) a) Base de Induo. Seja r uma expresso regular com zero operadores. Ento r s pode ser da forma: r = C ou r = c ou r = x (onde x e E) Os AF abaixo aceitam as linguagens acima: M 1 = (C, {q 0 }, o 1 , q 0 , C) M 2 = (C, {q f }, o 2 , q f , {q f }) M 3 = ({x}, {q 0 , q f }, o 3 , q 0 , {q f })
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular. Demonstrao: (Cont.2) b) Hiptese de Induo. Seja r uma expresso regular com at n > 0 operadores. Suponha que seja possvel definir um AF M tal que: ACEITA(M) = GERA(r)
c) Passo de Induo. Seja r uma expresso regular com at n + 1 operadores. Ento r pode ser representada por um dos seguintes casos (onde r 1 e r 2 possuem juntos, no mximo, n operadores): r = r 1 + r 2 r = r 1 r 2 r = r 1 *
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular. Demonstrao: (Cont.3) c) Passo de Induo. Seja r uma expresso regular com at n + 1 operadores. Ento r pode ser representada por um dos seguintes casos (onde r 1 e r 2 possuem juntos, no mximo, n operadores): r = r 1 + r 2 r = r 1 r 2 r = r 1 *
Por hiptese de induo, possvel construir os autmatos: M 1 = (E 1 , Q 1 , o 1 , q 01 , {q f1 }) e M 2 = (E 2 , Q 2 , o 2 , q 02 , {q f2 })
tais que: ACEITA(M 1 ) = GERA(r 1 ) e ACEITA(M 2 ) = GERA(r 2 ) Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular. Demonstrao: (Cont.4) c) Por hiptese de induo, possvel construir os autmatos: M 1 = (E 1 , Q 1 , o 1 , q 01 , {q f1 }) e M 2 = (E 2 , Q 2 , o 2 , q 02 , {q f2 }) tais que: ACEITA(M 1 ) = GERA(r 1 ) e ACEITA(M 2 ) = GERA(r 2 )
Sem perda de generalidade, assume-se que M 1 e M 2 possuem exatamente um estado final e que Q 1 Q 2 = C.
Assim, os seguintes AFN c que aceitam GERA(r) podem ser construdos para cada operao: Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular. Demonstrao: (Cont.5) c) Assim, os seguintes AFN c que aceitam GERA(r) podem ser construdos para cada operao: (i) r = r 1 + r 2
Seja M = (E 1 E 2 , Q 1 Q 2 {q 0 , q f }
, o, q 0 , {q f }):
A partir de q 0 , M realiza transies para os estados q 01 e q 02 . M 1 e M 2
processam de forma no determinstica e, basta que um deles aceite a entrada , para que M tambm aceite.
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular. Demonstrao: (Cont.6) c) Assim, os seguintes AFN c que aceitam GERA(r) podem ser construdos para cada operao: (ii) r = r 1 r 2
Seja M = (E 1 E 2 , Q 1 Q 2 , o, q 01 , {q f2 }):
Ao processar os mdulos M 1 e M 2 em sequncia, M aceita uma entrada se, e somente se, o prefixo pertencer a ACEITA(M 1 ) e o sufixo pertencer a ACEITA(M 2 ).
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular. Demonstrao: (Cont.7) c) Assim, os seguintes AFN c que aceitam GERA(r) podem ser construdos para cada operao: (iii) r = r 1 *
Seja M = (E 1 , Q 1 {q 0 , q f }
, o, q 0 , {q f }):
A transio vazia de q 0 para q f garante a aceitao da palavra vazia e o ciclo de q f1 para q 01 permite o sucessivo processamento de M 1 para assegurar o reconhecimento de duas ou mais concatenaes sucessivas.
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular.
Demonstrao: (Concluso)
Assim, dada r uma expresso regular, mostramos que sempre possvel construir um AF M tal que ACEITA(M) = GERA(r).
Portanto, como existe tal autmato, por definio, GERA(r) uma linguagem regular.
Expresses Regulares LINGUAGENS REGULARES Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem regular.
Portanto, L regular. Expresses Regulares q 0 q 1 q 2 q f a a a b b a b b LINGUAGENS REGULARES Teorema: Se L uma linguagem regular, ento existe uma expresso regular r tal que: GERA(r)=L
Demonstrao: (Menezes, 2005, p.71)
Exemplo: L = {w / w possui aa ou bb como subpalavra} uma linguagem regular.
O AFD aceita L:
Gera((a+b)*(aa+bb)(a+b)*) = L
Expresses Regulares q 0 q 1 q 2 q f a a a b b b a,b LINGUAGENS REGULARES Exerccio: Construa um AFN que aceita GERA(a * (aa+bb))
Obs: Os estados foram omitidos para fins de simplificao dos esquemas.
Expresses Regulares LINGUAGENS REGULARES Exerccio: Construa um AFN que aceita GERA(a * (aa+bb)) (cont.)
Sugesto: Experimente o recurso de converso disponvel no JFLAP Expresses Regulares LINGUAGENS REGULARES O conceito de gramtica pode ser usado para definir tanto linguagens regulares como linguagens no regulares.
Entretanto, possvel estabelecer restries nas regras de produo de forma a definir a Classe das Linguagens Regulares.
Existe mais de uma forma de definir uma Gramtica Regular. Na sequncia so apresentadas quatro dessas formas, denominadas Gramticas Lineares. Gramtica Regular LINGUAGENS REGULARES Seja G=(V,T,P,S) uma gramtica. Sejam A e B elementos de V e w uma palavra de T*. Diz-se que G uma Gramtica Linear se todas as suas produes encontram-se em uma e somente uma das seguintes formas: Gramtica Linear Direita (GLD): A wB ou A w Gramtica Linear Esquerda (GLE): A Bw ou A w Gramtica Linear Unitria Direita (GLUD): Como GLD e |w| s 1 Gramtica Linear Unitria Esquerda (GLUE): Como GLE e |w| s 1
Nota-se que, nas gramticas lineares, o lado direito de uma produo constitudo por, no mximo, uma varivel. Adicionalmente, esta varivel, se existir, sempre antecede (linear esquerda) ou sucede (linear direita) qualquer sub-palavra (eventualmente vazia) de smbolos terminais. Gramtica Regular LINGUAGENS REGULARES Exemplos de Gramticas Lineares:
Gramtica Linear Direita: G=({S, A}, {a, b}, P, S), sendo que P possui as seguintes produes: S aA e A baA |
Gramtica Linear Esquerda: G=({S}, {a, b}, P, S), sendo que P possui a seguinte produo: S Sba | a
Gramtica Linear Unitria Direita: G=({S, A}, {a, b}, P, S), sendo que P possui as seguintes produes: S aA e A bA |
Gramtica Linear Unitria Esquerda: G=({S}, {a, b}, P, S), sendo que P possui a seguinte produo: S Sb | a
Gramtica Regular LINGUAGENS REGULARES Definio: Uma gramtica G dita ser uma Gramtica Regular (GR) se G uma gramtica linear.
Definio: Seja G=(V,T,P,S) uma gramtica G. A Linguagem Gerada por G (denotada por L(G) ou GERA(G)) tal que L(G)={w e T * / S + w}
Exemplo: A Linguagem a(ba)* gerada pelas seguintes gramticas regulares:
Linear Direita: G=({S, A}, {a, b}, P, S), sendo que P possui as seguintes produes: S aA e A baA |
Linear Esquerda: G=({S}, {a, b}, P, S), sendo que P possui a seguinte produo: S Sba | a
Gramtica Regular LINGUAGENS REGULARES Observao: Gramtica Linear Esquerda e Linear Direita. Supondo |w| > 1, se uma gramtica tiver simultaneamente produes do tipo AwB (linear direita) e do tipo ABw (linear esquerda), ento a linguagem gerada por ela poder no ser regular. A prpria gramtica no seria regular.
Exemplo: L={a n b n / n>0} no uma linguagem regular. Procure elaborar uma gramtica que contenha tanto produes lineares direita quanto produes lineares esquerda e que gere L. Gramtica Regular LINGUAGENS REGULARES Teorema: Se L uma linguagem gerada por uma gramtica regular, ento L uma linguagem regular.
Demonstrao: (Menezes, 2005, p. 75)
Exemplo: Seja L=GERA(G), onde G=({S, A}, {a, b}, P, S), sendo que P possui as seguintes produes: S aA e A baA | G linear direita, e, portanto, regular.
O AFD ao lado aceita L.
Portanto L regular. Gramtica Regular q 0 q 1 q 2 q f a b a b a q 3 a a,b b LINGUAGENS REGULARES Exemplo de construo de um AFNc a partir de uma gramtica linear (esse processo pode ser automatizado):
Considere a gramtica G = ({S, A, B}, {a,b}, P, S) P = {S aA, A bB | c, B aA}
O AFN que reconhece GERA(G) : M = ({a,b}, {S, A, B, q f }, o, S, {q f }), onde: Gramtica Regular LINGUAGENS REGULARES Teorema: Se L uma linguagem regular, ento existe G, gramtica regular que gera L.
Demonstrao: (Menezes, 2005, p. 77)
Exemplo: L={a, aba, ababa, abababa, ...}=GERA(a(ba)*), L linguagem regular.
G=({S, A}, {a, b}, P, S), sendo que P possui as seguintes produes: S aA e A baA |
G uma gramtica regular tal que L=GERA(G). Logo existe G regular que gera L. Gramtica Regular LINGUAGENS REGULARES Exemplo de construo de uma gramtica regular a partir de um AFD (esse processo pode ser automatizado):
Considere o AFD M = ({a,b,c}, {q 0 , q 1 , q 2 }, o, q 0 , {q 0 , q 1 , q 2 }), onde:
A gramtica regular correspondente G:
G = ({q 0 , q 1 , q 2 }, {a,b,c}, P, S), onde P construdo como mostrado na tabela ao lado. Gramtica Regular Atividades Prticas Lista de Exerccios III At o nmero 8 (Parte I) Leituras Recomendadas Cap. 3 Paulo Blauth Menezes Sees 3.1 a 3.6 Marcus Ramos Sees 2.1 a 2.3 Papadimitriou Cap. 3 Hopcroft & Ullman LINGUAGENS REGULARES LINGUAGENS REGULARES Uma das principais caractersticas das linguagens regulares o fato de serem representadas por formalismos de pouca complexidade, grande eficincia e fcil implementao.
Entretanto, por ser uma classe de linguagem relativamente simples, restrita e limitada, levantando questes a serem analisadas:
Como determinar se uma linguagem regular? A classe das linguagens regulares fechada para operaes de unio, concatenao e interseo? Como verificar se uma linguagem regular finita, infinita ou mesmo vazia? possvel analisar duas linguagens regulares quaisquer e concluir se so iguais ou diferentes? Propriedades LINGUAGENS REGULARES Traduo dos Formalismos das Linguagens Regulares: Propriedades LINGUAGENS REGULARES Com relao complexidade de algoritmos, autmatos finitos pertencem classe de algoritmos mais eficientes em termos de tempo de processamento, supondo que toda entrada necessita ser lida.
Propriedades Complexidade Computacional: Seja f(n) funo no negativa para todo n, n > 0. Dizemos de f(n) O(g(n)), se: Existem um inteiro n 0 e uma constante c > 0 tais que: Para todo n > n 0 , f(n) scg(n) Notao: f(n)=O(g(n)) LINGUAGENS REGULARES Com relao complexidade de algoritmos, autmatos finitos pertencem classe de algoritmos mais eficientes em termos de tempo de processamento, supondo que toda entrada necessita ser lida.
De fato, qualquer autmato finito que solucione um problema igualmente eficiente, a menos de eventual redundncia de estados, a qual no influi no tempo de processamento.
Tal redundncia de estados pode ser eliminada, determinando-se um Autmato Finito Determinstico Mnimo, ou simplesmente, Autmato Finito Mnimo. Propriedades LINGUAGENS REGULARES Lema do Bombeamento Ideia Bsica: Se L uma linguagem regular, ento L aceita por um autmato finito determinstico M que possui um nmero finito e predefinido de n estados. Se M reconhece uma entrada w de comprimento maior ou igual ao nmero de estados n, obrigatoriamente o autmato assume algum estado q mais de uma vez (existindo, portanto, um ciclo na funo programa). Logo, w pode ser dividida em trs subpalavras w=uvz tal que |uv| s n, |v| > 1, onde v a parte de w reconhecida pelo ciclo. Tal ciclo pode ser executado (bombeado) zero ou mais vezes. Portanto, para qualquer i > 0, u v i z aceita por M (ou seja, palavra da linguagem). Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES Lema do Bombeamento: Se L uma linguagem regular, ento: existe uma constante n tal que, para qualquer palavra w de L onde |w| > n, w pode ser definida como w=uvz onde |uv| s n, |v| > 1, e sendo que, para todo i, i > 0, u v i z palavra da L.
Demonstrao: (Menezes, 2005, p.85) Seja L uma linguagem regular. Portanto, existe um AFD M = (E,Q,o, q 0 ,F) tal que ACEITA(M) = L. Seja n a cardinalidade de Q. Suponhamos w uma palavra de L tal que |w| = m e m > n Portanto, w = a 1 a 2 ... a m
Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES Lema do Bombeamento: Demonstrao: (cont. 1) Suponhamos w uma palavra de L tal que |w| = m e m > n Portanto, w = a 1 a 2 ... a m o(q 0 , a 1 ) = q 1 , o(q 1 , a 2 ) = q 2 , ..., o(q m-1 , a m ) = q m
Como m > n, ento existem r e s tais que: 0 r < s n e q r =q s o * (q 0 , a 1 ... a r ) = q r o * (q r , a r+1 ... a s ) = q s o * (q s , a s+1 ... a m ) = q m
Ou seja, M passa mais de uma vez no estado q r =q s
Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES Lema do Bombeamento: Demonstrao: (cont. 2) o * (q 0 , a 1 ... a r ) = q r o * (q r , a r+1 ... a s ) = q s o * (q s , a s+1 ... a m ) = q m
Ou seja, M passa mais de uma vez no estado q r =q s
Assim, sejam : u = a 1 ... a r v = a r+1 ... a s z = a s+1 ... a m
Como r < s n, ento: | v | > 1 e | uv | n
Como q r =q s , ento v reconhecida em um ciclo. Portanto, para todo i > 0, uv i z palavra de L. Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES Lema do Bombeamento: Se L uma linguagem regular, ento: existe uma constante n tal que, para qualquer palavra w de L onde |w| > n, w pode ser definida como w=uvz onde |uv| s n, |v| > 1, e sendo que, para todo i, i > 0, u v i z palavra da L.
Exemplo: Considerando o autmato abaixo (qual a linguagem regular definida por ele?), n=4 e, no caso particular de w=abbba, vale que: u=a, v=bb, z=ba Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES O Lema do Bombeamento garante que os formalismos regulares so capazes de expressar diversos bombeamentos (mltiplas aplicaes do lema).
Por exemplo, as seguintes linguagens so regulares (quais seriam os AF?): Bombeamento Duplo: {a n b m / n > 0 e m > 0} Bombeamento Triplo: {a n b m a r / n > 0, m > 0 e r > 0} Bombeamento Qudruplo: {a n b m a r b s / n > 0, m > 0, r > 0 e s > 0} etc...
Cada conjunto de repeties sucessivas de uma subpalavra pode ser associado a um estado distinto, caracterizando uma aplicao do lema do bombeamento. Assim, mais de um conjunto de repeties sucessivas caracteriza mltiplas aplicaes do lema.
Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES Exemplo de aplicao do Lema do Bombeamento:
Mostre que a linguagem L sobre {a,b} no regular (ou no-regular): L={w / w possui o mesmo nmero de smbolos a e b}
Demonstrao (por reduo ao absurdo): Suponhamos que L seja regular. Ento existe um AFD M com n estados que aceita L (teorema anterior).
Seja w=a n b n palavra de L, sendo |w| = 2n > n Pelo lema do bombeamento, w pode ser definida como w = uvz tal que: |uv| s n e |v| > 1. Portanto, uv formado apenas de smbolos a. Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES Exemplo de aplicao do Lema do Bombeamento: Mostre que a linguagem L sobre {a,b} no regular (ou no-regular): L={w / w possui o mesmo nmero de smbolos a e b} Demonstrao (cont.): Pelo lema do bombeamento, w pode ser definida como w = uvz tal que: |uv| s n e |v| > 1 Portanto, uv formado apenas de smbolos a. Tambm pelo lema do bombeamento, para todo i, i > 0, u v i z palavra da L. Logo, se tomarmos i=2, u v 2 z palavra da L, o que um absurdo, pois a nova palavra teria mais smbolos a do que smbolos b. Portanto, L no-regular.
Sugesto: Utilize o JFLAP para exercitar a aplicao do lema do bombeamento com esta e outras linguagens no regulares. Deixe o computador iniciar o jogo e apresente parties de w que ilustrem a no aplicao do lema. Propriedades Bombeamento para Linguagens Regulares LINGUAGENS REGULARES Operaes sobre linguagens podem ser usadas para: Construir novas linguagens regulares a partir de LR conhecidas Provar propriedades Construir algoritmos
Teorema: A Classe das Linguagens Regulares fechada para as seguintes operaes: Unio (de LR resulta em uma LR) Concatenao (de LR resulta em uma LR) Complemento (de LR resulta em uma LR) Interseo (de LR resulta em uma LR)
Demonstrao: (Menezes, 2005, p.88) Propriedades Fechamento sobre Linguagens Regulares LINGUAGENS REGULARES Teorema: A Classe das Linguagens Regulares fechada para as seguintes operaes: Unio, Concatenao; Complemento e Interseo
Demonstrao: (Menezes, 2005, p.88)
As provas referentes aos casos de unio e concatenao decorrem diretamente da definio de expresso regular. Verifique porque.
No caso do complemento, suponha L uma LR sobre E*. Ento existe um AFD M = (E, Q, o, q 0 , F) tal que ACEITA(M) = L
A ideia inverter as condies de ACEITA / REJEITA de M para reconhecer ~L. No entanto, como M pode rejeitar por indefinio, necessrio M para garantir que ele ir parar apenas aps ler toda a entrada. Propriedades Fechamento sobre Linguagens Regulares LINGUAGENS REGULARES Teorema: A Classe das Linguagens Regulares fechada para as seguintes operaes: Unio, Concatenao; Complemento e Interseo
Demonstrao: (cont.) A ideia inverter as condies de ACEITA / REJEITA de M para reconhecer ~L. No entanto, como M pode rejeitar por indefinio, necessrio adaptar M para garantir que ele ir parar apenas aps ler toda a entrada.
Para tanto, suficiente introduzir um novo estado final d, o qual ser destino de todas as transies originalmente indefinidas. Alm disso, d dever conter um ciclo para todos os smbolos do alfabeto (a fim de assegurar a leitura de toda a entrada).
Assim, temos o novo AFD: M C = (E, Q C , o C , q 0 , F C ) tal que ACEITA(M C ) = ~L Propriedades Fechamento sobre Linguagens Regulares LINGUAGENS REGULARES Teorema: A Classe das Linguagens Regulares fechada para as seguintes operaes: Unio, Concatenao; Complemento e Interseo
Demonstrao: (cont. 2) Assim, temos o novo AFD: M C = (E, Q C , o C , q 0 , F C ) tal que ACEITA(M C ) = ~L (suponhamos d e Q) Q C = Q {d} e F C = Q C F o C como o , com as seguintes transies adicionais (para todo a eE e q e Q): o C (q, a) = d, se o(q,a) no estiver definida o C (d, a) = d
Assim, ACEITA(M C ) = ~L, ou seja, ACEITA(M C )=REJEITA(M) Propriedades Fechamento sobre Linguagens Regulares LINGUAGENS REGULARES Teorema: A Classe das Linguagens Regulares fechada para as seguintes operaes: Unio, Concatenao; Complemento e Interseo
Demonstrao: (cont. 3) No caso da interseo, suponha L 1 e L 2 linguagens regulares. Como consequncia da propriedade de DeMorgan para conjuntos, a seguinte igualdade se verifica:
L 1 L 2 = ~(~L 1 ~L 2 )
Como a classe das Linguagens Regulares fechada para as operaes de unio e complemento, ela tambm fechada para a operao de interseo.
Propriedades Fechamento sobre Linguagens Regulares LINGUAGENS REGULARES Exemplo de Complemento: Considere o AFD (com transies indefinidas): M = ({a,b}, {q 0 , q 1 , q 2 , q f }, o, q 0 ,{q f }) abaixo:
Quem ACEITA(M) = L? Seguindo a demonstrao do algoritmo anterior, o AFD: M C = ({a,b}, {q 0 , q 1 , q 2 , q f , d}, o C , q 0 ,{q 0 , q 1 , q 2 , d}), ACEITA(M C ) = ~L Propriedades Fechamento sobre Linguagens Regulares LINGUAGENS REGULARES Teorema: A Classe das Linguagens Regulares fechada para as seguintes operaes: Unio, Concatenao; Complemento e Interseo
Exemplo: Sejam as linguagens regulares sobre E={a, b}: L 1 = {aae / e e {a,b}*} GERA(aa(a+bb)*) = L 1 L 2 = {ebb / e e {a,b}*} GERA((a+bb)*bb) = L 2
L 1 L 2 ={/(=aae ou =ebb) e e e E*} GERA((aa(a+b)*)+((a+b)*bb)) L 1 L 2 ={aaebb / e e E*} GERA(aa(a+b)*bb) E* - L 1 = GERA(((ab+b)(a+b)*) + ) L 1 L 2 ={aaebb / e e E*} GERA(aa(a+b)*bb)
As linguagens geradas L 1 L 2 , L 1 L 2 , E* - L 1 , L 1 L 2 so regulares. Propriedades Fechamento sobre Linguagens Regulares LINGUAGENS REGULARES O teorema a seguir assegura que existe um algoritmo para verificar se uma linguagem regular representada por um autmato finito vazia, finita ou infinita.
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n
Demonstrao: (Menezes, 2005, p.89) Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n
Demonstrao (): Suponhamos que M aceita uma palavra w tal que n s |w| < 2n.
Seja w tal palavra.
Ento pelo lema do bombeamento, w pode ser definida como w = uvz tal que: |uv| n e |v| > 1, sendo que: para todo i > 0, uv i z palavra de L.
Portanto, L infinita. Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n
Demonstrao (:): Suponhamos que L seja infinita. Ento obviamente existe w tal que n s |w|. Assim: 1. Caso) |w| < 2n Neste caso, n s |w| < 2n, como queramos demonstrar. 2. Caso) |w| > 2n Suponhamos por absurdo que no existe palavra menor que 2n. Ento suponhamos que w seja a menor palavra tal que |w| > 2n
Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n
Demonstrao (: cont.1): 2. Caso) |w| > 2n Suponhamos por absurdo que no existe palavra menor que 2n. Ento suponhamos que w seja a menor palavra tal que |w| > 2n Pelo lema do bombeamento, w = uvz tal que: |uv| n e |v| > 1, sendo que: para todo i > 0, uv i z palavra de L. Em particular, 1 s |v| s n (pois |uv| n). Por outro lado, uz palavra de L (basta tomar i = 0), o que um absurdo (como veremos em seguida): Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n
Demonstrao (: cont.2): 2. Caso) |w| > 2n Por outro lado, uz palavra de L (basta tomar i = 0), o que um absurdo, pois:
a) Se |uz| > 2n, isso contradiz a suposio de que w a palavra de menor comprimento tal que :|w| > 2n (pois |w| = |uvz| > |uz| > 2n)
b) Se |uz| < 2n, ento n s |uz| < 2n (pois |uvz| > 2n e 1 s |v| s n) e, portanto, isso contradiz a suposio de que no existe w tal que: n s |w| < 2n Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n
Demonstrao (por contraposio (p q) (~p ~q)):
Esta parte do teorema equivalente ao caso anterior:
Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n
Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n
Demonstrao: ( por absurdo) Suponhamos L uma linguagem regular vazia e que exista uma palavra w, |w| < n, aceita por M.
Como w aceita por M, w e L, o que absurdo pois L = C, por hiptese.
Logo, se L vazia, ento M no aceita qualquer palavra w tal que |w| < n Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n
Demonstrao: (: por absurdo) Suponhamos que no exista w, |w| < n, aceita por M. Suponhamos por absurdo que L no seja vazia. Logo existe w, we L. Em funo da hiptese acima, |w| > n. Pelo Lema do Bombeamento, w pode ser particionada em uvz, tal que |uv| n, |v| > 1 e qqs i > 0, uv i z e L. Em particular, para i = 0, uz e L. Considerando a nova palavra de L w=uz, repetimos a aplicao do lema do bombeamento at que |w| = n. Ao aplicar mais uma vez o lema, temos que w pode ser particionada em xyq, de tal forma que xq e L, e |xq| < n, o que um absurdo, pois conflita com a hiptese. Logo L precisa ser vazia. Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o, q 0 , F) com n estados (a cardinalidade de Q n), ento L : Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n
Exemplo de aplicao: Considere o autmato M abaixo. Pelo teorema anterior, a linguagem por ele aceita infinita se e somente se, o autmato aceitar uma palavra w tal que n s |w| < 2n. Se tomarmos w=aabaa, 3 s |w| < 6. Portanto, a linguagem aceita por M infinita.
Qual a linguagem aceita por M ? Propriedades LR Vazia, Finita ou Infinita LINGUAGENS REGULARES O teorema a seguir assegura que existe um algoritmo para verificar se dois autmatos finitos so equivalentes, ou seja, reconhecem a mesma linguagem.
Teorema: Se M 1 e M 2 so autmatos finitos, ento existe um algoritmo para determinar se ACEITA(M 1 ) = ACEITA(M 2 )
Demonstrao: Sejam M1 e M2 autmatos finitos e L 1 =ACEITA(M 1 ) e L 2 =ACEITA(M 2 ) Seja L 3 =(L 1 ~L 2 ) (~L 1 L 2 ). L 3 Linguagem Regular. Da Teoria de Conjuntos, L 3 =C se, e somente se, L 1 =L 2 Se L 1 =L 2 ento L 3 vazia Do teorema anterior, existe um algoritmo para verificar se L 3 , LR, vazia. Logo, existe um algoritmo para verificar se L 1 =L 2 . Propriedades Igualdade de Linguagens Regulares LINGUAGENS REGULARES Em termos prticos, dadas duas Linguagens Regulares sobre {a,b}, L 1 e L 2 , para verificarmos se L 1 =L 2 , devemos verificar se L 3 =(L 1 ~L 2 ) (~L 1 L 2 )=C
Sejam L1 = GERA((a+b)*) ~L1=C L2 = GERA(a*b*(a+b)*) ~L2= C
L 3 =(L 1 ~L 2 ) (~L 1 L 2 )=(L 1 C) (C L 2 ) = C C = C
Portanto L 1 =L 2
Propriedades Igualdade de Linguagens Regulares Atividades Prticas Lista de Exerccios III At o nmero 11 (Parte II) Leituras Recomendadas Cap. 4 Paulo Blauth Menezes Sees 3.9 e 3.10 Marcus Ramos Seo 2.4 Papadimitriou LINGUAGENS REGULARES LINGUAGENS REGULARES O tempo de processamento necessrio a um AFD para aceitar ou rejeitar uma entrada diretamente proporcional ao tamanho da entrada, e no depende do autmato considerado. Ou seja, qualquer AFD que reconhea a linguagem ter a mesma eficincia. Entretanto, uma otimizao possvel a minimizao do nmero de estados.
Dado um AFD qualquer, o objetivo da minimizao gerar o autmato finito equivalente com o menor nmero de estados possvel, denominado Autmato Finito Determinstico Mnimo, ou simplesmente, Autmato Finito Mnimo.
Um autmato finito mnimo nico (a menos de isomorfismos). Assim, dois autmatos distintos que aceitam a mesma linguagem, ao serem minimizados, geram o mesmo autmato finito mnimo, diferenciando-se, eventualmente, na identificao dos estados. Nestes casos, os conjuntos de estados so isoformos. Propriedades Minimizao de AFD LINGUAGENS REGULARES Definio: Seja M=(E, Q, o, q 0 , F) um AFD qualquer. Dois estados q e p de Q so ditos Estados Equivalentes se, e somente se, para qualquer palavra w pertencente a E * , o(q,w) e o(p,w) resultam simultaneamente em estados finais, ou no finais.
Portanto, o processamento de uma entrada qualquer a partir de estados equivalentes resulta na mesma condio de aceita/rejeita.
Definio: Para uma dada linguagem regular L, o Autmato Finito Mnimo um AFD M m =(E, Q m , o m , q 0m , F m ) tal que ACEITA(M m ) = L e que, para qualquer outro AFD M=(E, Q, o, q 0 , F) tal que ACEITA(M)=L, ocorre que:
#Q > #Q m
Propriedades Minimizao de AFD LINGUAGENS REGULARES Pr-Requisitos do Algoritmo de Minimizao: O autmato deve ser determinstico Todos os estados do autmato devem ser estados alcanveis a partir do estado inicial. Ou seja, o autmato no pode ter estados inacessveis. A funo programa deve ser total. Ou seja, a partir de qualquer estado, so previstas transies para todos os smbolos do alfabeto.
Algoritmo de Minimizao: Passo 1: Construo da tabela relacionando os estados distintos Passo 2: Marcao dos estados trivialmente no equivalentes (finais e no finais) Passo 3: Marcao dos estados no equivalentes Passo 4: Unificao dos estados equivalentes Passo 5: Excluso dos estados inteis Propriedades Minimizao de AFD LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Passo 1: Construo da tabela relacionando os estados distintos. Cada par no ordenado ocorre somente uma vez. Propriedades Minimizao de AFD q 1 q 2
q 3
q 4
q 5
q 0 q 1 q 2 q 3 q 4
LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Passo 2: Marcao dos estados trivialmente no equivalentes (finais e no finais)
Propriedades Minimizao de AFD Estados finais e no finais no podem ser equivalentes Marcar todos os pares do tipo {estado final, estado no final} q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Passo 3: Marcao dos estados no equivalentes.
Propriedades Minimizao de AFD Para cada par {q u , q v } no marcado e para cada smbolo a do alfabeto, suponha que: o(q u , a)=p u e o(q v , a)=p v . Assim: Se p u =p v , ento so equivalentes para o smbolo a e o par no deve ser marcado. Se p u =p v e o par (p u , p v ) no est marcado, ento inclui {q u , q v } em uma lista a partir de {p u ,p v } para posterior anlise. Se p u =p v e o par (p u , p v ) est marcado, ento: {q u , q v } no equivalente e deve ser marcado. Se {q u , q v } encabea uma lista de pares, ento marcar todos os pares da lista (e, recursivamente, se algum par da lista encabea outra lista). q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Processamento do Passo 3 no exemplo: Marcao dos estados no equivalentes.
Propriedades Minimizao de AFD Anlise do par {q 0 , q 4 }:
o(q 0 , a) = q 2 o(q 0 , b) = q 1
o(q 4 , a) = q 3 o(q 4 , b) = q 2
Como {q 2 , q 3 } e {q 1 , q 2 } so no-marcados, ento {q 0 , q 4 } includo nas listas encabeadas por {q 2 , q 3 } e {q 1 , q 2 } q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
{q 0 , q 4 } {q 0 , q 4 } LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Processamento do Passo 3 no exemplo: Marcao dos estados no equivalentes.
Propriedades Minimizao de AFD Anlise do par {q 0 , q 5 }:
o(q 0 , a) = q 2 o(q 0 , b) = q 1
o(q 5 , a) = q 2 o(q 5 , b) = q 3
Como {q 1 , q 3 } no-marcado e como {q 2 , q 2 } trivialmente equivalente, ento {q 0 , q 5 } includo na lista encabeada por {q 1 , q 3 } q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
{q 0 , q 4 } {q 0 , q 4 } {q 0 , q 5 } LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Processamento do Passo 3 no exemplo: Marcao dos estados no equivalentes.
Propriedades Minimizao de AFD Anlise do par {q 1 , q 2 }:
Como {q 1 , q 2 } encabea uma lista, o par {q 0 , q 4 } tambm marcado q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
{q 0 , q 4 } {q 0 , q 4 } {q 0 , q 5 } x x x x LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Processamento do Passo 3 no exemplo: Marcao dos estados no equivalentes.
Propriedades Minimizao de AFD Anlise do par {q 1 , q 3 }:
o(q 1 , a) = q 1 o(q 1 , b) = q 0
o(q 3 , a) = q 5 o(q 3 , b) = q 4
Como {q 1 , q 5 } e {q 0 , q 4 } so marcados ento {q 1 , q 3 } tambm marcado.
Como {q 1 , q 3 } encabea uma lista, o par {q 0 , q 5 } tambm marcado q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
{q 0 , q 5 } x x x x x x LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Processamento do Passo 3 no exemplo: Marcao dos estados no equivalentes.
Propriedades Minimizao de AFD Anlise do par {q 2 , q 3 }:
o(q 2 , a) = q 4 o(q 2 , b) = q 5
o(q 3 , a) = q 5 o(q 3 , b) = q 4
Como {q 4 , q 5 } no marcado ento {q 2 , q 3 } includo na lista encabeada por {q 4 , q 5 } q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
{q 2 , q 3 } x x x x LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Processamento do Passo 3 no exemplo: Marcao dos estados no equivalentes.
Propriedades Minimizao de AFD Anlise do par {q 4 , q 5 }:
o(q 4 , a) = q 3 o(q 4 , b) = q 2
o(q 5 , a) = q 2 o(q 5 , b) = q 3
Como {q 2 , q 3 } no marcado, ento {q 4 , q 5 } includo na lista encabeada por {q 2 , q 3 }. q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
{q 4 , q 5 } {q 2 , q 3 } LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Passo 4: Unificao dos estados equivalentes.
Propriedades Minimizao de AFD Os estados de pares no marcados so equivalentes e podem ser unificados como segue: A equivalncia dos estados transitiva. Pares de estados no finais equivalentes podem ser unificados como um nico estado no final. Pares de estados finais equivalentes podem ser unificados como um nico estado final. x x x x q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
{q 2 , q 3 } {q 4 , q 5 } LINGUAGENS REGULARES Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo: Passo 5: Excluso de estados inteis.
Propriedades Minimizao de AFD Um estado q dito estado intil se no final e a partir de q no possvel atingir um estado final. Todas as transies com origem ou destino em um estado intil so excludas. No exemplo, o algoritmo de minimizao no gerou estados inteis. x x x x q 1 x q 2 x q 3 x q 4 x x x q 5 x x x q 0 q 1 q 2 q 3 q 4
Propriedades Minimizao de AFD LINGUAGENS REGULARES Teorema: O autmato finito determinstico mnimo de uma linguagem nico, a menos de um isomorfismo.
Assim, dois autmatos distintos que aceitam a mesma linguagem, ao serem minimizados, geram o mesmo autmato finito mnimo, diferenciando-se, eventualmente, na identificao dos estados.
Como um autmato finito mnimo nico, a menos de um isomorfismo, usual ser referido como o (e no como um) autmato finito mnimo.
Propriedades Unicidade do Autmato Finito Mnimo Atividades Prticas Lista de Exerccios II Exerccios 12 e 13 (Parte II) Leituras Recomendadas Cap. 4 Paulo Blauth Menezes Sees 3.7 a 3.12 Marcus Ramos Sees 2.4 a 2.6 Papadimitriou Cap. 4 Hopcroft & Ullman LINGUAGENS REGULARES LINGUAGENS REGULARES Autmato Finito com Sada LINGUAGENS REGULARES O conceito bsico de autmato finito possui aplicaes prticas restritas, pois a informao de sada limitada lgica binria aceita/rejeita.
Sem alterar a classe de linguagens reconhecidas, possvel estender a definio de AF para incluir a gerao de uma palavra de sada.
As sadas podem ser associadas: s transies (Mquina de Mealy) aos estados (Mquina de Moore)
Em ambas as mquinas, a sada no pode ser lida (usada como memria auxiliar).
Autmato Finito com Sada LINGUAGENS REGULARES Nas mquinas de Mealy e de Moore: A sada definida sobre um alfabeto especial (alfabeto de sada); A sada armazenada em uma fita de sada independente da de entrada; A cabea da fita de sada move uma clula para a direita a cada smbolo gravado; O resultado do processamento do AF o seu estado final (condio de aceita/rejeita) e a informao contida na fita de sada.
As mquinas de Mealy e de Moore so modificaes sobre autmatos finitos determinsticos.
Ambas as mquinas so equivalentes em termos de capacidade de processamento.
Autmato Finito com Sada LINGUAGENS REGULARES Definio: Uma Mquina de Mealy um AFD=(,Q,o,q 0 ,F,A) com sada associada s transies, onde: um alfabeto de smbolos de entrada Q um conjunto finito de estados possveis o uma funo parcial denominada funo programa o: Q x Q x A *
q 0 um elemento de Q, chamado estado inicial F _ Q, denominado conjunto de estados finais A um alfabeto de smbolos de sada (que pode ser igual a )
A funo programa pode ser representada como um diagrama como nos AF adicionando-se na etiqueta de cada transio, a sada associada, quando diferente da palavra vazia. Autmato Finito com Sada Mquina de Mealy LINGUAGENS REGULARES A computao em uma Mquina de Mealy, para uma palavra de entrada w, consiste na sucessiva aplicao da funo programa para cada smbolo de w (da esquerda para a direita) at ocorrer uma condio de parada.
A palavra vazia como sada da funo programa indica que nenhuma gravao realizada, no movimentando a cabea da fita de sada.
Se todas as transies geram sada vazia, ento a Mquina de Mealy processa como se fosse um autmato finito.
Autmato Finito com Sada Mquina de Mealy LINGUAGENS REGULARES Exemplo: Dilogo entre Programa e Usurio. Simbologia adotada:
<...> entrada fornecida pelo usurio (em um teclado, por ex) ... sada gerada pelo programa (em um vdeo, por ex.) [...] ao interna do programa, sem comunicao com o usurio (...) resultado de ao interna ao programa (usado como entrada no diagrama)
A Mquina de Mealy:
M=(E, {q 0 , q 1 ,... q 8 , q f }, o, q 0 , {q f }, A)
E e A so conjuntos de smbolos (palavras em Portugus) de entrada e sada vlidos no dilogo. Autmato Finito com Sada Mquina de Mealy LINGUAGENS REGULARES Definio: Uma Mquina de Moore um AFD=(,Q,o,q 0 ,F,A,o S ) com sada associada aos estados, onde: um alfabeto de smbolos de entrada Q um conjunto finito de estados possveis o uma funo parcial denominada funo programa o: Q x Q q 0 um elemento de Q, chamado estado inicial F _ Q, denominado conjunto de estados finais A um alfabeto de smbolos de sada (que pode ser igual a ) o S uma funo total denominada funo de sada o S : Q A *
A funo programa pode ser representada como um diagrama como nos AF adicionando-se na etiqueta de cada estado, a sada associada, quando diferente da palavra vazia. Autmato Finito com Sada Mquina de Moore LINGUAGENS REGULARES Exemplo: Hiperdocumento. A Mquina de Moore: M=(E, Q, o, q 0 , {q f }, A, o S ) E = {prxima, exerccio, anterior, resumos, sada} A = {A,B,C,D,E,F,G,H,I,J,K,L,M}, onde cada letra, corresponde ao seguinte fragmento de hipertexto na base de dados: A Introduo ao AF; B Definio de AFD C Exemplo de AFD; D Exerccio sobre AFD E Introduo aos AF com Sada F Definio de Mquina de Mealy G Exemplo de Mquina de Mealy H Exerccio sobre Mquina de Mealy I Definio de Mquina de Moore J Exemplo de Mquina de Moore K Exerccio sobre Mquina de Moore L Concluses; M Fim
Observaes: Fragmentos so concatenados compondo pginas Reuso de fragmentos em mais de uma pgina Alterao de fragmento no BD leva atualizao no AF Smbolos do alfabeto de entrada so rtulos de ponteiros
Autmato Finito com Sada Mquina de Moore LINGUAGENS REGULARES A estruturao de um hipertexto/hipermdia como um AF com sada possui as seguintes vantagens: Alto grau de modularizao dos recursos que constituem a base de dados. Facilidade de reuso desses recursos. Independncia da estrutura navegacional (funo de transio) do contedo das pginas. Assim, modificaes na estrutura navegacional no influem no contedo das pginas e vice-versa. Facilidade de criao e manuteno de hipertextos/hipermdia. Interface grfica simples e direta (decorrente da representao de um AF como um diagrama). Facilidade de implementao (lembrando a simplicidade de implementao de um simulador de AF). Autmato Finito com Sada Aplicao em Hipertexto LINGUAGENS REGULARES A equivalncia dos dois modelos de mquina de autmato finito com sada no vlida para a entrada vazia. Neste caso: Mquina de Moore gera a palavra correspondente ao estado inicial Mquina de Mealy no gera qualquer sada, pois no executa transio alguma
Teorema: Toda Mquina de Moore pode ser simulada por uma Mquina de Mealy Demonstrao: (Menezes, 2005, p. 105)
Teorema: Toda Mquina de Mealy pode ser simulada por uma Mquina de Moore Demonstrao: (Menezes, 2005, p. 106)
Autmato Finito com Sada Equivalncia de Mquinas Atividades Prticas Lista de Exerccios III Completar LINGUAGENS REGULARES Leituras Recomendadas Cap. 5 Paulo Blauth Menezes Seo 3.8 Marcus Ramos