क्या इस पथ की समस्या की जटिलता ज्ञात है?


9

उदाहरण: एक अप्रत्यक्ष ग्राफG दो प्रतिष्ठित कोने के साथ st, और एक पूर्णांक ।k0

प्रश्न: वहाँ एक मौजूद है में पथ अधिक से अधिक, ऐसा है कि पथ intersects त्रिकोण? (इस समस्या के लिए एक मार्ग को एक त्रिभुज को काटना कहा जाता है, यदि पथ में त्रिभुज से कम से कम एक किनारे होता है।)stGk


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

3
@ सईद मुझे समझ नहीं आ रहा है: क्या तर्क है कि ओवरकाउंटिंग आपको एक उप-मार्ग का चयन नहीं करता है? आपका एल्गोरिथ्म निश्चित रूप से 2-सन्निकटन है। हो सकता है कि एक फिक्स और दोनों(u,w)uvw(u,v)(v,w)
सैशो निकोलेव

2
ठीक है, हम u से v तक जा सकते हैं और फिर हम x (त्रिकोण uvw में कुछ अन्य नोड नहीं) का चयन करते हैं, तब हम w पर जाते हैं जो गलत है (मेरी गलती यह थी कि मैं वर्टिकल के बीच में चूक गया था जो कि त्रिकोण uvw में नहीं हैं) , लेकिन अपने फिक्स के साथ यह सही है क्योंकि मूल ग्राफ में त्रिकोण के साथ हर पथ के लिए सहायक ग्राफ में वजन का एक रास्ता है । इसके अलावा नए ग्राफ में पथ का वजन हमेशा कम से कम होता है क्योंकि मूल ग्राफ में संबंधित पथ में त्रिकोणों की संख्या होती है। αα
सईद

1
मैं इसके बारे में थोड़ा और विचार देता हूं, यहां तक ​​कि फिक्स होने के बाद भी यह काम नहीं करता है। खेद है कि अगर मैं एक गलत आशा लाया। यह देखने के लिए कि फ़िक्सेस गलत क्यों माना जाता हैu>v>w>x एक रास्ते में P और हमारे पास एक त्रिकोण है u,v,w तथा v,w,x और मान लीजिए किनारों vx तथा uwबहुत सारे त्रिभुजों के लिए घटना है। यदि हम एक कृत्रिम नए किनारे का उपयोग करते हैं जो जोड़ता हैu>w फिर हमने त्रिकोण को गिना v,w,xदो बार। पुनश्च: मेरा तर्क फिर से गलत था क्योंकि मुझे लगा कि हम बस प्रतिस्थापित करते हैंu>v तथा v>w नए (बहु) किनारे के साथ u>w। यदि हम हर रास्ते के लिए उन कृत्रिम किनारों को जोड़ते हैं तो यह तुच्छ रूप से काम करेगा। लगता है कि यह एनपीसी है।
सईद

1
मेरा विचार काम नहीं करेगा - मुझे कई सेट बनाए रखने की आवश्यकता होगी, और मुझे लगता है कि उनमें से बहुत सारे होंगे।
रीइनियरपायरपोस्ट

जवाबों:


1

मान लें कि कोई स्व-किनारे नहीं हैं G

नोड के बीच प्रत्येक किनारे के लिए vi तथा vj में G, चलो E[i,j]=1, तथा E[i,j]=0अगर कोई किनारा नहीं है। गणना करनाn×n आव्यूह C[i,j]=k=1nE[i,k]E[k,j], जो प्रत्येक जोड़ी नोड्स के बीच दो-हॉप पथों की संख्या देता है vi तथा vj। फिर बीच में बढ़त के लिएvi तथा vj में G गणना करना D[i,j]=E[i,j]C[i,j] अन्यथा सेट करें D[i,j]=, जो त्रिभुज की संख्या देता है किनारे का हिस्सा है (या यदि कोई किनारा नहीं है तो अनंत)। गणना करने के लिए आवश्यक मैट्रिक्स गुणनC लागत O(n3) (की गणना के आधार पर तेजी से गणना की जा सकती है G)।

अब गणना करें n×n आव्यूह A, ऐसा है कि A[i,j]=min(D[i,j],mink(D[i,k]+D[k,j]E[i,j]))। , सभी त्रिकोणों के दो किनारों के साथ जाने वाले रास्तों के लिए दो लंबाई तक की सबसे छोटी पथ है ।AD

अब बस बीच कम से कम पथ की गणना और में एक नया ग्राफ पर जिनमें से डिज्कस्ट्रा (के बाद से सभी किनारे वजन सकारात्मक रहे हैं) यानी का उपयोग कर (भारित) निकटता मैट्रिक्स है और यह निर्धारित करता है, तो , जहां उष्णकटिबंधीय सेमिनार (जो दूरी मैट्रिक्स देता है) पर बंद है।vivjGAA[i,j]kA

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