SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Documentos relacionados
Entropia, Entropia Relativa

Universidade Estadual de Campinas Departamento de Matemática. Teorema de Jacobson. Adriana Wagner(RA: ) Gustavo Terra Bastos(RA: )

Gramáticas Livres de Contexto

Definição 2.2 (Palavra) As sequências finitas de letras são designadas por palavras sobre o alfabeto V.

Teoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos

AF Não-determinísticos Equivalência entre AFND e AFD

Linguagens, Gramáticas e Máquinas

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

Erros de Estado Estacionário. Carlos Alexandre Mello. Carlos Alexandre Mello 1

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Função. Adição e subtração de arcos Duplicação de arcos

Faculdade de Computação

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

I. Conjunto Elemento Pertinência

Outras Máquinas de Turing

Matemática Discreta - 08

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. david/enseignement/2003.

Figura 4.1: Diagrama de representação de uma função de 2 variáveis

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

O Cálculo λ sem Tipos

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

Capítulo 5. Linguagens livres de contexto

Ondas EM no Espaço Livre (Vácuo)

Análise Léxica. Sumário

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

p. 2 Trechos de Material Didático (Apostila) e Conteúdo do Livro Texto, de autoria de Marcus Ramos, João José Neto e Ítalo Vega i <= 1

2 Segmentação de imagens e Componentes conexas

Programação Linear - Parte 4

Pró-Reitoria de Ensino de Graduação P L A N O D E E N S I N O

Gramáticas Livres de Contexto

Recorrendo à nossa imaginação podemos tentar escrever números racionais de modo semelhante: 1 2 =

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Exercícios e questões de Álgebra Linear

Ficha Prática 5: Cap 3.Princípios Elementares de Contagem

PRINCÍPIOS DA MULTIPLICAÇÃO, DA ADIÇÃO E DA INCLUSÃO-

Inteligência Artificial

Técnicas de Contagem I II III IV V VI

Autómatos finitos não determinísticos (AFND)

M =C J, fórmula do montante

2 Conceitos Básicos. onde essa matriz expressa a aproximação linear local do campo. Definição 2.2 O campo vetorial v gera um fluxo φ : U R 2 R

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA INF INTRODUÇÃO À INFORMÁTICA

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS

Lógica de Predicados

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Matemática Básica Intervalos

Seu pé direito nas melhores Faculdades

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

Lista n 0 1 de Exercícios de Teoria da Computação

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Matemática Discreta para Ciência da Computação

Compiladores. Ricardo Luís de Freitas

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

QUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE SUGESTÕES DE RESOLUÇÕES

A Derivada. 1.0 Conceitos. 2.0 Técnicas de Diferenciação. 2.1 Técnicas Básicas. Derivada de f em relação a x:

Módulo de Princípios Básicos de Contagem. Segundo ano

AULA DO CPOG. Progressão Aritmética

Prof. Daniela Barreiro Claro

Da linha poligonal ao polígono

Expressões de sequencias

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Seqüências. George Darmiton da Cunha Cavalcanti CIn - UFPE

MÓDULO 2 Topologias de Redes

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

BALANÇO PATRIMONIAL AMBIENTAL - EXERCÍCIO COMENTADO Prof Alan

1 Teoria de conjuntos e lógica

Unidade 1: O Computador

Disciplina: Álgebra Linear - Engenharias ], C = Basta adicionar elemento a elemento de A e B que ocupam a mesma posição na matriz.

Conteúdo programático

Engenharia de Software II

Análise de Sistemas 3º Bimestre (material 2)

Probabilidade. Luiz Carlos Terra

Lei de Gauss. 2.1 Fluxo Elétrico. O fluxo Φ E de um campo vetorial E constante perpendicular Φ E = EA (2.1)

Optimização e Algoritmos (2004/2005)

UNIVERSIDADE DO VALE DO ITAJAÍ PAULO ROBERTO LIMA

Modelagem de Sistemas Web. Metodologias para o desenvolvimento de sistemas web

Fundamentos de Programação. Diagrama de blocos

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Relações. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC MD Relações 1

NOTA SOBRE A TEORIA DA ESTABILIDADE DO EQUILÍBRIO EM MERCADOS MÚLTIPLOS: JOHN HICKS

Projecto Delfos: Escola de Matemática Para Jovens 1 TEORIA DOS NÚMEROS

[RESOLUÇÃO] Economia I; 2012/2013 (2º semestre) Prova da Época Recurso 3 de Julho de 2013

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Planejamento - 2. Definição de atividades Sequenciamento das atividades. Mauricio Lyra, PMP

