0/1 Knapsack Problem using Dynamic Programming in Hindi | 0/1 नैपसैक समस्या डायनेमिक प्रोग्रामिंग द्वारा
0/1 नैपसैक समस्या क्या है? (0/1 Knapsack Problem in Hindi)
0/1 नैपसैक समस्या (0/1 Knapsack Problem) एक ऑप्टिमाइज़ेशन समस्या है जिसमें एक निश्चित क्षमता (Capacity) वाले बैग में वस्तुओं (Items) को इस प्रकार से रखा जाता है कि कुल मूल्य (Total Value) अधिकतम हो।
0/1 नैपसैक समस्या की विशेषताएँ (Characteristics of 0/1 Knapsack Problem)
- प्रत्येक वस्तु को या तो पूरी तरह से बैग में रखा जा सकता है या बिल्कुल नहीं।
- वस्तु को टुकड़ों में विभाजित नहीं किया जा सकता।
- समस्या को डायनेमिक प्रोग्रामिंग (Dynamic Programming) का उपयोग करके हल किया जाता है।
0/1 नैपसैक समस्या का गणितीय स्वरूप (Mathematical Formulation of 0/1 Knapsack)
मान लीजिए कि हमारे पास n वस्तुएं हैं और प्रत्येक वस्तु का एक निश्चित भार (Weight) और मूल्य (Value) है।
- W: बैग की अधिकतम क्षमता
- wt[i]: वस्तु i का भार
- val[i]: वस्तु i का मूल्य
उद्देश्य (Objective Function):
Maximize: Σ val[i] (जहाँ i उन वस्तुओं का सूचकांक है जो बैग में हैं) Subject to: Σ wt[i] ≤ W
डायनेमिक प्रोग्रामिंग द्वारा 0/1 नैपसैक समस्या का हल (Solving 0/1 Knapsack using Dynamic Programming)
समस्या को हल करने के लिए एक 2D डायनेमिक प्रोग्रामिंग टेबल बनाई जाती है।
Knapsack(W, wt[], val[], n) 1. एक टेबल dp[][] बनाएं जिसका आकार (n+1) x (W+1) हो। 2. प्रारंभिक स्थिति: यदि W = 0 या n = 0, तो dp[i][w] = 0। 3. प्रत्येक वस्तु के लिए: a. यदि वर्तमान वस्तु का भार बैग की क्षमता से अधिक है, तो इसे छोड़ दें: dp[i][w] = dp[i-1][w] b. अन्यथा, दो संभावनाओं में से अधिकतम चुनें: dp[i][w] = max(val[i-1] + dp[i-1][w - wt[i-1]], dp[i-1][w]) 4. अंतिम उत्तर dp[n][W] में मिलेगा।
0/1 नैपसैक का उदाहरण (Example of 0/1 Knapsack Problem)
मान लीजिए कि हमें निम्नलिखित वस्तुएं दी गई हैं:
वस्तु | भार (Weight) | मूल्य (Value) |
---|---|---|
1 | 2 | 40 |
2 | 3 | 50 |
3 | 4 | 70 |
4 | 5 | 80 |
यदि बैग की क्षमता W = 5 है, तो अधिकतम मूल्य 90 होगा, जिसमें वस्तुएं (2,4) सम्मिलित की जाएँगी।
0/1 नैपसैक एल्गोरिदम की समय जटिलता (Time Complexity of 0/1 Knapsack)
- समय जटिलता: O(n × W) (डायनेमिक प्रोग्रामिंग तालिका भरने के कारण)
- स्थान जटिलता: O(n × W) (2D टेबल स्टोरेज के कारण)
0/1 नैपसैक की अनुप्रयोग (Applications of 0/1 Knapsack Problem)
- संसाधन आवंटन (Resource Allocation)
- पोर्टफोलियो ऑप्टिमाइज़ेशन (Portfolio Optimization)
- बैकपैकिंग और स्टोरेज प्लानिंग
- कंप्यूटर नेटवर्क में डेटा पैकेट शेड्यूलिंग
निष्कर्ष
0/1 नैपसैक समस्या एक महत्वपूर्ण ऑप्टिमाइज़ेशन समस्या है जो कई व्यावहारिक अनुप्रयोगों में उपयोग की जाती है। डायनेमिक प्रोग्रामिंग का उपयोग करके इसे O(n × W) समय में हल किया जा सकता है।
Related Post
- एल्गोरिथम क्या है? (Algorithms in Hindi) | परिभाषा, प्रकार और महत्व
- Designing Algorithm in ADA | एल्गोरिथम डिज़ाइन की प्रक्रिया और सिद्धांत
- एल्गोरिथम एनालिसिस क्या है? (Algorithm Analysis in Hindi) | परिभाषा, प्रकार और महत्व
- Asymptotic Notation in Hindi | एसिम्प्टोटिक नोटेशन क्या है?
- Divide and Conquer Technique in Hindi | डिवाइड एंड कॉन्कर तकनीक क्या है?
- Binary Search Algorithm in Hindi | बाइनरी सर्च एल्गोरिदम क्या है?
- Merge Sort Algorithm in Hindi | मर्ज सॉर्ट एल्गोरिदम क्या है?
- Quick Sort Algorithm in Hindi | क्विक सॉर्ट एल्गोरिदम क्या है?
- Strassen's Matrix Multiplication Algorithm in Hindi | स्ट्रासेन का मैट्रिक्स गुणा एल्गोरिदम
- Greedy Algorithm in Hindi | ग्रीडी एल्गोरिदम क्या है?
- Optimal Merge Pattern in Hindi | ऑप्टिमल मर्ज पैटर्न क्या है?
- Huffman Coding in Hindi | हफ्मन कोडिंग क्या है?
- Minimum Spanning Tree in Hindi | मिनिमम स्पैनिंग ट्री क्या है?
- Knapsack Problem in Hindi | नैपसैक समस्या क्या है?
- Job Sequencing with Deadlines in Hindi | जॉब सीक्वेंसिंग विथ डेडलाइन्स क्या है?
- Single Source Shortest Path Algorithm in Hindi | सिंगल सोर्स शॉर्टेस्ट पाथ एल्गोरिदम क्या है?
- Dynamic Programming in Hindi | डायनेमिक प्रोग्रामिंग क्या है?
- 0/1 Knapsack Problem using Dynamic Programming in Hindi | 0/1 नैपसैक समस्या डायनेमिक प्रोग्रामिंग द्वारा
- Multistage Graph in Hindi | मल्टीस्टेज ग्राफ क्या है?
- Reliability Design in Hindi | विश्वसनीयता डिज़ाइन क्या है?
- Floyd Warshall Algorithm in Hindi | फ्लॉयड वार्शल एल्गोरिदम क्या है?
- 8 Queen’s Problem in Hindi | 8 क्वीन्स समस्या क्या है?
- Hamiltonian Cycle in Hindi | हैमिल्टोनियन साइकिल क्या है?
- Graph Coloring Problem in Hindi | ग्राफ कलरिंग समस्या क्या है?
- Branch and Bound Method in Hindi | ब्रांच एंड बाउंड विधि क्या है?
- Traveling Salesman Problem in Hindi | ट्रैवलिंग सेल्समैन समस्या क्या है?
- Lower Bound Theory in Hindi | लोअर बाउंड थ्योरी क्या है?
- Parallel Algorithm in Hindi | समानांतर एल्गोरिदम क्या है?
- Height Balanced Tree in Hindi | हाइट बैलेंस्ड ट्री क्या है?
- 2-3 Tree in Hindi | 2-3 ट्री क्या है?
- NP-Completeness in Hindi | एनपी-कम्प्लीटनेस क्या है?