मेरे पास कुछ मीट्रिक स्पेस (Jaccard Distance से सुसज्जित) में अंक का एक बड़ा सेट (संख्या> 10000 संख्या) है। मैं किनारों पर वजन के रूप में मीट्रिक का उपयोग करके, उन्हें एक न्यूनतम स्पैनिंग पेड़ से जोड़ना चाहता हूं।मेट्रिक स्पेस में कुशल न्यूनतम स्पैनिंग पेड़
- वहाँ एक एल्गोरिथ्म है कि O (n) समय की तुलना में कम में चलाता है?
- यदि नहीं, तो क्या कोई एल्गोरिदम है जो ओ (एन) से कम समय में चलता है) औसत समय (संभवतः यादृच्छिकरण का उपयोग करके)?
- यदि नहीं, तो क्या कोई एल्गोरिदम है जो ओ (एन) से कम समय में चलता है और न्यूनतम स्पैनिंग पेड़ का अच्छा अनुमान देता है?
- यदि नहीं, तो क्या ऐसा कोई कारण है कि ऐसा एल्गोरिदम मौजूद नहीं हो सकता है?
अग्रिम धन्यवाद!
नीचे पोस्टर के लिए संपादित करें: न्यूनतम स्पैनिंग पेड़ खोजने के लिए शास्त्रीय एल्गोरिदम यहां काम नहीं करते हैं। उनके चलने वाले समय में उनके पास एक ई कारक है, लेकिन मेरे मामले में ई = एन क्योंकि मैं वास्तव में पूरा ग्राफ मानता हूं। मेरे पास सभी 4 9 99 5000 संभव किनारों को स्टोर करने के लिए पर्याप्त स्मृति नहीं है।
क्या आपने कम से कम यह http://en.wikipedia.org/wiki/Minimum_spanning_tree#Algorithms पढ़ा है? –
@ निकोलई: बिल्कुल मैंने किया। और कई कागजात भी। – ybungalobill
आपको अपने 10^8 किनारों को "स्टोर" करने की आवश्यकता नहीं होगी। आपको विज़िट किए गए किनारों को चिह्नित करने में सक्षम होने के लिए थोड़ा वेक्टर की आवश्यकता होगी, लेकिन यह बिट वेक्टर केवल 12 एमबी या इससे भी अधिक का उपयोग करेगा, जो स्मृति के संबंध में सस्ती लगता है। –