1 - POLÍGONOS REGULARES E CIRCUNFERÊNCIAS

XML Schema. Um XML schema descreve a estrutura de um documento XML.

VERSÃO RESPOSTAS PROVA DE MARKETING

EXERCÍCIOS DE ÁLGEBRA LINEAR E GEOMETRIA ANALÍTICA (sistemas de equações lineares e outros exercícios)

Bases Matemáticas. Daniel Miranda de maio de sala Bloco B página: daniel.miranda

Manual Remessa Bancária

GEOMETRIA DO TAXISTA. (a -b )² + (a -b )²

2. ALGORITMOS. Unesp Campus de Guaratinguetá

AULA 07 Distribuições Discretas de Probabilidade

Transcrição:

SCC-505 - Capítulo 1 Linguagens Regulares e Autômatos Finitos João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis 2010 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 1/40

Sumário 1 2 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 2/40

Sumário 1 2 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 3/40

Um Exemplo: Parênteses Casados Parênteses casados incluem todas as cadeias balanceadas de parênteses esquerdos e direitos - por exemplo, (()), ()() e (()(())). A seguinte especificação descreve a linguagem de parênteses casados intuitivamente: 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 um sistema de re-escrita - uma gramática - que gera exatamente o conjunto de cadeias legais de parênteses casados: 1 S () 2 S (S) 3 S SS João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 4/40

Um Exemplo: Conceitos Estas três regras de re-escrita são chamadas de produções. Elas dizem dada uma cadeia, pode-se formar uma 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 e w são cadeias arbitrárias, deve-se dizer que v deriva diretamente w. Então SS deriva diretamente (S)S. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 5/40

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 que podem aparecer em derivações mas não aparecem nas cadeias finais (no exemplo, S é a única variável); e os terminais, que são os símbolos que formam a cadeia que se deseja produzir (no exemplo, ( e ) são símbolos terminais). João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 6/40

Sumário 1 2 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 7/40

Alfabeto e Linguagem Seja Σ um conjunto finito não vazio de símbolos terminais (tokens), ou alfabeto terminal. Seja Σ o conjunto de todas as cadeias de comprimento finito sobre Σ. Este conjunto infinito de cadeias inclui a cadeia vazia λ. Uma linguagem L sobre Σ é qualquer subconjunto de Σ. Então a linguagem de parênteses casados, M, é uma linguagem porque M {(, )}. Cada cadeia w em L tem um comprimento finito, w, com λ = 0. Se w = x 1 x 2...x n, cada x j Σ, temos w = n. Podemos escrever Σ + para denotar a linguagem de cadeias não vazias sobre Σ. Se w = x 1 x 2...x n e w = x 1 x 2...x m são duas cadeias quaisquer, podemos concatená-las para obter ww = x 1 x 2...x n x 1 x 2...x m Estabelece-se que wλ = λw = w. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 8/40

Gramática Definição. Uma gramática de estrutura de frase G é uma quádrupla (Σ, V, S, P) onde Σ e V são alfabetos finitos 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; e 4 P é conjunto de produções da gramática. P é um conjunto de pares (v, w) com v uma cadeia em (Σ V ) contendo no mínimo um símbolo não terminal, enquanto que w é um elemento arbitrário de (Σ V ). Um elemento (v, w) de P é usualmente escrito como v w. A gramática para a linguagem de parênteses casados pode ser escrita como G = ({(, )}, {S}, S, {S (), S (S), S SS}) João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 9/40

Linguagem Definição. Seja G uma gramática com símbolo inicial S. A linguagem gerada por G, L(G), é definida como o conjunto de cadeias terminais deriváveis do símbolo inicial: L(G) = {w w Σ e S w} Dado G, se S w (onde w é em geral construído tanto de símbolos terminais como não terminais) referimos a w como uma forma sentencial. Então L(G) é o conjunto de formas sentenciais terminais. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 10/40

Exemplos Exemplo 1: Sejam V = {S}, Σ = {a, b}, P = {S asb, S ab}. Neste caso L(G) = {a n b n n > 0}. Ou seja, L(G) é o conjunto de todas 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 alfabeto terminal {a, b}. Exemplo 3: A seguinte gramática gera todas as cadeias sobre o alfabeto terminal {0, 1} com um número igual de 0 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 G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 11/40

