kd-tree

k-d樹(k-dimensional樹的簡稱),是一種分割k維數(shù)據(jù)空間的數(shù)據(jù)結構。主要應用于多維空間關鍵數(shù)據(jù)的搜索(如:范圍搜索和最近鄰搜索)。K-D樹是二進制空間分割樹的特殊的情況。

kd-tree基本信息

外文名稱 k-dimensional樹 簡稱 kd-tree
屬于 分割k維數(shù)據(jù)空間的數(shù)據(jù)結構 用于 多維空間關鍵數(shù)據(jù)的搜索

kd-tree構建算法

k-d樹是一個二叉樹,每個節(jié)點表示一個空間范圍。表1給出的是k-d樹每個節(jié)點中主要包含的數(shù)據(jù)結構。

表1 k-d樹中每個節(jié)點的數(shù)據(jù)類型

域名

數(shù)據(jù)類型

描述

Node-data

數(shù)據(jù)矢量

數(shù)據(jù)集中某個數(shù)據(jù)點,是n維矢量(這里也就是k維)

Range

空間矢量

該節(jié)點所代表的空間范圍

split

整數(shù)

垂直于分割超平面的方向軸序號

Left

k-d樹

由位于該節(jié)點分割超平面左子空間內(nèi)所有數(shù)據(jù)點所構成的k-d樹

Right

k-d樹

由位于該節(jié)點分割超平面右子空間內(nèi)所有數(shù)據(jù)點所構成的k-d樹

parent

k-d樹

父節(jié)點

從上面對k-d樹節(jié)點的數(shù)據(jù)類型的描述可以看出構建k-d樹是一個逐級展開的遞歸過程。表2給出的是構建k-d樹的偽碼。

表2 構建k-d樹的偽碼

算法:構建k-d樹(createKDTree)

輸入:數(shù)據(jù)點集Data-set和其所在的空間Range

輸出:Kd,類型為k-d tree

1.If Data-set為空,則返回空的k-d tree

2.調(diào)用節(jié)點生成程序:

(1)確定split域:對于所有描述子數(shù)據(jù)(特征矢量),統(tǒng)計它們在每個維上的數(shù)據(jù)方差。以SURF特征為例,描述子為64維,可計算64個方差。挑選出最大值,對應的維就是split域的值。數(shù)據(jù)方差大表明沿該坐標軸方向上的數(shù)據(jù)分散得比較開,在這個方向上進行數(shù)據(jù)分割有較好的分辨率;

(2)確定Node-data域:數(shù)據(jù)點集Data-set按其第split域的值排序。位于正中間的那個數(shù)據(jù)點被選為Node-data。此時新的Data-set' = Data-set\Node-data(除去其中Node-data這一點)。

