सामान्य अप्रत्यक्ष रेखांकन के लिए हंगेरियन एल्गोरिथ्म का सामान्यीकरण?


14

हंगेरियन एल्गोरिथम एक कॉम्बीनेटरियल ऑप्टिमाइज़ेशन एल्गोरिथ्म है जो बहुपद के समय में अधिकतम वजन वाले द्विदलीय मिलान की समस्या को हल करता है और महत्वपूर्ण प्राइमल-डुअल पद्धति के बाद के विकास का अनुमान लगाया है । एल्गोरिथ्म को 1955 में हेरोल्ड कुह्न द्वारा विकसित और प्रकाशित किया गया था, जिन्होंने "हंगरी एल्गोरिथम" नाम दिया था क्योंकि एल्गोरिथ्म दो हंगेरियन गणितज्ञों के पहले के कार्यों पर आधारित था: डेन्स कोनिग और जेनो एगर्व्री। मुनरेस ने 1957 में एल्गोरिथ्म की समीक्षा की और देखा कि यह वास्तव में बहुरूपिया है। तब से एल्गोरिथ्म को कुहन-मुनरेस एल्गोरिथ्म के रूप में भी जाना जाता है।

हालाँकि हंगेरियन में मौलिक-दोहरी पद्धति का मूल विचार शामिल है, यह किसी भी रैखिक प्रोग्रामिंग (एलपी) मशीनरी का उपयोग किए बिना सीधे अधिकतम वजन वाले द्विदलीय मिलान समस्या को हल करता है। इस प्रकार, निम्नलिखित प्रश्न के उत्तर में , जुक्का सुकोला ने टिप्पणी की

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

दूसरे शब्दों में, आपको इस बात की चिंता करने की ज़रूरत नहीं है कि एलपी सॉल्वर से तर्कसंगत / फ्लोटिंग पॉइंट सॉल्यूशन को कैसे राउंड किया जाए ताकि किसी दिए गए बिपर्टाइट ग्राफ का अधिकतम वज़न परफेक्ट मिलान हो सके।

मेरा प्रश्न निम्नलिखित है:

क्या हंगरी एल्गोरिथ्म का एक सामान्यीकरण है जो एलपी मशीनरी के उपयोग के बिना सामान्य अप्रत्यक्ष ग्राफ के लिए काम करता है जो मूल हंगेरियन एल्गोरिथम की भावना के समान है?

मैं कुछ मूल जटिल पेपर के बजाय आधुनिक और आसानी से पढ़ा जाने वाला एक्सपोज़र पसंद करूंगा। लेकिन किसी भी सूचक की बहुत सराहना की जाएगी!

अग्रिम और मेरी क्रिसमस में बहुत धन्यवाद !!!


अपडेट: सवाल नीचे अरमान द्वारा अच्छी तरह से उत्तर दिया गया है। मैं सिर्फ यह बताना चाहता हूं कि एडमंड्स ब्लॉसम एलगोरिदम (भारित मामले के लिए) का अध्ययन करने के लिए एक और अच्छा स्रोत कोर्टे और ऑक्सीजन द्वारा संयुक्त 11 वें अध्याय का संयोजन है । Google पुस्तक वास्तव में एल्गोरिथ्म को समझने के लिए आवश्यक सभी भागों को दिखाती है।


2
एडमंड्स के मिलान एल्गोरिदम के बारे में कैसे? en.wikipedia.org/wiki/Edmonds%27s_matching_algorithm
अरमान

1
@ अरमान - यही मैं भी सोच रहा था। लिंक के लिए धन्यवाद, विकिपीडिया में एडमंड के ब्लॉसम एल्गोरिथ्म का आश्चर्यजनक विस्तृत विवरण है।
अब्राहम फ्लैक्समैन

2
वैसे, एडमंड्स का मैचिंग एल्गोरिदम भी प्राइमल-डुअल विधि पर आधारित है।
अरमान

1
धन्यवाद अरमान। विकिपीडिया लिंक एडमंड्स के एल्गोरिथ्म के भारित संस्करण के लिए "लोवेज़, लेज़्ज़्लो; प्लमर, माइकल (1986)" पुस्तक से मेल खाता है। मुझे वास्तव में उस पुस्तक को देखना चाहिए। आपकी टिप्पणी के लिए बहुत बहुत धन्यवाद! हो सकता है कि यदि आप में से कोई भी उच्च स्तर में समझा सके कि एल्गोरिथ्म हंगरी एल्गोरिथ्म को कैसे सामान्य करता है, तो आप निश्चित रूप से इसका उत्तर दे सकते हैं।
दाई ले