Gramática Linear a Direita - GLD Definição: Uma gramática G = (Σ, V, S, P) é linear a direita (GLD) se toda produção é da forma A bc ou A b onde A, C V e b Σ {λ}. Uma linguagem gerada por tal gramática é chamada de linguagem linear a direita. Exemplo 4: Considere a GLD G 1 com produções S λ 0 0S 1 1S Claramente, L(G 1 ) = {0, 1}, o conjunto de todas as cadeias binárias. Exemplo 5: Agora, considere a GLD G 2 : S λ 0S 1T, T 0T 1S Pode-se provar que L(G 2 ) = {w w {0, 1} e w tem um número par de 1 s } João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 12/40

BNF O estilo de linguagem de programação para escrever gramáticas, a chamada forma de Backus-Naur, ou BNF, usa uma notação levemente diferente. Na BNF as variáveis são fechadas em < >, e é substituído pelo símbolo ::=. Portanto, a segunda produção do exemplo dos parênteses casados: S (S) é escrita na notação BNF como: < S > ::= (< S >) João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 13/40

Tipos de Definição: Seja G = (Σ, V, S, P) uma gramática. Então G é classificada como tipo i, i = 0, 1, 2, 3, de acordo com restrições na forma das regras de P: Uma gramática é do tipo 3 se toda produção de P for da forma 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 da forma A w, com A V e w (Σ V ). Estas são as gramáticas livres de contexto. Uma gramática é do tipo 1 se toda produção de P for da forma vaw vzw onde z (Σ V ) + (isto é, z λ). Em adição, permite-se a única regra-λ S λ no caso onde S não aparece do lado direito de nenhuma produção. São as gramáticas sensíveis ao contexto. Qualquer gramática é do tipo 0. Não existem restrições na forma das produções para as gramáticas desta classe. São chamadas de gramáticas irrestritas. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 14/40

