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?

Mat coordenadas polares, cilíndricas e esféricas
Mat coordenadas polares, cilíndricas e esféricasMat coordenadas polares, cilíndricas e esféricas
Mat coordenadas polares, cilíndricas e esféricastrigono_metria
 
Traveling salesman problem
Traveling salesman problemTraveling salesman problem
Traveling salesman problemJayesh Chauhan
 
GEOMETRIA ANALÍTICA cap 06
GEOMETRIA ANALÍTICA cap  06GEOMETRIA ANALÍTICA cap  06
GEOMETRIA ANALÍTICA cap 06Andrei Bastos
 
Caminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de DijkstraCaminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de DijkstraMarcos Castro
 
Bellman Ford's Algorithm
Bellman Ford's AlgorithmBellman Ford's Algorithm
Bellman Ford's AlgorithmTanmay Baranwal
 
Greedy algorithms -Making change-Knapsack-Prim's-Kruskal's
Greedy algorithms -Making change-Knapsack-Prim's-Kruskal'sGreedy algorithms -Making change-Knapsack-Prim's-Kruskal's
Greedy algorithms -Making change-Knapsack-Prim's-Kruskal'sJay Patel
 
Dijkstra’s algorithm
Dijkstra’s algorithmDijkstra’s algorithm
Dijkstra’s algorithmfaisal2204
 
Knapsack problem dynamicprogramming
Knapsack problem dynamicprogrammingKnapsack problem dynamicprogramming
Knapsack problem dynamicprogrammingrowntu
 
Floyd warshall-algorithm
Floyd warshall-algorithmFloyd warshall-algorithm
Floyd warshall-algorithmMalinga Perera
 
Knapsack problem algorithm, greedy algorithm
Knapsack problem algorithm, greedy algorithmKnapsack problem algorithm, greedy algorithm
Knapsack problem algorithm, greedy algorithmHoneyChintal
 
Fractional Knapsack Problem
Fractional Knapsack ProblemFractional Knapsack Problem
Fractional Knapsack Problemharsh kothari
 
Lattice Based Cryptography - GGH Cryptosystem
Lattice Based Cryptography - GGH CryptosystemLattice Based Cryptography - GGH Cryptosystem
Lattice Based Cryptography - GGH CryptosystemVarun Janga
 
Clique problem step_by_step
Clique problem step_by_stepClique problem step_by_step
Clique problem step_by_stepSing Kuang Tan
 
Statuto internazionale versione italiana v.q32014 a
Statuto internazionale versione italiana v.q32014 aStatuto internazionale versione italiana v.q32014 a
Statuto internazionale versione italiana v.q32014 aPaolo Pasquinelli
 
Volumes de sólidos integral
Volumes de sólidos integralVolumes de sólidos integral
Volumes de sólidos integralHugoTavares82
 
Johnson's algorithm
Johnson's algorithmJohnson's algorithm
Johnson's algorithmKiran K
 

Was ist angesagt? (20)

Mat coordenadas polares, cilíndricas e esféricas
Mat coordenadas polares, cilíndricas e esféricasMat coordenadas polares, cilíndricas e esféricas
Mat coordenadas polares, cilíndricas e esféricas
 
Traveling salesman problem
Traveling salesman problemTraveling salesman problem
Traveling salesman problem
 
GEOMETRIA ANALÍTICA cap 06
GEOMETRIA ANALÍTICA cap  06GEOMETRIA ANALÍTICA cap  06
GEOMETRIA ANALÍTICA cap 06
 
Maxflow
MaxflowMaxflow
Maxflow
 
Caminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de DijkstraCaminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de Dijkstra
 
Bellman Ford's Algorithm
Bellman Ford's AlgorithmBellman Ford's Algorithm
Bellman Ford's Algorithm
 
Greedy algorithms -Making change-Knapsack-Prim's-Kruskal's
Greedy algorithms -Making change-Knapsack-Prim's-Kruskal'sGreedy algorithms -Making change-Knapsack-Prim's-Kruskal's
Greedy algorithms -Making change-Knapsack-Prim's-Kruskal's
 
94204719 teoria-dos-numeros
94204719 teoria-dos-numeros94204719 teoria-dos-numeros
94204719 teoria-dos-numeros
 
Shortest path algorithms
Shortest path algorithmsShortest path algorithms
Shortest path algorithms
 
Dijkstra’s algorithm
Dijkstra’s algorithmDijkstra’s algorithm
Dijkstra’s algorithm
 
Knapsack problem dynamicprogramming
Knapsack problem dynamicprogrammingKnapsack problem dynamicprogramming
Knapsack problem dynamicprogramming
 
Floyd warshall-algorithm
Floyd warshall-algorithmFloyd warshall-algorithm
Floyd warshall-algorithm
 
Knapsack problem algorithm, greedy algorithm
Knapsack problem algorithm, greedy algorithmKnapsack problem algorithm, greedy algorithm
Knapsack problem algorithm, greedy algorithm
 
Fractional Knapsack Problem
Fractional Knapsack ProblemFractional Knapsack Problem
Fractional Knapsack Problem
 
Lattice Based Cryptography - GGH Cryptosystem
Lattice Based Cryptography - GGH CryptosystemLattice Based Cryptography - GGH Cryptosystem
Lattice Based Cryptography - GGH Cryptosystem
 
Clique problem step_by_step
Clique problem step_by_stepClique problem step_by_step
Clique problem step_by_step
 
Statuto internazionale versione italiana v.q32014 a
Statuto internazionale versione italiana v.q32014 aStatuto internazionale versione italiana v.q32014 a
Statuto internazionale versione italiana v.q32014 a
 
Volumes de sólidos integral
Volumes de sólidos integralVolumes de sólidos integral
Volumes de sólidos integral
 
Johnson's algorithm
Johnson's algorithmJohnson's algorithm
Johnson's algorithm
 
ppt-knight'stour
ppt-knight'stourppt-knight'stour
ppt-knight'stour
 

Andere mochten auch

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
 

Andere mochten auch (9)

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
 

Ähnlich wie Apresentacao mochila - parte 1

FICHAS NUMEROS_DECIMAIS.pdf
FICHAS NUMEROS_DECIMAIS.pdfFICHAS NUMEROS_DECIMAIS.pdf
FICHAS NUMEROS_DECIMAIS.pdfMaria Silva
 
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
 
Santillana m11 ficha-de-trabalho-9
Santillana m11 ficha-de-trabalho-9Santillana m11 ficha-de-trabalho-9
Santillana m11 ficha-de-trabalho-9AnaMartins532
 

Ä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

5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxedelon1
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 

Kürzlich hochgeladen (20)

5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 

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