2017-02-20 8 views
5

पर किसी अन्य बिंदु पर निकटतम बिंदु मेरे पास आयाम मीटर (10^4 से 10^6 के बीच) के हाइपरफेयर पर n (लगभग 10^5) अंक हैं।एक हाइपरस्फेयर

मैं फॉर्म के प्रश्नों का एक गुच्छा बनाने जा रहा हूं "एक बिंदु पी दिया, पी को एन पॉइंट के सबसे नज़दीक को ढूंढें"। मैं इन प्रश्नों के बारे में बताऊंगा।

(सुनिश्चित नहीं करता है, तो अति क्षेत्र तथ्य बिल्कुल मदद करता है।)

इस हल करने के लिए, प्रत्येक क्वेरी के लिए, अन्य सभी n अंक के पी तुलना करने के लिए किया जाता है सरल अनुभवहीन एल्गोरिथ्म। यह एन बार करना ओ (एन^2 मीटर) के रनटाइम के साथ समाप्त होता है, जो मेरे लिए गणना करने में सक्षम होने के लिए बहुत बड़ा है।

क्या कोई और कुशल एल्गोरिदम मैं उपयोग कर सकता हूं? अगर मैं इसे कुछ लॉग कारकों के साथ ओ (एनएम) में प्राप्त कर सकता हूं जो बहुत अच्छा होगा।

उत्तर

3

शायद नहीं। कई आयाम होने से कुशल अनुक्रमण बहुत कठिन बना देता है। यही कारण है कि लोग कुछ प्रबंधित करने के लिए आयामों की संख्या को कम करने के अवसरों की तलाश करते हैं।

https://en.wikipedia.org/wiki/Curse_of_dimensionality और https://en.wikipedia.org/wiki/Dimensionality_reduction और देखें।

0

अपनी जगह को हाइपरक्यूब में विभाजित करें - इन कोशिकाओं को कॉल करें - किनारे के आकार के साथ चुना गया ताकि औसत पर आपके पास एक बिंदु प्रति घन होगा। आप हाइपरकल्स से मानचित्र के अंक के सेट पर एक मानचित्र चाहते हैं।

फिर, एक बिंदु दिया गया, अन्य बिंदुओं के लिए इसकी हाइपरसेल जांचें। यदि यह खाली है, तो आसन्न हाइपरकल्स देखें (मैं हाइपरकेल्स से बने एक हाइपरस्फेयर के कुछ अनुमान के बजाय सादगी के लिए हाइपरकल्स का एक शाब्दिक हाइपरक्यूब अनुशंसा करता हूं)। अन्य बिंदुओं के लिए जांचें। जब तक आपको कोई बिंदु न मिल जाए तब तक दोहराएं। मान लें कि आपके अंक यादृच्छिक रूप से वितरित किए गए हैं, बाधाएं अधिक हैं कि आपको 1-2 विस्तारों के भीतर एक दूसरा बिंदु मिलेगा।

एक बार आपको एक बिंदु मिल जाने के बाद, सभी हाइपरकल्स की जांच करें जो संभवतः एक करीबी बिंदु हो सकते हैं। यह संभव है क्योंकि जो बिंदु आप पाते हैं वह एक कोने में हो सकता है, लेकिन हाइपरक्यूब के बाहर कुछ नजदीक बिंदु है जिसमें आपके द्वारा अब तक निरीक्षण किए गए सभी हाइपरकल्स शामिल हैं।

+2

यह दृष्टिकोण 2-3 आयामों में बहुत अच्छा काम करता है। लेकिन 10,000 में इतनी महान नहीं है क्योंकि बाधाएं हैं कि प्रत्येक बिंदु एक अतुलनीय हाइपरक्यूब में उगता है और आपको अंत में प्रत्येक बिंदु को देखना होगा। – btilly