You can merely start adding stuff until an overflow occurs, switching to the next bag as necessary.
No, I thought that too, at first, but you've got the problem of having permitted
negative elements, so adding the next element might overflow, but the element
after that (if negative) might bring it back. Argh!
So while there might be a solution other than generating all possible partitions
and seeing which ones have acceptable weights, it's not along the line of "fill
until it won't fit". Sorry.
-- Randal L. Schwartz, Perl hacker
| [reply] |
It might, but if you're going to evaluate all possibilities,
who cares? As in, if you are worried about a scenario such
as the following, where the 10 gets bagged "solo" despite
there being a -5 farther down the pipeline:
( [ 9 ], [ 10, -5], [ 11 ] )
Then later on you will inevitably evaluate a scenario where
the -5 is inserted earlier.
( [ 9, -5, 10 ], [11] )
So, taking the "brute force" approach, you might lose points
for style, but you get the job done, no?
Has anyone ever pointed out to a grocery checker that
the bagging problem was NP-complete? The result might be
similar to explaining that dogs can solve quadratic equations
(i.e. capturing a frisbee in a parabolic arc while in linear
motion).
| [reply] [d/l] [select] |
Has anyone ever pointed out to a grocery checker that the bagging problem was NP-complete?
Has anyone ever had a grocery bagger that optimally bagged their groceries? Fortunately, the greedy heuristic which baggers generally use is not NP-complete =)
MeowChow
s aamecha.s a..a\u$&owag.print | [reply] |