SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...74th
 
Startup Snapshot in Node.js
Startup Snapshot in Node.jsStartup Snapshot in Node.js
Startup Snapshot in Node.jsIgalia
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析Mr. Vengineer
 
Windbg랑 친해지기
Windbg랑 친해지기Windbg랑 친해지기
Windbg랑 친해지기Ji Hun Kim
 
1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlowHaesun Park
 
Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Huy Rùa
 
Elm327 Use Manual - How to use elm327 obd 2 scanner
Elm327 Use Manual - How to use elm327 obd 2 scannerElm327 Use Manual - How to use elm327 obd 2 scanner
Elm327 Use Manual - How to use elm327 obd 2 scannerjosy jiang
 
Sigreturn Oriented Programming
Sigreturn Oriented ProgrammingSigreturn Oriented Programming
Sigreturn Oriented ProgrammingAngel Boy
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装したt-sin
 

Tendances (12)

Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
 
YOLO
YOLOYOLO
YOLO
 
Startup Snapshot in Node.js
Startup Snapshot in Node.jsStartup Snapshot in Node.js
Startup Snapshot in Node.js
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
 
Windbg랑 친해지기
Windbg랑 친해지기Windbg랑 친해지기
Windbg랑 친해지기
 
1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow
 
HTTP/3
HTTP/3HTTP/3
HTTP/3
 
Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)
 
Elm327 Use Manual - How to use elm327 obd 2 scanner
Elm327 Use Manual - How to use elm327 obd 2 scannerElm327 Use Manual - How to use elm327 obd 2 scanner
Elm327 Use Manual - How to use elm327 obd 2 scanner
 
Sigreturn Oriented Programming
Sigreturn Oriented ProgrammingSigreturn Oriented Programming
Sigreturn Oriented Programming
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 

En vedette

Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Marcos Castro
 
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 MultidimensionalBianca Dantas
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Bianca Dantas
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos GrafosBianca Dantas
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreadingBianca Dantas
 
Programação Dinâmica
Programação DinâmicaProgramação Dinâmica
Programação DinâmicaOrlando Junior
 
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ícilGuilherme Coelho
 
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âmicaDelacyr Ferreira
 
Algoritmo da mediana
Algoritmo da medianaAlgoritmo da mediana
Algoritmo da medianaKelve Aragão
 

En vedette (10)

Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)
 
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
 
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
 
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
 

Similaire à Apresentacao mochila - parte 1

FICHAS NUMEROS_DECIMAIS.pdf
FICHAS NUMEROS_DECIMAIS.pdfFICHAS NUMEROS_DECIMAIS.pdf
FICHAS NUMEROS_DECIMAIS.pdfMaria Silva
 
NUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdf
NUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdfNUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdf
NUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdfAutonoma
 
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-phpapp02rosemereporto
 
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° AnoO mundo da FÍSICA
 
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-enunciadoSusana Figueiredo
 
Listaefommmathaleph 121206130511-phpapp01
Listaefommmathaleph 121206130511-phpapp01Listaefommmathaleph 121206130511-phpapp01
Listaefommmathaleph 121206130511-phpapp01Cadete Brasil
 
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áticaLUZIANDERSON RAMOS
 
Apostila matematica 2010
Apostila matematica 2010Apostila matematica 2010
Apostila matematica 2010trigono_metria
 
m7fn_p1_resolucoes.pdf
m7fn_p1_resolucoes.pdfm7fn_p1_resolucoes.pdf
m7fn_p1_resolucoes.pdfMaria752181
 
Trigonometria - Equações e inequações
Trigonometria - Equações e inequaçõesTrigonometria - Equações e inequações
Trigonometria - Equações e inequaçõesKalculosOnline
 

Similaire à 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
 
NUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdf
NUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdfNUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdf
NUMEROS_DECIMAISeeeeeeeeeeeeeeeeeeeee.pdf
 
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
 

Dernier

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êmicolourivalcaburite
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
CATEQUESE primeiro ano . CATEQUESE 1ºano
CATEQUESE primeiro ano . CATEQUESE 1ºanoCATEQUESE primeiro ano . CATEQUESE 1ºano
CATEQUESE primeiro ano . CATEQUESE 1ºanomarla71199
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Centro Jacques Delors
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
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...MariaCristinaSouzaLe1
 
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éculoBiblioteca UCS
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfJuliana Barbosa
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
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
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...azulassessoria9
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022LeandroSilva126216
 
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.pptxMarcosLemes28
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptxSlides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptxLuizHenriquedeAlmeid6
 
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.pptxMarcosLemes28
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 

Dernier (20)

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
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
CATEQUESE primeiro ano . CATEQUESE 1ºano
CATEQUESE primeiro ano . CATEQUESE 1ºanoCATEQUESE primeiro ano . CATEQUESE 1ºano
CATEQUESE primeiro ano . CATEQUESE 1ºano
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
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...
 
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
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
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...
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
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
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptxSlides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
 
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
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 

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