हंगेरियन पद्धति (कुह्न-मुनरेस) के लिए औचित्य


14

मैंने वेब पर और यहां मिले लेक्चर नोट्स के आधार पर न्यूनतम वजन वाली द्विपद पूर्ण मिलान समस्या के लिए कुह्न-मुनरेस एल्गोरिथम का कार्यान्वयन लिखा। यह वास्तव में अच्छी तरह से काम करता है, यहां तक ​​कि हजारों कोने पर भी। और मैं मानता हूं कि इसके पीछे का सिद्धांत वास्तव में सुंदर है। और फिर भी मुझे अभी भी आश्चर्य है कि मुझे इतनी लंबाई में क्यों जाना पड़ा। मुझे लगता है कि ये व्याख्यान नोट्स यह नहीं समझाते हैं कि हम केवल प्राइमरी लीनियर प्रोग्राम क्यों नहीं ले सकते हैं और इसे सिम्पलेक्स विधि में पास कर सकते हैं। निश्चित रूप से मुझे संदेह है कि यह पूर्वानुमेय प्रदर्शन का प्रश्न है, लेकिन चूंकि मैंने इसे स्पष्ट रूप से नहीं देखा है, इसलिए मुझे यकीन नहीं है। प्राइमल के चरम बिंदु 0-1 में सिद्ध होते हैं, इसलिए ऐसा लगता है कि हम इसे दोहरे रूप में भी बनाए बिना सीधे एक सरल कार्यान्वयन के लिए खिला सकते हैं। या मैं सरलीकृत हो रहा हूं?

जवाबों:


16

(एक टिप्पणी से आगे बढ़ा।)

बेशक आप एक सामान्य-उद्देश्य एलपी सॉल्वर का उपयोग करके किसी भी एलपी को हल कर सकते हैं, लेकिन विशिष्ट एल्गोरिदम में आमतौर पर बहुत बेहतर प्रदर्शन होता है।

यह न केवल सैद्धांतिक असममित प्रदर्शन की गारंटी के बारे में है, बल्कि व्यावहारिक वास्तविक दुनिया के प्रदर्शन के बारे में भी है। हंगेरियन पद्धति जैसे एल्गोरिदम बेहद सुव्यवस्थित हो सकते हैं और उन्हें सही ढंग से और कुशलता से लागू करना अपेक्षाकृत आसान है।

आप अक्सर सटीक तर्कसंगत संख्या बनाम फ़्लोटिंग पॉइंट नंबरों का उपयोग करने जैसे मुद्दों से भी बच सकते हैं; पूर्णांक के साथ सब कुछ आसानी से किया जा सकता है।


14

हालाँकि यह उत्तर सामान्य अर्थों में सही है, लेकिन विशेष रूप से यह समझने में मदद करने में मददगार है कि असाइन किए गए समस्या के लिए सरल सिम्प्लेक्स को लागू करने में क्या गलत है। वर्ग लागत मैट्रिक्स c_ij के साथ एक NxN असाइनमेंट समस्या पर विचार करें। इसी एलपी के पास हल करने के लिए N ^ 2 चर x_ij है। इन x_ij को एक वर्ग मैट्रिक्स X के रूप में सोचकर, एक व्यवहार्य समाधान के लिए आवश्यक है कि X एक क्रमचय मैट्रिक्स हो, जिसे हमारे LP में 2N-1 बाधाओं द्वारा लागू किया जाता है (यह पहली नज़र में लग सकता है कि 2N बाधाएँ हैं, प्रत्येक पंक्ति के लिए एक और प्रत्येक स्तंभ के लिए एक, लेकिन वे सभी स्वतंत्र नहीं हैं और हम उनमें से एक को छोड़ देते हैं)। एलपी बाधाओं इस प्रकार एक (2N-1) x (N ^ 2) मैट्रिक्स ए बनाते हैं।

अब, एक बुनियादी समाधान (2N-1) मूल चर का एक सेट चुनने से बनता है। हालाँकि, इस मूल समाधान के लिए भी संभव है, केवल उन चरों में से N का मान 1 हो सकता है, और अन्य (N-1) 0. हैं। इस प्रकार, हर संभव समाधान पतित है। इस अध: पतन के साथ समस्या यह है कि कोई भी (N-1) मूल चर जो 0 हैं, उनमें से किसी भी (N ^ 2-2N + 1) nonbasic चर के साथ स्वैप किया जा सकता है, एक तथाकथित "पतित धुरी", जिसमें कोई नहीं है उद्देश्य फ़ंक्शन के मूल्य पर प्रभाव [आप सिर्फ एक 0 चर दूसरे के लिए स्वैप कर रहे हैं]। जब एन बड़ा होता है, तो प्राइमल सिम्प्लेक्स एल्गोरिथ्म पतित पिवोट्स बनाने में बहुत समय बर्बाद करता है जो समाधान में सुधार नहीं करते हैं। यह इसका कारण है कि भोले-भाले सरल सिम्प्लेक्स एल्गोरिथ्म का उपयोग सीधे असाइनमेंट की समस्या को हल करने के लिए नहीं किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.