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 Davi Duarte, Luiz Afonso {ddp,

Apresentações semelhantes


Apresentação em tema: "Algoritmos de varredura linear e busca de padrões Davi Duarte, Luiz Afonso {ddp,"— 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 ComplexidadeTempo esperado O(log(N))10 -7 segundos O(N)10 -6 segundos O(N.log 2 (N))10 -5 segundos O(N 2 )10 -4 segundos O(N 6 )3 minutos O(2 N )10 14 anos O(N!) anos Tempo aproximado para algoritmos com N=100

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 ABABABABAABABAA ABABAA ? _ABABAA ? __ABABAA ? ___ABABAA ? ____ABABAA ! _____ABABAA ? ______ABABAA ? _______ABABAA ? ________ABABAA ? _________ABABAA ! – O(N*M)

13 Busca de padrões – Knuth-Morris-Pratt ABABABABAABABAA ABABAA ? ____ABABAA ! _________ABABAA ! – O(M+N)

14 Busca de padrões – Trie CERCARROCORAL – "A", – "CARRO", – "CERCA", – COR, – "CORAL ϵ ϵ A A C C CACA CACA CECE CECE COCO COCO 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", – COR, – "CORAL ϵ ϵ A A C 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 Davi Duarte, Luiz Afonso {ddp,"

Apresentações semelhantes


Anúncios Google