के साथ विशाल ग्राफ पर चौड़ाई-पहली-खोज में वर्तमान में एक ग्राफ है जिसमें लगभग 10 मिलियन नोड्स और 35 मिलियन किनारों हैं। अब के लिए पूर्ण ग्राफ प्रोग्राम शुरू होने पर स्मृति में लोड किया गया है। इसमें कुछ मिनट लगते हैं (यह जावा के बाद सभी है) और रैम के आधा गीगाबाइट की आवश्यकता है। अभी के लिए यह एक मशीन पर एक दोहरी कोर प्रोसेसर और 4 गीगाबाइट रैम के साथ चलता है।छोटे रैम
जब ग्राफ को चौड़ाई-पहली खोज का उपयोग करके खोजा जाता है तो स्मृति उपयोग एक गीगाबाइट की चोटी तक बढ़ता है और औसत पर दस सेकंड लगते हैं।
मैं कुछ कंप्यूटरों पर प्रोग्राम को तैनात करना चाहता हूं। ग्राफ खोज के अलावा कार्यक्षमता बहुत कम संसाधन लेती है। मेरा लक्ष्य प्रणाली बहुत छोटा है और इसमें केवल 512 मेगाबाइट रैम है।
बहुत अधिक स्मृति का उपभोग किए बिना उस ग्राफ को खोजने के लिए किसी विधि को लागू करने के तरीके (शायद डेटाबेस का उपयोग करके) पर कोई सुझाव? यह कार्यक्रम अधिकांश समय तक निष्क्रिय होता है क्योंकि यह हार्डवेयर डिवाइस तक पहुंच रहा है, इसलिए पथ-खोज में उल्लिखित ग्राफ के लिए अधिकतम 5 मिनट लग सकते हैं ...
मेरी दिशा में किसी भी विचार को फेंकने के लिए धन्यवाद।
अद्यतन:
बस neo4j पाया। किसी को पता है कि यह इस तरह के विशाल ग्राफ के लिए उपयुक्त होगा?
यदि यह संभव है (आपके कार्य पर निर्भर करता है) तो आप बीएफएस के पूर्ण विकल्पों का उपयोग नहीं कर सकते .. उदाहरण के लिए बीम खोज की तरह? आपकी खोज के मोर्चे को कम करने से आम तौर पर प्रदर्शन – anthares
@IVlad no को बढ़ावा देता है, नोड्स 0 से 10000000 तक केवल एक पूर्णांक संख्या होते हैं। शेष डेटा एक्सएमएल फाइलों से – allesblinkt
पर कुछ अजीब हुआ।आईवीएलएड की टिप्पणी सिर्फ – allesblinkt