Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

20
Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU

Transcript of Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Page 1: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Distância Mínima de Edição

Profa. Sandra de Amo

Bacharelado em Ciência da Computação - UFU

Page 2: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Problema de otimização a resolver

Dadas duas palavras w1 e w2 determinar o quão próximas elas são.

Que medida utilizar para determinar a distância entre duas palavras ?

Medida natural e intuitiva: o custo de alinhar as palavras, isto é, o custo de colocar uma sobre a outra, combinando letra a letra.

Exemplo: w1 = SNOWY w2 = SUNNY • Qual o custo de transformar w1 em w2 ?• Existem diversas maneiras de fazer isto, cada uma tendo um custo.• Precisamos encontrar a maneira com custo mínimo

Page 3: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Exemplos de transformações e seus respectivos custos

S _ N O W Y

S U N N _ Y

= match !!

= inserção (I)

= deleção (D)

= substituição (S)

= 1

= 1

= 1

Custo = 3

= match !!

= inserção (I)

= deleção (D)

= substituição (S)

= 2

= 2

= 1

_ S N O W _ Y

S U N _ _ N Y

_ S N O W _ Y

S U N _ _ N Y

Exemplos de transformações e seus respectivos custos

_ S N O W _ Y

S U N _ _ N Y

Custo = 5

Page 4: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Distância de Edição

• Dist_edit (w1,w2) = menor custo de se transformar w1 em w2

• Método “força bruta” para determinar Dist_edit – Todo problema de otimização tem solução do tipo “força bruta”

• Considera-se todas as possiveis maneiras de se transformar w1 em w2

• Calcula-se o custo de cada maneira • Considera-se o menor custo

• Solução eficiente: usando Programação Dinâmica !

Page 5: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Aplicações • Como corrigir automaticamente uma palavra w mal escrita ?

– Verifica-se em um dicionário se a palavra w existe.– Caso não exista, constrói-se uma lista de palavras do dicionário que

estão próximas (no dicionário) = [ w1, w2, ... , wn]– Calcula-se para cada wi, dist_edit(w, wi) – Sugere-se o wi com menor dist_edit(w,wi)

• Exemplo: w = graf Palavras próximas: grafo, girafa, garra, grafite

Qual a mais próxima ?

• Como determinar se um determinado texto w1 é plágio de um outro texto w2 ?– Se dist_edit(w1,w2) < K, onde K é dado

Page 6: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Aplicações

• Biologia Computacional: – Como alinhar duas sequências de nucleotídeos ?

Resultado do alinhamento

Page 7: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Problema de otimização a resolver

Problema P:

Input: dois strings x = (x1,...,xn), y = (y1,...,ym)

Output: x’ = (x’1,...,x’k), y’ = (y’1,...,y’k), k ≥ m, tal que custo(x’,y’) é minimo (= dist_edit(x,y) )

x’1 x’2 x’3 x’k

y’1 y’2 y’3 y’k

Custo(x’,y’) = Σi=1k custo(x’i,y’i)

Custo(xi,yi) = 1 se x’i =‘-’ e y’i = yp (inserção de caracter yp) ou x’i = xp e y’i = ‘-’ (remoção de carater xp) ou x’i y’i e ambos ‘-’Custo(xi,yi) = 0 se x’i = y’i

Page 8: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Como projetar o algoritmo de PD para resolver o problema P ?

Problema P • E(n,m) = custo mínimo do alinhamento

• Subproblemas E(i,j), com i ≤ n, j ≤ m

• Como ordenar os subproblemas ?

• Como resolver completamente cada subproblema, em ordem crescente, executando uma função que envolve os resultados dos subproblemas já resolvidos anteriormente ?

Page 9: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

E X P O N E N T I A L

0 1 2 3 4 5 6 7 8 9 10 11

P O L Y N O M I A L

0 1 2 3 4 5 6 7 8 9 10

E(11,10) = custo minimo de um alinhamento

Page 10: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

E X P O N E N T I A L

0 1 2 3 4 5 6 7 8 9 10 11

P O L Y N O M I A L

0 1 2 3 4 5 6 7 8 9 10

3 possibilidades de alinhamento

1)

Page 11: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

E X P O N E N T I A L

0 1 2 3 4 5 6 7 8 9 10 11

P O L Y N O M I A L

0 1 2 3 4 5 6 7 8 9 10

3 possibilidades de alinhamento

1)

Custo = diff(x[11], y[10] ) +

+ CUSTO de alinhar prefixos (EXPONENTIA, POLYNOMIA) =

= 0 + E(10, 9)

Page 12: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

E X P O N E N T I A L

0 1 2 3 4 5 6 7 8 9 10 11

P O L Y N O M I A L

0 1 2 3 4 5 6 7 8 9 10

3 possibilidades de alinhamento

2)

-

Page 13: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

E X P O N E N T I A L

0 1 2 3 4 5 6 7 8 9 10 11

P O L Y N O M I A L

0 1 2 3 4 5 6 7 8 9 10

3 possibilidades de alinhamento

2)

-

Custo = 1 + CUSTO de alinhar prefixos (EXPONENTIA, POLYNOMIAL) =

= 1 + E(10, 10)

Page 14: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

E X P O N E N T I A L

0 1 2 3 4 5 6 7 8 9 10 11

P O L Y N O M I A L

0 1 2 3 4 5 6 7 8 9 10

3 possibilidades de alinhamento

3) -

Page 15: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

E X P O N E N T I A L

0 1 2 3 4 5 6 7 8 9 10 11

P O L Y N O M I A

0 1 2 3 4 5 6 7 8 9 10

3 possibilidades de alinhamento

3) -

Custo = 1 + CUSTO de alinhar prefixos (EXPONENTIAL, POLYNOMIA) =

= 1 + E(11, 9)

L

Page 16: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Fórmula

E(m,n) = min {diff(x[m],y[n]) + E(m-1,n-1), 1 + E(m,n-1), 1+ E(m-1,n) }

primeiro alinh. seg. alinh. terc. alinh.

Em geral:

E(i,j) = min { diff(x[i],y[j]) + E(i-1,i-1), 1 + E(i,j-1), 1+ E(i-1,j) }

Page 17: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Em que ordem resolver os subproblemas ?

Page 18: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Soluções dos subproblemas

Page 19: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Algoritmo e sua complexidade

Complexidade = O(m) + O(n) + O(m.n) = O(m.n)

Page 20: Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.

Um alinhamento com custo mínimo = 6

E X P O N E N T I A L

P O L Y N O M I A L

-

- -

Como obter todos os alinhamentos com custo minimo só olhando para o quadro dos custos ?