DAA – Mochila 0-1

Anúncios

neste tutorial anterior discutimos Fracionário da Mochila problema utilizando a abordagem Gananciosa. Nós mostramos que a abordagem gananciosa dá uma solução ideal para a mochila fraccionada. No entanto, este capítulo cobrirá o problema da mochila 0-1 e a sua análise.

In 0-1 Knapsack, items cannot be broken which means the thief should take the item as a whole or should leave it., Esta é a razão por trás de chamá-lo de Mochila 0-1.

portanto, no caso de uma mochila 0-1, o valor de xi pode ser 0 ou 1, onde outras restrições permanecem as mesmas.

0-1 A mochila não pode ser resolvida por uma abordagem gananciosa. Abordagem gananciosa não garante uma solução ideal. Em muitos casos, abordagem gananciosa pode dar uma solução ideal.

os seguintes exemplos estabelecerão a nossa Declaração.

exemplo-1

vamos considerar que a capacidade da mochila é W = 25 e os itens são como mostrado na tabela seguinte.,

Item A B C D
Lucro 24 18 18 10
Peso 24 10 10 7

Sem considerar o lucro por unidade de peso (pi/wi), se aplicarmos Gananciosos abordagem para solucionar este problema, o primeiro item será selecionado como ele irá contribuir o máximo de lucro entre todos os elementos.,

Depois de seleccionar o item a, não será seleccionado mais nenhum item. Por conseguinte, para este conjunto de rubricas, o lucro total é de 24. Considerando que a solução ideal pode ser alcançada selecionando itens, B E C, onde o lucro total é 18 + 18 = 36.

Exemplo-2

em vez de seleccionar os itens com base no benefício global, neste exemplo, os itens são seleccionados com base na relação pi/wi. Consideremos que a capacidade da mochila é W = 60 e os itens são como mostrado na tabela seguinte.,

Item A B C
Price 100 280 120
Weight 10 40 20
Ratio 10 7 6

Using the Greedy approach, first item A is selected. Then, the next item B is chosen. Hence, the total profit is 100 + 280 = 380., No entanto, a solução ideal desta instância pode ser alcançada selecionando itens, B E C, onde o lucro total é 280 + 120 = 400.por conseguinte, pode concluir-se que a abordagem gananciosa pode não dar uma solução óptima.

para resolver o Knapsack 0-1, é necessária uma abordagem dinâmica de programação.

Declaração de problema

um ladrão está roubando uma loja e pode carregar um peso máximo de W em sua mochila. Há n itens e peso do ith item é wi e o lucro de selecionar este item é pi. Que itens deve o ladrão levar?,

abordagem dinâmica de programação

Let I be the highest-numered item in an optimal solution s for W dollars. Então S ‘ = S – {I} é uma solução ideal para W-wi dólares e o valor para a solução S é Vi mais o valor do sub-problema.

podemos expressar este fato na seguinte fórmula: defina c para ser a solução para os itens 1,2, … , i e o peso máximo W.,

O algoritmo tem os seguintes entradas

  • O máximo de peso W

  • O número de itens n

  • As duas sequências v = <v1, v2, …, vn> e w = <w1, w2, …, wn>

O conjunto de itens para levar pode ser deduzida a partir da tabela, começando em c e o rastreio para trás, onde os valores ideais veio.

análise

este algoritmo toma θ(n, w) vezes como a tabela c tem (n + 1).(w + 1) entradas, onde cada entrada requer θ (1) tempo para calcular.,

Anúncios

Leave a Comment