teoria da computacao cap 1

77
Gramáticas e Linguagens Autômatos de Estados Finitos Autômatos Finitos com Saída SCE0185 - Capítulo 1 Linguagens Regulares e Autômatos Finitos João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos [email protected] 2008 João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Upload: marco-silva

Post on 21-Jun-2015

3.905 views

Category:

Technology


1 download

DESCRIPTION

Aula

TRANSCRIPT

Page 1: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

SCE0185 - Capítulo 1Linguagens Regulares e Autômatos Finitos

João Luís Garcia Rosa1

1Instituto de Ciências Matemáticas e de ComputaçãoUniversidade de São Paulo - São Carlos

[email protected]

2008

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 2: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 3: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 4: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Um Exemplo: Parênteses Casados

Parênteses casados incluem todas as cadeiasbalanceadas de parênteses esquerdos e direitos - porexemplo, (()), ()() e (()(())). A seguinte especificaçãodescreve a linguagem de parênteses casadosintuitivamente:

1 A cadeia () é bem formada.2 Se a cadeia de símbolos A é bem formada, então a cadeia

(A) também é.3 Se as cadeias A e B são bem formadas, então a cadeia AB

também é.Pode-se agora seguir esta definição intuitiva para obter umsistema de re-escrita - uma gramática - que geraexatamente o conjunto de cadeias legais de parêntesescasados:

1 S → ()2 S → (S)3 S → SS

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 5: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Um Exemplo: Conceitos

Estas três regras de re-escrita são chamadas deproduções. Elas dizem “dada uma cadeia, pode-se formaruma nova cadeia substituindo um S por () ou (S) ou SS”.Para gerar (())(()()), ocorrem as seguintes substituições:

S ⇒ SS ⇒ (S)S ⇒ (())S ⇒ (())(S)⇒ (())(SS)⇒(())(()S)⇒ (())(()())

Pode-se resumir a derivação anterior com a notação:

S ⇒∗ (())(()())

que significa que “S deriva (em muitos passos) (())(()())”.Quando se deseja descrever v ⇒ w em palavras, onde v ew são cadeias arbitrárias, deve-se dizer que “v derivadiretamente w .” Então SS deriva diretamente (S)S.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 6: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Um Exemplo: Conceitos

A gramática apresenta dois tipos diferentes de símbolos:os não-terminais, ou variáveis, que são os símbolos quepodem aparecer em derivações mas não aparecem nascadeias finais (no exemplo, S é a única variável); e osterminais, que são os símbolos que formam a cadeia quese deseja produzir (no exemplo, “(” e “)” são símbolosterminais).O estilo de linguagem de programação para escrevergramáticas, a chamada forma de Backus-Naur, ou BNF,usa uma notação levemente diferente. Na BNF asvariáveis são fechadas em 〈〉, e→ é substituído pelosímbolo “::=”. Portanto, a segunda produção do exemplodos parênteses casados é escrita na notação BNF como:

〈S〉 ::= (〈S〉)

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 7: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 8: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Alfabeto e Linguagem

Seja Σ um conjunto finito não vazio de símbolos terminais,ou alfabeto terminal. Seja Σ∗ o conjunto de todas ascadeias de comprimento finito sobre Σ. Este conjuntoinfinito de cadeias inclui a cadeia vazia λ.Uma linguagem L sobre Σ é qualquer subconjunto de Σ∗.Então a linguagem de parênteses casados, M, é umalinguagem porque M ⊆ {(, )}∗. Cada cadeia w em L temum comprimento finito, |w |, com |λ| = 0. Se w = x1x2...xn,cada xj ∈ Σ, temos |w | = n. Podemos escrever Σ+ paradenotar a linguagem de cadeias não vazias sobre Σ. Sew = x1x2...xn e w ′ = x ′1x ′2...x

′m são duas cadeias

quaisquer, podemos concatená-las para obterww ′ = x1x2...xnx ′1x ′2...x

′m

Estabelece-se que wλ = λw = w .

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 9: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Gramática

Definição. Uma gramática de estrutura de frase G éuma quádrupla (Σ,V ,S,P) onde Σ e V são alfabetosfinitos disjuntos e

1 Σ é o alfabeto terminal para a gramática;2 V é o alfabeto não terminal ou alfabeto de variável para a

gramática;3 S é o símbolo inicial para a gramática; e4 P é conjunto de produções da gramática. P é um conjunto

de pares (v ,w) com v uma cadeia em (Σ ∪ V ) contendo nomínimo um símbolo não terminal, enquanto que w é umelemento arbitrário de (Σ ∪ V )∗. Um elemento (v ,w) de Pé usualmente escrito como v → w .

A gramática para a linguagem de parênteses casadospode ser escrita como

