A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos de varredura linear e busca de padrões

Apresentações semelhantes


Apresentação em tema: "Algoritmos de varredura linear e busca de padrões"— Transcrição da apresentação:

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?


Carregar ppt "Algoritmos de varredura linear e busca de padrões"

Apresentações semelhantes


Anúncios Google