A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Optimal Insertion in deterministic DAWGs David Menoti UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004."— Transcrição da apresentação:

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?


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

Apresentações semelhantes


Anúncios Google