मेरे पास this website पर कोड के आधार पर डिजस्ट्रा के एल्गोरिदम का कार्यान्वयन है। असल में, मेरे पास कई नोड्स हैं (10000 कहें), और प्रत्येक नोड में अन्य नोड्स के लिए 1 से 3 कनेक्शन हो सकते हैं।डिजस्ट्रा के एल्गोरिदम: मेमोरी खपत
नोड्स 3 डी स्पेस के भीतर यादृच्छिक रूप से उत्पन्न होते हैं। कनेक्शन भी यादृच्छिक रूप से जेनरेट किए जाते हैं, हालांकि यह हमेशा अपने निकटतम पड़ोसियों के साथ कनेक्शन ढूंढने की कोशिश करता है और धीरे-धीरे खोज त्रिज्या को बढ़ाता है। प्रत्येक कनेक्शन को एक दूरी दी जाती है। (मुझे इस मामले में से कोई संदेह है लेकिन यह सिर्फ पृष्ठभूमि है)।
इस मामले में, एल्गोरिदम का उपयोग शुरुआती बिंदु से अन्य सभी नोड्स तक होप्स की सबसे छोटी संख्या को खोजने के लिए किया जा रहा है। और यह 10,000 नोड्स के लिए अच्छी तरह से काम करता है। मेरी समस्या यह है कि, जैसे कि नोड्स की संख्या बढ़ जाती है, 2 मिलियन की ओर कहते हैं, मैं ग्राफ बनाने की कोशिश करते समय अपने सभी कंप्यूटर मेमोरी का उपयोग करता हूं।
क्या किसी को मेमोरी पदचिह्न को कम करने के लिए एल्गोरिदम को लागू करने का वैकल्पिक तरीका पता है, या वहां कोई और एल्गोरिदम है जो कम स्मृति का उपयोग करता है?
डिज्कस्ट्रा ही नोड्स की संख्या के साथ रैखिक पैमाने के बाद से मैं इसे ग्राफ प्रतिनिधित्व ही जो इतना स्मृति की लागत है लगता है। ग्राफ का प्रतिनिधित्व करने के लिए आप किस डेटा संरचना का उपयोग करते हैं? – Howard
अधिक महत्वपूर्ण बात यह है कि आप किस प्रकार की वास्तुकला पर चल रहे हैं? एक जीबी रैम के साथ एक पीसी 2 एम नोड्स से अधिक लॉट करने में सक्षम होना चाहिए, जब तक कि प्रत्येक नोड प्रत्येक सौ बाइट्स ले रहा हो - उस बिंदु पर आप शायद अपनी नोड जानकारी पर पुनर्विचार करना चाहते हैं। –
आपके पास ग्राफ़ चरण बनाने में मेमोरी लीक हो सकती है। क्या आप अपना कोड पोस्ट कर सकते हैं? – emreakyilmaz