एक ग्राफ़ में बढ़त जोड़ने पर कितनी छोटी दूरी बदलती है?


22

चलो G=(V,E) कुछ पूरा, भारित, अनिर्दिष्ट ग्राफ हो। हम एक दूसरे ग्राफ का निर्माण G=(V,E) किनारों से एक के बाद एक जोड़कर E करने के लिए E । हम जोड़ने Θ(|V|) के किनारों G कुल मिलाकर।

हर बार जब हम एक किनारे को जोड़ने के लिए ' है, हम सभी जोड़ों के बीच सबसे कम दूरी में विचार ( वी , ' ) और । हम गिनते हैं कि इनमें से कितनी छोटी दूरी को जोड़ने के परिणामस्वरूप बदल गई है । बता दें कि सबसे कम दूरी की संख्या है जो हम th बढ़त को जोड़ने पर बदलते हैं , और उन किनारों की संख्या बनाते हैं जिन्हें हम कुल जोड़ते हैं।(u,v)E(V,E)( यू , वी ) सी मैं मैं n(V,E{(u,v)})(u,v)Ciin

कितना बड़ा है ?C=iCin

यथा , साथ ही। क्या इस सीमा में सुधार किया जा सकता है? ध्यान दें कि मैं को सभी किनारों पर औसत होने के लिए परिभाषित करता हूं , इसलिए एक एकल राउंड जिसमें बहुत अधिक दूरी परिवर्तन होता है वह दिलचस्प नहीं है, हालांकि यह साबित करता है कि ।सी = हे ( एन 2 ) सी सी = Ω ( एन )Ci=O(|V|2)=O(n2)C=O(n2)CC=Ω(n)

मैं एक ज्यामितीय टी पाना कंप्यूटिंग लालच है कि में काम करता है के लिए एक एल्गोरिथ्म है समय है, इसलिए यदि है , मेरे एल्गोरिथ्म, मूल लालची एल्गोरिथ्म की तुलना में तेजी है और अगर है वास्तव में छोटा है, संभवतः सबसे अच्छा ज्ञात एल्गोरिथ्म से तेज है (हालांकि मुझे संदेह है कि)।O(Cnlogn)Co(n2)C

कुछ समस्या-विशिष्ट गुण जो एक अच्छी बाध्यता के साथ मदद कर सकते हैं: जो बढ़त को जोड़ा जाता है, उसका ग्राफ में पहले से ही किसी भी किनारे से बड़ा वजन होता है (जरूरी नहीं कि सख्ती से बड़ा हो)। इसके अलावा, इसका वजन और बीच सबसे छोटे रास्ते से कम है ।(u,v)uv

आप मान सकते हैं कि कोने 2d विमान के बिंदुओं के अनुरूप हैं और कोने के बीच की दूरी इन बिंदुओं के बीच यूक्लिडियन दूरी है। यही है, प्रत्येक वर्कट विमान में कुछ बिंदु से मेल खाता है , और एक किनारे के लिए इसका वजन बराबर हैv(x,y)(u,v)=((x1,y1),(x2,y2))(x2x1)2+(y2y1)2.


2
दो किनारों के साथ एक पथ से जुड़े दो क्लोन लें। क्लिक्स shortens के बीच सीधे एक किनारे को जोड़ने कम से कम रास्तों में से। Ω(n2)
लुई

1
@ लुईस: हाँ, ऐसे उदाहरण हैं जिनमें एक ही बढ़त के कारण बहुत दूरियाँ बदल जाती हैं, लेकिन क्या ऐसे रेखांकन मौजूद हैं, जो आपके द्वारा जोड़े जाने वाले प्रत्येक किनारे के लिए होता है, या कम से कम उनमें से बहुत कुछ के लिए होता है? यही कारण है कि मैंने को सभी किनारों पर औसत होने के लिए परिभाषित किया :)C
एलेक्स दस ब्रिंक

1
इस ग्राफ के अधिकांश किनारों को जोड़ा जा सकता है जो मैंने वर्णित प्रकार के हैं ...
लुई

@ लुईस सच। क्‍ल‍िक में किनारे होते हैं, जो कि मेरे ग्राफ से कभी भी अधिक होगा। O(n2)
एलेक्स दस ब्रिंक

मैं पहले भी एक ही समस्या थी, लेकिन मेरा ग्राफ के साथ विरल रेखांकन की तरह था और मैं औसत परिवर्तन साबित करने के लिए करना चाहिए हे (1) है, लेकिन मैं ऐसा नहीं कर सकता है :-)। लेकिन आपके मामले के लिए मुझे लगता है कि अगर आपको इस और APSP के समाधान के बीच एक संबंध मिल जाए तो आप कुछ परिणाम प्राप्त कर सकते हैं। |E|=O(|V|)

जवाबों:


19

नोड्स, n किनारों और शातिर चुने गए वज़न के साथ निम्न लीनियर श्रृंखला पर विचार करें :n+1n

example
[ स्रोत ]

जाहिर है, किनारों उनके वजन के क्रम में जोड़ा गया हो सकता है और देखते हैं उनमें से। धराशायी किनारे (जो कानूनी है) को जोड़ना सभी जोड़े ( यू i , बी जे ) के लिए i , j = 1 , , k के साथ छोटे पथ बनाता है । के रूप में कश्मीर nnO(|V|)(ui,bj)i,j=1,,k और उस संभालनेnΘ(|वी|), दोनों पहली और आखिरी पंक्ति शामिलΘ(|वी|)कई प्रत्येक नोड्स और इसके कारण बनता हैΘ(|वी|2)कई कम से कम पथ बदल जाता है।kn4nΘ(|V|)Θ(|V|)Θ(|V|2)

हम अब "आउटवर्ड" को स्थानांतरित कर सकते हैं, यानी अगले किनारे को वजन के साथ u k - 1 और b k - 1 और इसी तरह जोड़ सकते हैं ; अगर हम को यह जारी रखने के लिए ( यू 1 , बी 1 ) , हम कुल में पैदा कर Θ ( | वी | 3 ) कम से कम पथ बदल जाता है।n+2uk1bk1(u1,b1)Θ(|V|3)

यदि यह आपको मना नहीं करता है, तो ध्यान दें कि आप वास्तव में इस प्रक्रिया 1 ) ( सी 1 , सी 2 ) के साथ शुरू कर सकते हैं और वहां से बाहर की ओर काम कर सकते हैं; इस तरह से आप जोड़ना n किनारों कुल में जो कारण Σ n मैं = 1 मैं 2Θ ( n 3 ) = Θ ( | वी | 3 ) कई कम से कम पथ परिवर्तन --- इस पर फिट करने के लिए आकर्षित करने के लिए बस असंभव है स्क्रीन।(c1,c2)ni=1ni2Θ(n3)=Θ(|V|3)


1
यह वास्तव में काम करता है, और इसके अलावा, यूक्लिडियन बनने के लिए आपके उदाहरण को थोड़ा बदला जा सकता है। धन्यवाद :)
एलेक्स दस ब्रिंक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.