LCS em CGM

Programação Dinâmica aplicada

a uma arquitetura distribuída

jun/2016

Gabriel Fontenelle Senno Silva
Vinicius de Carvalho | [TGL] Dogg

Vinicius de Carvalho

• tgl_dogg@outlook.com

• github.com/tgl-dogg

• facebook.com/TGL_Dogg

Gabriel Fontenelle

• colecionador.gabriel@gmail.com

• github.com/OdnaropX

Modelo CGM

Coarse-Grained Multicomputer

  • Rodadas de computação local
     
  • Rodadas de comunicação global

Rodadas de computação geralmente envolvem o melhor algoritmo sequencial para resolver o problema!

Programação
Dinâmica

Recursão com Tabela

  • Princípio da Otimalidade
    (Idéia da Recursão)
     
  • Sobreposição de Subproblemas
    (Reutilização das soluções menores)
     
  • PO sem SS = divisão e conquista

Salvamos os cálculos em uma tabela pra evitar recálculo!

Subsequência Comum Mais Longa (LCS)

Subsequência

  • Subsequência != Prefixo
    A ordem não importa!
     
  • LCS (ABCD, AB)
    AB
     
  • LCS(CBAD, ACD)
    ACD
     
  • LCS(A..Z, INTERLAGOS)
    INTERLAGOS
     

LCS em Programação Dinâmica

  • LCS(A..Z, IN)
    IN
     
  • LCS(A..Z, INT)
    INT
     
  • LCS(A..Z, INTE)
    INTE
     
  • LCS(A..Z, INTER)
    INTER

Programação
Dinâmica em CGM

Primeiro Super-Passo

  • Computação do algoritmo sequencial
     
  • Comunicação em onda

P1

P1

P0

P0

P2

P2

P3

P3

Segundo Super-Passo

  • Comparação entre os máximos de cada subsequência
     
  • Broadcast

P1

P0

P2

P3

Terceiro Super-Passo (Opcional)

  • Backtracking
    Recupera qual é a maior subsequência

P1

P0

P2

P3

Conclusões

Complexidade

  • Tempo: O(n²/P)
    O(P x (n/P)²) + O(n/P) + O(n/P)
     
  • Comunicação: O(P)
    O(P) + O(1) + O(1)

Fontes:

  • "Introduction to Algorithms"
    T. Cormen, C. Leiserson, R. Rivest e C. Stein. Livro.
     
  • "Algorithms"
    S. Dasgupta, C. Papadimitriou, U. Varzirani. Livro.
     
  • "Algoritmos BSP/CGM para Programação Dinâmica"
    Leonardo V. R. Loureiro. Dissertação de Mestrado.

Fontes:

  • "A Coarse-Grained Multicomputer Algorithm for the Longest Common Subsequence Problem"
    T. Garcia, J. Myoupo, D. Semé. Artigo.
     
  • "Sequential and Parallel Algorithms for the All-Substrings Longest Common Subsequence Problem"
    C. E. R. Alves, E. N. Cáceres, S. W. Song . Artigo.
     
  • "A BSP/CGM Algorithm for the All-Substrings Longest Common Subsequence Problem"
    C. E. R. Alves, E. N. Cáceres, S. W. Song . Artigo.

LCS em CGM

By Vinicius de Carvalho | [TGL] Dogg

LCS em CGM

Apresentação para a disciplina de Arquiteturas Paralelas e Distribuidas do curso de Bacharelado em Ciência da Computação do Centro Universitário SENAC - Campus Santo Amaro

  • 422