G = ({(, )}, {S},S, {S → (),S → (S),S → SS})

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 10: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Linguagem

Definição. Seja G uma gramática com símbolo inicial S. Alinguagem gerada por G, L(G), é definida como oconjunto de cadeias terminais deriváveis do símboloinicial:

L(G) = {w |w ∈ Σ∗ e S ⇒∗ w}Dado G, se S ⇒∗ w (onde w é em geral construído tantode símbolos terminais como não terminais) referimos a wcomo uma forma sentencial. Então L(G) é o conjunto deformas sentenciais terminais.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 11: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Exemplos

Exemplo 1: Sejam V = {S}, Σ = {a,b},P = {S → aSb,S → ab}. Neste casoL(G) = {anbn | n > 0}. Ou seja, L(G) é o conjunto detodas as seguintes cadeias: um bloco não vazio de a’s,seguido por um bloco de b’s do mesmo comprimento.Exemplo 2: O conjunto de produções de uma gramática

S → aSa | bSb | a | b | λgera o conjunto de todos os palíndromos sobre o alfabetoterminal {a,b}.Exemplo 3: A seguinte gramática gera todas as cadeiassobre o alfabeto terminal {0,1} com um número igual de0’s e 1’s:

V = {S,A,B}Σ = {0,1}P = {S → 0B | 1A, A→ 0 | 0S | 1AA, B → 1 | 1S | 0BB}.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 12: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Gramática Linear a Direita - GLD

Definição: Uma gramática G = (Σ,V ,S,P) é linear adireita (GLD) se toda produção é da forma

A→ bC ou A→ bonde A,C ∈ V e b ∈ Σ ∪ {λ}. Uma linguagem gerada portal gramática é chamada de linguagem linear a direita.Exemplo 4: Considere a GLD G1 com produções

S → λ | 0 | 0S | 1 | 1SClaramente, L(G1) = {0,1}∗, o conjunto de todas ascadeias binárias.Exemplo 5: Agora, considere a GLD G2:

S → λ | 0S |1T ,T → 0T | 1S

Pode-se provar queL(G2) = {w |w ∈ {0,1}∗ e w tem um número par de 1’s }

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 13: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Tipos de Gramáticas e Linguagens

Definição: Seja G = (Σ,V ,S,P) uma gramática. Então Gé classificada como tipo i , i = 0,1,2,3, de acordo comrestrições na forma das regras de P:

Uma gramática é do tipo 3 se toda produção de P for daforma A→ bC ou A→ b, onde A,C ∈ V e b ∈ Σ ou b = λ.Tais gramáticas são as gramáticas lineares a direita.Uma gramática é do tipo 2 se toda produção de P for daforma A→ w , com A ∈ V e w ∈ (Σ ∪ V )∗. Estas são asgramáticas livres de contexto.Uma gramática é do tipo 1 se toda produção de P for daforma vAw → vzw onde z ∈ (Σ ∪ V )+ (isto é, z 6= λ). Emadição, permite-se a única regra-λ S → λ no caso onde Snão aparece do lado direito de nenhuma produção. São asgramáticas sensíveis ao contexto.Qualquer gramática é do tipo 0. Não existem restrições naforma das produções para as gramáticas desta classe. Sãochamadas de gramáticas recursivamente enumeráveis.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 14: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

A Hierarquia de Chomsky

Vai-se usar a notação Li para as linguagens de tipo i :Li = {L ∈ Σ∗|L = L(G) para alguma gramática G de tipo i}O Teorema da Hierarquia: A hierarquia de Chomsky éuma hierarquia estrita de classes de linguagem:

