2017-11-06 8 views
1

私はそれぞれが持ち運び可能な2つのバケットを持っています。複数のバケット充填

Bucket A: 100 kg 
Bucket B: 110 kg 

私は複数の重みを持っている:

Weight W1: 20 kg 
Weight W2: 40 kg 
Weight W3: 90 kg 
Weight W4: 80 kg 

私が欲しいものは、バケットが唯一のものである場合、それはナップザック問題のようである最大重みでバケツを埋めるために

Bucket A <- W3 
Bucket B <- W1, W4 

です。

容量の異なる複数のバケットの場合、解決できません。

+0

現在、私はそれを解決する方法を考えています。私の心に来る最初のことは、x = [At * A] '* At * bで解くと、Ax = b Aはウェイトxが1-0であり、bがバケットであることを解くことです。xは浮動小数点で得られます。ラウンドされたかもしれないが、それは%100を解決しないので、私は各可能性のためにソリューションを強制するように動いたが、この4×2システムでも132の可能性がある。私はまだ考えている –

+0

@İhsanCemilÇiçek問題を探してくれてありがとう。私はそれを解決することができれば私は答えを掲示する/それを検索する。 – user811602

+0

私にはNP困難な問題があるようです。 https://stackoverflow.com/questions/23689236/knapsack-with-multiple-bags-and-items-having-only-weight – user811602

答えて

0

バケットに置く可能性が最も高い重量を置くと、各バスケットの空き容量がわかります。

私はコンピュータでいる時、私は、コードを投稿します、最大値を有するバケットに

weight/SpaceLeftAfter 

を体重をかけます。