सोचो कैसे नेटवर्क प्रवाह इस समस्या को लागू किया जा सकता कर सकते हैं की न्यूनतम ले जाने की क्षमता है। ऐसा कुछ ऐसा होना चाहिए जैसे प्रवाह केकड़ा के सिर से उसके पैरों तक गुजरता है। और सिर पर आने वाले प्रवाह में पैरों की संख्या के बराबर मूल्य होना चाहिए और सिर के पैर से केब के प्रत्येक किनारे में क्षमता एक होनी चाहिए।
हम इसे कैसे प्राप्त कर सकते हैं? अपने आप से इस पर आना निश्चित रूप से कठिन है, लेकिन मुझे आशा है कि उदाहरण को कई बार देखने के बाद आप इसे लटका सकते हैं।
हमें एक नया ग्राफ बनाना है जहां मूल शिखर डुप्लीकेट हैं। एक सेट प्रत्येक कशेरुक को सिर होने का मौका देने के लिए दे सकता है और दूसरा सेट पैर के रूप में कार्य कर सकता है। इसे ध्यान में रखते हुए, सटीक algo निम्नलिखित के रूप में लिखा जा सकता है: -
1. We create a new graph where original vertices are duplicated (vertex i becomes 2*i (head set) and 2*i+1 (feet set) ).
2.For i and j vertices connected in original graph make sure that 2*i and 2*j+1 plus 2*j and 2*i+1 gets connected in new graph with capacity 1.
3.source vertex (S) is connected to each 2*i vertex(head set) with capacity min(T, degree).
4. Each 2*i+1(feet set) vertex is connected to target vertex (T) with capacity 1
5. Maxflow is the answer.
नीचे दी गई छवि कैसे ग्राफ रूपों में से एक सभ्य विचार दे सकते हैं। New Graph formation
बिंदु 3 का स्पष्टीकरण: - हेडसेट में हर शिखर क्षमता मिनट (टी, डिग्री) के साथ स्रोत के साथ जोड़ा जाना चाहिए क्योंकि हम करेंगे, तो टी के रूप में बड़ा होने के लिए इस किनारे पर एक अधिकतम प्रवाह की पसंद करने के लिए , इससे अधिक नहीं क्योंकि क्योंकि केकड़े में टी फीट से अधिक नहीं हो सकता है और क्षमता का मूल्य यहां भी वर्टेक्स की डिग्री से सीमित है, जिसमें 0 कनेक्ट है। एक सिर की डिग्री से अधिक पैर नहीं हो सकता है।
बिंदु 4 का स्पष्टीकरण: - यह सुनिश्चित करने के लिए कि जोड़े अलग हैं ताकि प्रत्येक चरम केवल एक केकड़ा में आ जाए, प्रत्येक चरण क्षमता 1 में लक्ष्य 10 से जुड़ा हुआ है।
यदि आवश्यक हो तो मैं कोड पोस्ट कर सकता हूं।
हर कोई कृपया इस बात से अवगत रहें कि यह हैकररैंक प्रतियोगिता साइट पर एक सक्रिय चुनौती है [https://www.hackerrank.com/challenges/crab-graphs)। – Beta