एक अप्रत्याशित रूप से चलती/बढ़ती/सिकुड़ने वाली हाइपरफेयर से भरे एक के-आयामी निरंतर (यूक्लिडियन) स्थान को देखते हुए मुझे बार-बार हाइपरफेयर ढूंढने की आवश्यकता होती है जिसकी सतह निकटतम होती है निर्देशांक दिया गया। अगर कुछ हाइपरफेयर मेरे समन्वय के लिए एक ही दूरी के हैं, तो सबसे बड़ा हाइपरस्फेयर जीतता है। (Hyperspheres की कुल संख्या समय के साथ ही रहने की गारंटी है।)नॉन-वर्दीली आकार के हाइपरफेयर के बीच निकटतम पड़ोसी खोज के लिए तेज़ स्थानिक डेटा संरचना
मेरी पहली सोचा एक KDTree का इस्तेमाल किया गया, लेकिन यह ध्यान में hyperspheres 'असमान मात्रा में नहीं ले जाएगा। तो मैंने आगे देखा और बीवीएच (बाउंडिंग वॉल्यूम पदानुक्रम) और बीआईएच (बाउंडिंग अंतराल पदानुक्रम), जो चाल चल रहा है। कम से कम 2-/3-आयामी अंतरिक्ष में। हालांकि बीवीएच पर काफी जानकारी और विज़ुअलाइज़ेशन ढूंढते समय मुझे शायद ही कभी बीआईएच पर कुछ भी मिल सके।
मेरे बुनियादी आवश्यकता एक कश्मीर आयामी स्थानिक डेटा संरचना है कि खाता में मात्रा लेता है और या तो सुपर (बंद लाइन) का निर्माण करने के लिए तेजी से या बमुश्किल कोई unbalancing साथ गतिशील है।
उपर्युक्त मेरी आवश्यकताओं को देखते हुए, आप किस डेटा संरचना के साथ जाएंगे? किसी और ने मुझे भी उल्लेख नहीं किया?
संपादित करें 1: उल्लेख करने के लिए भूल गए: हाइपरशेयर की अनुमति है (वास्तव में अत्यधिक अपेक्षित) ओवरलैप करने के लिए!
संपादित करें 2: "दूरी" (और विशेष रूप से "नकारात्मक दूरी" के बजाय) जैसा दिखता है, मेरे वर्णित मीट्रिक power of a point से बेहतर है।
एक बिंदु की दूरी को एक हाइपरस्फेयर की गणना करने के बाद से सादा मामूली है (भले ही ओ (के), लेकिन उस तरह के सब कुछ के-स्पेस में है), सामान्य रूप से आपके पास कितने हाइपरफेयर हैं? बेशक, हाइपरफेयर की एक साधारण रैखिक सूची की तुलना में डेटास्ट्रक्चर का भुगतान करना चाहिए। अच्छा सवाल, यद्यपि। –
हाइपरफेयर की संख्या 8 हो सकती है (इस मामले में मैं शायद डेटा सेट के आकार के आधार पर ब्रूट-बल, या हजारों या यहां तक कि सौ हजारों के साथ जाऊंगा, जो इस बिंदु पर मैं पूर्ववत नहीं कर सकता। मैं वर्तमान में ब्रूट-फोर्स कर रहा हूं और यह दर्दनाक रूप से धीमा है। – Regexident
क्या आपके प्रोग्राम के निष्पादन के रूप में हाइपरफेयर बदल रहे हैं? और, स्पष्टीकरण के लिए, जब आप 'एक दिए गए समन्वय' लिखते हैं तो मुझे उम्मीद है कि आप का मतलब है कि आप एक फ़ंक्शन चाहते हैं किसी दिए गए समन्वय, निकटतम हाइपरस्पेर लौटाता है। यानी, दिया गया समन्वय कार्यक्रम की अवधि के लिए तय नहीं किया गया है? –