क्या एक एल्गोरिथ्म सम्मिलित रूप से आवेषण / हटाने की उपस्थिति में DAG के लिए कनेक्टिविटी जानकारी को कुशलतापूर्वक बनाए रखने के लिए मौजूद है?


17

एक निर्देशित चक्रीय ग्राफ, को देखते हुए , क्या निम्न संचालन को कुशलता से समर्थन करना संभव है?G(V,E)

  • : निर्धारित करता है कि वहाँ में एक रास्ता है जी नोड से एक नोड के लिएisConnected(G,a,b)Gab
  • :ग्राफ G में a से b तक एक बढ़त जोड़ता हैlink(G,a,b)abG
  • : बढ़त को G में a से b तक निकालता हैunlink(G,a,b)abG
  • : G के लिए एक शीर्ष जोड़ता हैadd(G,a)
  • : G से एक शीर्ष हटाता हैremove(G,a)

कुछ नोट:

  • यदि हमने अस्वीकृत किया है , तो ऐसा लगता है कि असंबद्ध-सेट प्रकार की डेटा संरचना का उपयोग करके कनेक्टिविटी जानकारी को बनाए रखना आसान होगा।unlink
  • जाहिर है, गहराई या चौड़ाई-पहले खोज का उपयोग कर, ग्राफ के अनुभवहीन सूचक आधारित प्रतिनिधित्व का उपयोग कर लागू किया जा सकता। लेकिन यह अक्षम है।isConnected

मैं तीनों प्रचालनों के लिए निरंतर या लघुगणक समय की उम्मीद कर रहा हूं। क्या यह संभव है?



1
क्या आप समझा सकते हैं कि एक असंतुष्ट-सेट प्रकार डेटा संरचना का उपयोग करके सरल मामले (बिना अनलिंक) को कैसे हल किया जाए?
jbapple

@ त्सुशी - उस सवाल के लिंक दिलचस्प लगते हैं, मैं अब उन पर एक नज़र डाल रहा हूं।
जस्टिन किलपैट्रिक

(1) आप निर्देशन के लिए एक गतिशील ग्राफ एल्गोरिथ्म की तलाश कर रहे हैं, जिसमें प्रतिबंध इस प्रतिबंध के साथ है कि ग्राफ एक डीएजी है। यदि मैं गलत नहीं हूं, तो अप्रत्यक्ष समकक्ष की तुलना में डायनेमिक डायरेक्टेड रीचबिलिटी बहुत कठिन है, लेकिन यहां डीएजी संपत्ति मदद कर सकती है। (२) क्या removeघटना के किनारों को भी हटा देता है? यदि ऐसा है, तो उस ऑपरेशन को ओ (लॉग एन) समय की आवश्यकता होने की उम्मीद बहुत अधिक हो सकती है…।
त्सुयोशी इतो

जवाबों:


19

आपके द्वारा बताई गई समस्या पूरी तरह से डायनेमिक डीएजी रिक्चबिलिटी है (इसे डीएजी पर पूरी तरह से डायनामिक ट्रांजेक्टिव क्लोजर भी कहा जाता है)। इसे पूरी तरह से डायनामिक कहा जाता है क्योंकि लोग उन संस्करणों का भी अध्ययन करते हैं जहां केवल विलोपन संभव है (तब इसे डीक्रैमेंटल रीचैबिलिटी कहा जाता है), और जहां केवल इंसर्शन संभव है (इंक्रीमेंटल रीचबिलिटी कहा जाता है)।

अद्यतन समय और क्वेरी समय के बीच कुछ ट्रेडऑफ़ हैं। चलो किनारों की संख्या और हो n कोने की संख्या। DAGs के लिए, Demetrescu और Italiano (FOCS'00) ने एक यादृच्छिक डेटा संरचना दी, जो O ( n 1.58 ) समय में अपडेट (एज इन्सर्ट या डिलीट) को सपोर्ट करती है और O ( n 0.58 ) टाइम (नोड इन्सर्ट / डिलीट) में रीचैबिलिटी क्वेश्चन भी सपोर्ट करते हैं। , ओ (1) समय में); इस परिणाम को Sankowski (FOCS'04) ने सामान्य निर्देशित रेखांकन के लिए काम करने के लिए बढ़ाया था। DAGs के लिए भी, Roditty (Soda'03) ने दिखाया कि आप कुल समय O ( m n + I · n 2 + D ) में सकर्मक समापन मैट्रिक्स को बनाए रख सकते हैं , जहाँmnn1.58n0.58mn+I·n2+DI सम्मिलन की संख्या है, विलोपन की संख्या और निश्चित रूप से क्वेरी समय O ( 1 ) है।D1

सामान्य निर्देशित रेखांकन के लिए, निम्नलिखित (अपडेट, क्वेरी) बार ज्ञात हैं: (O ( ), O (1)) (Demetrescu और Italiano FOCS'00 (amortized), Sankowski FOCS'04 (सबसे खराब स्थिति)), ( ओ ( एम √)n2 ),( √)mn )) (रॉडिटि, ज़्विक FOCS'02), (O (m+nलॉगएन), O (n)) (Roditty, Zwick STOC'04), (O (n 1.58 ), O (n 0.58 )) और ( (O (n 1.495 ), O (n 1.495)O(nm+nlognnn1.58n0.58n1.495n1.495 )) Sankowski (FOCS'04) द्वारा।

पॉलीग्लारैथमिक क्वेरी समय को प्राप्त करना, अद्यतन समय को बढ़ाए बिना बहुत बड़ी खुली समस्या है, यहां तक ​​कि डीएजी के लिए भी।


1
आपके उत्तर के लिए धन्यवाद। हालांकि मुझे कहना है कि मैं उन सीमाओं को देखकर कितना निराश हूं। :(
जस्टिन किलापैट्रिक

1
एक संबंधित प्रश्न: क्या आप मुझे डीएजी के लिए सरल समस्याओं, वृद्धिशील पुनरावृत्ति और विकृतीक पुनरावृत्ति पर किसी संदर्भ की ओर इशारा कर सकते हैं?
जस्टिन किलपैट्रिक

यह भोली dfs दृष्टिकोण (O(1),O(n^2))या की तुलना में बहुत बेहतर सीवन नहीं करता है (O(m),O(n+m))
थॉमस अहले

4

मुझे लगता है कि अब तक के सर्वश्रेष्ठ परिणामों की चर्चा "पूरी तरह से गतिशील ट्रांज़िट बंद करने के लिए डायनेमिक मैट्रिसेस" में की गई है । वह कागज साथ एक यादृच्छिक एल्गोरिदम पर चर्चा करता हैहे(n0.58)हे(n1.58) समय सुधारें।

(यह केवल के साथ, आपके सवाल का पहला संस्करण को शामिल किया गया linkऔर unlinkलेकिन बिना addऔर remove।)


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