A Hierarquia de Chomsky Vai-se usar a notação L i para as linguagens de tipo i: L i = {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: L 3 L 2 L 1 L 0 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 15/40

Sumário 1 2 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 16/40

Linguagem Regular Definição: Seja Σ um alfabeto finito. Uma linguagem L Σ é regular se L for finita, ou L pode ser obtida indutivamente usando uma das seguintes operações: 1 L é L 1 L 2, a união de L 1 e L 2, onde L 1 e L 2 são regulares; ou 2 L é L 1 L 2, a concatenação de L 1 e L 2, onde L 1 e L 2 são regulares; ou 3 L é L 1, a iteração de L 1, onde L 1 é regular. Note que o conjunto vazio e o conjunto {λ} são ambos regulares, sendo finitos. As linguagens 1 {ab} {a} 2 {a, b} são também regulares. Por que? João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 17/40

Expressão Regular Proposição: Todo conjunto regular é uma linguagem linear a direita. Definição: Seja Σ um alfabeto finito. Define-se expressões regulares R e suas denotações de conjuntos regulares 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 R 1 e R 2 são expressões então (R 1 + R 2 ) ou (R 1 R 2 ) é uma expressão regular com S((R 1 + R 2 )) = S((R 1 R 2 )) = S(R 1 ) S(R 2 ). 5 Se R 1 e R 2 são expressões então (R 1 R 2 ) é uma expressão regular com S((R 1 R 2 )) = S(R 1 ) S(R 2 ). 6 Se R é regular então (R) é regular com S((R) ) = (S(R)). João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 18/40

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 pela concatenação de pares de a s e pares de b s. 4 aa(b + aaa)c + (a + c) representa a linguagem que é a união de três sublinguagens: 1 todas as cadeias começando com um a duplo, seguido por qualquer número de b s, seguido por um c; 2 a linguagem cadeia {aaaaac}; e 3 a linguagem construída por todas as cadeias de a s e c s. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 19/40

Expressão Regular: Extensões Objetivo das extensões às expressões regulares de Kleene: melhorar a capacidade de especificar os padrões de entrada. Algumas extensões (usadas inicialmente no Lex - utilitário Unix), úteis na especificação de analisadores léxicos: 1 Uma ou mais instâncias: operador +. Leis algébricas: r = r + λ, r + = rr = r r 2 Zero ou uma instância: operador?. Lei algébrica: r? = r λ, ou L(r?) = L(r) {λ}. 3 Classes de caracteres: a expressão regular a 1 + a 2 +... + a n, onde a i Σ, pode ser substituída por [a 1 a 2...a n ]. Quando a 1 a 2...a n formam uma sequência lógica, pode-se substituí-la por a 1 a n. Logo, [abc] = a + b + c, e [a z] = a + b +... + z. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 20/40

Expressão Regular: Extensões Exemplos: 1 Identificadores da linguagem C no padrão de Kleene: letra_ A B Z a b z _ digito 0 1 9 id letra_(letra_ digito) 2 Identificadores da linguagem C no padrão estendido: letra_ [A Zaz_] digito [0 9] id letra_(letra_ digito) João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 21/40

Expressão Regular e Gramática Exemplo: Considere a expressão regular (b + (ab) ). Para achar uma gramática linear a direita para esta expressão, primeiro forme uma gramática para b : S 1 bs 1 λ. Então forme uma gramática para (ab): S 2 ab 2, B 2 b. Isto pode ser estrelado adicionando S 2 λ, B 2 bs 2. Finalmente, a linguagem completa pode ser gerada adicionando S bs 1 λ ab 2, levando a S bs 1 λ ab 2 S 1 bs 1 λ S 2 ab 2 λ B 2 bs 2 b João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 22/40

Sumário 1 2 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 23/40

Autômato Finito Nesta seção, introduzimos a classe básica de dispositivos de computação chamados de autômatos finitos. Estes dispositivos julgam a legalidade de cadeias sobre algum alfabeto finito. Vamos mostrar que a coleção de linguagens que podem ser aceitas por autômatos finitos é exatamente a de linguagens regulares. Exemplo. O autômato finito dado a seguir aceita a linguagem ((0 + 1)0 1). João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 24/40

Autômato Finito Determinístico Definição: Um autômato finito determinístico (AFD) M é especificado por uma quíntupla (Q, Σ, δ, q 0, F) onde Q é um conjunto finito de estados Σ é o alfabeto terminal δ: Q Σ Q é a função de transmissão de estado q 0 Q é o estado inicial F Q é o conjunto de estados de aceitação. Então o grafo de estado de um AFD tem um nó para cada q Q, que é rotulado; tem uma seta livre apontando para o nó q 0 ; tem um círculo duplo para um nó q apenas no caso de q F; e tem um arco rotulado x levando de um nó q para um nó q apenas no caso de δ(q, x) = q. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 25/40

Autômato Finito Determinístico Definição: Dado um AFD M, define-se por indução a função δ : Q Σ Q, tal que δ (q, w) é o estado para o qual M irá na cadeia de entrada w se começado no estado q 0 : Passo Básico: δ (q, λ) = q para cada estado q Q. Se M começou no estado q, então quando ele receber a cadeia de entrada vazia ele deve ainda estar no mesmo estado q. Passo de Indução: Para cada estado q Q, cada cadeia de entrada w Σ e cada símbolo de entrada x Σ, estabelece-se que δ (q, wx) = δ(δ (q, w), x). João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 26/40

Linguagem de Estados Finitos Definição: O conjunto T (M) de cadeias aceitas pelo AFD M = (Q, Σ, δ, q 0, F) é T (M) = {w w Σ e δ (q 0, w) F } compreendendo todas as cadeias terminais que enviam M do seu estado inicial q 0 para um estado de aceitação, isto é, um estado em F. Diz-se que um subconjunto L de Σ é uma linguagem de estados finitos (LEF) se for igual a T (M) para algum AFD M. Proposição: Toda LEF é uma linguagem linear a direita. Teorema: Toda LEF é um conjunto regular. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 27/40

Expressão Regular Equivalente Seja o seguinte autômato: Para gerar a expressão regular equivalente a este autômato, é necessário estabelecer todos os caminhos que levam do estado inicial q 0 a um estado de aceitação (neste caso q 2 ). Os caminhos são: De q 0 a q 2 : 1 0 De q 0 a q 1 a q 2 : 0 1 0 0 De q 0 a q 1 a q 2 a q 1 a q 2 : 0 1 0 0 1 1 0 0 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 28/40

Expressão Regular Equivalente Observe que há um ciclo se repetindo entre q 2 e q 1, logo pode-se representar os caminhos que levam de q 0 a q 2 passando por q 1 da seguinte forma: De q 0 a q 1 a q 2 a (q 1 a q 2 ) : 0 1 0 0 (0 1 1 0 0 ) Outro caminho é de q 0 a q 2 e realizando o ciclo q 1 q 2 : De q 0 a q 2 a (q 1 a q 2 ) : 1 0 (0 1 1 0 0 ), que inclui 1 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 G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 29/40

Sumário 1 2 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 30/40

Não Determinismo Deseja-se provar que toda linguagem linear a direita é uma LEF. Considere a seguinte gramática linear a direita: ({a, b}, {q 0, q 1, q 2 }, q 0, {q 0 aq 1, q 1 b, q 0 aq 2, q 2 a}) Esta gramática leva à seguinte máquina: A estrutura obtida não é um AFD, porque dois arcos saindo de q 0 têm o mesmo rótulo, a. Isto viola a condição da regra de transição para um AFD ser uma função. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 31/40

Autômato Finito Não Determinístico Quando transições múltiplas deste tipo estão presentes em 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, Σ, δ, Q 0, F) onde Q é um conjunto finito de estados Σ é o alfabeto terminal δ: Q Σ 2 Q atribui a cada par estado-entrada (q, x) um conjunto δ(q, x) Q de próximos estados possíveis (2 Q é o conjunto potência de Q ou conjunto de todos os subconjuntos de Q) Q 0 Q é o conjunto de estados iniciais F Q é o conjunto de estados de aceitação. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 32/40

