एक ग्राफ के व्यास को खोजने की समय जटिलता


27

के व्यास का पता लगाने की समय जटिलता क्या है G=(V,E)?

  • O(|V|2)
  • O(|V|2+|V||E|)
  • O(|V|2|E|)
  • हे(|वी|||2)

एक ग्राफ का व्यास एक ग्राफ में सभी जोड़े के बीच सबसे छोटी पथ दूरी के सेट का अधिकतम है।जी

मुझे नहीं पता कि इसके बारे में क्या करना है, मुझे इस तरह की समस्या को हल करने के बारे में पूर्ण विश्लेषण की आवश्यकता है।


4
कृपया एक tad विस्तृत करें। आपको ब्याज की यह समस्या क्यों है? क्या आपको संकेत, पूर्ण विश्लेषण या संदर्भ की आवश्यकता है? क्या आप सबसे खराब या औसत-केस समय में रुचि रखते हैं? है निर्देशित? जी
राफेल

@ राफेल: जाहिर है मुझे संकेत की आवश्यकता नहीं है, मुझे एक पूर्ण विश्लेषण की आवश्यकता है। मैंने अपने प्रश्न को वैसे भी संपादित किया।
गिगिली

1
@Gigili तुम्हारा मतलब सही सभी मामलों में,? अन्यथा, सभी को अंतिम संभावना (जो कि O ( ! V | 5 ) के समान सामान्य रेखांकन पर है) के आधार पर लिया गया है, जो इसे एक सही उत्तर बनाता है, कम से कम एक उत्तर को सही माना जाता है। एक अतिरिक्त चिंता यह है कि चक्र के साथ एक ग्राफ में, सबसे लंबा रास्ता नहीं है। "सबसे लंबी दूरी" का क्या अर्थ है? Θहे(|वी|5)
राफेल

@ गिगली चार विकल्प कहां से आते हैं?
उली

जवाबों:


5

अद्यतन करें:

यह समाधान सही नहीं है।

समाधान दुर्भाग्य से पेड़ों के लिए केवल सच (और सीधा) है! किसी पेड़ के व्यास को खोजने के लिए भी इसकी आवश्यकता नहीं है। यहाँ रेखांकन के लिए एक प्रतिरूप है (व्यास 4 है, यदि आप इस चुनें तो एल्गोरिथ्म 3 लौटता है ):v

यहाँ छवि विवरण दर्ज करें


यदि ग्राफ़ का निर्देशन किया गया है तो यह जटिल है, यहाँ घने मामले में तेज परिणाम का दावा करने वाले कुछ कागजों में सभी जोड़े सबसे छोटे रास्तों के लिए एल्गोरिदम का उपयोग किया गया है।

हालाँकि मेरा मुख्य बिंदु उस मामले के बारे में है जिसका ग्राफ निर्देशित नहीं है और गैर-नकारात्मक भार के साथ, मैंने कई बार एक अच्छी चाल के बारे में सुना:

  1. एक शीर्ष v उठाओv
  2. ऐसे ज्ञात करें कि d ( v , u ) अधिकतम हैud(v,u)
  3. ऐसे खोजें कि d ( u , w ) अधिकतम होwd(u,w)
  4. वापसी d(u,w)

इसकी जटिलता दो क्रमिक पहले खोजों के समान होती है, यदि ग्राफ जुड़ा हुआ है तो है।O(|E|)

यह लोकगीत लग रहा था लेकिन अभी, मैं अभी भी एक संदर्भ प्राप्त करने या इसके सुधार को साबित करने के लिए संघर्ष कर रहा हूं । जब मैं इनमें से किसी एक लक्ष्य को प्राप्त कर लूंगा, तो मैं अपडेट करूंगा। यह इतना आसान लगता है कि मैं अभी अपना जवाब पोस्ट करता हूं, शायद कोई इसे तेजी से प्राप्त करेगा।

¹ अगर ग्राफ भारित है, विकिपीडिया कहने लगता , लेकिन मैं केवल यह सुनिश्चित करें के बारे में हूँ हे ( || लॉग | वी | )O(|E|+|V|log|V|)O(|E|log|V|)

² यदि ग्राफ़ कनेक्ट नहीं है, तो आपको लेकिन आपको प्रत्येक जुड़े घटक से एक तत्व चुनने के लिए O ( α ( | V | ) ) जोड़ना होगा । मुझे यकीन नहीं है कि यह आवश्यक है और वैसे भी, आप यह तय कर सकते हैं कि व्यास इस मामले में अनंत है।O(|V|+|E|)O(α(|V|))


निर्दिष्ट समय सीमा में डिजकेस्ट्रा के काम को करने के लिए आपको फाइबोनैचि ढेर का उपयोग करने की आवश्यकता है, सामान्य कार्यान्वयन की नहीं।
सुरेश

8
यह दृढ़ता से गलत उत्तर है, यह एल्गोरिथ्म लोककथा है, लेकिन पेड़ों में सामान्य रेखांकन नहीं है। पुनश्च: मैं आपका काउंटर उदाहरण देख सकता हूं, लेकिन इसका उत्तर के रूप में चिह्नित किया जाना अच्छा नहीं है।

गलत हल के बारे में मेरे दो सवाल हैं। 1. क्या यह कम से कम एक सीमा देगा जिसमें सही उत्तर होना चाहिए? उदाहरण के लिए, यदि विधि व्यास d को ढूँढती है , तो क्या सही समाधान d और 2d के बीच होगा ? 2. क्या होता है अगर हम एक अन्य अप्रत्यक्ष जोड़ते हैं और एक अप्रत्यक्ष (केवल एक नहीं) द्वारा पाए गए सभी नोड्स पर विचार करते हैं? पोस्ट में दिया गया काउंटर उदाहरण तब काम करेगा, क्योंकि सही परिधीय कोने दूसरे अप्रत्यक्ष द्वारा पाए गए नोड्स में से हैं।
मफू

