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



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

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Linguagem (formal) de alfabeto Σ

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Autómatos de pilha e GIC

Revisões de Conjuntos

Outras Máquinas de Turing

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

Linguagens recursivamente enumeráveis

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

Linguaguens recursivamente enumeráveis e recursivas

Gramáticas ( [HMU00], Cap. 5.1)

Exemplos de autómatos finitos

Autómatos Finitos Determinísticos

Modelagem de uma Vending Machine utilizando um Autômato Finito com Saída

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador

Os limites da computação algorítmica

$XWyPDWRV)LQLWRV'HWHUPLQLVWDV$)' A= (Q, È, G,q 0,F)

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

Linguagem Formais e Autômatos

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Problemas decidíveis para LICs

Roteiro da Aula 3. Sintaxe. 2 Exemplos. 4 Propriedades de Fechamento. Teoria da Aula 3. Roteiro

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

1 Autómatos finitos deterministas

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

Faculdade de Computação

Lógica Computacional

Exercícios de Teoria da Computação Autómatos finitos não deterministas

Alfabeto, Cadeias, Operações e Linguagens

Análise e Complexidade de Algoritmos

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

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto

O que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais

Diagrama de transição de Estados (DTE)

Autômatos Finitos Não-Determinísticos para Diagnóstico de Falhas em Sistemas de Potência

Modelos de Computação

Aula 4 Estatística Conceitos básicos

Recordamos que Q M n n (R) diz-se ortogonal se Q T Q = I.

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

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

Máquinas de Turing: uma introdução

Exercícios Teóricos Resolvidos

UNIVERSIDADE DO VALE DO ITAJAÍ PAULO ROBERTO LIMA

Complexidade de Algoritmos

Estruturas Discretas INF 1631

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

CAP. I ERROS EM CÁLCULO NUMÉRICO

Contagem. George Darmiton da Cunha Cavalcanti CIn - UFPE

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Dadas a base e a altura de um triangulo, determinar sua área.

Databases. Dependências Funcionais

Não há 3 sem 2: O Teorema de Sharkovskii

AULA 6 LÓGICA DOS CONJUNTOS

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

AMBIENTE DE PROGRAMAÇÃO PYTHON

Introdução às Máquinas de Turing (TM)

Resumo. Sistemas e Sinais Máquinas de Estados Finitos. Máquina de Estados Finitos. Esta Aula

Linguagens Formais e Autômatos (LFA)

Arquitetura de Rede de Computadores

Capítulo 5. Linguagens livres de contexto

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Resolução de problemas e desenvolvimento de algoritmos

1 Máquina URM, comandos e programas URM

A ideia de coordenatização (2/2)

Linguagens Formais e Autômatos. Alfabetos, Palavras, Linguagens e Gramáticas

COMPILADORES E INTERPRETADORES

Breve referência à Teoria de Anéis. Álgebra (Curso de CC) Ano lectivo 2005/ / 204

Aula 2 Modelo Simplificado de Computador

Só Matemática O seu portal matemático FUNÇÕES

Cálculo das Probabilidades e Estatística I

Aula 2 Modelagem de Sistemas. Introdução Modelo de Base Lógica de 1ª Ordem. Concorrentes

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Um software para auxílio a aprendizagem de Linguagens Regulares

Faculdade de Computação

Eventos independentes

Notas de Aula 04: Casos de uso de um sistema

Matemática Discreta para Computação e Informática

Projeto da Disciplina Parte1: Estudo de Viabilidade. Um Estudo de Viabilidade

Árvores de Suporte de Custo Mínimo

Análise e Projeto de Algoritmos

Aula 13 Técnicas de Integração

Transcrição:

Autómatos finitos não determinísticos (AFND) [HMU00](Cap 2.3) Computações não determinísticas: o estado seguinte não é univocamente determinado pelo estado actual.num autómato finito (não-determínistico): dado um estado s e um símbolo a existe um conjunto de estados possíveis seguintes, do qual se pode escolher um novo estado uma palavra é aceite, se começando no estado inicial existe um conjunto de escolhas (caminho) tal que quando acabar de a ler está num estado final. uma palavra é rejeitada se não existe nenhum caminho que leve dum estado inicial a um estado final. Departamento de Ciência de Computadores da FCUP MC Aula 5 1

