Optimal Insertion in deterministic DAWGs David Menoti UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Slides:



Advertisements
Apresentações semelhantes
FAPE - Curso de Ciência da Computação
Advertisements

Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Prof. M.Sc. Fábio Francisco da Costa Fontes Maio
Antonio Dirceu Rabelo de Vasconcelos Filho
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Linguagem Fabrício Dias
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
II – Análise léxica DEI Conversão de expressões regulares em autómatos finitos determinísticos mínimos Bibliografia aconselhada: Aho, Sethi e Ullman –
I - Noções dum compilador
Indexação Automática de Documentos
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Prof. Yandre Maldonado e Gomes da Costa
Linguagens Formais e Autômatos
Prof. Yandre Maldonado e Gomes da Costa
TEORIA DOS AUTÓMATOS FINITOS E DAS SUAS LINGUAGENS
Ling. Formais e Autômatos Autômatos finitos
Mineração de Padrões Arborescentes
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
Inteligência Artificial
Grafos – Parte 1 Projeto e Análise de Algoritmos Aline Vasconcelos
Pesquisa em Memória Primária
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária – Árvores de Busca
Pesquisa em Memória Primária
David Menotti Estruturas de Dados I DECOM – UFOP
esquerda p/ direita,read only
autômatos finitos com transições e
Identificando Linguagens Não Regulares
A FAST APRIORI implementation
Problema de designação
Busca A*: exemplo.
Linguagem de Prog. e Programas
Capítulo 3 - Russell e Norvig
Indexação de Arquivos Página de rosto.
Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Informática Teórica Engenharia da Computação
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Exercícios: Alg Gulosos Eduardo Laber. Cap 4-Exercício 2 a)Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas.
Algorítmos e estrutura de dados III
Introdução a Programação
ORDENAÇÃO POR CONTAGEM
Problemas de fluxo em grafos 1º semestre/2012 Prof. André Renato
SIPSER – Capítulo 3: A tese de Church-Turing
Ling. Formais e Autômatos AFN-ε
Teoria da Computação Aula 1 Prof. Fabiano Sabha.
Teoria da Computação Aula 3 Prof. Fabiano Sabha.
Autómatos de Pilha. UM NOVO MODELO PARA OS AUTÓMATOS FINITOS As linguagens regulares são aceites por autómatos finitos. E as linguagens não regulares?
TRIES Estruturas de Dados Professor Dr. Paulo Roberto Gomes Luzzardi
Minimização de DFAs.
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.
Aula 18 1 Análise Sintáctica Compiladores, Aula Nº 18 João M. P. Cardoso.
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
Cin-UFPE String Matching
Resolução de Problemas de Busca
Geometria Computacional Fecho Convexo
Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães.
Computabilidade e Linguagens Formais
Engenharia/Ciência da Computação
Gabriel C.S. EDA0001 – TADS – 2013 UDESC – Joinville
Aula 6 1 Análise Lexical Compiladores, Aula Nº 6 João M. P. Cardoso.
ORDENAÇÃO EM TEMPO LINEAR
Hashing (Tabela de Dispersão)
INE5408 Estruturas de Dados Árvores B - Estrutura e peculiaridades -Algoritmos de inserção, pesquisa e deleção.
Transcrição da apresentação:

Optimal Insertion in deterministic DAWGs David Menoti UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004

Sumário Introdução Problema Motivação Trabalhos Correlatos Definições Algoritmo Experimentos Conclusões

Introdução – Problema Representar dados em forma de Autômatos Aplicações Representação de Dicionários Casamento de Cadeias de Caracteres Processamento de Voz Análise de DNA

Introdução – Problema DWAGs – Directed acyclic word graph Nodes Links AFDA – Autômato Finito Determinista e Acíclico Estados Transições

Introdução – Problema AFDA Conjunto finito de palavras (AF) Palavras de tamanho finito (sem ciclo) Por que determinístico? Computação rápida e on-line

Introdução – Problema Palavras dance darts start smart

Introdução – Motivação AFDA Representação em árvores Aproveita prefixos exatos AFDA mínimos Sem ciclos, arestas de retorno. Aproveitamento de prefixos e sufixos Definição: Menor nº de estados possíveis

Introdução – Motivação Autômatos Mínimos Construídos de Forma incremental Espaço x Tempo Grande conjunto de Dados Autômato não mínimo pode não caber na Memória Principal. Redução em quase 20 vezes Aplicação: corretores gramaticais – on-line