32

मेरा मानना ​​है कि आप G का व्यास है जो G में पाया जाने वाला सबसे लंबा सबसे छोटा रास्ता है ।जीजी

व्यास को खोजने के लिए पहले सभी जोड़ी के सबसे छोटे रास्तों को खोजा जा सकता है और अधिकतम लंबाई का निर्धारण किया जा सकता है। फ्लोयड-Warshall एल्गोरिथ्म इस में करता है समय। जॉनसन एल्गोरिथ्म प्राप्त करने के लिए लागू किया जा सकता हे ( | वी | 2 लॉग | वी | + | वी ||| ) समय।Θ(|वी|3)हे(|वी|2लॉग|वी|+|वी|||)

एक छोटे बुरी से बुरी हालत क्रम बाध्य के रूप में देखते हैं प्राप्त करने के लिए कठिन लगता दूरी पर विचार करने और sublinear में उन दूरी की गणना (परिशोधित) समय प्रत्येक कठिन होने जा रहा है; संबंधित बाउंड के लिए यहां देखें इस पेपर पर ध्यान दें जो एक अलग दृष्टिकोण का उपयोग करता है और थोड़ा (तेज) एल्गोरिथ्म प्राप्त करता है।हे(|वी|2)


2
यदि आप उन कागजों पर भुगतान कर देते हैं, तो Google विद्वान की जाँच करें।
राफेल

इसके अलावा, यह अपवाद अप्रत्यक्ष पेड़ों के लिए ध्यान देने योग्य है , जहां आप व्यास प्राप्त कर सकते हैं। बस एक dfs traversal के साथ।
आजम

15

व्यास(जी)टीएम=मैं+एमटीटीहे(लॉगn)हे(एम(n)लॉगn)एम(n)हे(n2.3727लॉगn)

हे(n2)


2
यह ध्यान देने योग्य है कि यह एल्गोरिथ्म केवल अनवेटेड केस में काम करता है।
GMB

-2

मान्यताओं:
1. ग्राफ अनवील किया गया है
2. ग्राफ़ निर्देशित है

O (| V || E |) समय जटिलता।

कलन विधि:

ComputeDiameter(G(V,E)):
  if ( isCycle( G(v,E) ) ) then
     return INFINITY
  if ( not isConnected( G(V,E) )) then
     return INFINITY
  diameter = 0
  for each vertex u in G(V,E):
     temp = BFS(G,u)
     diameter = max( temp , diameter )
  return diameter

स्पष्टीकरण:
हम चक्र के लिए जाँच करते हैं। यदि ग्राफ़ में चक्र होता है तो हम लूप में चलते रहते हैं, इसलिए हमारे पास अनंत दूरी होगी। हम जुड़े के लिए जाँच करें। यदि ग्राफ जुड़ा नहीं है, जिसका अर्थ है G1 से G के ऊपर का वर्सेटाइल G2 में। जहां G1 और G2 कोई भी दो उप ग्राफ हैं जो जुड़े हुए नहीं हैं। इसलिए हम फिर से अनंत दूरी पर होंगे। हम किसी अन्य नोड (यू) के बीच अधिकतम दूरी की गणना करने के लिए बीएफएस का उपयोग अन्य सभी नोड्स (वी) से करेंगे जो यू से पहुंच योग्य हैं। तब हम बीएफएस द्वारा पहले से गणना किए गए व्यास और परिणाम वापसी का अधिकतम लाभ लेंगे। इसलिए हम वर्तमान अधिकतम व्यास होंगे।

समय विश्लेषण चल रहा है:

  1. DFS का उपयोग करते हुए O (| E |)
  2. DFS का उपयोग करते हुए O (| E |)
  3. BFS O (| E |) समय में चलता है।
  4. हमें प्रत्येक शीर्ष के लिए बीएफएस फ़ंक्शन को कॉल करना होगा ताकि कुल ओ (| वी। ई।) समय लगेगा।

कुल समय = O (| v || E |) + O (| E |) + O (| E |)
चूंकि | V | E | > | ई |
इसलिए हमारे पास O (| v || E |) के रूप में समय चल रहा है।

बीएफएस
डीएफएस

नोट: यह इस समस्या का एक सुरुचिपूर्ण समाधान नहीं है।


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

1
@ राफेल नहीं, एसाइकल अप्रत्यक्ष रेखांकन पेड़ हैं। डीएजी डीएजी हैं।
डेविड रिचेर्बी

@DavidRicherby राइट। (हालांकि, तकनीकी रूप से, उत्तर यह नहीं कहता है कि क्या यह निर्देशित या अप्रत्यक्ष चक्रों को बाहर करता है?))) वैसे भी, यह APSPP (भोली दृष्टिकोण) को हल करने के अलावा कुछ भी नहीं है, जो पहले से ही सामान्य मामलों के लिए पिछले उत्तरों द्वारा कवर किया गया है।
राफेल

@ राफेल क्या आपको लगता है कि एसाइक्लिक ग्राफ पेड़ हैं? ग्राफ एसाइक्लिक है इसका मतलब यह नहीं है कि ग्राफ हमेशा पेड़ होगा। ट्री इस का एक विशेष मामला है। इसके अलावा यह सीधे आगे एल्गोरिथ्म है और समय जटिलता O (| V || E) है।
sonus21

हाँ मुझे यकीन है। (शायद आप जड़ वाले पेड़ों के बारे में सोच रहे हैं , जो एक अलग स्वाद हैं।)
राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.