SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Problema da Mochila
Bianca de Almeida Dantas
Marcio Osshiro
Objetivos
• Apresentar o problema da mochila e suas
  variantes.
• Mostrar alternativas de solução para a variante
  0-1.
• Mostrar o funcionamento de um código MPI
  para o problema.
• Abordagem utilizando CUDA.
Aplicação

•   Logística
•   Criptografia
•   Engenharia Naval
•   Gerenciamento de Projetos
•   Finanças
•   Entre outras
• Suponha que um gerente de uma empresa possua no
  seu orçamento c reais para investir em projetos
  dentro do seu departamento. Após uma pesquisa
  realizada por sua equipe, o gerente recebe um
  relatório com n diferentes projetos que trariam
  reduções de custo ou aumento de produtividade ao
  departamento como um todo. Associado a cada
  projeto j existe um retorno de pj reais e um custo
  para sua realização de cj reais. O gerente pode
  encontrar uma distribuição ótima de seu orçamento
  resolvendo um problema da mochila binária
Variações

• Problema da Mochila Limitada

• Problema da Mochila Ilimitada (UKP)

• Problema da Soma de Subconjuntos

• Problema da Mochila 0-1
• Problema da Mochila Limitada
Dados um conjunto N de n objetos com valores positivos pj, pesos wj, cada um tendo
bj cópias, e uma mochila de capacidade inteira e positiva c, determine um vetor (x1,
x2, ..., xn), 0 ≤ xj ≤ bj ∈N, que satisfaça as condições:
• Problema da Mochila Ilimitada
   Dados um conjunto N de n objetos com valores positivos pj, pesos wj, e uma mochila
   de capacidade inteira e positiva c, determine um vetor (x1, x2, ..., xn), xj ∈N, que
   satisfaça as condições:




Este problema é uma generalização do Problema da Mochila Limitada no qual bj = ∞, ∀j ∈ N
• Problema da Soma de Sub-conjuntos
Dados um conjunto N de n objetos com pesos wj , e uma mochila de capacidade
inteira e positiva c, determine um vetor (x1 ,x2 , ..., xn),xj ∈{0, 1}, que satisfaça as
condições:




