I have encountered a variant of the knapsack problem with shrinking items.

Effectively, it is a 0-1 knapsack problem where the initial weight of each item is W(n)+V(n) and their value is V(N), but immediately after being put into the container the item shrinks by W(n). This means that for every item IN the knapsack, weight and value are the same. (It is therefore also possible to look at this as a value-irrelevant “best fill only” 0-1 knapsack.)

So, in this case, one also needs to determine the proper order of items to insert and whether a specific item is legal in the combination before being put in the container.

I have already determined that order of insertion, given a valid collection, should be based on W(n)+V(n) descending — but thus far I am failing to create a set of valid collections in anything under O(2^n).

Dynamic programming solutions are failing me both because of the apparent interdependence of elements which makes memoization seemingly impossible.

I realize I have not given much here, but I could really use some help. How does one go about approaching this variant?

*If curious, the actual application is that we have a large number of different electrical appliances that all cause a known power surge when turned on and afterwards draw a set amount of power. We never want to trip a breaker, so the surge needs to be taken into account when figuring out how many at most we can turn on.*