डबल वेट पैरामीटर्स के साथ मिनिमल स्पैनिंग ट्री


12

एक ग्राफ पर विचार करें G(V,E)। प्रत्येक बढ़त e दो भार है Ae और Be । एक फैले पेड़ है कि उत्पाद को कम करता है का पता लगाएं (eTAe)(eTBe) । एल्गोरिथ्म को बहुपत्नी काल में सम्मान के साथ चलना चाहिए |V|,|E|

मुझे लगता है कि पेड़ों (क्रुस्कल, प्राइम, एज-डीलेटियन) पर किसी भी पारंपरिक एल्गोरिदम को अनुकूलित करना मुश्किल है। इसे कैसे हल करें? कोई संकेत?


emax(Ae,Be)

3
क्या यह एक होमवर्क समस्या / व्यायाम है? यदि हां, तो क्या यह एक पाठ्यपुस्तक से है? कारण मैं पूछता हूं कि संदर्भ समस्या को "रिवर्स-इंजीनियर" करने में मदद कर सकता है। यह तुरंत स्पष्ट नहीं है कि एक लालची एल्गोरिथ्म यहां उपयुक्त है, लेकिन अगर यह लालची एल्गोरिदम के अध्याय से आता है ...
जो

1
@utdiscant, कि अभ्यस्त काम। नकारात्मक किनारे उपयोगी हो सकते हैं।
निकोलस मंचु

सकारात्मक किनारों के लिए भी उपयोगी नहीं है, उदाहरण के लिए, ज्यादातर मामलों में जोड़ी (10,10) जोड़ी (11,1) से बेहतर नहीं है।

जवाबों:


1

मैं मान रहा हूँ कि आपको नकारात्मक भारित किनारे नहीं दिए गए हैं, क्योंकि नकारात्मक भार होने पर यह काम नहीं कर सकता है।

कलन विधि

अपने प्रत्येक किनारे के लिए, उन्हें से लेबल करेंएन1n

चलो बढ़त संख्या का वजन एक iaii

आइए वजन B को किनारे की संख्या मैंbii

इस तालिका को तैयार करें

   |a_1 a_2 a_3 a_4 .. a_n
---+-------------------------
b_1|.........................
b_2|.........................
 . |.........................
 . |.........................
b_n|...................a_n * b_n

तालिका तत्वों में से प्रत्येक पंक्ति और स्तंभ का उत्पाद होने के साथ।

प्रत्येक किनारे के लिए, संबंधित तालिका पंक्ति और कॉलम को योग करें (और दो बार अभिव्यक्त किए जाने के बाद से चौराहे में तत्व को हटाने के लिए याद रखें)।

उस किनारे को ढूंढें जिसमें सबसे बड़ा योग है, इस किनारे को हटा दें यदि यह ग्राफ़ को डिस्कनेक्ट नहीं करता है। किनारे को आवश्यक रूप से चिह्नित करें अन्यथा। यदि कोई किनारे को हटा दिया गया है, तो इसकी पंक्तियों और स्तंभों को 0 से भरें।

यथार्थता

परिणाम स्पष्ट रूप से एक पेड़ है।

परिणाम स्पष्ट रूप से फैले हुए हैं क्योंकि कोई कोने काटे नहीं गए हैं।

परिणाम न्यूनतम है? यदि कोई दूसरा किनारा है जिसका विलोपन एल्गोरिथ्म के अंत में एक छोटे से फैले हुए पेड़ का निर्माण करेगा, तो उस किनारे को पहले हटा दिया जाएगा और शून्य कर दिया जाएगा। (अगर कोई मेरी मदद कर सकता है इसे थोड़ा और कठोर / और / या काउंटर उदाहरण दें तो यह बहुत अच्छा होगा)

क्रम

स्पष्ट रूप से बहुपद।|V|

संपादित करें

(2,11),(11,2),(4,6) है नहीं एक काउंटर उदाहरण।

a1=2,a2=11,a3=4

b1=11,b2=2,b3=6

