एक निर्देशित ग्राफ में एक ही लंबाई के कम से कम दो रास्ते खोजना


20

मान लीजिए हमारे पास एक निर्देशित ग्राफ और दो नोड्स और । मैं जानना चाहूंगा कि क्या निम्नलिखित निर्णय समस्या की गणना के लिए पहले से ही एल्गोरिदम हैं:बीG=(V,E)AB

क्या ही लंबाई के और के बीच कम से कम दो रास्ते हैं ?AB

जटिलता के बारे में कैसे? क्या मैं इसे बहुपद समय में हल कर सकता हूं?


मैं ग्राफ पर एक नई बाधा जोड़ना चाहूंगा, हो सकता है कि समस्या अधिक हल हो। आसन्न मैट्रिक्स पर, प्रत्येक स्तंभ खाली नहीं है। तो, प्रत्येक नोड में इनपुट पर कम से कम एक तीर होता है और कम से कम एक नोड स्वयं से जुड़ा होता है। इसलिए यदि नोड -th नोड है, तो ग्राफ में बढ़त है।( i , i )i(i,i)


क्या आपका मतलब आसान रास्तों से था? (प्रत्येक नोड पर एक बार में जाने पर), क्या उन्हें एक सामान्य आंतरिक नोड की अनुमति है?

1
नहीं, रास्तों पर कोई प्रतिबंध नहीं है। यदि आप चाहें, तो आप लूप कर सकते हैं।
पाओलो पेरिस टी।

आसान अवलोकन यह है: अगर वहाँ के बीच सिर्फ एक सरल मार्ग है , और इस सरल मार्ग में अधिकतम एक पाश से जुड़ा है, तो आप बस कह सकते हैं , यदि इस सरल मार्ग से जुड़ा अलग लंबाई के कम से कम दो छोरों है , आप हाँ कह सकते हैं, .... (मुझे लगता है कि ऐसी ही चीजें उपयोगी हैं और आप इसे साबित कर सकते हैं), लेकिन सरल रास्तों को तिरस्कार करने के मामले में (यदि इस बात को साबित करने के दौरान आपको सरल रास्तों को छोड़ना पड़ा), तो यह एनपीसी है। एन A,BNo

1
@mrm: मैं इसे डुप्लिकेट के रूप में नहीं देखता। सभी वॉक के लिए पूछना एक व्यापक समय लेने वाला ऑपरेशन है (सामान्य रूप से, पैदल की एक अनंत संख्या है), जबकि ओपी दो (सरल) रास्तों के लिए पूछ रहा है , न कि सभी वॉक।
डेव क्लार्क

जवाबों:


10

एक ग्राफ पर विचार करें , हम जानना चाहते हैं कि क्या एक ही लंबाई के से बी तक दो अलग-अलग रास्ते हैं । क्या करें? सरल: एक में कोड दो पथ। परिभाषित ग्राफ जी ' के साथ कोने वी × वी × { 0 , 1 } । आप में एक कदम बनाने के जी ' में दो स्वतंत्र चरणों बनाकर जी । अतिरिक्त बिट आपको बताता है कि क्या दो रास्ते पहले से ही एक दूसरे से अलग हो गए हैं।GABGV×V×{0,1}GG

औपचारिक रूप से, वहाँ एक बढ़त है में जी ' iff मैं मैं ' , जे j ' में जी और ' = ( मैं , मैं ' ) ( जे , जे ' )(i,j,e)(i,j,e)GiijjGe=e(i,i)(j,j)

एल्गोरिथ्म यह जाँचता है कि जी में कोई रास्ता से ( B , B , 1 ) है , जो O ( V 4 ) है , या O ( ( V + E ) 2 ) जैसा कुछ है ।(A,A,0)(B,B,1)GO(V4)O((V+E)2)

अगर आप सहमत हैं इस एल्गोरिथ्म तो सही है, एक परिणाम के रूप में पथ ज्यादा से ज्यादा लंबाई की है 2 एन 2 , इसलिए संभावित "पथ टकराव" है कि विस्तार से नवीनतम होने चाहिए। आप एक प्राप्त कर सकते हैं हे ( वी ω लॉग वी ) इस अवलोकन, जहां से एल्गोरिथ्म ω आव्यूह गुणन जटिलता (पूछना अगर तुम एक स्पॉइलर जरूरत है ...) है।G2n2O(VωlogV)ω

मुझे दृढ़ता से लगता है कि एक एल्गोरिथ्म है, जो समस्या की संरचना का अधिक उपयोग करता है।O(V+E)


3
यह सुरुचिपूर्ण है।
राफेल

4

शायद मेरे पास इस समस्या का जवाब है, लेकिन मुझे यकीन नहीं है कि यह काम करता है।

दो मार्ग "खोजने" के लिए महत्वपूर्ण नहीं है, केवल महत्वपूर्ण बात यह है कि "पता है" कि वे मौजूद हैं या नहीं। मुझे नहीं लगता कि यह एक एनपी पूरी समस्या है।

A2+<something>=22<whatever greater than 0>=2

i,jp(Ap)i,j=2

nAn×npAn2p<n2AA2A3

यहाँ मेरा तर्क है:

  • n
  • n2n2
  • α+βm=γ+δkmkAqijqAq1ijn2δβLCM(a,b)(ab)/GCD(a,b)n

(Ap)i,j=2

क्या मै गलत हु?


αγ

2

n2nαγLCM(a,b)+α+γ<ab+α+γα+γ+a+b<nab+α+γn2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.