Escolher ou adivinhar e verificar L = {x {0, 1} o quinto símbolo a contar da direita é 1} 0,1 s 0 1 s 1 0,1 s 2 0,1 s 3 0,1 s 4 0,1 s 5 Se x L existe uma escolha que leva à aceitação; se x / L nenhuma escolha leva à aceitação. Facto: existe um autómato finito determinístico que aceita L, mas tem pelo menos 2 5 = 32 estados, pois tem de recordar os últimos 5 símbolos lidos! Departamento de Ciência de Computadores da FCUP MC Aula 5 2

AFD e AFND Um autómato finito determinístico é um caso particular dum autómato finito não determinístico. Mas.. As linguagens aceites por autómatos finitos não determinísticos são precisamente as mesmas das aceites por autómatos finitos determinísticos Isto é Para cada autómato finito não determinístico, existe um autómato finito determinístico que aceita a mesma linguagem. Departamento de Ciência de Computadores da FCUP MC Aula 5 3

Construção por subconjuntos (informal) Ideia: associar um estado do AFD a cada conjunto de estados em que o AFND pode estar em cada passo da análise duma uma palavra. Estados do AFD: subconjuntos do conjunto de estados do AFND Estado inicial do AFD: conjunto com o estado inicial do AFND Estado final do AFD: qualquer subconjunto de estados que contenha um estado final de AFND Departamento de Ciência de Computadores da FCUP MC Aula 5 4

Exemplo L = {x {0, 1} o segundo símbolo a contar da direita é 1} 0,1 s 0 1 s 1 0,1 s 2 Após ler 001 o autómato pode estar em {s 0, s 1 }. O δ do AFD equivalente é definido por: δ 0 1 {s 0 } {s 0 } {s 0, s 1 } {s 1 } {s 2 } {s 2 } {s 2 } {s 0, s 1 } {s 0, s 2 } {s 0, s 1, s 2 } {s 0, s 2 } {s 0 } {s 0, s 1 } {s 1, s 2 } {s 2 } {s 2 } {s 0, s 1, s 2 } {s 0, s 2 } {s 0, s 1, s 2 } Departamento de Ciência de Computadores da FCUP MC Aula 5 5

Começando em {s 0 } por transições de 0 e 1 os estados {s 1, s 2 }, {s 1 }, {s 2 } e nunca são atingidos. Assim podemos eliminá-los e simplificar o AFD para: δ 0 1 {s 0 } {s 0 } {s 0, s 1 } {s 0, s 1 } {s 0, s 2 } {s 0, s 1, s 2 } {s 0, s 2 } {s 0 } {s 0, s 1 } {s 0, s 1, s 2 } {s 0, s 2 } {s 0, s 1, s 2 } 0 (01) 1 1 0 (00) 0 (10) 1 0 (11) 1 O ADF resultante corresponde precisamente a um que recorda os dois últimos símbolos lidos:{s 0 } (00), {s 0, s 1 } (01), {s 1, s 2 } (10) e {s 0, s 1, s 2 } (11). Departamento de Ciência de Computadores da FCUP MC Aula 5 6

Autómato Finito Não Determinístico N = (S, Σ, δ, s 0, F ) S o conjunto finito de estados Σ o alfabeto de símbolos de entrada s 0 S F S o conjunto de estados finais δ uma função de S Σ em P(S), função de transição Departamento de Ciência de Computadores da FCUP MC Aula 5 7

N = ({s 0, s 1, s 2 }, {0, 1}, s 0, δ, {s 2 }) 0 1 s 0 {s 0 } {s 0, s 1 } s 1 {s 2 } {s 2 } s 2 0,1 s 0 1 s 1 0,1 s 2 Departamento de Ciência de Computadores da FCUP MC Aula 5 8

Extensão da função de transição a palavras Estados onde pode estar após processar uma palavra w Seja δ : S Σ P(S) defini-se δ(s, w) recursivamente por Base. w = ɛ, então δ(s, ɛ) = {s} Indução. se w = xa e δ(s, x) = {p 1,... p k }, então δ(s, xa) = k i=1 δ(p i, a). Isto é, para calcular δ(s, xa), calcula-se δ(s, x) e depois consideram-se todas as transições etiquetadas com a desses estados. Departamento de Ciência de Computadores da FCUP MC Aula 5 9