फिर

   | 2     11     4
---+--------------------
11 | 22    121    44
 2 | 4     22     8
 6 | 12    66     24

(4,6)=44+8+24+66+12=154(2,11)=22+4+12+121+44=203(11,2)=121+22+66+4+8=221

(11,2) हटा दिया जाता है।

साथ समाप्त करें(2,11),(4,6)=617=102

अन्य फैले हुए पेड़ हैं

(11,2),(4,6)=1512=180

(2,11),(11,2)=1313=169


1
यह मुझे लगता है, यह एक लालची aproach है। मैं आपके अतिसूक्ष्मवाद के "प्रमाण" से आश्वस्त नहीं हूं।
Nejc

1
@SaeedAmiri यह एक काउंटर उदाहरण कैसे है? मैंने संपादित अनुभाग में काम पोस्ट किया है, एल्गोरिथ्म सही परिणाम देता है।
हेरप डेरपिंगटन

1
आपने जो किया है वह यह पता लगा रहा है कि प्रत्येक योगदान करता है , और आप उन लोगों को चुनते हैं जिनका सबसे अधिक प्रभाव पड़ता है। यह अच्छा है, लेकिन यह आवश्यक नहीं है। यह एक पेचीदा सवाल है। यदि आप अपना उत्तर सुधारना चाहते हैं, तो आपको एक प्रमाण के साथ आने की आवश्यकता है। नहीं तो कोई फायदा नहीं है। (ai,bi)eEai.eEbi
एजे

यद्यपि आपके प्रयास के लिए डाउन वोट प्राप्त करना बहुत अनुचित है।
एजे

@AJed प्रमाण प्राइम / कुश / रिवर्स डिलीट के समान ही है। अब हमें यह साबित करना है कि कट की संपत्ति अभी भी है।
हर्प डेरपिंगटन

1

यह http://www.cnblogs.com/autsky-jadek/p/3959446.html से समाधान है ।

हम हर फैले हुए पेड़ को समतल में एक बिंदु के रूप में देख सकते हैं, जहाँ का वजन , y का योग। लक्ष्य को कम से कम करना है ।xyxeTAeeTBexy

  1. वजन और वजन अनुसार न्यूनतम फैले हुए पेड़ का पता लगाएं । इसलिए हमारे पास एक्स प्लेन में दो बिंदु हैं । प्लेन में फैले सभी ट्री पॉइंट्स में का न्यूनतम , का न्यूनतम ।ABA,BAxBy

  2. अब हम त्रिभुज में एक बिंदु खोजने का लक्ष्य रखते हैं , जिसमें रेखा के लिए अधिकतम दूरी हो , ताकि हम त्रिभुज में सभी बिंदुओं के लिए लिए मान कम से कम कर सकें ।COABABxyCABC

क्योंकि ।2SABC=|AB×AC|=(BxAx,ByAy)×(CxAx,CyAy)=(BxAx)Cy+(AyBy)CxAy(BxAx)+Ax(ByAy)

  1. ध्यान दें कि एक स्थिरांक है, इसलिए अब हम अधिकतम लक्ष्य कर रहे हैं । इसलिए हम एक नया ग्राफ बनाते हैं , जबकि वजन । अब हम पर एक अधिकतम फैले हुए वृक्ष को चलाते हैं। बिंदु पाने के लिए ।Ay(BxAx)+Ax(ByAy(BxAx)Cy+(AyBy)CxG=(V,E)w(e)=Be(BxAx)+Cx(AyBy)GC

  2. पर उपरोक्त एल्गोरिथ्म को पुनरावर्ती रूप से चलाएं , जब तक कि और बीच अधिक फैले हुए वृक्ष न हों ।बी सी , सी OBC,OACBC,ACO

  3. अब हमें संभावित फैले पेड़ों का एक सेट मिलता है। प्रत्येक पेड़ के लिए न्यूनतम पेड़ प्राप्त करने के लिए मूल्य की गणना करें ।xy

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