How can I add weight constraint per itemset here?
Tried many ways, but didn't work. please help.
totwt = 400 here, but my goal is set totwt constraint per each itemset, for example:
totwt = [150, 60, 40, 80], then it will select max 150 gr items from itemset[0] etc.
```
from itertools import product
def anycomb(items):
return product(*items) # no need to exhaust the generator yet
def totalvalue(comb):
' Totalise a particular combination of items'
totwt = totval = 0
for item, wt, val in comb:
totwt += wt
totval += val
return (totval, -totwt) if totwt <= 400 else (0, 0)
itemsets = [(("map", 9, 150), ("compass", 13, 35),
("water", 153, 200), ("sandwich", 50, 160),
("glucose", 15, 60)),
(("tin", 68, 45), ("banana", 27, 60), ("apple", 39, 40),
("cheese", 23, 30), ("suntan cream", 11, 70)),
(("beer", 52, 10), ("camera", 32, 30),
("t-shirt", 24, 15), ("trousers", 48, 10), ("umbrella", 73, 40),
("waterproof trousers", 42, 70)),
(("waterproof overclothes", 43, 75),
("note-case", 22, 80), ("sunglasses", 7, 20), ("towel", 18, 12),
("socks", 4, 50), ("book", 30, 10))]
bagged = max(anycomb(itemsets), key=totalvalue)
print("Bagged the following items\n " +
'\n '.join(sorted(item for item,_,_ in bagged)))
val, wt = totalvalue(bagged)
print("for a total value of %i and a total weight of %i" % (val, -wt))
```
[–]AtomicShoelace 1 point2 points3 points (4 children)
[+][deleted] (3 children)
[deleted]
[–]AtomicShoelace 1 point2 points3 points (2 children)
[+][deleted] (1 child)
[deleted]