Introdução - Trabalhos Minimização de Autômatos Moore O(n 2 ) Hopcroft O(n log n) Revuz 1992 – O(n), Bucket Sort Sgarbas 1995 – O(n 2 ), ?

Definições Q é um conjunto de estados é um conjunto de símbolos (alfabeto) Uma transição é uma tripla (n1,n2,s) L Q x Q x é o conjunto de transições n1n1 n2n2 s

Definições Uma sucessão de n 0 até n k, succ(n 0,n k ) [(n 0,n 1,s 1 ),(n 1,n 2,s 2 ),...,(n k-2,n k-1,s k-1 ),(n k-1,n k,s k )] n k é sucessor de n 0 n 0 é antecessor de n k Se |succ(n 0,n k )| = 1 n k é sucessor imediato de n 0 n 0 é antecessor imediato de n k

Definições Uma sucessão G=succ(n 0,n k ) [(n 0,n 1,s 1 ),(n 1,n 2,s 2 ),...,(n k-2,n k-1,s k-1 ),(n k-1,n k,s k )] rotulo(G) [s 1,s 2,...,,s k-1,s k ] H=SUCC(n 0,n k ), todas as sucessões ROTULO(H), todas as séries ordenadas

Definições AFDA D =(Q,L,,i,f) i, f Q n Q-{i}, SUCC(i,n) n Q-{f}, SUCC(n,f) ROTULO(SUCC(i,f)) = todas as palavras

Definições F IN (n) = {(n,s): (n,n,s) L} F OUT (n) = {(n,s): (n,n,s) L} Estado Receptor |F IN (n)| > 1

Definições Estados Equivalentes (n 1 n 2 ) ROTULO(SUCC(n 1,f)) = ROTULO(SUCC(n 2,f)) Estados Similares (n 1 n 2 ) F OUT (n 1 ) = F OUT (n 2 ) Similar Equivalentes Equivalentes Similar

Definições D =(Q,L,,i,f) AFDA Mínimo é aquele que não contém Estados Equivalentes Lema 1 Dois Estados Equivalentes de D são similares ou seus sucessores imediatos são também equivalentes

Definições Transição Nula

Algoritmo Adição de palavras em AFDA mínimo prévio Ótimo – AFDA produzido é mínimo Inserção O(n), |w i | O(n 2 ) criação de dicionário

Algoritmo Percorre pequena porção do AFDA Composto de 3 estágios 1º Aproveitamento de Prefixos 2º Anexo do Sufixo restante 3º Minimização – Estados Similares Idéia: Estados Similares

Algoritmo – 1º Passo Aproveitamento de Prefixo (loop) Verifica se existe transição com caractere (n,w[i]) F OUT (n 0 )? então, se é receptor (|F IN (n)| > 1)? Clona estado (n) FIN(n) FIN(n) – {transição} FIN(n) {transição} n n 0 n; senão, pára

Algoritmo – 2º Passo Anexo do sufixo Enquanto houver sufixo Cria um novo estado n Cria uma nova transição (n 0,n,w[i]) n 0 n; cria transição (n 0,f,`#`); j (n 0,`#`)

Algoritmo – 3º Passo Minimização – Estados Similares p f; (n,c) j; /* loop */ Enquanto existir (n,c) F OUT (p) Se F OUT (n) = F OUT (n) { j } F IN (n); F IN (n) F IN (n) { j }; Remova n, F IN (n) e F OUT (n) p n; /* vá para loop */ caso não exista Estado Similar a n o processo pára

Algoritmo - Exemplo Inserindo stair

Algoritmo - Exemplo Inserindo stair

Experimentos Dicionário com palavras gregas Pentium 200 MHZ Construção Incremental de AFDAs Tamanho do AFDA = f(estados,transições)

Experimentos Estados x Palavras - O(n) Transições x Palavras

Experimentos Estados x Palavras – O(n) Transições x Palavras

Experimentos Tempo x Palavras – O(n 2 )

Conclusões Algoritmo de adição de palavras Adiciona palavras à AFDA não mínimos Não percorre todo o autômato O(n) (pior caso) com relação ao tamanho do AFDA O(n 2 ) construção incremental de um dicionário

Conclusões Criação de uma árvore é indesejável ou não realizável (memória) – estrutura intermediária Indicado para atualizar programas de correção gramatical – on-line

Perguntas?