1 / 31

Optimal Insertion in deterministic DAWGs

UFMG - ICEx – DCC Teoria de Linguagens. Optimal Insertion in deterministic DAWGs. David Menoti menoti@dcc.ufmg.br. Belo Horizonte Dezembro de 2004. Sumário. Introdução Problema Motivação Trabalhos Correlatos Definições Algoritmo Experimentos Conclusões. Introdução – Problema.

gracie
Download Presentation

Optimal Insertion in deterministic DAWGs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UFMG - ICEx – DCC Teoria de Linguagens Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br 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(n2) • Hopcroft 1974 - O(n log n) • Revuz 1992 – O(n), Bucket Sort • Sgarbas 1995 – O(n2), ?

  10. s 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 n1 n2

  11. Definições • Uma sucessão de n0 até nk, succ(n0,nk) [(n0,n1,s1),(n1,n2,s2),...,(nk-2,nk-1,sk-1),(nk-1,nk,sk)] • nk é sucessor de n0 • n0 é antecessor de nk • Se |succ(n0,nk)| = 1 • nk é sucessor imediato de n0 • n0 é antecessor imediato de nk

  12. Definições • Uma sucessão G=succ(n0,nk) [(n0,n1,s1),(n1,n2,s2),...,(nk-2,nk-1,sk-1),(nk-1,nk,sk)] • rotulo(G) [s1,s2,...,,sk-1,sk] • H=SUCC(n0,nk), 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 • FIN(n) = {(n’,s): (n’,n,s) L} • FOUT(n) = {(n’,s): (n,n’,s) L} • Estado Receptor |FIN(n)| > 1

  15. Definições • Estados Equivalentes (n1 n2) ROTULO(SUCC(n1,f)) = ROTULO(SUCC(n2,f)) • Estados Similares (n1 n2) FOUT(n1) = FOUT(n2) 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), |wi| • O(n2) 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])  FOUT(n0)? • então, se é receptor (|FIN(n)| > 1)? • Clona estado (n’) • FIN(n)  FIN(n) – {transição} • FIN(n’)  {transição} • n  n’ • n0 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 (n0,n,w[i]) • n0 n; • cria transição (n0,f,`#`); • j  (n0,`#`)

  22. Algoritmo – 3º Passo • Minimização – Estados Similares • p  f; • (n’,c)  j; /* loop */ • Enquanto existir (n,c)  FOUT(p) • Se FOUT(n) = FOUT(n’) • { j }  FIN(n’); • FIN(n)  FIN(n)  { j }; • Remova n’, FIN(n’) e FOUT(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(n2)

  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(n2) 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?

More Related