DAG में प्रत्येक वर्टेक्स के लिए पहुंच योग्य वर्टिकल की संख्या


11

आज्ञा देना एक चक्रीय निर्देशित ग्राफ है, जैसे कि किसी भी शीर्ष की डिग्री । के प्रत्येक शीर्ष के लिए हम हर बार शीर्ष से dfs चलाकर, पहुंच योग्य संख्याओं की संख्या की गणना कर सकते हैं और इसमें समय लगेगा। क्या इस समस्या को हल करने का एक बेहतर तरीका है?( लॉग | वी | ) जीG(V,E)O(log|V|)GO(|V||E|)



1
@ क्या यह सीधा डुप्लिकेट है? यह इस तरह से आवाज करता है
सुरेश वेंकट

@ सुरेश, मेरे सवाल की तुलना में यह एक शीर्ष डिग्री पर बाध्य है और कम सीमा के लिए नहीं पूछता है। मेरी राय में ये छोटे अंतर हैं, इसलिए मैं इसे डुप्लिकेट मानूंगा, लेकिन मैं इसके बारे में दृढ़ता से महसूस नहीं करता।
रादु GRIGore

1
ठीक है, तो हम इसे छोड़ देंगे।
सुरेश वेंकट

4
मेरे प्रश्न का वायरजी का उत्तर इस के लिए एक एल्गोरिदम का तात्पर्य है । O(|V|2)
राडू ग्रिजोर

जवाबों:


5

तेज बाइनरी मैट्रिक्स गुणन का उपयोग करके ओ (न्यूनतम {mn, n ^ 2.38}) समय में सबसे अच्छा एल्गोरिथ्म चलेगा। हालांकि, एक यादृच्छिक एल्गोरिथ्म है, जो समय ओ (एम + एन) में चलता है और प्रत्येक नोड से एक छोटी सापेक्ष त्रुटि के साथ पहुंच योग्य नोड्स की संख्या का अनुमान लगाता है, कृपया पेपर " साइज-एस्टीमेशन फ्रेमवर्क टू एप्लिकेशन विथ ट्रांसिटिव क्लोजर एंड रीऐबिलिटी “एडिथ कोहेन द्वारा।


-1

मैं यहाँ विशेषज्ञ नहीं हूँ मैं कोशिश करूँगा।

1) चूंकि यह DAG है, इसलिए इसमें आउटरीग्री के साथ एक सिंक वर्टेक्स यानी वर्टेक्स होना चाहिए। एक सिंक वर्टेक्स x बोलें और {x} के रूप में पड़ोसी के लिए पहुंच योग्य वर्टेक्स (x) जोड़ें। x निकालें और प्रक्रिया को तब तक दोहराएं जब तक कि ग्राफ खाली न हो जाए


चूंकि आउट-डिग्री बाध्य है, इसलिए स्रोत से शुरुआत करना अधिक उपयोगी होगा?
आंद्र सलामोन

@ andras-salamon: नहीं, क्योंकि आप तुच्छ रूप से नहीं जानते हैं कि किसी स्रोत से कितने नोड उपलब्ध हैं। आप हालांकि ऐसा नहीं करते हैं (शून्य) एक सिंक के लिए।
मार्टिन बी।

इस एल्गोरिथ्म का रनिंग टाइम भी - इसलिए प्रश्न में वर्णित की तुलना में बेहतर नहीं है। प्रत्येक चरण में, जिस शीर्ष आप विचार कर रहे हैं, उसमें का एक सेट हो सकता है। आप इसे अपने प्रत्येक पड़ोसी से जोड़ते हैं, जो पड़ोसी के अनुसार समय लेता है। कुल में, आप काम करते हैं, कुल कार्य के लिए। एक्स हे ( | वी | ) हे ( | वी | ) हे ( | वी | ) हे ( | वी ||| )O(|V||E|)xO(|V|)O(|V|)O(|V|)O(|V||E|)
डीडब्ल्यू

-2

(प्रभु के समाधान के समान ... लेकिन अधिक विस्तृत)

बता दें कि और पड़ोसी (आउट) हैं और वर्टिकल की संख्या को दर्शाता है।वी आर एक ( v )N(v)vreach(v)

  1. एक टोपोलॉजिकल सॉर्ट करें। (संभव है )O(|V|+|E|)
  2. सूची के अंत से शुरू (एक सिंक-एंड पर): प्रत्येक शीर्ष के लिए (सूची के सिंक-एंड पर शुरू): ।आर एक ( v ) = Σ n एन ( v ) आर एक ( एन )vreach(v)=nN(v)reach(n)

दूसरा भाग हर किनारे को एक बार पीछे करता है, दूसरे को जोड़ता है, इसलिए कुल मिलाकर मुझे ।O ( | V | + | E | )|E|O(|V|+|E|)

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