Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouTomás Rodrigo Alterado mais de 10 anos atrás
1
Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004
2
Sumário Introdução Problema Motivação Trabalhos Correlatos Definições Algoritmo Experimentos Conclusões
3
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
4
Introdução – Problema DWAGs – Directed acyclic word graph Nodes Links AFDA – Autômato Finito Determinista e Acíclico Estados Transições
5
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
6
Introdução – Problema Palavras dance darts start smart
7
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
8
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
9
Introdução - Trabalhos Minimização de Autômatos Moore 1956 - O(n 2 ) Hopcroft 1974 - O(n log n) Revuz 1992 – O(n), Bucket Sort Sgarbas 1995 – O(n 2 ), ?
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
Definições Transição Nula
18
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
19
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
20
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
21
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,`#`)
22
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
23
Algoritmo - Exemplo Inserindo stair
24
Algoritmo - Exemplo Inserindo stair
25
Experimentos Dicionário com 230000 palavras gregas Pentium 200 MHZ Construção Incremental de AFDAs Tamanho do AFDA = f(estados,transições)
26
Experimentos Estados x Palavras - O(n) Transições x Palavras
27
Experimentos Estados x Palavras – O(n) Transições x Palavras
28
Experimentos Tempo x Palavras – O(n 2 )
29
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
30
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
31
Perguntas?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.