我想存儲從3到20個維度的50到10 000個向量。我想知道在哪種結構中存儲向量,以便能夠快速求解最近鄰或近似近鄰問題。我將使用歐幾里得,曼哈頓,馬克斯和加權曼哈頓度量。什麼數據結構用於快速變化的最近鄰居搜索?
我開始讀到這個問題,並發現(糾正我,如果我錯了),當維數比這個向量的數量小得多時,kd-trees會這樣做。性能可以是深度次線性的(O(log(n)))。
問題是,結構將變化非常迅速。每個矢量在程序過程中可以改變數千次。此外,矢量不需要保持它們的近似位置或比例。整個結構可以通過R^n「旅行」。
問題是,爲了保持kd-tree的高性能,需要時不時的重新平衡。此操作可能與重建整個樹一樣昂貴。
如何解決kd-tree快速變化的問題?
好的,謝謝! :) –
我無法命名確切的結構,但肯定你應該看看fpp遊戲引擎。遊戲必須解決碰撞和可見物體的問題。他們通過尋找最近的鄰居來限制他們的搜索空間。當然現場變化很大 – piotrek