3.dataleft = {d屬于Data-set' && d[split] ≤ Node-data[split]}

Left_Range = {Range && dataleft} dataright = {d屬于Data-set' && d[split] > Node-data[split]}

Right_Range = {Range && dataright}

4.left = 由(dataleft,Left_Range)建立的k-d tree,即遞歸調(diào)用createKDTree(dataleft,Left_

Range)。并設置left的parent域為Kd;

right = 由(dataright,Right_Range)建立的k-d tree,即調(diào)用createKDTree(dataright,Right_

Range)。并設置right的parent域為Kd。

以上述舉的實例來看,過程如下:

由于此例簡單,數(shù)據(jù)維度只有2維,所以可以簡單地給x,y兩個方向軸編號為0,1,也即split={0,1}。

(1)確定split域的首先該取的值。分別計算x,y方向上數(shù)據(jù)的方差得知x方向上的方差最大,所以split域值首先取0,也就是x軸方向;

(2)確定Node-data的域值。根據(jù)x軸方向的值2,5,9,4,8,7排序選出中值為7,所以Node-data = (7,2)。這樣,該節(jié)點的分割超平面就是通過(7,2)并垂直于split = 0(x軸)的直線x = 7;

(3)確定左子空間和右子空間。分割超平面x = 7將整個空間分為兩部分,如圖2所示。x < = 7的部分為左子空間,包含3個節(jié)點{(2,3),(5,4),(4,7)};另一部分為右子空間,包含2個節(jié)點{(9,6),(8,1)}。

如算法所述,k-d樹的構建是一個遞歸的過程。然后對左子空間和右子空間內(nèi)的數(shù)據(jù)重復根節(jié)點的過程就可以得到下一級子節(jié)點(5,4)和(9,6)(也就是左右子空間的'根'節(jié)點),同時將空間和數(shù)據(jù)集進一步細分。如此反復直到空間中只包含一個數(shù)據(jù)點,如圖1所示。最后生成的k-d樹如圖3所示。

kd-tree造價信息

市場價 信息價 詢價
材料名稱 規(guī)格/型號 市場價
(除稅)
工程建議價
(除稅)
行情 品牌 單位 稅率 供應商 報價日期
帶網(wǎng)扶手 KD-2901 查看價格 查看價格

13% 福建南安市科迪衛(wèi)浴有限公司
扶手 KD-2902 查看價格 查看價格

13% 福建南安市科迪衛(wèi)浴有限公司
內(nèi)接式接口 KD50 KD65 查看價格 查看價格

13% 廣西南寧賽福消防設備有限公司
菜盆軟管 KD-401 80cm 查看價格 查看價格

13% 福建南安市科迪衛(wèi)浴有限公司
電源線 kd75型號:kd75;絕緣材料:對絞銅絲編織屏蔽;額定電壓(V):250;特點:內(nèi)芯全銅 2×0.75銅芯粗細0.7平方; 查看價格 查看價格

凱聰

m 13% 上海凱聰電子科技有限公司
扶手 KD-2903A 30cm 查看價格 查看價格

13% 福建南安市科迪衛(wèi)浴有限公司
太空鋁扶手 KD-L2903B 40cm 查看價格 查看價格

13% 福建南安市科迪衛(wèi)浴有限公司
絕緣配線槽 KD1L 查看價格 查看價格

臺灣凱士士

13% 青島金貝特國際貿(mào)易有限公司
材料名稱 規(guī)格/型號 除稅
信息價
含稅
信息價
行情 品牌 單位 稅率 地區(qū)/時間
暫無數(shù)據(jù)
材料名稱 規(guī)格/需求量 報價數(shù) 最新報價
(元)
供應商 報價地區(qū) 最新報價時間
貨梯KD6#/KD7# 詳附件|1臺 3 查看價格 日立電梯(中國)有限公司深圳分公司 全國   2021-01-18
貨梯KD5#/KD8# 詳附件|1臺 3 查看價格 日立電梯(中國)有限公司深圳分公司 全國   2021-01-18
KD 厚度0.5|1m2 1 查看價格 天津市恒信鑫鋼材銷售有限公司 天津  天津市 2013-05-20
樹形秋千TREE-SHAPEDSWING 1、尺寸:大約5000長Size2、材質(zhì):工程塑料 PEMaterial|1套 3 查看價格 廣州奇樂游樂設備有限公司 廣東   2020-07-09
KD罩面涂料 18L|9544桶 1 查看價格 亞士漆(上海)有限公司廣州辦事處 廣東  廣州市 2015-08-25
KD直紋木門 1000×2200|50m2 3 查看價格 佛山市南海沐森木業(yè)有限公司 全國   2022-05-09
KD涂裝木皮板 (2440×1220×3)mm|1m2 1 查看價格 東莞市奧卓木業(yè)有限公司 廣東   2022-07-25
KD9816應方塊地毯 500X500X5|3718m2 1 查看價格 常州市彬彬機房設備安裝有限公司 江蘇  常州市 2015-11-19

kd-tree查找算法

在k-d樹中進行數(shù)據(jù)的查找也是特征匹配的重要環(huán)節(jié),其目的是檢索在k-d樹中與查詢點距離最近的數(shù)據(jù)點。這里先以一個簡單的實例來描述最鄰近查找的基本思路。

星號表示要查詢的點(2.1,3.1)。通過二叉搜索,順著搜索路徑很快就能找到最鄰近的近似點,也就是葉子節(jié)點(2,3)。而找到的葉子節(jié)點并不一定就是最鄰近的,最鄰近肯定距離查詢點更近,應該位于以查詢點為圓心且通過葉子節(jié)點的圓域內(nèi)。為了找到真正的最近鄰,還需要進行'回溯'操作:算法沿搜索路徑反向查找是否有距離查詢點更近的數(shù)據(jù)點。此例中先從(7,2)點開始進行二叉查找,然后到達(5,4),最后到達(2,3),此時搜索路徑中的節(jié)點為<(7,2),(5,4),(2,3)>,首先以(2,3)作為當前最近鄰點,計算其到查詢點(2.1,3.1)的距離為0.1414,然后回溯到其父節(jié)點(5,4),并判斷在該父節(jié)點的其他子節(jié)點空間中是否有距離查詢點更近的數(shù)據(jù)點。以(2.1,3.1)為圓心,以0.1414為半徑畫圓,如圖4所示。發(fā)現(xiàn)該圓并不和超平面y = 4交割,因此不用進入(5,4)節(jié)點右子空間中去搜索。

再回溯到(7,2),以(2.1,3.1)為圓心,以0.1414為半徑的圓更不會與x = 7超平面交割,因此不用進入(7,2)右子空間進行查找。至此,搜索路徑中的節(jié)點已經(jīng)全部回溯完,結束整個搜索,返回最近鄰點(2,3),最近距離為0.1414。

一個復雜點了例子如查找點為(2,4.5)。同樣先進行二叉查找,先從(7,2)查找到(5,4)節(jié)點,在進行查找時是由y = 4為分割超平面的,由于查找點為y值為4.5,因此進入右子空間查找到(4,7),形成搜索路徑<(7,2),(5,4),(4,7)>,取(4,7)為當前最近鄰點,計算其與目標查找點的距離為3.202。然后回溯到(5,4),計算其與查找點之間的距離為3.041。以(2,4.5)為圓心,以3.041為半徑作圓,如圖5所示??梢娫搱A和y = 4超平面交割,所以需要進入(5,4)左子空間進行查找。此時需將(2,3)節(jié)點加入搜索路徑中得<(7,2),(2,3)>。回溯至(2,3)葉子節(jié)點,(2,3)距離(2,4.5)比(5,4)要近,所以最近鄰點更新為(2,3),最近距離更新為1.5?;厮葜?7,2),以(2,4.5)為圓心1.5為半徑作圓,并不和x = 7分割超平面交割,如圖6所示。至此,搜索路徑回溯完。返回最近鄰點(2,3),最近距離1.5。k-d樹查詢算法的偽代碼如下所示。

kd-tree實例

先以一個簡單直觀的實例來介紹k-d樹算法。假設有6個二維數(shù)據(jù)點{(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)},數(shù)據(jù)點位于二維空間內(nèi)(如圖1中黑點所示)。k-d樹算法就是要確定圖1中這些分割空間的分割線(多維空間即為分割平面,一般為超平面)。下面就要通過一步步展示k-d樹是如何確定這些分割線的。

k-d樹算法可以分為兩大部分,一部分是有關k-d樹本身這種數(shù)據(jù)結構建立的算法,另一部分是在建立的k-d樹上如何進行最鄰近查找的算法。

kd-tree常見問題

  • KD

    你好:這是空調(diào)管道的孔洞,用墻洞口定義布置,藍色那條長虛線表示空調(diào)管道。

  • kd板是什么

    KD板是由 實木薄皮+夾板 制成的,是一種涂裝木皮板,這個名字源自臺灣科定。表面的實木貼皮給予非常逼真的實木觸感和觀感,很有檔次感。與生態(tài)板不同就是表面用的是實木皮,厚度在3.6mm,價格¥200~¥...

  • 黃瓜膠韓國phyto tree黃瓜膠多少錢

    韓國“phyto?tree黃瓜膠”最近很火熱,最讓人愛不釋手的地方在于其有著強大的美白補水修復功能。空氣的粉塵、大氣中的紫外線、化妝品殘留等這些無一不在傷害我們的肌膚。您可以找韓國代購買,價格都在30...

kd-tree文獻

鎢鋼KD20 鎢鋼KD20

格式:pdf

大?。?span id="ubecg8h" class="single-tag-height">7KB

頁數(shù): 2頁

評分: 4.5

日本 KD20 鎢鋼化學成分, KD20 鎢鋼板、 KD20 鎢鋼硬度, KD20 鎢鋼價格 KD20 鎢鋼的性能 : 具有較好的韌性和相適的耐磨性,主要用于線材,棒材加工用的拉制模。同 時也適合鑄鐵,有色金屬及其合金與非金屬材料不平整表面和間斷切削時的粗 車,精刨精銑,一般孔和深孔的鉆孔,擴孔及制作木工等 。 硬度 :91.5 抗折力 :2990 引伸力 :580 壓縮強度 :5400 耐沖擊強度 :29 KD20 鎢鋼的用途: 具有良好的韌性和耐磨性 ,用線材和管拉模零件沖壓凹模, 電機定轉(zhuǎn)子, EI鋼片,LED線架沖壓. KD20 鎢鋼的特點: 1、模具壽命的延長(疲勞強度高,不容易產(chǎn)生應力集中) 2、壽命穩(wěn)定性好(裂紋的發(fā)生及擴展時間延遲 3、粘附,啃傷大幅度減少(潤滑劑產(chǎn)生的腐蝕極其輕微) 4、線切割電火花加工過程中的耐腐蝕性大大改良(抗電加工腐蝕能

立即下載
KD型多用戶電表 KD型多用戶電表

格式:pdf

大?。?span id="svn9odv" class="single-tag-height">7KB

頁數(shù): 16頁

評分: 4.5

目錄 1.概述 ........................................................................................................................................ 3 2.產(chǎn)品種類 ................................................................................................................................ 3 2.1 KD-BASA1(預付費智能安全用電控制型)多用戶電表 ............................................. 3 2.11 主要技術特點 .....................

立即下載
kd-tree相關推薦
  • 相關百科
  • 相關知識
  • 相關專欄