SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Exercícios Resolvidos: Taxa relacionada
Exercícios Resolvidos: Taxa relacionadaExercícios Resolvidos: Taxa relacionada
Exercícios Resolvidos: Taxa relacionadaDiego Oliveira
 
Séries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de FourierSéries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de FourierCiro Marcus
 
04. movimento em duas e três dimensões
04. movimento em duas e três dimensões04. movimento em duas e três dimensões
04. movimento em duas e três dimensõesleonardoenginer
 
Fisica 1 cap10
Fisica 1 cap10Fisica 1 cap10
Fisica 1 cap10CLucasC20
 
18 series de taylor e de maclaurin
18 series de taylor e de maclaurin18 series de taylor e de maclaurin
18 series de taylor e de maclaurinGabriela Cristina
 
Restrição e Prolongamento de uma função
Restrição e Prolongamento de uma funçãoRestrição e Prolongamento de uma função
Restrição e Prolongamento de uma funçãonumerosnamente
 
96893253 tabela-centroides-de-areas
96893253 tabela-centroides-de-areas96893253 tabela-centroides-de-areas
96893253 tabela-centroides-de-areasJoão Ferreira
 
Algoritmo Needleman-Wunsch
Algoritmo Needleman-WunschAlgoritmo Needleman-Wunsch
Algoritmo Needleman-WunschMarcos Castro
 
Estatística para os cursos de : economia, administração e ciênicas contáb...
	 Estatística para os cursos de :   economia, administração e ciênicas contáb...	 Estatística para os cursos de :   economia, administração e ciênicas contáb...
Estatística para os cursos de : economia, administração e ciênicas contáb...Luiz Carlos
 
Lista de exercícios produto vetorial produto misto
Lista de exercícios produto vetorial produto mistoLista de exercícios produto vetorial produto misto
Lista de exercícios produto vetorial produto mistoProf Paulo Roberto Batista
 
Hiperbole exercicios
Hiperbole exerciciosHiperbole exercicios
Hiperbole exerciciosPeurry Meyson
 

Mais procurados (20)

Tabela de Integrais
Tabela de  IntegraisTabela de  Integrais
Tabela de Integrais
 
Exercícios Resolvidos: Taxa relacionada
Exercícios Resolvidos: Taxa relacionadaExercícios Resolvidos: Taxa relacionada
Exercícios Resolvidos: Taxa relacionada
 
Tabela de integrais
Tabela de integraisTabela de integrais
Tabela de integrais
 
Funcao exponencial
Funcao exponencialFuncao exponencial
Funcao exponencial
 
Séries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de FourierSéries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de Fourier
 
Programacao linear aula 3 metodo grafico
Programacao linear   aula 3 metodo graficoProgramacao linear   aula 3 metodo grafico
Programacao linear aula 3 metodo grafico
 
04. movimento em duas e três dimensões
04. movimento em duas e três dimensões04. movimento em duas e três dimensões
04. movimento em duas e três dimensões
 
Fisica 1 cap10
Fisica 1 cap10Fisica 1 cap10
Fisica 1 cap10
 
18 series de taylor e de maclaurin
18 series de taylor e de maclaurin18 series de taylor e de maclaurin
18 series de taylor e de maclaurin
 
Aula 5 autovetores e autovalores
Aula 5   autovetores e autovaloresAula 5   autovetores e autovalores
Aula 5 autovetores e autovalores
 
Restrição e Prolongamento de uma função
Restrição e Prolongamento de uma funçãoRestrição e Prolongamento de uma função
Restrição e Prolongamento de uma função
 
Aula 07 derivadas - regras de derivação - parte 1
Aula 07   derivadas - regras de derivação - parte 1Aula 07   derivadas - regras de derivação - parte 1
Aula 07 derivadas - regras de derivação - parte 1
 
Função exponencial
Função exponencialFunção exponencial
Função exponencial
 
96893253 tabela-centroides-de-areas
96893253 tabela-centroides-de-areas96893253 tabela-centroides-de-areas
96893253 tabela-centroides-de-areas
 
Algoritmo Needleman-Wunsch
Algoritmo Needleman-WunschAlgoritmo Needleman-Wunsch
Algoritmo Needleman-Wunsch
 
Arranjo simples
Arranjo simplesArranjo simples
Arranjo simples
 
6 – 2014 equação do 1 grau
6 – 2014 equação do 1 grau6 – 2014 equação do 1 grau
6 – 2014 equação do 1 grau
 
Estatística para os cursos de : economia, administração e ciênicas contáb...
	 Estatística para os cursos de :   economia, administração e ciênicas contáb...	 Estatística para os cursos de :   economia, administração e ciênicas contáb...
Estatística para os cursos de : economia, administração e ciênicas contáb...
 
Lista de exercícios produto vetorial produto misto
Lista de exercícios produto vetorial produto mistoLista de exercícios produto vetorial produto misto
Lista de exercícios produto vetorial produto misto
 
Hiperbole exercicios
Hiperbole exerciciosHiperbole exercicios
Hiperbole exercicios
 

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Último

Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
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
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
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
 
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
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
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 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
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
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
 
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
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 

Último (20)

Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
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 ...
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
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"
 
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
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
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 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
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
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)
 
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
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 

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