Autômato Finito Não Determinístico Viu-se que um AFN é como um AFD exceto que existe um conjunto de estados iniciais e um conjunto de próximos estados possíveis. Estas complicações significam que uma cadeia pode induzir caminhos múltiplos através de um AFN, alguns terminando em estados de aceitação, outros terminando em estados de não aceitação. Lida-se com esta ambiguidade dizendo que w Σ é aceita se existe pelo menos uma forma de chegar a um estado de aceitação. Vai-se definir agora δ : 2 Q Σ 2 Q para um AFN tal que δ (P, w) é o conjunto de estados alcançáveis a partir de algum estado em P pela aplicação da cadeia de entrada w. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 33/40

Autômato Finito Não Determinístico Definição: Estenda δ : Q Σ 2 Q para um AFN para δ : 2 Q Σ 2 Q 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 que T (M) = {w w Σ e δ (Q 0, w) F } é o conjunto de cadeias de entrada tal que no mínimo um caminho, rotulado com símbolos de w em ordem, através do grafo de estado leva M de um estado inicial para um estado de aceitação. Proposição: Um subconjunto de Σ é uma linguagem de estados finitos se e somente se ele for T (M) para algum AFN M. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 34/40

Conversão de AFN para AFD Exemplo: Considere o seguinte AFN. Os estados q 0 e q 2 são estados iniciais, enquanto que o estado q 1 é o único estado de aceitação. Existem 2 Q (neste caso, 2 3 = 8) estados no AFD equivalente, mas na prática não é necessário considerar todos eles, porque muitos são inalcançáveis. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 35/40

Conversão de AFN para AFD Tira-se vantagem desta observação começando do novo estado inicial q 02, correspondente à união de q 0 e q 2, e construindo estados adicionais na medida em que eles são gerados. Começa-se com δ a b {q 0, q 2 } {q 2, q 1 } {q 0, q 2 } que descreve a ação de δ no estado inicial q 02 de entradas a e b, respectivamente. De maneira análoga, chamar-se-á o estado {q 2, q 1 } de q 21 : δ a b q 02 q 21 q 02 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 36/40

Conversão de AFN para AFD Apenas um novo estado foi gerado, assim produz-se sua linha: δ a b q 21 q 1 q 1 Então tem-se: δ a b q 1 q 1 q 1 A tabela completa do δ fica: δ a b q 02 q 21 q 02 q 21 q 1 q 1 q 1 q 1 q 1 João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 37/40

Conversão de AFN para AFD Todos os estados resultantes que contêm estados finais do AFN original são estados de aceitação no AFD correspondente. O diagrama de estados do AFD equivalente é: Teorema: Toda linguagem linear a direita L é uma LEF. Conclui-se portanto que as classes de linguagens lineares a direita, linguagens regulares e linguagens de estados finitos coincidem. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 38/40

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 e Computação. Tradução da segunda edição americana. Editora Campus, 2003. [3] Menezes, P. B. Linguagens Formais e Autômatos. Série Livros Didáticos. 4a. Edição. Instituto de Informática da UFRGS. Editora Sagra Luzzatto, 1997. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 39/40

Apêndice Bibliografia Referências II [4] Moll, R. N., Arbib, M. A., and Kfoury, A. J. An Introduction to Formal Language Theory. Springer-Verlag, 1988. [5] Rosa, J. L. G. Teoria da Computação e Linguagens Formais. Slides. SCE0205. Instituto de Ciências Matemáticas e de Computação. Universidade de São Paulo, 2009. João Luís G. Rosa c 2010 - SCC-505: I. Linguagens Regulares e Autômatos Finitos 40/40