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

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Projeto de Programação PD-I
Algoritmo e Programação
Fluxo em Redes Prof. Ricardo R. Santos.
Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares.
Métodos para representação de estruturas hierárquicas
Especificação de Consultas
Linguagens Formais e Autômatos
Bulk Loading – Algoritmo AULA 12 - COMPLEMENTO Profa. Sandra de Amo GBC053 – BCC Sandra de Amo.
Programação Linear Método Simplex
Teorema da Recursão Teoria da Computação
Algoritmos para Operações de Conjuntos AULA 19 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
BCC101 – Matemática Discreta
WAR STORY Stripping Triangulations Luciana Oliveira e Silva
00(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Divisão e Conquista Análise de algoritmos UNISUL Ciência da Computação
Cifra de Vigenère Técnicas de Data Mining para cripto-análise
SISTEMAS LINEARES ( AULA 3 ).
Informática Teórica Engenharia da Computação
Intr. à Biologia Computacional ALINHAMENTO DE SEQÜÊNCIAS.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Sistema de equações lineares
Bioinformática (Alinhamento de Seqüências)
Mergesort Katia Guimarães.
AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008.
Algoritmos de Busca Local
Tópicos Avançados em Inteligência Artificial
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
Equações diferenciais ordinárias de segunda ordem
Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo
Construção e Análise de Algoritmos
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Input » Processamento » Output »
Algoritmo de PRIM para MST
Busca Combinatorial e Métodos de Heurística
Análise de Complexidade do Algoritmo de Dijkstra
Inteligência Artificial
INE Fundamentos de Matemática Discreta para a Computação
Algoritmos para Operações Binárias entre blocos SQL AULA 19 – Parte I Profa. Sandra de Amo GBC053 – BCC.
Transformada de Hough Processamento global para a detecção de linhas retas numa imagem Nenhum conhecimento é necessário a respeito da posição das linhas.
CAMINHOS MAIS CURTOS EM GRAFOS
REVISÃO POTENCIAÇÃO E RADICIAÇÃO
Como analisar um algoritmo
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Resolução de Problemas de Busca
Programação Dinâmica.
Problemas NP-completos e Programação Dinâmica
Folha de Cálculo Professores: Pedro Lopes Ano Lectivo 2010/2011.
Algoritmos FPT para o Problema da k-Cobertura por Vértices
Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS
Problema MST Método Genérico Guloso usando Estratégia do Corte
Números Primos – algoritmos e aplicações
Operações Aritméticas AULA 3 Análise de Algoritmos Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.
Geometria Computacional Fecho Convexo
A maior parte dos programas de computador gera uma saída resultante de um processamento que é executado sobre dados que ele recebe como entrada. Em geral.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Prof. Guilherme Jahnecke Weymar AULA EQUAÇÕES DIFERENCIAIS ORDINÁRIAS
Computação Evolutiva Nome dado ao estudo de algoritmos cuja inspiração é o processo de evolução natural das espécies. Origem: trabalho de um pesquisador.
Programação Dinâmica Profa. Sandra de Amo Bacharelado em Ciência da Computação – UFU Disciplina de Análise de Algoritmos.
Alinhamento Global de Seqüências Katia Guimarães.
FEATURE SELECTION. Introdução  Estudo de metodologias relacionadas a seleção de atributos  Maldição da dimensionalidade  O número de atributos do desenvolvedor.
MÉTODOS QUANTITATIVOS APLICADOS ÀS CIÊNCIAS CONTÁBEIS
CENTRO DE GENOMICA E FITOMELHORAMENTO Introdução à Bioinformática
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

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

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 Custo = 3 = match !! = inserção (I) = deleção (D) = substituição (S) = 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

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 !

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

Aplicações Biologia Computacional: –Como alinhar duas sequências de nucleotídeos ? Resultado do alinhamento

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’1x’2x’3x’k y’1y’2y’3y’k Custo(x’,y’) = Σ i=1 k 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

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 ?

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

EXPONENTIAL POLYNOMIAL possibilidades de alinhamento 1)

EXPONENTIAL POLYNOMIA L possibilidades de alinhamento 1) Custo = diff(x[11], y[10] ) + + CUSTO de alinhar prefixos (EXPONENTIA, POLYNOMIA) = = 0 + E(10, 9)

EXPONENTIAL POLYNOMIAL possibilidades de alinhamento 2) -

EXPONENTIAL POLYNOMIAL possibilidades de alinhamento 2) - Custo = 1 + CUSTO de alinhar prefixos (EXPONENTIA, POLYNOMIAL) = = 1 + E(10, 10)

EXPONENTIAL POLYNOMIAL possibilidades de alinhamento 3) -

EXPONENTIAL POLYNOMIA possibilidades de alinhamento 3) - Custo = 1 + CUSTO de alinhar prefixos (EXPONENTIAL, POLYNOMIA) = = 1 + E(11, 9) L

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) }

Em que ordem resolver os subproblemas ?

Soluções dos subproblemas

Algoritmo e sua complexidade Complexidade = O(m) + O(n) + O(m.n) = O(m.n)

Um alinhamento com custo mínimo = 6 EXPONENTIAL POLYNOMIAL - -- Como obter todos os alinhamentos com custo minimo só olhando para o quadro dos custos ?