में ग्राफ़ संपादित करना/अपडेट करना मैं हास्केल में सिमुलेशन मॉडल करने के लिए डेटा का उपयोग कर रहा हूं। ग्राफ ग्राफ। सिमुलेशन एक 2 डी ग्रिड तक सीमित है जो मेरे ग्राफ मॉडल हैं। नीचे ग्रिड पर प्रत्येक बिंदु पर एक नोड में शायद एक अणु प्रकार होगा, इसलिए एक अणु मौजूद हो सकता है या बस कुछ नहीं।हास्केल
1 - 2 - 3
| | |
4 - 5 - 6
| | |
7 - 8 - 9
मैं इस प्रतिनिधित्व की स्थापना की है लेकिन जब यह एक अणु मुझे लगता है मैं इस मुद्दे के आसपास लंबा रास्ता जा रहा हूँ की स्थिति को अद्यतन करने के लिए आता है। मैंने अभी तक जो कुछ किया है वह सभी नोड्स को नोड्स की सूची में छीन लिया गया है। मैंने नोड्स की इस सूची में दो आइटमों को स्वैप करने के लिए एक फ़ंक्शन लिखा है। लेकिन अब जब मैं सब कुछ एक साथ वापस ज़िप करने आया हूं, तो मुझे समस्याएं आती हैं क्योंकि एक नया ग्राफ उत्पन्न करने के लिए मुझे चरम की एक सूची की आवश्यकता होती है जिसे मैं आसानी से चरम ग्राफ फ़ंक्शन से प्राप्त करता हूं। लेकिन मुझे किनारों को छूने वाले चरम की सूची के साथ ज़िप करने की भी आवश्यकता है। दुर्भाग्यवश डेटा.ग्राफ के किनारों ग्राफ फ़ंक्शन टाइप एज के टुपल्स की एक सूची लौटाता है जो ग्राफ को उत्पन्न करने के लिए तत्काल सहायक नहीं है, जहां तक मैं देख सकता हूं, हालांकि मैं सूची वर्टिस प्राप्त करने के लिए एक फ़ंक्शन लिख सकता हूं जिसमें वर्टेक्स के किनारे हैं। ऐसा करने के लिए मुझे आश्चर्य करने के लिए पर्याप्त काम लगता है क्या मुझे लगता है कि बिंदु क्या है वहां एक ग्राफ फ़ंक्शन है जो सिर्फ ग्राफ लेता है और एक अद्यतन नोड के साथ ग्राफ लौटाता है?
यदि मैं ग्राफ का उपयोग करता हूं तो मैं देख सकता हूं कि आसन्न नोड्स टकराव की जांच जांच के लिए अन्य अणुओं पर कब्जा कर लिया गया है या नहीं। – mikeyP
@mikeyP लेकिन आप इसे सरणी के साथ भी कर सकते हैं, है ना? –
आप सही हैं, ग्राफ के नीचे एक सरणी है। लेकिन एक ग्राफ के साथ मैं ग्राफ पर नोड्स को हटाने में सक्षम हो जाऊंगा, जिन क्षेत्रों पर अणु पारित नहीं हो सकते हैं। मैं Arrays के साथ ऐसा करने के लिए एक साफ रास्ता नहीं देख सकता। – mikeyP