problema da mochila – sem repetição de objetos profa. sandra de amo bcc-ufu

8
Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Upload: lavinia-lemos-monsanto

Post on 07-Apr-2016

237 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Problema da Mochila – sem repetição de objetos

Profa. Sandra de AmoBCC-UFU

Page 2: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Ideia

Mochila: 10 kg

Item Peso Valor

1 6 30

2 3 14

3 4 16

4 2 9

Começa no último item : 4 Seu peso é ≤ 10 ? Se Sim: Tenho duas opções: 1. Coloco o item na mochila :

subproblema a resolver K(10-2, 3) 2. Não coloco o item na mochila subproblema a resolver K(10,3) Resultado = max{K(10-2,3) + 9, K(10,3) } Se Não: subproblema a resolver K(10,3) Resultado = resultado de K(10,3)

Problema a resolver K(10,4)

Page 3: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Algoritmo

Complexidade = O(nW)

Algoritmo não é polinomial em W !

Algoritmo é EXPONENCIAL em W, pois a complexidade é medidaem relação ao tamanho da representação da grandeza !

1. For j = 0,...,n 2. K(0,j) = 0, L(0,j) = [ ] 3. For w = 0,...,W4. K(w,0) = 0, L(0,j) = [ ]5. For j = 1 ... n6. For w = 1, ..., W7. If wj > w: K(w,j) = K(w,j-1)8. else: 9. K(w,j) = max {K(w-wi,j-1) + vi, K(w,j-1)}10. x = arg K(w,j)11. L(w,j) = insert(i, L(x)) 12.Retorna L(W)

Page 4: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Valores 30 14 16 9

Pesos 6 3 4 2

0 1 2 3 40 0/[] 0/[] 0/[] 0/[] 0/[]

1 0/[] 0/[] 0/[] 0/[] 0/[]

2 0/[] 0/[] 0/[] 0/[] 9/[4]

3 0/[] 0/[] 14/[2] 14/[2] 14/[2]

4 0/[] 0/[] 14/[2] 16/[3] 16/[3]

5 0/[] 0/[] 14/[2] 16/[3] 23/[2,4]

6 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

7 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

8 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

9 0/[] 30/[1] 44/[1,2] 44/[1,2] 44/[1,2]

10 0/[] 30/[1] 44/[1,2] 46/[1,3] 46/[1.3]

Resultado da execução do algoritmo:

Page 5: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Valores 30 14 16 9

Pesos 6 3 4 2

0 1 2 3 40 0/[] 0/[] 0/[] 0/[] 0/[]

1 0/[] 0/[] 0/[] 0/[] 0/[]

2 0/[] 0/[] 0/[] 0/[] 9/[4]

3 0/[] 0/[] 14/[2] 14/[2] 14/[2]

4 0/[] 0/[] 14/[2] 16/[3] 16/[3]

5 0/[] 0/[] 14/[2] 16/[3] 23/[2,4]

6 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

7 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

8 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

9 0/[] 30/[1] 44/[1,2] 44/[1,2] 44/[1,2]

10 0/[] 30/[1] 44/[1,2] 46/[1,3] 46/[1.3]

EXPLICANDO O VALOR 14/[2] da posição (3,2)

Page 6: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Valores 30 14 16 9

Pesos 6 3 4 2

0 1 2 3 40 0/[] 0/[] 0/[] 0/[] 0/[]

1 0/[] 0/[] 0/[] 0/[] 0/[]

2 0/[] 0/[] 0/[] 0/[] 9/[4]

3 0/[] 0/[] 14/[2] 14/[2] 14/[2]

4 0/[] 0/[] 14/[2] 16/[3] 16/[3]5 0/[] 0/[] 14/[2] 16/[3] 23/[2,4]

6 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

7 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

8 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

9 0/[] 30/[1] 44/[1,2] 44/[1,2] 44/[1,2]

10 0/[] 30/[1] 44/[1,2] 46/[1,3] 46/[1.3]

Page 7: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Valores 30 14 16 9

Pesos 6 3 4 2

0 1 2 3 40 0/[] 0/[] 0/[] 0/[] 0/[]

1 0/[] 0/[] 0/[] 0/[] 0/[]

2 0/[] 0/[] 0/[] 0/[] 9/[4]

3 0/[] 0/[] 14/[2] 14/[2] 14/[2]4 0/[] 0/[] 14/[2] 16/[3] 16/[3]

5 0/[] 0/[] 14/[2] 16/[3] 23/[2,4]

6 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

7 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

8 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

9 0/[] 30/[1] 44/[1,2] 44/[1,2] 44/[1,2]

10 0/[] 30/[1] 44/[1,2] 46/[1,3] 46/[1.3]

Page 8: Problema da Mochila – sem repetição de objetos Profa. Sandra de Amo BCC-UFU

Valores 30 14 16 9

Pesos 6 3 4 2

0 1 2 3 40 0/[] 0/[] 0/[] 0/[] 0/[]

1 0/[] 0/[] 0/[] 0/[] 0/[]

2 0/[] 0/[] 0/[] 0/[] 9/[4]

3 0/[] 0/[] 14/[2] 14/[2] 14/[2]4 0/[] 0/[] 14/[2] 16/[3] 16/[3]

5 0/[] 0/[] 14/[2] 16/[3] 23/[2,4]

6 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

7 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

8 0/[] 30/[1] 30/[1] 30/[1] 30/[1]

9 0/[] 30/[1] 44/[1,2] 44/[1,2] 44/[1,2]

10 0/[] 30/[1] 44/[1,2] 46/[1,3] 46/[1.3]

Valor = 0 + 14