Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGabrielle Torres Alterado mais de 10 anos atrás
1
Algoritmos de varredura linear e busca de padrões
Davi Duarte, Luiz Afonso {ddp,
2
A importância do estudo de algoritmos
O que é algoritmo? Porque aprender algoritmos? Capacidade de generalização Aplicação a problemas reais Estimativa de tempo de execução
3
Análise de tempo de execução
Tempo aproximado para algoritmos com N=100 Complexidade Tempo esperado O(log(N)) 10-7 segundos O(N) 10-6 segundos O(N.log2(N)) 10-5 segundos O(N2 ) 10-4 segundos O(N6) 3 minutos O(2N) 1014 anos O(N!) 10142 anos
4
Varredura Linear Utilizado para resolver problemas geométricos
Linha conceitual “varre” o plano verticalmente Pode ser utilizada em conjunto com outros algoritmos Particularmente útil em problemas envolvendo distância Euclidiana e de Manhattan
5
Distância de Manhattan
A distância de Manhattan entre os pontos (x1,y1) e (x2,y2) é dada por |x1 – x2| + |y1 – y2| É chamada distância de Manhattan por conta das ruas em forma de grade da cidade de Manhattan Formalmente conhecida como métrica L1
6
Par de pontos mais próximos
Dado um conjunto de pontos encontrar o par de pontos mais próximo Ordenar os pontos pelo eixo X e varrer com uma linha vertical Utilizar árvores binárias balanceadas para guardar os pontos mais próximos Complexidade O(N Log N)
7
Interseção de segmentos de reta
Encontrar interseção de segmentos de retas verticais e horizontais Utilizar linha de varredura para percorrer o plano horizontalmente Percorrer passando pelos pontos extremos dos segmentos Usar árvore binária balanceada para armazenar retas intersectan- tes em um ponto de varredura Complexidade O(N log N)
8
Área de união de retângulos
Calcular a área da união de vários retângulos Utilizar linha de varredura para percorrer o plano horizontalmente Percorrer passando pelas arestas dos retângulos Utilizar árvore binária balanceada para armazenar número de retân- gulos em um ponto de varredura Complexidade O(N log N)
9
Fecho convexo de pontos 2D
Encontrar menor polígono que cerca um conjunto de pontos no plano 2D Ordenar os pontos pelo eixo X Utilizar duas linhas de varredura percorrendo verticalmente o plano Gerar fecho superior e inferior Procedimento similar ao Graham scan para tratamento de triângulos Complexidade O(N log N)
10
Árvore de peso mínimo no espaço de Manhattan
Encontrar a árvore geradora mínima em um conjunto de pontos considerando a distância de Manhattan Dividir o plano em octantes Ordenar os pontos pela soma das coordenadas Dividir o octante em metades e usar abordagem dividir para conquistar Problema reduzido a encontrar o vizinho mais próximo em um octante Complexidade O (N log N)
11
Busca de padrões DNA Banco de Dados Indexação
12
Busca de padrões Algoritmo ingênuo O(N*M) ABABABABAABABAA ABABAA ?
13
Busca de padrões Knuth-Morris-Pratt O(M+N) ABABABABAABABAA ABABAA ?
14
Busca de padrões Trie CERCARROCORAL "A", "CARRO", "CERCA", “COR”,
ϵ A C C A C E C O CA R CAR R CARR O CE R CER C CERC A CO R COR A CORA L
15
Busca de padrões Aho-Corasick CERCARROCORAL "A", "CARRO", "CERCA",
ϵ A C CA CE CO CAR CARR CARRO CER CERC CERCA COR CORA CORAL
16
Busca de padrões Árvove de sufixos Hashing Texto Polinômio limitado
Número
17
Dúvidas?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.