1 / 17

Algoritmos de varredura linear e busca de padrões

Algoritmos de varredura linear e busca de padrões. Davi Duarte, Luiz Afonso { ddp, lacbs }@cin.ufpe.br. 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.

dandre
Download Presentation

Algoritmos de varredura linear e busca de padrões

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmos de varredura linear e busca de padrões Davi Duarte, Luiz Afonso {ddp, lacbs}@cin.ufpe.br

  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

  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 balanceadaspara 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 pontosextremos dos segmentos • Usar árvore binária balanceadapara 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 arestasdos retângulos • Utilizar árvore binária balanceadapara 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 Grahamscan 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 ovizinho 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 C A CA CE CO • Trie • CERCARROCORAL • "A", • "CARRO", • "CERCA", • “COR”, • "CORAL“ CAR CER COR CORA CARR CERC CARRO CERCA CORAL

  15. ϵ Busca de padrões C A CA CE CO • Aho-Corasick • CERCARROCORAL • "A", • "CARRO", • "CERCA", • “COR”, • "CORAL“ CAR CER COR CORA CARR CERC CARRO CERCA CORAL

  16. Busca de padrões • Árvove de sufixos • Hashing • Texto • Polinômio limitado • Número

  17. Dúvidas?

More Related