असंतुष्ट रास्तों के सभी जोड़ों की गणना


10

एक निर्देशित ग्राफ और दो वर्टीकल । यदि वे एक किनारे साझा नहीं करते हैं, तो से तक सरल पथ की एक जोड़ी है ।G=(V,E)s,tVp1,p2st

अधिकतम प्रवाह का उपयोग करते हुए, यह तय करना आसान है कि क्या से तक किनारे के रास्ते की एक जोड़ी है । अब, क्या एक बहुपद समय देरी एल्गोरिथ्म है जो से तक के किनारे के सभी जोड़े को अलग कर सकता ?stst


1
नहीं, चूंकि ऐसे कई रास्ते हो सकते हैं।
केव

6
@ केव: मुझे लगता है कि "बहुपद देरी एल्गोरिथ्म" को घातीय समय लेने की अनुमति है, जब तक कि आउटपुट के बीच देरी बहुपद है। उदाहरण के लिए, एक बहुपद देरी एल्गोरिथ्म है जो बढ़ते क्रम में सभी मैक्सिमल क्लिक्स को सूचीबद्ध करता है, भले ही मैक्सिमल क्लिक्स की संख्या घातीय हो।
रॉबिन कोठारी

3
क्या प्रश्न में बहुपद देरी की व्याख्या शामिल करना संभव है? मैं तब तक इससे परिचित नहीं था जब तक मैं रॉबिन की टिप्पणी नहीं पढ़ता।
Artem Kaznatcheev

@ रॉबिन, आप सही कह रहे हैं, मैंने "देरी" शब्द पर ध्यान नहीं दिया।
केवह

जवाबों:


6

मेरा मानना ​​है कि आर्टेम काज़नाचेव का उत्तर सही है, लेकिन यह बहुपद को जगह नहीं देता है। तो यहाँ एक अलग दृष्टिकोण है जो उस संबंध में थोड़ा बेहतर काम करना चाहिए।

अधिकतम प्रवाह का उपयोग करना थोड़ी अधिक सामान्य समस्या को हल करना संभव है: कुछ दो कोने {s1, s2} से कुछ अन्य जोड़े कोने {t1, t2} के लिए किनारे के मार्ग की एक जोड़ी का पता लगाएं, लेकिन यह नियंत्रित किए बिना कि कौन सा स्रोत खंड जुड़ा हुआ है किस गंतव्य के लिए।

मान लीजिए कि हमारे पास एक ग्राफ G और कोने s1, s2, t1, t2 हैं, जिसके लिए हम सभी जोड़े पथों को सूचीबद्ध करना चाहते हैं। पथों P1, P2 की एक एकल जोड़ी खोजें, और e = (s1, v) उन पथों में से एक पर पहला किनारा होना चाहिए। फिर हम समस्या की जगह को दो उप-वर्गों में विभाजित कर सकते हैं: ई का उपयोग करने वाले रास्तों के जोड़े जी-एस 1 में {v, s2} से {t1, t2} तक के पथों के समान हैं, और पथों के जोड़े उपयोग नहीं करते हैं e, Ge में {s1, s2} से {t1, t2} के पथों के समान हैं। इन दोनों उपप्रकारों में दोनों को पुनः प्राप्त करें, और (दोहराव से बचने के लिए) केवल एक मार्ग की रिपोर्ट करें जब आप पुनरावृत्ति के नीचे हों।


1
क्या यह स्पष्ट है कि एल्गोरिथ्म बहुपद देरी है यदि हम पुनरावृत्ति के नीचे तक इंतजार करते हैं?
Artem Kaznatcheev

पुनरावृत्ति कई स्तरों को नीचे तक ले जाती है (जैसा कि प्रत्येक स्तर ग्राफ से कुछ हटाता है), और प्रत्येक शाखा या तो तुरंत वापस आ जाती है (क्योंकि यह रास्तों की एक जोड़ी नहीं मिल सकती है) या नीचे की ओर बाहर निकलती है और कुछ वापस करती है, इसलिए हां, यह केवल बहुपद देरी लेता है।
डेविड एपपस्टीन

5

यह पहली बार है जब मैंने बहुपद देरी एल्गोरिदम के बारे में पढ़ा है, इसलिए मैं अपने उत्तर के बारे में 100% सुनिश्चित नहीं हूं, लेकिन मुझे लगता है कि निम्नलिखित की तरह कुछ काम करना चाहिए।

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

एक एल्गोरिथ्म परिभाषित करें :F


F(s,t,G,D) :

(यहां अर्थ है एक इनलेट डेटास्ट्रक्चर संदर्भ )डीDD

  1. से से साथ किनारे-असंतुष्ट पथ की एक जोड़ी को वापस करने के लिए अपना पॉली-टाइम एल्गोरिथ्म चलाएं ।P < Q s t(P,Q)P<Qst
  2. यदि में नहीं है ।डी(P,Q)D

    2.1। में डालें और (आउटपुट यदि आप मान लें कि एल्गोरिथ्म चलता है)।डी(P,Q)D

    2.2। के प्रत्येक किनारे के लिए चलाएंएफ ( रों , टी , जी - { यू वी } , * डी )uvE(PQ)F(s,t,G{uv},D)


अब, अपने सभी रास्तों को समेटने के लिए, एक खाली बनाएँ और प्रत्येक जोड़ी के लिए साथ (यदि ग्राफ़ अप्रत्यक्ष है, तोएस , टी वी ( जी ) रों < टी एस टीDs,tV(G)s<tstF(s,t,G,D)

PSPACEPSPACE


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