0,1 Processar 0110 em N s 0 1 s 1 0,1 s 2 δ(s 0, ɛ) = {s 0 } δ(s 0, 0) = {s 0 } δ(s 0, 01) = δ(s 0, 1) = {s 0, s 1 } δ(s 0, 011) = δ(s 0, 1) δ(s 1, 1) = {s 0, s 1 } {s 2 } = {s 0, s 1, s δ(s 0, 0110) = δ(s 0, 0) δ(s 1, 0) δ(s 2, 0) = {s 0 } {s 2 } = {s 0, s 2 } Departamento de Ciência de Computadores da FCUP MC Aula 5 10

Linguagem aceite por um AFND N aceita x Σ se δ(s 0, x) F L(N) = {x Σ N aceita x, i.e, δ(s 0, x) F } Mostrar que L = {x {0, 1} x termina em 10 ou 11} = L(N) Por indução mutua em: 1. Para todo o w, s 0 δ(s 0, w) 2. s 1 δ(s 0, w) sse w termina em 1 3. s 2 δ(s 0, w) sse w termina em 10 ou 11 Departamento de Ciência de Computadores da FCUP MC Aula 5 11

Por indução no comprimento de w: Base. w = ɛ, então δ(s 0, ɛ) = {s 0 }, logo (1) verifica-se. (2) e (3) também se verificam trivialmente. Indução. w = xa, onde a é 0 ou 1, e supõe que (1-3) verificam-se para δ(s 0, x). (1) s 0 δ(s 0, x) e como s 0 δ(s 0, a), então s 0 δ(s 0, w) (2) ( ) Supõe que a = 1, como s 0 δ(s 0, x) e s 1 δ(s 0, 1), então s 1 δ(s 0, w). ( ) Supõe que s 1 δ(s 0, w). Pela tabela, só se pode chegar a s 1 se último símbolo for 1, i.e., w = x1. (3) ( ) Se o penúltimo símbolo é 1, então x termina em 1 e s 1 δ(s 0, x). Mas s 2 δ(s 1, a), logo s 2 δ(s 0, w). ( ) Supõe que s 2 δ(s 0, w). Pela tabela, só se pode chegar a s 2 de s 1 e para tal penúltimo símbolo de w tem de ser 1. Departamento de Ciência de Computadores da FCUP MC Aula 5 12

Equivalência entre AFDs e AFNDs Proposição 5.1. Qualquer linguagem que seja reconhecida por um autómato finito determinístico pode ser reconhecida por algum autómato finito não determinístico. Dem: Um AFD A = (S, Σ, δ A, s 0, F ) é equivalente a um AFND N = (S, Σ, δ N, s 0, F ) com δ N (s, a) = {δ A (s, a)}, a Σ, s S. Por indução em w prova-se que δ A (s 0, w) = s sse δ N (s 0, w) = {s} Proposição 5.2. Qualquer linguagem que seja reconhecida por um autómato finito não determinístico pode ser reconhecida por algum autómato finito determinístico. Departamento de Ciência de Computadores da FCUP MC Aula 5 13

Construção por subconjuntos (geral) Seja N = (S, Σ, δ N, s 0, F N ) um AFND. Construímos A = (P(S), Σ, δ A, {s 0 }, F A ) onde def δ A (A, a) = = s A δ N (s, a)) F A Lema 5.1. δa ({s 0 }, w) = δ N (s 0, w) def = {A P(S) A F N } Dem: Por indução em w. Base. w = ɛ, por definição, δ N (s 0, ɛ) = {s 0 } e δ A ({s 0 }, ɛ) = {s 0 } Indução. w = xa, onde a é o símbolo final de w. Por hipótese de indução, δa ({s 0 }, x) = δ N (s 0, x). Sejam estes estados {p 1,..., p k }. Departamento de Ciência de Computadores da FCUP MC Aula 5 14