1
मुझे लगता है कि यह एक बहुत अच्छा जवाब है :)। अरमान, आपको इसे इस तरह जोड़ना चाहिए
सुरेश वेंकट

जवाबों:


16

एडमंड्स का मैचिंग एल्गोरिथ्म (जिसे ब्लॉसम एलगोरिदम भी कहा जाता है) सामान्य रेखांकन पर अधिकतम मिलान को हल करता है। वास्तव में यह वैकल्पिक पथ विधि का एक सामान्यीकरण है। (मैं विधि के नाम के बारे में निश्चित नहीं हूं लेकिन यह कॉनिग-हॉल विधि है।) यह मूल रूप से संवर्धित पथ (विकिपीडिया पृष्ठ देखें: http://en.wikipedia.org/wiki/Edmonds%27s .matching_al एल्गोरिदम ) का विस्तार करने के लिए वर्तमान मिलान और रुक जाता है यदि कोई अधिक संवर्धित पथ नहीं है। सामान्य रेखांकन में, केवल समस्या विषम चक्रों में होती है। एडमंड्स के मिलान एल्गोरिथ्म में विषम चक्रों (फूल) का संकुचन किया जाता है और एक समाधान के लिए वापस खर्च किया जाता है।

ब्लॉसम एलगोरिदम और प्राइमल डुअल विधि के बीच एक पत्राचार भी है। अजीब चक्र भिन्नात्मक चरम बिंदुओं का कारण बनते हैं। इसलिए हम प्रत्येक विषम चक्र के लिए तथाकथित असमान असमानताएं जोड़ते हैं।

न्यूनतम भारित परिपूर्ण मिलान और अधिकतम वजन मिलान की समस्याओं को भी इस दृष्टिकोण से नियंत्रित किया जा सकता है।

एल्गोरिथ्म के विवरण के लिए, http://en.wikipedia.org/wiki/Edmonds%27s_matching_algorithm http://www.cs.berkeley.edu/~karp/greatalgo/lecture05.pdf देखें

गणितीय निरूपण और तत्सम-द्विगुणात्मक विधि के लिए, http://webdocs.cs.ualberta.ca/~mreza/courses/CombOpt09/lecture4.pdf देखें


9

दो साल पहले, जब (अनवीटेड) ब्लॉसम एल्गोरिथ्म पर शोध किया गया, तो मुझे नोट के दो शानदार सेट मिले, एक टारजन द्वारा और एक ज़्विक द्वारा। उन्होंने अनवीटेड केस को काफी सीधा-साधा बना दिया और मैं पुनरावृत्ति का उपयोग करते हुए मैथेमेटिका में इसे लागू करने में सक्षम था। यह काफी अच्छी तरह से काम करता है।

मुझे जो नोट उपयोगी लगे, वे हैं

http://www.cs.tau.ac.il/~zwick/grad-algo-06/match.pdf और http://www.cs.dartmouth.edu/~ac/Teach/CS105-Winter05/Handouts/ Tarjan-blossom.pdf

वे इसे बहुत ही सरल शब्दों में पूरा करते हैं, जो एक पुनरावर्ती सोचने के लिए अनुमति देता है और फिर, जैसा कि कहा गया है, पुनरावर्ती कार्यक्रम।

मुझे लगता है कि यह सब भारित मामले में काम करना चाहिए, जिसे मैं अब लागू करने की कोशिश कर रहा हूं।


और मैं क़ौम कि मुफ्त सॉफ्टवेयर के साथ किसी के द्वारा देखा जा सकता है है: पहले एक शो अच्छी तरह से खिलना .... < demonstrations.wolfram.com/... > < demonstrations.wolfram.com/TheHungarianMaximumMatchingAlgorithm > < demonstrations.wolfram.com/ PlacingDominoesOnACheckerboard >
स्टेन वैगन

और मैंने अभी-अभी अनवील ब्‍लॉसम का प्रोग्राम किया है जैसा कि कोर्टे / विज्‍जन में दिया गया है। मुझे लगता है कि उनके कोड में कुछ स्पीडअप संभव हैं (उदाहरण के लिए, अधिकतम मिलान के साथ शुरू, जैसा कि कुछ भी विरोध नहीं है), लेकिन अच्छी बात यह है कि उनके प्रक्रियात्मक कोड को इस रूप में दिया गया है कि कोई आसानी से काम करने वाले कोड में अनुवाद कर सकता है। अगला: भारित खिलना, जो बहुत कठिन है।
स्टेन वैगन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.