वर्टेक्स बाधाओं के साथ नकारात्मक चक्र का पता लगाएं


11

भारित किनारों के साथ एक ग्राफ को देखते हुए, हम एक नकारात्मक चक्र कैसे पा सकते हैं जिसमें किसी दिए गए शीर्ष सेट में कम से कम एक शीर्ष शामिल है ? धन्यवाद।{V1,V2,,Vk}


यह प्रश्न बहुत अस्पष्ट है। क्या, किनारों या कोने पर वजन? क्या , एक शीर्ष या शीर्ष का एक सेट है? वी {V1,V2,,Vk}V1
यिक्सिन काओ

@YixinCao ध्यान देने योग्य है, संपादित: किनारों पर भार, एक शीर्ष है। V1
तियानिई कुई

जवाबों:


8

यदि आपको चक्र को सरल होने की आवश्यकता नहीं है, तो इसके दृढ़ता से जुड़े घटकों में (निर्देशित) ग्राफ को , और दिए गए प्रत्येक वाले प्रत्येक घटक के लिए , जांचें कि क्या घटक में एक नकारात्मक चक्र है। यदि कोई घटक नहीं करता है, तो कोई भी नकारात्मक चक्र नहीं है जिसमें कोई । लेकिन अगर कुछ घटक करता है, तो आप नकारात्मक चक्र की कई प्रतियों को ले कर युक्त एक (गैर-सरल) ऋणात्मक चक्र पा सकते हैं , और उस पथ से चक्र में तक कुछ रास्तों को । (वांछित चक्र के निहित प्रतिनिधित्व को खोजने के लिए कुल समय एक निर्देशित ग्राफ में नकारात्मक चक्र को खोजने के लिए समय के समान होगा, जैसे कि , अगर मुझे याद है।)वी मैं वी मैं वी मैं हे ( एन एम )ViViViViO(nm)

यदि आपको सरल होने के लिए चक्र की आवश्यकता होती है, तो समस्या एनपी-पूर्ण हो जाती है, भले ही केवल एक ही शीर्ष दिया गया हो। (आप समस्या का Hamiltonian पथ कम कर सकते हैं: किसी दिए गए स्रोत से एक Hamiltonian पथ को खोजने के लिए एक दिया सिंक करने के लिए किसी दिए गए ग्राफ में , मौजूदा किनारों वजन दे -1, तो शीर्ष एक कृत्रिम जोड़ने लागत के दो किनारों के साथ प्रत्येक, एक से और एक से ।) एस टी जी वी 1 एन / 2 - 0.01 वी 1 एस टी वी 1V1STGV1N/20.01V1STV1

यदि आप चक्र को लंबवत लेकिन किनारों को दोहराने की अनुमति देते हैं, तो मेरा मानना ​​है कि यह अभी भी एनपी-पूर्ण है (एक समान कमी के द्वारा, लेकिन प्रत्येक वर्टेक्स को एक निर्देशित किनारे को एक मानक तरीके से विभाजित करते हुए )।( v , v )v(v,v)


2
मुझे यह उत्तर मेरी तुलना में बहुत अच्छा लगा।
डेविड एप्पस्टीन जूल

6

मैं मान रहा हूँ कि आपका इनपुट एक निर्देशित ग्राफ है; मैं नहीं जानता कि अप्रत्यक्ष मामले के लिए यह कैसे करना है।

अपने ग्राफ के वर्टेक्स सेट की प्रतियां बनाएँ , जहाँ ग्राफ में कोने की संख्या है। से प्रत्येक किनारे की जगह करने के लिए किनारों से जाना द्वारा अपने मूल ग्राफ में कॉपी के कॉपी करने के लिए के , के सभी विकल्पों के लिए । साथ ही, यदि निर्दिष्ट शिखर सेट नहीं बल्कि अन्यथा के अंतर्गत आता है, यह भी एक बढ़त है कि नकल से चला जाता है शामिल हैं के कॉपी करने के लिए 0 के वीn u v i u u i + 1 v i u i unnuviui+1viuiu0v

विस्तारित ग्राफ में चक्र सभी मूल ग्राफ में चक्रों तक वापस आते हैं, लेकिन विस्तारित ग्राफ़ में प्रत्येक चक्र में निर्दिष्ट कोने में से एक होता है (अन्यथा आप विस्तार की परतों के माध्यम से पीछे नहीं जा सकते हैं), इसलिए मूल ग्राफ़ में शामिल हैं एक नकारात्मक चक्र जिसमें एक निर्दिष्ट शीर्ष स्थान होता है यदि विस्तारित ग्राफ में कोई नकारात्मक चक्र होता है।


यदि मूल ग्राफ़ में कोने और m किनारे हैं, तो नवनिर्मित ग्राफ़ में n 2 कोने और n m किनारे होंगे। इसमें नकारात्मक चक्रों को खोजने के लिए O ( n 3 m ) समय की आवश्यकता होगी , जो बहुत बड़ा लगता है। मैं अभी भी बेहतर समाधान की प्रतीक्षा कर रहा हूं, और बहुत बहुत धन्यवाद! nmn2nmO(n3m)
तियानिई जुई

2
संभवतः अधिक समस्याग्रस्त है, जो चक्र यह पाता है वह जरूरी सरल नहीं होगा। क्या आपको सरल नकारात्मक चक्रों की आवश्यकता है?
डेविड एप्पस्टीन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.