Optimal Insertion in deterministic DAWGs David Menoti [email protected] UFMG - ICEx – DCC Teoria...

31
Optimal Insertion in deterministic DAWGs David Menoti [email protected] UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004

Transcript of Optimal Insertion in deterministic DAWGs David Menoti [email protected] UFMG - ICEx – DCC Teoria...

Page 1: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Optimal Insertion in deterministic DAWGs

David [email protected]

UFMG - ICEx – DCC Teoria de Linguagens

Belo HorizonteDezembro de 2004

Page 2: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br 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

Page 3: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 4: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Introdução – Problema

DWAGs – Directed acyclic word graph Nodes Links

AFDA – Autômato Finito Determinista e Acíclico Estados Transições

Page 5: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 6: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Introdução – Problema

Palavras dance darts start smart

Page 7: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 8: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 9: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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), ?

Page 10: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

s

Page 11: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 12: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 13: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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”

Page 14: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Definições

FIN(n) = {(n’,s): (n’,n,s) L} FOUT(n) = {(n’,s): (n,n’,s) L} Estado Receptor |FIN(n)| > 1

Page 15: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 16: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 17: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Definições Transição Nula

Page 18: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 19: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 20: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 21: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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,`#`)

Page 22: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 23: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Algoritmo - Exemplo

Inserindo stair

Page 24: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Algoritmo - Exemplo

Inserindo stair

Page 25: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Experimentos

Dicionário com 230000 palavras gregas

Pentium 200 MHZ Construção Incremental de AFDAs Tamanho do AFDA =

f(estados,transições)

Page 26: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Experimentos

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

Page 27: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Experimentos

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

Page 28: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Experimentos

Tempo x Palavras – O(n2)

Page 29: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 30: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

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

Page 31: Optimal Insertion in deterministic DAWGs David Menoti menoti@dcc.ufmg.br UFMG - ICEx – DCC Teoria de Linguagens Belo Horizonte Dezembro de 2004.

Perguntas?