Este problema é um caso particular do 0-1KP em que wj = pj, ∀j ∈ N.
• Problema da Mochila 0-1:
 ▫ Dados um conjunto N de n objetos com valores
   positivos pj, pesos wj e uma mochila de capacidade
   inteira e positiva c, determine um vetor (x1, x2, ..., xn
   que encontre:
                             𝑛

                      𝑚𝑎𝑥         𝑝 𝑗 𝑥𝑗
                            𝑗=1
                                     𝑛
 Respeitando as condições            𝑗=1   𝑤𝑗 𝑥 𝑗 ≤ 𝑐
 e 𝑥 𝑗 ∈ 0, 1 , 𝑗 = 1, … , 𝑛
Pesquisas em busca de soluções
                          Problema
                             da
                           Mochila




           Aproximação                    Heurística
Estudos




                         Soluções
                          Exatas




               Branch
                and         Programação   Algoritmos
               Bound         Dinâmica     Genéticos
Problema da Mochila
• Dados:
 ▫ uma mochila de compartimento único e com uma
   capacidade máxima.
 ▫ conjunto de itens, cada qual com um peso e um
   valor associados.
• Quais itens podem ser carregados na mochila
  sem exceder sua capacidade e maximizando o
  valor a ser carregado?
• Dois tipos:
  ▫ Mochila 0-1: itens indivisíveis. Resolvido com
    programação dinâmica.
  ▫ Mochila fracionária: itens podem ser divididos.
    Resolvido com uma estratégia gulosa.
Programação Dinâmica
• Utilizada quando o problema pode ser definido
  recursivamente em termos de soluções para
  subproblemas menores (subestrutura ótima).
• Deve-se encontrar e armazenar soluções para os
  subproblemas e, então, utilizá-las na solução de
  problemas maiores.
• Mais eficiente do que soluções que utilizam
  estratégias de força-bruta.
• Ideias básicas:
  ▫ Subestrutura ótima: a solução ótima para o
    problema é construída a partir de soluções ótimas
    para os subproblemas.
  ▫ Subproblemas         “overlapping”:        poucos
    subproblemas com muitas instâncias recorrentes
    de cada.
  ▫ Construção de uma tabela com as “subsoluções”
    usada para solucionar os problemas maiores.
Problema da Mochila 0-1
• Também conhecido como problema da mochila
  booleana.
• Dado um valor inteiro W e os conjuntos:
  ▫ S = {1, 2, 3, ..., n}
  ▫ W = {w1, w2, w3, ..., wn}
  ▫ V = {v1, v2, v3, ..., vn}
• onde W é a capacidade da mochila, S é um conjunto
  de objetos, W é o conjunto dos pesos de tais objetos e
  V é o conjunto de seus valores. Devemos encontrar
  quais os itens de S devem ser colocados na mochila
  visando maximizar o valor carregado, sem exceder a
  capacidade da mochila.
• Problema NP-completo.
• Pode ser resolvido em O(nW) => solução
  pseudo-polinomial.
• Alternativas para solução exata:
 ▫ Força-bruta.
 ▫ Programação        dinâmica      (DP):     melhor
   comportamento quando os parâmetros são
   correlacionados.
 ▫ Branch-and-bound (B&B): mais eficiente quando
   os valores de w e v são indepentemente gerados.
Algoritmo Força-Bruta
• Forma direta e ingênua para resolver o
  problema.
• Todas as combinações possíveis de itens são
  geradas. A combinação com o maior valor e que
  caiba na mochila será a solução ótima.
• Com n itens => 2n possíveis combinações.
• Complexidade: 0(2n)
                         Algoritmo exponencial.
                             Muito caro!!!!
Tentando definir um subproblema
• Podemos considerar um subproblema definido
  como:
 ▫ Sk = conjunto de itens numerados de 1 a k, onde
   1<=k<=n.
• É possível encontrar a solução final Sn em
  termos dos subproblemas Sk?

                         A resposta é não....
Objeto    1        2       3            4             5

 Peso     2        3       4            5             9
Valor     3        4        5           8            10


  S4 = {1, 2, 3, 4} => Peso total: 14 e Valor: 20
  S5 = {1, 3, 4, 5} => Peso total: 20 e Valor: 26

                            S4 não faz parte da solução
                                       de S5
Fórmula Recursiva com Subproblemas
• Devemos considerar outro parâmetro: o peso de
  cada conjunto de subitens.
• O subproblema consiste em computar f(r, c):

           {
 ▫ f(r, c) =   f(r-1, c), se wr > W
               f(r, c) = max{f(r-1, c), f(r-1, c-wr) + vr}
• A melhor solução Sr com peso c é:
 ▫ a melhor solução Sr-1 com peso c, ou
 ▫ a melhor solução Sr-1 com peso c-wr mais o valor
   do item r
Algoritmo de Gilmore e Gomory
• Primeiro algoritmo a usar DP para resolver o
  problema da mochila 0-1.
• Seja f(r, c) a solução ótima considerando o
  conjunto de objetos [1, r] e o peso c., com
  1<=r<=n e 0<=c<=W. A solução ótima para o
  problema será f(n, W).
• A relação de recorrência para solução:
 ▫ f(r, c) = max{f(r-1, c), f(r-1, c-wr) + vr}
• Tempo: O(nW)
para c de 0 ate W faca
   F[0,w] = 0
fimpara
para r de 1 ate n faca
   F[i,0] = 0
fimpara
para r de 1 ate n faca
   para c de 0 ate W faca
       se (wi <= W) entao// item i can be part of the solution
           se (F[r-1,c-wi] + vr > F[r-1,c]) entao
               F[r,c] = F[r-1,c-wi] + vr
           senao
               F[r,c] = F[r-1,c]
           fimse
       else
           F[r,c] = F[r-1,c] // wi > W
        fimse
   fimpara
fimpara
Exemplo
• Sejam uma mochila de capacidade 10 e 5 objetos
  com seus pesos e valores representados na
  seguinte tabela:


 Objeto    1       2       3      4        5

  Peso     8       3       6      4        2
  Valor   100     60      70      15       15
0   1   2   3   4   5   6   7   8   9   10

 0

1(8)

2(3)

3(6)

4(4)

5(2)
0   1   2   3   4   5   6   7   8   9   10

 0     0   0   0   0   0   0   0   0   0   0   0


1(8)   0


2(3)   0


3(6)   0


4(4)   0


5(2)   0
0   1   2   3   4   5   6   7   8   9   10

 0     0   0   0   0   0   0   0   0   0   0   0


1(8)   0   0


2(3)   0


3(6)   0


4(4)   0


5(2)   0
0   1   2   3   4   5   6   7   8   9   10

 0     0   0   0   0   0   0   0   0   0   0   0


1(8)   0   0   0   0   0   0   0   0


2(3)   0


3(6)   0


4(4)   0


5(2)   0
0   1   2   3   4   5   6   7   8     9   10

 0     0   0   0   0   0   0   0   0   0     0   0


1(8)   0   0   0   0   0   0   0   0   100


2(3)   0


3(6)   0


4(4)   0


5(2)   0
0   1   2   3   4   5   6   7   8     9     10

 0     0   0   0   0   0   0   0   0   0     0     0


1(8)   0   0   0   0   0   0   0   0   100   100   100


2(3)   0


3(6)   0


4(4)   0


5(2)   0
0   1   2   3    4   5   6   7   8     9     10

 0     0   0   0   0    0   0   0   0   0     0     0


1(8)   0   0   0   0    0   0   0   0   100   100   100


2(3)   0   0   0   60


3(6)   0


4(4)   0


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60


3(6)   0


4(4)   0


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0


4(4)   0


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60


4(4)   0


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60   70   70


4(4)   0


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60   70   70   100


4(4)   0


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60   70   70   100   130   130


4(4)   0


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60   70   70   100   130   130


4(4)   0   0   0   60


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60   70   70   100   130   130


4(4)   0   0   0   60   60   60   70


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60   70   70   100   130   130


4(4)   0   0   0   60   60   60   70   75


5(2)   0
0   1   2   3    4    5    6    7    8     9     10

 0     0   0   0   0    0    0    0    0    0     0     0


1(8)   0   0   0   0    0    0    0    0    100   100   100


2(3)   0   0   0   60   60   60   60   60   100   100   100


3(6)   0   0   0   60   60   60   70   70   100   130   130


4(4)   0   0   0   60   60   60   70   75   100   130   130


5(2)   0
0   1   2    3    4    5    6    7    8     9     10

 0     0   0   0    0    0    0    0    0    0     0     0


1(8)   0   0   0    0    0    0    0    0    100   100   100


2(3)   0   0   0    60   60   60   60   60   100   100   100


3(6)   0   0   0    60   60   60   70   70   100   130   130


4(4)   0   0   0    60   60   60   70   75   100   130   130


5(2)   0   0   15
0   1   2    3    4    5    6    7    8     9     10

 0     0   0   0    0    0    0    0    0    0     0     0


1(8)   0   0   0    0    0    0    0    0    100   100   100


2(3)   0   0   0    60   60   60   60   60   100   100   100


3(6)   0   0   0    60   60   60   70   70   100   130   130


4(4)   0   0   0    60   60   60   70   75   100   130   130


5(2)   0   0   15   60   60
0   1   2    3    4    5    6    7    8     9     10

 0     0   0   0    0    0    0    0    0    0     0     0


1(8)   0   0   0    0    0    0    0    0    100   100   100


2(3)   0   0   0    60   60   60   60   60   100   100   100


3(6)   0   0   0    60   60   60   70   70   100   130   130


4(4)   0   0   0    60   60   60   70   75   100   130   130


5(2)   0   0   15   60   60   75   75
0   1   2    3    4    5    6    7    8     9     10

 0     0   0   0    0    0    0    0    0    0     0     0


1(8)   0   0   0    0    0    0    0    0    100   100   100


2(3)   0   0   0    60   60   60   60   60   100   100   100


3(6)   0   0   0    60   60   60   70   70   100   130   130


4(4)   0   0   0    60   60   60   70   75   100   130   130


5(2)   0   0   15   60   60   75   75   75
0   1   2    3    4    5    6    7    8     9     10

 0     0   0   0    0    0    0    0    0    0     0     0


1(8)   0   0   0    0    0    0    0    0    100   100   100


2(3)   0   0   0    60   60   60   60   60   100   100   100


3(6)   0   0   0    60   60   60   70   70   100   130   130


4(4)   0   0   0    60   60   60   70   75   100   130   130


5(2)   0   0   15   60   60   75   75   75   100
0   1   2    3    4    5    6    7    8     9     10

 0     0   0   0    0    0    0    0    0    0     0     0


1(8)   0   0   0    0    0    0    0    0    100   100   100


2(3)   0   0   0    60   60   60   60   60   100   100   100


3(6)   0   0   0    60   60   60   70   70   100   130   130


4(4)   0   0   0    60   60   60   70   75   100   130   130


5(2)   0   0   15   60   60   75   75   75   100   130
0   1   2    3    4    5    6    7    8     9     10

 0     0   0   0    0    0    0    0    0    0     0      0


1(8)   0   0   0    0    0    0    0    0    100   100   100


2(3)   0   0   0    60   60   60   60   60   100   100   100


3(6)   0   0   0    60   60   60   70   70   100   130   130


4(4)   0   0   0    60   60   60   70   75   100   130   130


5(2)   0   0   15   60   60   75   75   75   100   130   130
Algoritmo Wavefront
• Algoritmo paralelo utilizando programação
  dinâmica.
• Segue o modelo de programação BSP/CGM.
• Considerando n itens, capacidade W e p
  processadores:
 ▫ O(p) rodadas de comunicação
 ▫ O(W n/p) de computação
• O vetor de pesos é replicado para todos os
  processadores.
• O vetor v é dividido em p partes.
Figura 11 – Divisão da matriz em faixas para cada processador.
• Comunicação wavefront ou sistólica.
• Cada processador se comunica com, no máximo,
  dois processadores.
• Problema: Processador Pi precisa de informação
  do processador Pi-1 para calcular sua primeira
  coluna.
• Solução: Particionar as submatrizes dos
  processadores em blocos.
Figura 12 – Particionamento em blocos de m/p linhas.

• Problema: Baixo nível de paralelismo.
Figura 13 – Particionamento usando α = ½.
Código MPI
Referências
• Cáceres, E.N.; Nishibe, C. 0-1 Knapsack
  Problem:      BSP/CGM      Algorithm    and
  Implementation. Proc of the 17th IASTED
  International Conference on Parallel and
  Distributed Computing and Systems (PDCS
  2005), pp. 331-335, 2005.
• http://www.cse.unl.edu/~goddard/Courses/CS
  CE310J

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
Rogerio Oliveira
 

Was ist angesagt? (20)

Metricas forecasting
Metricas forecastingMetricas forecasting
Metricas forecasting
 
Cartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acessoCartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acesso
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Sistema de Produção Puxada
Sistema de Produção PuxadaSistema de Produção Puxada
Sistema de Produção Puxada
 
Processos de gerenciamento de projetos de um projeto
Processos de gerenciamento de projetos de  um projeto Processos de gerenciamento de projetos de  um projeto
Processos de gerenciamento de projetos de um projeto
 
Metodologia SCRUM
Metodologia SCRUMMetodologia SCRUM
Metodologia SCRUM
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
 
Diagrama de Causa e Efeito - Descubra e aprenda ishikawa na pratica
Diagrama de Causa e Efeito - Descubra e aprenda ishikawa na praticaDiagrama de Causa e Efeito - Descubra e aprenda ishikawa na pratica
Diagrama de Causa e Efeito - Descubra e aprenda ishikawa na pratica
 
Kanban para Desenvolvimento de Software
Kanban para Desenvolvimento de SoftwareKanban para Desenvolvimento de Software
Kanban para Desenvolvimento de Software
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
EloGroup BPT - Ebook Business Process Transformation
EloGroup BPT - Ebook Business Process Transformation EloGroup BPT - Ebook Business Process Transformation
EloGroup BPT - Ebook Business Process Transformation
 
Análise de Algoritmos - Programação Dinâmica
Análise de Algoritmos - Programação DinâmicaAnálise de Algoritmos - Programação Dinâmica
Análise de Algoritmos - Programação Dinâmica
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicos
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Um exemplo do meu uso dos Conceitos de Qualidade 5w2h
 Um exemplo do meu uso dos Conceitos de Qualidade 5w2h Um exemplo do meu uso dos Conceitos de Qualidade 5w2h
Um exemplo do meu uso dos Conceitos de Qualidade 5w2h
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacao
 
Tabela De Pares De Transformadas De Laplace
Tabela De Pares De Transformadas De LaplaceTabela De Pares De Transformadas De Laplace
Tabela De Pares De Transformadas De Laplace
 
Construcao de Algoritmos - Aula 07
Construcao de Algoritmos - Aula 07Construcao de Algoritmos - Aula 07
Construcao de Algoritmos - Aula 07
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 

Andere mochten auch (8)

Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalAlgoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos Grafos
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Programação Dinâmica
Programação DinâmicaProgramação Dinâmica
Programação Dinâmica
 
Classes de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícilClasses de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícil
 
Algoritmo da mediana
Algoritmo da medianaAlgoritmo da mediana
Algoritmo da mediana
 
O Problema de Transporte - Pesquisa Operacional
O Problema de Transporte - Pesquisa OperacionalO Problema de Transporte - Pesquisa Operacional
O Problema de Transporte - Pesquisa Operacional
 

Ähnlich wie Apresentacao mochila - parte 1

Numerosdecimais 131004122622-phpapp02 (2)
Numerosdecimais 131004122622-phpapp02 (2)Numerosdecimais 131004122622-phpapp02 (2)
Numerosdecimais 131004122622-phpapp02 (2)
Autonoma
 
Matematica5srievol1
Matematica5srievol1 Matematica5srievol1
Matematica5srievol1
rosemereporto
 
Matematica5srievol1 101015094523-phpapp02
Matematica5srievol1 101015094523-phpapp02Matematica5srievol1 101015094523-phpapp02
Matematica5srievol1 101015094523-phpapp02
rosemereporto
 
Gabaritocadernodoalunodematemtica5srie6anovolume1
Gabaritocadernodoalunodematemtica5srie6anovolume1 Gabaritocadernodoalunodematemtica5srie6anovolume1
Gabaritocadernodoalunodematemtica5srie6anovolume1
rosemereporto
 
1° Etapa_1° Avaliação_Tipo I_3° Ano
1° Etapa_1° Avaliação_Tipo I_3° Ano1° Etapa_1° Avaliação_Tipo I_3° Ano
1° Etapa_1° Avaliação_Tipo I_3° Ano
O mundo da FÍSICA
 
Apostila matematica 2010
Apostila matematica 2010Apostila matematica 2010
Apostila matematica 2010
trigono_metria
 
m7fn_p1_resolucoes.pdf
m7fn_p1_resolucoes.pdfm7fn_p1_resolucoes.pdf
m7fn_p1_resolucoes.pdf
Maria752181
 
Santillana m11 ficha-de-trabalho-9
Santillana m11 ficha-de-trabalho-9Santillana m11 ficha-de-trabalho-9
Santillana m11 ficha-de-trabalho-9
AnaMartins532
 

Ähnlich wie Apresentacao mochila - parte 1 (20)

FICHAS NUMEROS_DECIMAIS.pdf
FICHAS NUMEROS_DECIMAIS.pdfFICHAS NUMEROS_DECIMAIS.pdf
FICHAS NUMEROS_DECIMAIS.pdf
 
Numeros decimais
Numeros decimaisNumeros decimais
Numeros decimais
 
Numerosdecimais 131004122622-phpapp02 (2)
Numerosdecimais 131004122622-phpapp02 (2)Numerosdecimais 131004122622-phpapp02 (2)
Numerosdecimais 131004122622-phpapp02 (2)
 
Numeros decimais
Numeros decimaisNumeros decimais
Numeros decimais
 
Matematica5srievol1
Matematica5srievol1 Matematica5srievol1
Matematica5srievol1
 
Matematica5srievol1 101015094523-phpapp02
Matematica5srievol1 101015094523-phpapp02Matematica5srievol1 101015094523-phpapp02
Matematica5srievol1 101015094523-phpapp02
 
Gabaritocadernodoalunodematemtica5srie6anovolume1
Gabaritocadernodoalunodematemtica5srie6anovolume1 Gabaritocadernodoalunodematemtica5srie6anovolume1
Gabaritocadernodoalunodematemtica5srie6anovolume1
 
V@R Monte Carlo
V@R Monte CarloV@R Monte Carlo
V@R Monte Carlo
 
1° Etapa_1° Avaliação_Tipo I_3° Ano
1° Etapa_1° Avaliação_Tipo I_3° Ano1° Etapa_1° Avaliação_Tipo I_3° Ano
1° Etapa_1° Avaliação_Tipo I_3° Ano
 
Expoente 12 prova modelo de exame-enunciado
Expoente 12 prova modelo de exame-enunciadoExpoente 12 prova modelo de exame-enunciado
Expoente 12 prova modelo de exame-enunciado
 
Gabar
GabarGabar
Gabar
 
1º ANO
1º ANO1º ANO
1º ANO
 
Listaefommmathaleph 121206130511-phpapp01
Listaefommmathaleph 121206130511-phpapp01Listaefommmathaleph 121206130511-phpapp01
Listaefommmathaleph 121206130511-phpapp01
 
1705 matemática apostila amostra
1705 matemática   apostila amostra1705 matemática   apostila amostra
1705 matemática apostila amostra
 
11 questões gabaritadas de matemática
11 questões gabaritadas de matemática11 questões gabaritadas de matemática
11 questões gabaritadas de matemática
 
Apostila matematica 2010
Apostila matematica 2010Apostila matematica 2010
Apostila matematica 2010
 
m7fn_p1_resolucoes.pdf
m7fn_p1_resolucoes.pdfm7fn_p1_resolucoes.pdf
m7fn_p1_resolucoes.pdf
 
Series
SeriesSeries
Series
 
Trigonometria - Equações e inequações
Trigonometria - Equações e inequaçõesTrigonometria - Equações e inequações
Trigonometria - Equações e inequações
 
Santillana m11 ficha-de-trabalho-9
Santillana m11 ficha-de-trabalho-9Santillana m11 ficha-de-trabalho-9
Santillana m11 ficha-de-trabalho-9
 

Kürzlich hochgeladen

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
AntonioVieira539017
 

Kürzlich hochgeladen (20)

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 

Apresentacao mochila - parte 1

  • 1. Problema da Mochila Bianca de Almeida Dantas Marcio Osshiro
  • 2. Objetivos • Apresentar o problema da mochila e suas variantes. • Mostrar alternativas de solução para a variante 0-1. • Mostrar o funcionamento de um código MPI para o problema. • Abordagem utilizando CUDA.
  • 3. Aplicação • Logística • Criptografia • Engenharia Naval • Gerenciamento de Projetos • Finanças • Entre outras
  • 4. • Suponha que um gerente de uma empresa possua no seu orçamento c reais para investir em projetos dentro do seu departamento. Após uma pesquisa realizada por sua equipe, o gerente recebe um relatório com n diferentes projetos que trariam reduções de custo ou aumento de produtividade ao departamento como um todo. Associado a cada projeto j existe um retorno de pj reais e um custo para sua realização de cj reais. O gerente pode encontrar uma distribuição ótima de seu orçamento resolvendo um problema da mochila binária
  • 5. Variações • Problema da Mochila Limitada • Problema da Mochila Ilimitada (UKP) • Problema da Soma de Subconjuntos • Problema da Mochila 0-1
  • 6. • Problema da Mochila Limitada Dados um conjunto N de n objetos com valores positivos pj, pesos wj, cada um tendo bj cópias, e uma mochila de capacidade inteira e positiva c, determine um vetor (x1, x2, ..., xn), 0 ≤ xj ≤ bj ∈N, que satisfaça as condições:
  • 7. • Problema da Mochila Ilimitada Dados um conjunto N de n objetos com valores positivos pj, pesos wj, e uma mochila de capacidade inteira e positiva c, determine um vetor (x1, x2, ..., xn), xj ∈N, que satisfaça as condições: Este problema é uma generalização do Problema da Mochila Limitada no qual bj = ∞, ∀j ∈ N
  • 8. • Problema da Soma de Sub-conjuntos Dados um conjunto N de n objetos com pesos wj , e uma mochila de capacidade inteira e positiva c, determine um vetor (x1 ,x2 , ..., xn),xj ∈{0, 1}, que satisfaça as condições: Este problema é um caso particular do 0-1KP em que wj = pj, ∀j ∈ N.
  • 9. • Problema da Mochila 0-1: ▫ Dados um conjunto N de n objetos com valores positivos pj, pesos wj e uma mochila de capacidade inteira e positiva c, determine um vetor (x1, x2, ..., xn que encontre: 𝑛 𝑚𝑎𝑥 𝑝 𝑗 𝑥𝑗 𝑗=1 𝑛 Respeitando as condições 𝑗=1 𝑤𝑗 𝑥 𝑗 ≤ 𝑐 e 𝑥 𝑗 ∈ 0, 1 , 𝑗 = 1, … , 𝑛
  • 10. Pesquisas em busca de soluções Problema da Mochila Aproximação Heurística Estudos Soluções Exatas Branch and Programação Algoritmos Bound Dinâmica Genéticos
  • 11. Problema da Mochila • Dados: ▫ uma mochila de compartimento único e com uma capacidade máxima. ▫ conjunto de itens, cada qual com um peso e um valor associados. • Quais itens podem ser carregados na mochila sem exceder sua capacidade e maximizando o valor a ser carregado?
  • 12. • Dois tipos: ▫ Mochila 0-1: itens indivisíveis. Resolvido com programação dinâmica. ▫ Mochila fracionária: itens podem ser divididos. Resolvido com uma estratégia gulosa.
  • 13. Programação Dinâmica • Utilizada quando o problema pode ser definido recursivamente em termos de soluções para subproblemas menores (subestrutura ótima). • Deve-se encontrar e armazenar soluções para os subproblemas e, então, utilizá-las na solução de problemas maiores. • Mais eficiente do que soluções que utilizam estratégias de força-bruta.
  • 14. • Ideias básicas: ▫ Subestrutura ótima: a solução ótima para o problema é construída a partir de soluções ótimas para os subproblemas. ▫ Subproblemas “overlapping”: poucos subproblemas com muitas instâncias recorrentes de cada. ▫ Construção de uma tabela com as “subsoluções” usada para solucionar os problemas maiores.
  • 15. Problema da Mochila 0-1 • Também conhecido como problema da mochila booleana. • Dado um valor inteiro W e os conjuntos: ▫ S = {1, 2, 3, ..., n} ▫ W = {w1, w2, w3, ..., wn} ▫ V = {v1, v2, v3, ..., vn} • onde W é a capacidade da mochila, S é um conjunto de objetos, W é o conjunto dos pesos de tais objetos e V é o conjunto de seus valores. Devemos encontrar quais os itens de S devem ser colocados na mochila visando maximizar o valor carregado, sem exceder a capacidade da mochila.
  • 16. • Problema NP-completo. • Pode ser resolvido em O(nW) => solução pseudo-polinomial. • Alternativas para solução exata: ▫ Força-bruta. ▫ Programação dinâmica (DP): melhor comportamento quando os parâmetros são correlacionados. ▫ Branch-and-bound (B&B): mais eficiente quando os valores de w e v são indepentemente gerados.
  • 17. Algoritmo Força-Bruta • Forma direta e ingênua para resolver o problema. • Todas as combinações possíveis de itens são geradas. A combinação com o maior valor e que caiba na mochila será a solução ótima. • Com n itens => 2n possíveis combinações. • Complexidade: 0(2n) Algoritmo exponencial. Muito caro!!!!
  • 18. Tentando definir um subproblema • Podemos considerar um subproblema definido como: ▫ Sk = conjunto de itens numerados de 1 a k, onde 1<=k<=n. • É possível encontrar a solução final Sn em termos dos subproblemas Sk? A resposta é não....
  • 19. Objeto 1 2 3 4 5 Peso 2 3 4 5 9 Valor 3 4 5 8 10 S4 = {1, 2, 3, 4} => Peso total: 14 e Valor: 20 S5 = {1, 3, 4, 5} => Peso total: 20 e Valor: 26 S4 não faz parte da solução de S5
  • 20. Fórmula Recursiva com Subproblemas • Devemos considerar outro parâmetro: o peso de cada conjunto de subitens. • O subproblema consiste em computar f(r, c): { ▫ f(r, c) = f(r-1, c), se wr > W f(r, c) = max{f(r-1, c), f(r-1, c-wr) + vr} • A melhor solução Sr com peso c é: ▫ a melhor solução Sr-1 com peso c, ou ▫ a melhor solução Sr-1 com peso c-wr mais o valor do item r
  • 21. Algoritmo de Gilmore e Gomory • Primeiro algoritmo a usar DP para resolver o problema da mochila 0-1. • Seja f(r, c) a solução ótima considerando o conjunto de objetos [1, r] e o peso c., com 1<=r<=n e 0<=c<=W. A solução ótima para o problema será f(n, W). • A relação de recorrência para solução: ▫ f(r, c) = max{f(r-1, c), f(r-1, c-wr) + vr} • Tempo: O(nW)
  • 22. para c de 0 ate W faca F[0,w] = 0 fimpara para r de 1 ate n faca F[i,0] = 0 fimpara para r de 1 ate n faca para c de 0 ate W faca se (wi <= W) entao// item i can be part of the solution se (F[r-1,c-wi] + vr > F[r-1,c]) entao F[r,c] = F[r-1,c-wi] + vr senao F[r,c] = F[r-1,c] fimse else F[r,c] = F[r-1,c] // wi > W fimse fimpara fimpara
  • 23. Exemplo • Sejam uma mochila de capacidade 10 e 5 objetos com seus pesos e valores representados na seguinte tabela: Objeto 1 2 3 4 5 Peso 8 3 6 4 2 Valor 100 60 70 15 15
  • 24. 0 1 2 3 4 5 6 7 8 9 10 0 1(8) 2(3) 3(6) 4(4) 5(2)
  • 25. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 2(3) 0 3(6) 0 4(4) 0 5(2) 0
  • 26. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 2(3) 0 3(6) 0 4(4) 0 5(2) 0
  • 27. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 2(3) 0 3(6) 0 4(4) 0 5(2) 0
  • 28. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 2(3) 0 3(6) 0 4(4) 0 5(2) 0
  • 29. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 3(6) 0 4(4) 0 5(2) 0
  • 30. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 3(6) 0 4(4) 0 5(2) 0
  • 31. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 3(6) 0 4(4) 0 5(2) 0
  • 32. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 4(4) 0 5(2) 0
  • 33. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 4(4) 0 5(2) 0
  • 34. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 4(4) 0 5(2) 0
  • 35. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 4(4) 0 5(2) 0
  • 36. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 5(2) 0
  • 37. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 5(2) 0
  • 38. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 5(2) 0
  • 39. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 5(2) 0
  • 40. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0
  • 41. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0 0 15
  • 42. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0 0 15 60 60
  • 43. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0 0 15 60 60 75 75
  • 44. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0 0 15 60 60 75 75 75
  • 45. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0 0 15 60 60 75 75 75 100
  • 46. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0 0 15 60 60 75 75 75 100 130
  • 47. 0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1(8) 0 0 0 0 0 0 0 0 100 100 100 2(3) 0 0 0 60 60 60 60 60 100 100 100 3(6) 0 0 0 60 60 60 70 70 100 130 130 4(4) 0 0 0 60 60 60 70 75 100 130 130 5(2) 0 0 15 60 60 75 75 75 100 130 130
  • 48. Algoritmo Wavefront • Algoritmo paralelo utilizando programação dinâmica. • Segue o modelo de programação BSP/CGM. • Considerando n itens, capacidade W e p processadores: ▫ O(p) rodadas de comunicação ▫ O(W n/p) de computação • O vetor de pesos é replicado para todos os processadores. • O vetor v é dividido em p partes.
  • 49. Figura 11 – Divisão da matriz em faixas para cada processador.
  • 50. • Comunicação wavefront ou sistólica. • Cada processador se comunica com, no máximo, dois processadores. • Problema: Processador Pi precisa de informação do processador Pi-1 para calcular sua primeira coluna. • Solução: Particionar as submatrizes dos processadores em blocos.
  • 51. Figura 12 – Particionamento em blocos de m/p linhas. • Problema: Baixo nível de paralelismo.
  • 52. Figura 13 – Particionamento usando α = ½.
  • 53.
  • 55. Referências • Cáceres, E.N.; Nishibe, C. 0-1 Knapsack Problem: BSP/CGM Algorithm and Implementation. Proc of the 17th IASTED International Conference on Parallel and Distributed Computing and Systems (PDCS 2005), pp. 331-335, 2005. • http://www.cse.unl.edu/~goddard/Courses/CS CE310J