गतिशील प्रोग्रामिंग एल्गोरिदम एक नापसैक भरने के लिए अच्छी तरह से एक knapsack भरने के लिए अच्छी तरह से काम करता है। लेकिन क्या एक कुशल ज्ञात एल्गोरिदम है जो 2 knapsacks को बेहतर रूप से भर देगा (क्षमता असमान हो सकती है)?2 knapsacks भरने का इष्टतम तरीका?
मैंने निम्नलिखित दो दृष्टिकोणों का प्रयास किया है और उनमें से कोई भी सही नहीं है।
- पहले एक knapsack भरने के लिए मूल डीपी एल्गोरिदम का उपयोग करके पहले knapsack भरें और फिर अन्य knapsack भरें।
- पहले आकार W1 + W2 का एक knapsack भरें और फिर समाधान को दो समाधानों में विभाजित करें (जहां W1 और W2 दो knapsacks की क्षमताओं हैं)।
समस्या बयान (देखें भी विकिपीडिया पर Knapsack Problem):
हम (प्रत्येक आइटम एक वजन और एक मूल्य है) इतनी के रूप में मान बढ़ाने के लिए आइटम का एक समूह के साथ नैपसैक भरना चूंकि हम कुल वजन को नापसैक आकार से कम या उसके बराबर रखते हुए आइटम से प्राप्त कर सकते हैं।
हम एक आइटम का कई बार उपयोग नहीं कर सकते हैं।
- हम किसी आइटम का एक हिस्सा उपयोग नहीं कर सकते हैं। हम किसी वस्तु का अंश नहीं ले सकते हैं। (प्रत्येक आइटम या तो पूरी तरह से शामिल किया जाना चाहिए या नहीं)।
मैंने उसी पुनरावृत्ति के बारे में सोचा लेकिन मुझे लगता है कि हमें एक विशेष मामले में एक समस्या है। मान लीजिए 'डीपी [डब्ल्यू 1 - ए [i]। वजन, डब्ल्यू 2] + एक [i]। गेन' और 'डीपी [डब्ल्यू 1, डब्ल्यू 2 - ए [i]। वजन] + एक [i] .gain' बराबर हैं। तो आप संबंध कैसे तोड़ेंगे? इस समाधान पर इसके परिणाम हैं जैसे कि हमारे वजन के आइटम 2,5,4 और मूल्य क्रमशः 2,5,4 और वजन 5 और 6 के दो knapsacks हैं। फिर इस एल्गोरिदम को लागू करने के लिए, हमें यह चुनना होगा कि आइटम को पहले knapsack या दूसरे में वजन 2 के साथ रखना है या नहीं। इस निर्णय का स्वाभाविक रूप से हमारे सही इष्टतम समाधान पर परिणाम होंगे। –
@NikunjBanka - मुझे नहीं लगता कि यह एक समस्या है। आप आइटम को पहले डीपैसैक में 'डीपी [2, 0]' पर और दूसरे डीपैपैक में 'डीपी [0, 2]' पर वजन दो के साथ रखेंगे - ताकि आप दोनों संभावनाएं रख सकें। मेरा सुझाव है कि आप एल्गोरिदम को लागू करने का प्रयास करें और देखें कि यह कैसा व्यवहार करता है। यदि आप किसी कारण से नहीं कर सकते हैं, तो मुझे बताएं और मैं एक कार्यान्वयन प्रदान करूंगा। – IVlad
@IVlad, यह समझ में नहीं आया कि आपका समीकरण कैसे काम करता है। यदि डीपी [डब्ल्यू 1, डब्ल्यू 2] डीपी [डब्ल्यू 1, डब्ल्यू 2] पर कॉल करें। स्लॉट डीपी [डब्ल्यू 1, डब्ल्यू 2] क्या शुरू हुआ था? मैं भी पूछना चाहता हूं कि आइटम की सूची (आपके उत्तर में सरणी) को –