L3 ( L2 ( L1 ( L0

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 15: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Operações sobre Linguagens

Os teóricos da linguagem estão interessados em formasnas quais linguagens dadas (conjuntos de palavras)podem ser combinadas para formar novas linguagens.Definição: Sejam L1, L2 duas linguagens sobre o mesmoalfabeto Σ (isto é, L1 e L2 são ambas subconjuntos de Σ∗).Então define-se

1 A união de L1 e L2 éL1 ∪ L2 = {w |w ∈ L1 ou w ∈ L2}

2 A concatenação de L1 e L2 (também chamada “L1 pontoL2”) é

L1 · L2 = {w |w = w1w2 para algum w1, w2 com w1 ∈ L1,w2 ∈ L2}

3 A iteração de L1 (também chamada “L1 estrela”) éL∗1 = {w |w = w1w2...wn para algum n ≥ 0 e cada

wi ∈ L1} =⋃

n≥0 Ln1

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 16: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Propriedades de Fechamento

Na iteração, define-se as potências Ln1 de L1 para n ≥ 0

porPasso Básico: L0

1 = {λ}Passo de Indução: Ln+1

1 = Ln1 · L1 para n ≥ 0

Então, L11 = L1, L2

1 = L1 · L1, etc.Diz-se que uma classe de linguagens é fechada sob umaoperação de linguagem se, quando se aplica estaoperação às linguagens que pertencem a esta classe,obtêm-se uma outra linguagem pertencente à classe.Teorema: A família de linguagens de tipo i é fechada sob∪, · e ∗ para cada i = 0,1,2,3.Proposição: As linguagens lineares a direita (tipo 3) sãofechadas sob complemento e interseção.Teorema: As linguagens livres de contexto não sãofechadas sob interseção ou complemento.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 17: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 18: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Linguagem Regular

Definição: Seja Σ um alfabeto finito. Uma linguagemL ⊆ Σ∗ é regular se L for finita, ou L pode ser obtidaindutivamente usando uma das seguintes operações:

1 L é L1 ∪ L2, a união de L1 e L2, onde L1 e L2 são regulares;ou

2 L é L1 · L2, a concatenação de L1 e L2, onde L1 e L2 sãoregulares; ou

3 L é L∗1, a iteração de L1, onde L1 é regular.Note que o conjunto vazio ∅ e o conjunto {λ} são ambosregulares, sendo finitos. As linguagens

1 {ab}∗ · {a}∗2 {a,b}∗

são também regulares. Por que?

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 19: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Expressão Regular

Proposição: Todo conjunto regular é uma linguagemlinear a direita.Definição: Seja Σ um alfabeto finito. Define-seexpressões regulares R e suas denotações de conjuntosregulares S(R) indutivamente como:

1 ∅ é uma expressão regular com S(∅) = ∅, o conjunto vazio.2 λ é uma expressão regular com S(λ) = {λ}.3 Se a ∈ Σ, então a é uma expressão regular com S(a) ={a}.

4 Se R1 e R2 são expressões então (R1 + R2) é umaexpressão regular com S((R1 + R2)) = S(R1) ∪ S(R2).

5 Se R1 e R2 são expressões então (R1 · R2) é umaexpressão regular com S((R1 · R2)) = S(R1) · S(R2).

6 Se R é regular então (R)∗ é regular com S((R)∗) =(S(R))∗.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 20: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Expressão Regular: Exemplos

1 (a + b)∗ denota todas as cadeias sobre Σ = {a,b}2 (a∗ · b∗)∗ denota todas as cadeias sobre Σ = {a,b} (Por

que?)3 (aa + bb)∗, que abrevia ((a · a) + (b · b))∗, representa

todas as cadeias finitas de a’s e b’s construídas pelaconcatenação de pares de a’s e pares de b’s.

4 aa(b∗ + aaa)c + (a + c)∗ representa a linguagem que é aunião de três sublinguagens:

1 todas as cadeias começando com um a duplo, seguido porqualquer número de b’s, seguido por um c;

2 a linguagem cadeia {aaaaac}; e3 a linguagem construída por todas as cadeias de a’s e c’s.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 21: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

Expressão Regular e Gramática

Exemplo: Considere a expressão regular (b∗ + (ab)∗).Para achar uma gramática linear a direita para estaexpressão, primeiro forme uma gramática para b∗:S1 → bS1|λ. Então forme uma gramática para (ab):S2 → aB2,B2 → b. Isto pode ser estrelado adicionandoS2 → λ, B2 → bS2. Finalmente, a linguagem completapode ser gerada adicionando S → bS1|λ|aB2, levando a

S → bS1|λ|aB2S1 → bS1|λS2 → aB2|λB2 → bS2|b

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 22: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômato Finito

Nesta seção, introduzimos a classe básica de dispositivosde computação chamados de autômatos finitos. Estesdispositivos julgam a legalidade de cadeias sobre algumalfabeto finito. Vamos mostrar que a coleção delinguagens que podem ser aceitas por autômatos finitos éexatamente a de linguagens regulares.Exemplo. O autômato finito dado a seguir aceita alinguagem ((0 + 1)0∗1)∗.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 23: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 24: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômato Finito Determinístico

Definição: Um autômato finito determinístico (AFD) Mé especificado por uma quíntupla (Q,Σ, δ,q0,F ) onde

Q é um conjunto finito de estadosΣ é o alfabeto terminalδ: Q × Σ→ Q é a função de transmissão de estadoq0 ∈ Q é o estado inicialF ⊂ Q é o conjunto de estados de aceitação.

Então o grafo de estado de um AFD tem um nó paracada q ∈ Q, que é rotulado; tem uma seta livre apontandopara o nó q0; tem um círculo duplo para um nó q apenasno caso de q ∈ F ; e tem um arco rotulado x levando deum nó q para um nó q′ apenas no caso de δ(q, x) = q′.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 25: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômato Finito Determinístico

Definição: Dado um AFD M, define-se por indução afunção δ∗: Q × Σ∗ → Q, tal que δ∗(q,w) é o estado para oqual M irá na cadeia de entrada w se começado no estadoq0:

Passo Básico: δ∗(q, λ) = q para cada estado q ∈ Q. Se Mcomeçou no estado q, então quando ele receber a cadeiade entrada vazia ele deve ainda estar no mesmo estado q.Passo de Indução: Para cada estado q ∈ Q, cada cadeiade entrada w ∈ Σ∗ e cada símbolo de entrada x ∈ Σ,estabelece-se que δ∗(q,wx) = δ(δ∗(q,w), x).

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 26: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Linguagem de Estados Finitos

Definição: O conjunto T (M) de cadeias aceitas pelo AFDM = (Q,Σ, δ,q0,F ) é

T (M) = {w |w ∈ Σ∗ e δ∗(q0,w) ∈ F}

compreendendo todas as cadeias terminais que enviam Mdo seu estado inicial q0 para um estado de aceitação, istoé, um estado em F .Diz-se que um subconjunto L de Σ∗ é uma linguagem deestados finitos (LEF) se for igual a T (M) para algum AFDM.Proposição: Toda LEF é uma linguagem linear a direita.Por isso, as linguagens LEF são fechadas sobcomplemento.Teorema: Toda LEF é um conjunto regular.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 27: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Expressão Regular Equivalente

Seja o seguinte autômato:

Para gerar a expressão regular equivalente a esteautômato, é necessário estabelecer todos os caminhosque levam do estado inicial q0 a um estado de aceitação(neste caso q2). Os caminhos são:

De q0 a q2: 1 · 0∗De q0 a q1 a q2: 0 · 1∗ · 0 · 0∗De q0 a q1 a q2 a q1 a q2: 0 · 1∗ · 0 · 0∗ · 1 · 1∗ · 0 · 0∗

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 28: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Expressão Regular Equivalente

Observe que há um ciclo se repetindo entre q2 e q1, logopode-se representar os caminhos que levam de q0 a q2passando por q1 da seguinte forma:

De q0 a q1 a q2 a (q1 a q2)∗: 0 · 1∗ · 0 · 0∗ · (0∗ · 1 · 1∗ · 0 · 0∗)∗Outro caminho é de q0 a q2 e realizando o ciclo q1 ⇔ q2:

De q0 a q2 a (q1 a q2)∗: 1 · 0∗ · (0∗ · 1 · 1∗ · 0 · 0∗)∗, que inclui1 · 0∗ inicial.

Logo a expressão total fica:1 · 0∗ · (0∗ · 1 · 1∗ · 0 · 0∗)∗+ 0 · 1∗ · 0 · 0∗ · (0∗ · 1 · 1∗ · 0 · 0∗)∗ =

(1 · 0∗ + 0 · 1∗ · 0 · 0∗) · (0∗ · 1 · 1∗ · 0 · 0∗)∗

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 29: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Não Determinismo

Deseja-se provar que toda linguagem linear a direita éuma LEF. Considere a seguinte gramática linear a direita:

({a,b}, {q0,q1,q2},q0,{q0 → aq1,q1 → b,q0 → aq2,q2 → a})

Esta gramática leva à seguinte máquina:

A estrutura obtida não é um AFD, porque dois arcossaindo de q0 têm o mesmo rótulo, a. Isto viola a condiçãoda regra de transição para um AFD ser uma função.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 30: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômato Finito Não Determinístico

Quando transições múltiplas deste tipo estão presentesem M, diz-se que M é uma máquina não-determinística.Definição: Um autômato finito não determinístico(AFN) M é especificado por uma quíntupla (Q,Σ, δ,Q0,F )onde

Q é um conjunto finito de estadosΣ é o alfabeto terminalδ: Q × Σ→ 2Q atribui a cada par estado-entrada (q, x) umconjunto δ(q, x) ⊂ Q de próximos estados possíveis (2Q éo conjunto potência de Q ou conjunto de todos ossubconjuntos de Q)Q0 ⊂ Q é o conjunto de estados iniciaisF ⊂ Q é o conjunto de estados de aceitação.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 31: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômato Finito Não Determinístico

Viu-se que um AFN é como um AFD exceto que existe umconjunto de estados iniciais e um conjunto de próximosestados possíveis.Estas complicações significam que uma cadeia podeinduzir caminhos múltiplos através de um AFN, algunsterminando em estados de aceitação, outros terminandoem estados de não aceitação.Lida-se com esta ambigüidade dizendo que w ∈ Σ∗ éaceita se existe pelo menos uma forma de chegar a umestado de aceitação.Vai-se definir agora δ∗ : 2Q × Σ∗ → 2Q para um AFN talque δ∗(p,w) é o conjunto de estados alcançáveis a partirde algum estado em p pela aplicação da cadeia deentrada w .

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 32: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômato Finito Não Determinístico

Definição: Estenda δ : Q × Σ→ 2Q para um AFN paraδ∗ : 2Q × Σ∗ → 2Q por:

Passo Básico: δ∗(p, λ) = p para cada p ⊂ Q.Passo de Indução: δ∗(p,wx) =

⋃{δ(q, x)|q ∈ δ∗(p,w)}

para cada w ∈ Σ∗, x ∈ Σ e p ⊂ Q.

Estabelece-se queT (M) = {w |w ∈ Σ∗ e δ∗(Q0,w) ∩ F 6= ∅}

é o conjunto de cadeias de entrada tal que no mínimo umcaminho, rotulado com símbolos de w em ordem, atravésdo grafo de estado leva M de um estado inicial para umestado de aceitação.Proposição: Um subconjunto de Σ∗ é uma linguagem deestados finitos se e somente se ele for T (M) para algumAFN M.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 33: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFN para AFD

Exemplo: Considere o seguinte AFN.

Os estados q0 e q2 são estados iniciais, enquanto que oestado q1 é o único estado de aceitação.Existem 2|Q| (neste caso, 23 = 8) estados no AFDequivalente, mas na prática não é necessário considerartodos eles, porque muitos são inalcançáveis.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 34: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFN para AFD

Tira-se vantagem desta observação começando do novoestado inicial q02, correspondente à união de q0 e q2, econstruindo estados adicionais na medida em que elessão gerados. Começa-se com

δ a b{q0,q2} {q2,q1} {q0,q2}

que descreve a ação de δ no estado inicial q02 de entradasa e b, respectivamente. De maneira análoga, chamar-se-áo estado {q2,q1} de q21:

δ a bq02 q21 q02

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 35: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFN para AFD

Apenas um novo estado foi gerado, assim produz-se sualinha:

δ a bq21 q1 q1

Então tem-se:δ a bq1 q1 q1

A tabela completa do δ fica:

δ a bq02 q21 q02q21 q1 q1q1 q1 q1

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 36: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFN para AFD

Todos os estados resultantes que contêm estados finaisdo AFN original são estados de aceitação no AFDcorrespondente. O diagrama de estados do AFDequivalente é:

Teorema: Toda linguagem linear a direita L é uma LEF.Conclui-se portanto que as classes de linguagens linearesa direita, linguagens regulares e linguagens de estadosfinitos coincidem.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 37: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Lema do Bombeamento para Linguagens Regulares

Teorema: (O Lema do Bombeamento para LinguagensRegulares). Seja M um AFD qualquer com n estados, eseja z ∈ T (M), |z| ≥ n. Então z pode ser escrito comouvw e a linguagem uv∗w ⊂ T (M). Isto é, para todo j ≥ 0,uv jw ∈ T (M).PROVA: Vai-se usar a seguinte notação

para indicar que δ(p,a) = q em M. Seja z = a1a2...ak .Então pode-se tracejar o comportamento de M em zescrevendo

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 38: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Lema do Bombeamento para Linguagens Regulares

Quando |z| ≥ n, no mínimo n + 1 estados devem aparecer notracejamento, e então algum estado, diga-se r , deve aparecerduas vezes.

Seja z = uvw onde v = ai ...aj . Então as cadeias uw , uvw ,uvvw , etc., levam ao mesmo estado final de M, e portanto seuvw ∈ T (M) então tem-se uvmw ∈ T (M) para todo m ≥ 0.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 39: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 40: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômatos Finitos com Arcos-λ

Arcos-λ são arcos de transição em autômatos finitosnão-determinísticos (AFN) que permitem a mudança deestado sem consumir símbolo da cadeia terminal.Uma das vantagens dos arcos-λ nos estudos daslinguagens formais é o fato de facilitar algumasconstruções relacionadas com os autômatos [4].Vale lembrar que, assim como os autômatosnão-determinísticos, a existência de arcos-λ não aumentao poder computacional no reconhecimento de linguagens.Todo autômato finito com arcos-λ (AFλ) pode ser simuladopor um autômato finito não-determinístico (AFN).

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 41: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Autômatos Finitos com Arcos-λ

Exemplo: Seja o seguinte autômato com arcos-λ (AFλ):

Este AFλ M = ({q0,q1}, {a,b}, δ, {q0}, {q1}) processa alinguagem L = {w ∈ {a,b}∗ e os símbolos a’s antecedemos b’s}. O δ é especificado pela tabela

δ a b λ

q0 {q0} ∅ {q1}q1 ∅ {q1} ∅

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 42: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFλ para AFN

O AFN equivalente a este AFλ é obtido, num processoanálogo à obtenção do autômato determinístico,re-escrevendo a tabela do δ da seguinte forma:

1 elimina-se a coluna do λ, incluindo em cada estado quepossui arco-λ o destino do mesmo:

δ a bq0 {q0,q1} {q1}

2 inclui-se os demais estados, seguindo o mesmoprocedimento:

δ a bq0 {q0,q1} {q1}q1 ∅ {q1}

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 43: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFλ para AFN

Além disso, o conjunto F de estados finais pode seraumentado, incluindo os estados ligados aos estados finaisoriginais pelo arco-λ. Logo o AFN equivalente fica:

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 44: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFλ para AFN

Exemplo: Seja o seguinte autômato com arcos-λ (AFλ):

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 45: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFλ para AFN

Este AFλM = ({q0,q1,q2,q3,q4,q5,q6,q7}, {a,b, c}, δ, {q0}, {q4})processa a linguagem L = {w ∈ {a,b, c}∗ e w terminacom a, bb, ou ccc}. O δ é especificado pela tabela

δ a b c λ

q0 {q0} {q0} {q0} {q1,q2,q5}q1 {q4} ∅ ∅ ∅q2 ∅ {q3} ∅ ∅q3 ∅ {q4} ∅ ∅q4 ∅ ∅ ∅ ∅q5 ∅ ∅ {q6} ∅q6 ∅ ∅ {q7} ∅q7 ∅ ∅ {q4} ∅

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 46: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFλ para AFN

O AFN equivalente a este AFλ é obtido:

δ a b cq0 {q0,q1,q2,q5,q4}{q0,q1,q2,q3,q5}{q0,q1,q2,q5,q6}q1 {q4} ∅ ∅q2 ∅ {q3} ∅q3 ∅ {q4} ∅q4 ∅ ∅ ∅q5 ∅ ∅ {q6}q6 ∅ ∅ {q7}q7 ∅ ∅ {q4}

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 47: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Conversão de AFλ para AFN

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 48: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 49: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Minimização de um Autômato Finito

Definição: Para um dado conjunto A, |A| denota o cardinal(número de elementos) de A.Definição: Um autômato mínimo de uma linguagemregular L é um autômato finito determinístico (AFD)M = (Q,Σ, δ,q0,F ) tal que L = T (M) e que, para qualqueroutro AFD M ′ = (Q′,Σ, δ′,q′0,F

′) tal que L = T (M ′),tem-se que |Q′| ≥ |Q|.Um autômato finito para ser minimizado precisa satisfazeraos seguintes pré-requisitos:

1 deve ser determinístico (AFD);2 não pode ter estados inacessíveis;3 δ deve ser total.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 50: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Minimização de um Autômato Finito

Caso o autômato não satisfaça alguns dos pré-requisitos énecessário gerar um autômato equivalente:

1 gerando um autômato determinístico equivalente (de AFλpara AFN para AFD);

2 eliminando os estados inacessíveis e suascorrespondentes transições;

3 transformando δ em total, introduzindo um estadosumidouro ⊗ e incluindo as transições não previstas paraeste estado.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 51: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Algoritmo de Minimização

Definição: Algoritmo de Minimização. Seja um AFDM = (Q,Σ, δ,q0,F ) que satisfaz os pré-requisitos deminimização. Para encontrar o autômato mínimoequivalente deve-se realizar a:

1 construção da tabela de não-equivalências deestados [2]. Construir uma tabela relacionando estadosdiferentes, onde cada par de estados ocorre somente umavez:

q1q2...

qn⊗

q0 q1 ... qn−1 qn

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 52: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Algoritmo de Minimização

2 marcação dos estados obviamente não equivalentes.Marcar estados finais e não finais.

3 marcação dos estados não equivalentes. Para cada par{q,q′} e para cada símbolo a ∈ Σ, suponha que δ(q,a) = pe δ(q′,a) = p′ e:

se p = p′, então q é equivalente a q′ para a e não deve sermarcado;se p 6= p′ e o par {p,p′} não está marcado, então {q,q′} éincluído em uma lista para posterior análise;se p 6= p′ e o par {p,p′} está marcado:

{q, q′} não é equivalente e deve ser marcado;se {q, q′} encabeça uma lista de pares, então marcar todos ospares da lista.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 53: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Algoritmo de Minimização

4 unificação dos estados equivalentes. Os estados dospares não marcados são equivalentes e podem serunificados como segue:

a equivalência é transitiva;pares de estados não finais equivalentes podem serunificados como um único estado não final;pares de estados finais equivalentes podem ser unificadoscomo um único estado final;se algum dos estados equivalentes é inicial, então ocorrespondente estado unificado é inicial.

5 exclusão dos estados inúteis. Os estados inúteis devemser excluídos. Um estado q é inútil se é não final e a partirde q não é possível atingir um estado final. Deve-se repararque o estado ⊗ (se incluído) sempre é inútil.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 54: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

Exemplo: Seja o seguinte AFD:

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 55: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

1 construção da tabela de não-equivalências de estados:q1q2q3q4q5

q0 q1 q2 q3 q4

2 marcação dos estados finais e não finais:q1 ×q2 ×q3 × ×q4 × ×q5 × × ×

q0 q1 q2 q3 q4João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 56: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

3 análise dos pares não marcados (representados por -):

q1 ×q2 × -q3 - × ×q4 × - - ×q5 - × × - ×

q0 q1 q2 q3 q4

1. par {q0,q3}:δ(q0,a) = q2 δ(q0,b) = q1δ(q3,a) = q4 δ(q3,b) = q2

como {q1,q2} e {q2,q4} são não marcados (-), {q0,q3} éincluído nas listas encabeçadas por {q1,q2} e {q2,q4}:

[{q1,q2}, {q0,q3}][{q2,q4}, {q0,q3}]

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 57: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

2. par {q0,q5}:

δ(q0,a) = q2 δ(q0,b) = q1δ(q5,a) = q2 δ(q5,b) = q4

como {q1,q4} é não marcado (-) (e como {q2,q2} éobviamente não equivalente), {q0,q5} é incluído na listaencabeçada por {q1,q4}:

[{q1,q4}, {q0,q5}]

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 58: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

3. par {q1,q2}:δ(q1,a) = q1 δ(q1,b) = q0δ(q2,a) = q3 δ(q2,b) = q5

como {q1,q3} é marcado (×) então {q1,q2} também émarcado (+). Como {q1,q2} encabeça uma lista, {q0,q3}também é marcado (+).

q1 ×q2 × +q3 + × ×q4 × - - ×q5 - × × - ×

q0 q1 q2 q3 q4

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 59: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

4. par {q1,q4}:δ(q1,a) = q1 δ(q1,b) = q0δ(q4,a) = q5 δ(q4,b) = q3

como {q1,q5} é marcado (×) e {q0,q3} também émarcado (+) então {q1,q4} também é marcado (+). Como{q1,q4} encabeça uma lista, {q0,q5} também é marcado(+).

q1 ×q2 × +q3 + × ×q4 × + - ×q5 + × × - ×

q0 q1 q2 q3 q4

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 60: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

5. par {q2,q4}:δ(q2,a) = q3 δ(q2,b) = q5δ(q4,a) = q5 δ(q4,b) = q3

como {q3,q5} é não marcado (-), {q2,q4} é incluído nalista encabeçada por {q3,q5}:

[{q3,q5}, {q2,q4}]

6. par {q3,q5}:

δ(q3,a) = q4 δ(q3,b) = q2δ(q5,a) = q2 δ(q5,b) = q4

como {q2,q4} é não marcado (-), {q3,q5} é incluído nalista encabeçada por {q2,q4}:

[{q2,q4}, {q0,q3}, {q3,q5}]

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 61: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Exemplo: Minimização de um Autômato Finito

4 unificação dos estados equivalentes: como os estados{q2,q4} e {q3,q5} são não marcados, unifica-se:

q2 e q4: unificação dos estados não finais: q24q3 e q5: unificação dos estados finais: q35

5 exclusão dos estados inúteis. Não há estados inúteis.Logo, o autômato mínimo equivalente fica:

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 62: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Outro Exemplo: AFD não mínimo

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 63: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Autômatos FinitosArcos-λAutômato Mínimo

Outro Exemplo: AFD mínimo equivalente

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 64: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Autômatos Finitos com Saída

Aplicações que incluem geração de cadeias de saída para osAutômatos Finitos associadas às transições (Máquinas deMealy) ou aos estados (Máquinas de Moore) forampropostas [3, 6]. Em ambas, a saída não pode ser lida e édefinida sobre um alfabeto de saída (∆), que pode ser igual aoalfabeto de entrada (Σ). A saída é armazenada numa fita e oresultado do processamento é o seu estado final(aceita/rejeita) e a informação contida na fita de saída.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 65: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 66: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Máquina de Mealy

Definição: Máquina de Mealy. Uma Máquina de Mealy(MMe) M é um AFD com saídas associadas às transições.É uma sêxtupla M = (Q,Σ, δ,q0,F ,∆), onde

Q é um conjunto finito de estadosΣ é o alfabeto terminalδ : Q × Σ→ Q ×∆∗ é a função de transmissão de estadoq0 ∈ Q é o estado inicialF ⊂ Q é o conjunto de estados de aceitação∆ é o alfabeto de símbolos de saída.

O processamento de uma Máquina de Mealy para umacadeia w ocorre da mesma forma que de um AFD, excetopela fita de saída (cadeia de símbolos de ∆), que pode servazia, quando todas as transições geram saída vazia.Neste caso, a MMe é equivalente ao AFD.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 67: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 68: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Máquina de Moore

A Máquina de Moore possui uma segunda função quegera uma cadeia de saída (que pode ser vazia) para cadaestado da máquina.Definição. Máquina de Moore. Uma Máquina de Moore(MMo) M é um AFD com saídas associadas aos estados.É uma séptupla M = (Q,Σ, δ,q0,F ,∆, δS), onde

Q é um conjunto finito de estadosΣ é o alfabeto terminalδ : Q × Σ→ Q é a função parcial de transmissão de estadoq0 ∈ Q é o estado inicialF ⊂ Q é o conjunto de estados de aceitação∆ é o alfabeto de símbolos de saídaδS : Q → ∆∗ é a função total de saída.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 69: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Máquina de Moore

Um analisador lexical usado em compiladores é umexemplo de aplicação de Máquina de Moore. Umanalisador lexical é um autômato finito, em geraldeterminístico, que identifica os componentes básicos deuma linguagem de programação, como por exemplo,palavras reservadas, identificadores, números, etc. Paraisso, a MMo teria:

Um estado final, associado a cada unidade lexical;Cada estado final possui uma saída, que descreve aunidade identificada;Para os demais estados (não finais) a saída é a cadeiavazia λ.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 70: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Sumário

1 Gramáticas e LinguagensA Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 71: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Máquinas de Mealy e de Moore: Exemplos

Exemplo: Uma Máquina de Moore para o reconhecimentoda palavra for. Neste caso,M = ({q0,q1,q2,q3}, {f ,o, r}, δ,q0, {q3}, {f ,o, r}, δS), onde

δ f o rq0 q1 - -q1 - q2 -q2 - - q3q3 - - -

δS cadeia de saídaq0 λ

q1 λ

q2 λ

q3 for

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 72: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Máquinas de Mealy e de Moore: Exemplos

Veja que neste caso, para cada símbolo processado nacadeia de entrada, a cadeia vazia é saída, exceto para oestado final q3, que a cadeia de saída é for. Veja odiagrama de estados:

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 73: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Máquinas de Mealy e de Moore: Exemplos

Exemplo: Uma Máquina de Mealy para o mesmoreconhecimento do exemplo anterior (palavra for). Nestecaso, M = ({q0,q1,q2,q3}, {f ,o, r}, δ,q0, {q3}, {f ,o, r}),onde

δ f o rq0 {q1, f} - -q1 - {q2,o} -q2 - - {q3, r}q3 - - -

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 74: Teoria da Computacao Cap 1

Gramáticas e LinguagensAutômatos de Estados FinitosAutômatos Finitos com Saída

Máquinas de MealyMáquinas de MooreExemplos

Máquinas de Mealy e de Moore: Exemplos

Neste caso, ao contrário da MMo anterior, a cadatransição um símbolo é saído: o mesmo símbolo datransição. Ao final do processamento, a cadeia for éformada na fita de saída. Diagrama de estados:

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 75: Teoria da Computacao Cap 1

Apêndice Bibliografia

Referências I

[1] Hopcroft, J. E., Ullman, J. D.Formal Languages and Their Relation to Automata.Addison-Wesley Publishing Company, 1969.

[2] Hopcroft, J. E., Ullman, J. D. e Motwani, R.Introdução à Teoria de Autômatos, Linguagens eComputação.Tradução da segunda edição americana. Editora Campus,2003.

[3] Mealy, G. H.A method for synthesizing sequential circuits.Bell Systems Technical Journal 34:5, pp. 1045-1079, 1955.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 76: Teoria da Computacao Cap 1

Apêndice Bibliografia

Referências II

[4] Menezes, P. B.Linguagens Formais e Autômatos.Série Livros Didáticos. 4a. Edição. Instituto de Informáticada UFRGS. Editora Sagra Luzzatto, 1997.

[5] Moll, R. N., Arbib, M. A., and Kfoury, A. J.An Introduction to Formal Language Theory.Springer-Verlag, 1988.

[6] Moore, E. F.Gedanken experiments on sequential machines.in C. E. Shannon and J. McCarthy (Eds.), AutomataStudies, Princeton University Press, pp. 129-153, 1956.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos

Page 77: Teoria da Computacao Cap 1

Apêndice Bibliografia

Referências III

[7] Rosa, J. L. G.Linguagens Formais e Autômatos.Notas de Aula. Engenharia de Computação. PontifíciaUniversidade Católica de Campinas, 2007.

João Luís Garcia Rosa, 2008 I. Linguagens Regulares e Autômatos Finitos