日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

STR树 —— R-tree的构建方案之一

發(fā)布時間:2023/12/31 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 STR树 —— R-tree的构建方案之一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文通過MetaWeblog自動發(fā)布,原文及更新鏈接:https://extendswind.top/posts/technical/str_tree_rtree_construction

最近需要使用R樹做一下空間索引,在GeoSpark中使用了JTS庫中實現(xiàn)的STR樹,一開始以為是R-tree的一個變種,細看發(fā)現(xiàn)只是R樹的構(gòu)建(packing)方式之一。

STR是Sort-Tile-Recursive的縮寫,是一種R-tree的packing算法。具體的介紹可以看作者的論文 https://www.cs.odu.edu/%7Emln/ltrs-pdfs/icase-1997-14.pdf ,CSDN上有個主要內(nèi)容的翻譯 https://blog.csdn.net/qq_41775852/article/details/105405918。

R樹常見構(gòu)建過程

通常R樹是針對動態(tài)有增刪的數(shù)據(jù),因此構(gòu)建過程可以將所有的數(shù)據(jù)逐個插入到R樹中。這種情況可能會存在一些缺點:

(a) high load time
(b) sub-optimal spac eutilization
(c) poor R-tree structure requiring the retrieval of anunduly large number of nodes in order to satisfy a query.

因此,常用packing的方式自底向上的構(gòu)建R樹,主要流程如下:

假設(shè)一共有r個矩形需要被索引,每個葉子結(jié)點中存儲的矩形數(shù)量為n。首先將所有的矩形分成r/n(此處取上界)個組;(分組方式通過下面的packing算法)
將各個分組寫入硬盤的pages,并計算每個分組內(nèi)所有矩形的MBR以及分組對應(yīng)的page-id;
對分組的MBR遞歸的執(zhí)行上面的步驟,直到根節(jié)點。

在第1步中,將需要被索引的矩形分成r/n個組,論文中介紹了常見的Nearest-X(NX)、HilbertSort(HS)以及論文提出的Sort-Tile-Recursive(STR)。

STR算法

STR的算法本身并不復(fù)雜,以2維空間為例。對矩形的分組只考慮每個矩形的中心點,STR的基本思想是將所有的矩形以“tile”的方式分配到r/n(取上界)個分組中,此處的tile和網(wǎng)格類似。

首先,對矩形按x坐標(biāo)排序,然后劃分成 $sqrt{r/n}$ 個slice。然后對slice內(nèi)的矩形按y坐標(biāo)排序,進一步劃分成 $sqrt{r/n}$ 份。

對于更高維的空間,可以按這種方式接著劃分。

總結(jié)

這個算法就是這樣做一個簡單的劃分,正如論文的標(biāo)題 《STR: A Simple and Efficient Algorithm for R-Tree Packing》,有種方法對于一篇論文來講太簡單了的感覺。文章內(nèi)還做了些對比實驗,表明針對不同的空間數(shù)據(jù)分布情況最好選擇對應(yīng)合適的方法,STR的packing算法并不是適合所有的場景。

簡單點來看,也就是將空間中的矩形劃分到了一個x、y方向相等的網(wǎng)格的分組中,當(dāng)數(shù)據(jù)為長寬差距較大的矩形范圍分布時,做一個xy方向的分組數(shù)量相同應(yīng)該不是最好的方案。

總結(jié)

以上是生活随笔為你收集整理的STR树 —— R-tree的构建方案之一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。