मैं यह पता लगाने की कोशिश कर रहा हूं कि कुछ काल्पनिक, आदर्श नेटवर्क उपयोग के मॉडलिंग के लिए किस प्रकार की डेटा संरचना का उपयोग करना है।
मेरे परिदृश्य में, कई उपयोगकर्ता जो एक-दूसरे से शत्रुतापूर्ण व्यवहार कर रहे हैं, वे सभी कंप्यूटर के नेटवर्क बनाने की कोशिश कर रहे हैं जहां सभी संभावित कनेक्शन ज्ञात हैं। कंप्यूटर जो एक उपयोगकर्ता को कनेक्ट करने की आवश्यकता होती है, वही नहीं हो सकता है क्योंकि दूसरे उपयोगकर्ता को कनेक्ट करने की आवश्यकता होती है; उपयोगकर्ता 1 को कंप्यूटर A, B और D को जोड़ने की आवश्यकता हो सकती है जबकि उपयोगकर्ता 2 को कंप्यूटर B, C और E को जोड़ने की आवश्यकता हो सकती है।
NCTM ग्राफ क्रिएटर की मदद से उत्पन्न छवि
मुझे लगता है कि इस का मूल अप्रत्यक्ष चक्रीय ग्राफ होने जा रहा है, जिसमें कंप्यूटर और किनारों पर ईथरनेट केबल का प्रतिनिधित्व करने वाले नोड्स हैं। हालांकि, परिदृश्य की प्रकृति के कारण, कुछ असामान्य विशेषताएं हैं जो आसन्न सूचियों और आसन्न मैट्रिसेस (कम से कम, गैर-तुच्छ संशोधनों के बिना) को नियंत्रित करती हैं:
- किनारों प्रतिबंधित-उपयोग बन सकता है; यदि कोई उपयोगकर्ता किसी दिए गए नेटवर्क कनेक्शन को प्राप्त करता है, तो कोई अन्य उपयोगकर्ता उस कनेक्शन का उपयोग नहीं कर सकता है
- उदाहरण में, हरा उपयोगकर्ता संभवतः कंप्यूटर A से कनेक्ट नहीं हो सकता है, लेकिन लाल उपयोगकर्ता ने उनके बीच सीधा लिंक नहीं होने के बावजूद B से E को कनेक्ट किया है
- कुछ मामलों में, नोड्स की एक जोड़ी एक से अधिक किनारों से जुड़ी होगी
- उदाहरण में, डी से ई तक दो स्वतंत्र केबल चल रहे हैं, इसलिए हरे और नीले उपयोगकर्ता दोनों उन मशीनों को सीधे कनेक्ट करने में सक्षम थे; हालाँकि, लाल अब ऐसा संबंध नहीं बना सकता है
- यदि दो कंप्यूटर एक से अधिक केबल से जुड़े हैं, तो प्रत्येक उपयोगकर्ता उन केबलों में से एक से अधिक नहीं हो सकता है
मुझे इस ग्राफ़ पर कई ऑपरेशन करने होंगे, जैसे:
- यह निर्धारित करना कि कंप्यूटर का कोई विशेष जोड़ा किसी उपयोगकर्ता के लिए जुड़ा हुआ है या नहीं
- लक्ष्य कंप्यूटर को जोड़ने के लिए किसी दिए गए उपयोगकर्ता के लिए इष्टतम पथ की पहचान करना
- किसी दिए गए उपयोगकर्ता के लिए उच्चतम-विलंबता कंप्यूटर कनेक्शन की पहचान करना (यानी बिना शाखा के सबसे लंबा रास्ता)
मेरा पहला विचार बस सभी किनारों का एक संग्रह बनाना था, लेकिन यह खोज के लिए भयानक है। अब मैं जो सबसे अच्छी बात सोच सकता हूं, वह यह है कि एक आसन्न सूची को संशोधित किया जाए ताकि सूची में प्रत्येक आइटम में न केवल किनारे की लंबाई हो, बल्कि इसकी लागत और वर्तमान मालिक भी हो। क्या यह एक समझदार दृष्टिकोण है? अंतरिक्ष मान लेना एक चिंता का विषय नहीं है, क्या एक ग्राफ के बजाय ग्राफ (प्रत्येक उपयोगकर्ता के लिए एक) की कई प्रतियां बनाना उचित होगा?