Por definição, δn (s 0, w) = k i=1 δ N(p i, a) e δ A ({p 1,..., p k }, a) = k i=1 δ N(p i, a). Então, δ A ({s 0 }, w) = δ A ( δ A ({s 0 }, x), a) = δ A ({p 1,..., p k }, a) = k i=1 δ N(p i, a) = δ N (s 0, w) Dem: [Proposição 5.2] Para x Σ, x L(A) δ A ({s 0 }, x) F A δ A ({s 0 }, x) F N δ N (s 0, x) F N x L(N ) Nota:No pior caso, se o AFND tiver n estados, o menor AFD tem 2 n estados. Mas em muitos casos o AFD e o AFND têm essencialmente o mesmo número de estados, embora o AFD tenha muitas mais transições. Departamento de Ciência de Computadores da FCUP MC Aula 5 15

Aplicação: procura de um conjunto de palavras num texto [HMU00] (Cap. 2.4) Suponhamos que temos um conjunto de palavras-chave que pretendemos saber se ocorrem num texto. Para tal podemos fazer um AFND que lê o texto e que entra num estado final se uma das palavras for encontrada. Exemplo 5.1. AFND para reconhecer L = {rede, dedo} Σ 2 r 1 d e 3 d 4 e 5 6 e 7 d 8 o 9 Departamento de Ciência de Computadores da FCUP MC Aula 5 16

AFD para reconhecer um conjunto de palavras-chave Agora podemos converter este autómato num AFD usando a construção de subconjuntos. Departamento de Ciência de Computadores da FCUP MC Aula 5 17

δ r e d o Σ \ {r, e, d, o} {1} {1, 2} {1} {1, 6} {1} {1} {1, 2} {1, 2} {1, 3} {1, 6} {1} {1} {1, 6} {1, 2} {1, 7} {1, 6} {1} {1} {1, 3} {1, 2} {1} {1, 4, 6} {1} {1} {1, 7} {1, 2} {1} {1, 6, 8} {1} {1} {1, 4, 6} {1, 2} {1, 5, 7} {1, 6} {1} {1} {1, 6, 8} {1, 2} {1, 7} {1, 6} {1, 9} {1} {1, 5, 7} {1, 2} {1} {1, 6, 8} {1} {1} {1, 9} {1, 2} {1} {1, 6} {1} {1} Mas para este tipo de AFND podemos construir sempre um que o AFD equivalente que tenha no máximo o mesmo número de estados: 1. Se s 0 é o estado inicial do AFND, então {s 0 } é um dos estados do AFD 2. Seja s é um estado do AFND acessível de s 0 por um caminho cujos símbolos são a 1 a 2...a m. O AFD contém um estado composto por: s 0, Departamento de Ciência de Computadores da FCUP MC Aula 5 18

s e todos os estados acessíveis de s 0 por um caminho etiquetado com sufixos de a 1 a 2...a m. As transições podem ser obtidas pelo método da construção de subconjuntos, ou simplesmente: para cada estado do AFD S = {s 0, t 1,..., t k }, determinar para cada símbolo a 1. se existem transições de t i etiquetadas por a, então S tem uma transição por a para o estado constituído por s 0 e todos os estados destino de transições de t i por a 2. caso contrário, S tem uma transição por a para o estado constituído por s 0 e todos os estado destino de transições de s 0 por a. Exercício 5.1. (a) Usando o método anterior, descreve a construção de AFND que reconhece um conjunto genérico de palavras. Departamento de Ciência de Computadores da FCUP MC Aula 5 19

(b) Constrói um AFD equivalente ao dado no exemplo. (c) Escreve um AFND, e um AFD correspondente, para reconhecer ac, bc, dbc em Σ = {a, b, c, d} Departamento de Ciência de Computadores da FCUP MC Aula 5 20

Leituras [HMU00] Cap 2.3-2.4(p.55-72 [Tom99] (Pág 29-31) Referências [HMU00] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison Wesley, 2nd edition, 2000. [Tom99] Ana Paula Tomás. Apontamentos de modelos de computação. Technical report, Departamento de Ciência de Computadores, FCUP, 1999. Departamento de Ciência de Computadores da FCUP MC Aula 5 21