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

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

D’Gledson Pinto Rabelo Suffix Array. Suffix Array – O que é ? É uma estrutura de dado eficiente para strings. Possui funcionalidades similares à Suffix.

Apresentações semelhantes


Apresentação em tema: "D’Gledson Pinto Rabelo Suffix Array. Suffix Array – O que é ? É uma estrutura de dado eficiente para strings. Possui funcionalidades similares à Suffix."— Transcrição da apresentação:

1 D’Gledson Pinto Rabelo Suffix Array

2 Suffix Array – O que é ? É uma estrutura de dado eficiente para strings. Possui funcionalidades similares à Suffix Tree mas é muito mais simples de construir e utilizar especialmente em um ambiente de programação competitiva. O sufixo i de uma string é um caso especial da substring que vai do caractere i até o final da string. Exemplo: O segundo sufixo de ‘PROGRAMA’ é ‘OGRAMA’ e o quarto é ‘RAMA’

3 Suffix Array – O que é ?

4 Suffix Array - Implementação

5 Suffix Array – strcmp e C++ sort – O(n²logn). N <= 1000. Suffix Array utilizando ranking pairs e C++ sort – O(nlog²n). N <= 10.000. Suffix Array utilizando ranking pairs e Radix sort – O(nlogn). N <= 100.000.

6 Suffix Array - Aplicações String matching O(m log n) Longest Common Prefix O(n) Longest Repeated Substring O(n) Longest Common Substring O(n)

7 Longest Common Prefix – Implementação Esta implementação é lenta, podendo aumentar o valor de L até O(n²) vezes. Uma idéia melhor é utilizando Permuted Longest Common Prefix O teorema de PLCP diz que o número total de operações de adição e subtração é no máximo O(n).

8 Permutated Longest Prefix - Implementação

9

10 Longest Repeated Substring Se nós tivermos compilado o Suffix Array e o LCP, podemos determinar o tamanho da LRS em O(n). O tamanho da LRS é apenas o maior número no vetor LCP.

11 Longest Common Substring Sem perda de generalidade, vamos considerar o caso com apenas duas strings. Primeiramente nós temos de concatenar ambas as strings utilizando um delimitador que não aparece em nenhuma das strings (neste caso foi utilizado um ponto). Depois computamos o Suffix Array e LCP da nova string. Strings do exemplo : T1 : GATAGACA T2 : CATA.

12 Longest Common Substring

13 Exercício : UvA DNA Sequencing

14 Solução

15


Carregar ppt "D’Gledson Pinto Rabelo Suffix Array. Suffix Array – O que é ? É uma estrutura de dado eficiente para strings. Possui funcionalidades similares à Suffix."

Apresentações semelhantes


Anúncios Google