2016-07-26 9 views
8

जबकि मानक knapsack समस्या को गतिशील प्रोग्रामिंग द्वारा हल किया जा सकता है, मैं अपनी अवधारणा को दूर करने के लिए समस्या को थोड़ा मोड़ने की कोशिश कर रहा हूं, हालांकि मुझे लगता है कि मैंने इसे सोचा जितना कठिन हो सकता है।पारस्परिक रूप से अनन्य वस्तुओं के साथ नापसैक

मूल नेप्सेक समस्या है कि आकार W साथ नेप्सेक, और आइटम जो वजन w[i] और एक मूल्य v[i] है की एक सूची दी गई है, आइटम जो उच्चतम कुल मूल्य के साथ नेप्सेक में फिट कर सकते हैं के सबसेट पाते हैं।

मेरी समझ के लिए, यह गतिशील प्रोग्रामिंग के साथ O(Wn) द्वारा किया जा सकता है, जहां n आइटम की संख्या है।


अब अगर मैं m constrains जोड़ने के लिए, उनमें से प्रत्येक केवल आपसी विशेष रूप से उठाया जा सकता है जो मदों की एक जोड़ी है की कोशिश (यानी अगर कोई आइटम एक और आइटम बी के एक विवश मौजूद हैं, तो मैं केवल ले जा सकते हैं उनमें से एक या दोनों नहीं)

ऐसी बाधाओं के तहत, क्या इस समस्या को अभी भी O(Wn) में गतिशील प्रोग्रामिंग द्वारा हल किया जा सकता है?

उत्तर

6

मानदंड: प्रत्येक तत्व को लगभग एक बाधा में शामिल किया गया है।
1. आइटम समाधान
2. में शामिल है:

प्रत्येक आइटम के लिए दो मामलों हो सकता है:

सामान्य नेप्सेक समस्या के लिए, इष्टतम उपसंरचना कि समस्या दर्शाती है इस प्रकार है आइटम समाधान में शामिल नहीं है।

इसलिए, n वस्तुओं के लिए इष्टतम समाधान निम्नलिखित दो मानों द्वारा अधिकतम दिया जाता है।
1. अधिकतम मूल्य n-1 आइटम और W वजन से प्राप्त किया गया।
2. v_n + अधिकतम मूल्य n-1 आइटम और W-w_n वजन से प्राप्त किया गया।

अब हम जोड़ने अगर बाधा कि n वें या (n-1) वें आइटम में से किसी समाधान में मौजूद कर सकते हैं, तो n मदों के लिए इष्टतम समाधान तीन मानों निम्न में से अधिकतम द्वारा दिया जाता है।
1. अधिकतम मूल्य n-2 आइटम और W वजन से प्राप्त किया गया।
2. v_n + अधिकतम मूल्य n-2 आइटम और W-w_n वजन से प्राप्त किया गया।
3. v_(n-1) + अधिकतम मूल्य n-2 आइटम और W-w_(n-1) वजन से प्राप्त किया गया।

इसलिए हम तत्वों की प्रत्येक जोड़ी को एक तत्व के रूप में बाधा में मानते हैं और O(Wn) समय में गतिशील प्रोग्रामिंग एल्गोरिदम निष्पादित करते हैं।

+0

अभी भी पचता है लेकिन मेरे लिए बहुत मान्य लगता है ... बस मेरे दिमाग को साफ़ करने के लिए, इसका मतलब यह है कि यदि प्रत्येक बाधा एक जोड़ी नहीं है, लेकिन वस्तुओं का एक सेट है, जिसमें प्रत्येक आइटम पारस्परिक रूप से अनन्य होना चाहिए, जो अभी भी हो सकता है उसी एल्गोरिदम का उपयोग किया जिसमें ओ (डब्ल्यूएन) समय है? – shole

+0

@ शोल जब तक बाधाएं ओवरलैप नहीं हो रही हैं (कोई भी एक से अधिक बाधाओं में मौजूद नहीं है), इस दृष्टिकोण को बाधाओं में कई वस्तुओं तक बढ़ाया जा सकता है। –

+0

धन्यवाद, मैं इस अवधारणा का उपयोग करके एक साधारण कोड को लागू करने की कोशिश कर रहा हूं, इसे समाप्त करने के बाद इसे एएसएपी स्वीकार करूँगा ... – shole

संबंधित मुद्दे

 संबंधित मुद्दे