Answers for "knapsack problem using greedy method in python"

4

greedy knapsack

def greedy_knapsack(values,weights,capacity):
    n = len(values)
    def score(i) : return values[i]/weights[i]
    items = sorted(range(n)  , key=score , reverse = True)
    sel, value,weight = [],0,0
    for i in items:
        if weight +weights[i] <= capacity:
            sel += [i]
            weight += weights[i]
            value += values [i]
    return sel, value, weight


weights = [4,9,10,20,2,1]
values = [400,1800,3500,4000,1000,200]
capacity = 20

print(greedy_knapsack(values,weights,capacity))
Posted by: Guest on December-25-2020
0

knapsack problem using greedy method in python

I don't know if the output is all correct. For me the output order in this case should be [4, 2, 0, 5] and not [4, 2, 5, 0], because the index 0 have more density than index 5. What dou you think?
Posted by: Guest on April-09-2021

Python Answers by Framework

Browse Popular Code Answers by Language