專(zhuān)利名稱(chēng):產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明提供一種產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,屬于產(chǎn)品逆向工程技術(shù)領(lǐng)域。
背景技術(shù):
在產(chǎn)品逆向工程技術(shù)領(lǐng)域,所處理的原始數(shù)據(jù)通常是來(lái)自實(shí)物表面采樣而獲得的散亂點(diǎn)云、多邊形網(wǎng)格模型等數(shù)據(jù)格式,基于該類(lèi)原始數(shù)據(jù)進(jìn)行曲面重建生成分片連續(xù)曲面是產(chǎn)品逆向工程的核心技術(shù)。由于散亂點(diǎn)云、多邊形網(wǎng)格以及分片連續(xù)曲面這些數(shù)據(jù)格式均表現(xiàn)為大規(guī)模甚至海量空間幾何對(duì)象的復(fù)合結(jié)構(gòu),為這些數(shù)據(jù)類(lèi)型構(gòu)建一種通用且高效的索引技術(shù),對(duì)于提高產(chǎn)品逆向工程數(shù)據(jù)處理效率具有重要意義。對(duì)現(xiàn)有文獻(xiàn)檢索發(fā)現(xiàn),現(xiàn)有產(chǎn)品逆向工程數(shù)據(jù)的索引技術(shù)通常僅適用于某種特定的數(shù)據(jù)類(lèi)型。在散亂點(diǎn)云處理中,空間八叉樹(shù)與K-D樹(shù)分別是應(yīng)用最為廣泛的靜態(tài)索引與動(dòng)態(tài)索引。周海在其博士學(xué)位論文“細(xì)分曲面造型技術(shù)研究”(南京航空航天大學(xué),2005)中采用空間八叉樹(shù)作為三角網(wǎng)格模型的空間索引結(jié)構(gòu),依據(jù)三角面片包圍盒中心的位置將三角面片插入到空間八叉樹(shù)中,建立三角網(wǎng)格模型索引結(jié)構(gòu),組織三角面片間的近鄰關(guān)系,該方法以三角面片包圍盒中心表示三角面片,不能準(zhǔn)確反映三角面片所在位置及所占空間區(qū)域大小,準(zhǔn)確性差,降低了索引結(jié)構(gòu)的質(zhì)量及基于該結(jié)構(gòu)的空間查詢(xún)效率。王占禮在其博士學(xué)位論文“面向虛擬制造的數(shù)控加工仿真技術(shù)研究”(吉林大學(xué),2007)中采用一個(gè)大包圍盒包圍三角網(wǎng)格模型,將該包圍盒作為根索引結(jié)點(diǎn),然后將其中的三角面片分割成兩部分,每一部分用一個(gè)包圍盒包圍,再對(duì)每一個(gè)包圍盒遞推進(jìn)行分割,直到一個(gè)包圍盒只包含一個(gè)三角面片,建立三角網(wǎng)格模型的非平衡二叉樹(shù)索引結(jié)構(gòu),該結(jié)構(gòu)提高了三角網(wǎng)格模型的空間查詢(xún)效率,但由于該結(jié)構(gòu)為非平衡二叉樹(shù),故只適用于分布較為均勻的三角網(wǎng)格模型,當(dāng)三角網(wǎng)格模型分布疏密不均時(shí),容易出現(xiàn)樹(shù)的某一分支層數(shù)過(guò)多現(xiàn)象,導(dǎo)致數(shù)據(jù)結(jié)構(gòu)急劇惡化,嚴(yán)重降低索引查詢(xún)效率。孫殿柱等人在其學(xué)術(shù)論文“基于四維聚類(lèi)的R*-樹(shù)結(jié)點(diǎn)分裂算法”(機(jī)械工程學(xué)報(bào),2009,45 (10) =180-184)中對(duì)R*-樹(shù)進(jìn)行了改進(jìn),使之可統(tǒng)一索引散亂點(diǎn)云、多邊形網(wǎng)格等數(shù)據(jù)類(lèi)型,繼而在其學(xué)術(shù)論文“三角B6Zier曲面快速求交算法”(機(jī)械工程學(xué)報(bào),2011,47 (3) 89-94)中將改進(jìn)的R*-樹(shù)作為分片連續(xù)曲面的索引結(jié)構(gòu)以提高相交三角B6Zier曲面片查詢(xún)效率,但是由于改進(jìn)的R-樹(shù)在索引結(jié)點(diǎn)分裂過(guò)程中采用了 k-均值聚類(lèi)算法,需要用戶(hù)交互設(shè)定聚類(lèi)簇?cái)?shù),聚類(lèi)簇?cái)?shù)的不同會(huì)導(dǎo)致差別很大的索引 結(jié)點(diǎn)分裂結(jié)果,導(dǎo)致索引結(jié)構(gòu)與性能不穩(wěn)定,此外k-均值聚類(lèi)算法是一種局部搜索算法,對(duì)初始值過(guò)于敏感,采用爬山法迭代搜索最優(yōu)的索引結(jié)點(diǎn)分裂結(jié)果,容易陷入局部極值,難以獲得全局最優(yōu)的索引結(jié)點(diǎn)分裂結(jié)果,導(dǎo)致未能充分發(fā)揮R*-樹(shù)的優(yōu)勢(shì)。綜上所述,目前的產(chǎn)品逆向工程數(shù)據(jù)的動(dòng)態(tài)索引結(jié)構(gòu)已經(jīng)具備了一定的通用性,可基于統(tǒng)一的索引機(jī)制處理各種類(lèi)型的空間幾何對(duì)象的復(fù)合結(jié)構(gòu),但是依然存在數(shù)據(jù)適應(yīng)性較差、索引性能較低并且系統(tǒng)資源消耗較高等問(wèn)題,為產(chǎn)品逆向工程數(shù)據(jù)構(gòu)建穩(wěn)定、高效的索引機(jī)制已成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問(wèn)題。
發(fā)明內(nèi)容
為克服現(xiàn)有產(chǎn)品逆向工程數(shù)據(jù)的索引機(jī)制的不足,本發(fā)明目的在于提供一種產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,使之能索引各種類(lèi)型的逆向工程數(shù)據(jù),具有穩(wěn)定性強(qiáng)、數(shù)據(jù)查詢(xún)效率高的特點(diǎn),技術(shù)方案如下
一種產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,其特征在于包含以下步驟一、讀取產(chǎn)品逆向工程數(shù)據(jù),建立各空間對(duì)象的軸向包圍盒,依據(jù)軸向包圍盒的中心以及外接球半徑建立其對(duì)應(yīng)的數(shù)據(jù)結(jié)點(diǎn),并存入數(shù)據(jù)結(jié)點(diǎn)序列;二、將數(shù)據(jù)結(jié)點(diǎn)插入到索引結(jié)構(gòu)中,結(jié)點(diǎn)插入到索引結(jié)構(gòu)的具體步驟是1)為結(jié)點(diǎn)選擇插入位置;2)將結(jié)點(diǎn)插入到步驟I)中得到的位置;3)令結(jié)點(diǎn)插入到結(jié)點(diǎn)node下,判斷結(jié)點(diǎn)node的子結(jié)點(diǎn)數(shù)是否大于結(jié)點(diǎn)的最大子結(jié)點(diǎn)數(shù),如果大于則對(duì)結(jié)點(diǎn)node進(jìn)行溢出處理,若結(jié)點(diǎn)node為非根索引結(jié)點(diǎn)且在插入一個(gè)空間對(duì)象過(guò)程中該結(jié)點(diǎn)所在層第一次進(jìn)行溢出處理,則在結(jié)點(diǎn)node中有選擇地取出一部分結(jié)點(diǎn),將它們重新插入索引結(jié)構(gòu)的該層中,否則進(jìn)行結(jié)點(diǎn)分裂;4)調(diào)整各結(jié)點(diǎn)的軸向包圍盒;三、將體積過(guò)大的軸向包圍盒重新插入到索引結(jié)構(gòu)中,實(shí)現(xiàn)索引結(jié)構(gòu)的優(yōu)化;四、基于產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引結(jié)構(gòu),實(shí)現(xiàn)散亂點(diǎn)云、多邊形網(wǎng)格以及分片連續(xù)曲面的 拓?fù)浣彶樵?xún)。為實(shí)現(xiàn)發(fā)明目的,所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,在步驟一中,讀取逆向工程數(shù)據(jù)文件,若空間對(duì)象為散亂點(diǎn)則以該點(diǎn)為中心建立邊長(zhǎng)為單位I且各條棱均平行于坐標(biāo)軸的軸向包圍盒,若空間對(duì)象為多邊形網(wǎng)格則建立恰好包圍網(wǎng)格頂點(diǎn)的軸向包圍盒,若空間對(duì)象為分片曲面片則建立恰好包圍其控制頂點(diǎn)的軸向包圍盒,建立各空間對(duì)象對(duì)應(yīng)的數(shù)據(jù)結(jié)點(diǎn),并將其存入數(shù)據(jù)結(jié)點(diǎn)序列,數(shù)據(jù)結(jié)點(diǎn)包含空間對(duì)象的信息以及對(duì)應(yīng)的軸向包圍盒信息。為實(shí)現(xiàn)發(fā)明目的,所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,在步驟二中,將數(shù)據(jù)結(jié)點(diǎn)插入到索引結(jié)構(gòu),方法是結(jié)點(diǎn)包括索引結(jié)點(diǎn)和數(shù)據(jù)結(jié)點(diǎn),索引結(jié)點(diǎn)包含根索引結(jié)點(diǎn)、內(nèi)部索引結(jié)點(diǎn)和葉索引結(jié)點(diǎn),索引結(jié)構(gòu)的最上層結(jié)點(diǎn)為根索引結(jié)點(diǎn)、最下層結(jié)點(diǎn)為葉索引結(jié)點(diǎn)、其余結(jié)點(diǎn)為內(nèi)部索引結(jié)點(diǎn),定義M為結(jié)點(diǎn)的最大子結(jié)點(diǎn)數(shù)(M為大于2的整數(shù))、P為結(jié)點(diǎn)最小子結(jié)點(diǎn)數(shù)(m為小于或等于M /2的整數(shù)),除根索引結(jié)點(diǎn)外,每個(gè)索引結(jié)點(diǎn)的子結(jié)點(diǎn)數(shù)均小于等于]且大于等于
索引結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)的軸向包圍盒恰好包圍該結(jié)點(diǎn)的所有子結(jié)點(diǎn)。為實(shí)現(xiàn)發(fā)明目的,所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,在步驟二中為結(jié)點(diǎn)選擇插入位置的步驟具體是1)令當(dāng)前結(jié)點(diǎn)為current_node,如果索引結(jié)構(gòu)為空則返回空,否則令current_node為索引結(jié)構(gòu)根索引結(jié)點(diǎn);2)令結(jié)點(diǎn)將要插入的層數(shù)為level,若結(jié)點(diǎn)為數(shù)據(jù)結(jié)點(diǎn)則level為索引結(jié)構(gòu)的葉子層,其他類(lèi)型結(jié)點(diǎn)的插入是由強(qiáng)制重新插入引起的,level為其重新插入前所在層數(shù);3)計(jì)算current_node的每個(gè)子結(jié)點(diǎn)與待插入結(jié)點(diǎn)的軸向包圍盒外接球重疊度,選擇重疊度最小的作為current_node ;4)重復(fù)步驟2)直到索引結(jié)構(gòu)的level層為止。為實(shí)現(xiàn)發(fā)明目的,所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,在步驟二中,將結(jié)點(diǎn)插入到索引結(jié)構(gòu),令任意兩結(jié)點(diǎn)軸向包圍盒的外接球半徑分別為%軸向包圍盒中心間的距離為式^/,兩結(jié)點(diǎn)Ci、&軸向包圍盒的外接球重疊度的計(jì)算公
式為=1Ta^以結(jié)點(diǎn)軸向包圍盒外接球重疊度衡量?jī)山Y(jié)點(diǎn)間的相似性大小,重疊度越氣j·
大則結(jié)點(diǎn)間的相似性越大,否則越小。為實(shí)現(xiàn)發(fā)明目的,所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,在步驟二的步驟3)中,選擇重新插入結(jié)點(diǎn)的步驟具體是1)對(duì)溢出結(jié)點(diǎn)node的lf + 1個(gè)子結(jié)點(diǎn),計(jì)算它們的軸向包圍盒的中心到結(jié)點(diǎn)node的軸向包圍盒的中心的距離;2)以步驟I)中計(jì)算的距離值為關(guān)鍵字,對(duì)結(jié)點(diǎn)node的子結(jié)點(diǎn)進(jìn)行降序排序,選出前P個(gè)子結(jié)點(diǎn)。為實(shí)現(xiàn)發(fā)明目的,所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,在步驟二的步驟3)中,結(jié)點(diǎn)分裂的步驟具體是1)對(duì)結(jié)點(diǎn)node的子結(jié)點(diǎn)進(jìn)行二進(jìn)制編碼,O表示非聚類(lèi)中心,I表示聚類(lèi)中心,并構(gòu)造及初始化指定規(guī)模的種群P(t), t=l,計(jì)算其目標(biāo)函數(shù)和適應(yīng)值;2)依據(jù)個(gè)體的目標(biāo)函數(shù)選出非支配解集E(t) ;3)對(duì)種群P(t)進(jìn)行選擇、交叉、變異操作,得到下一代種群P(t+1),令t=t+l ;4)計(jì)算種群P(t)的目標(biāo)函數(shù)值與適應(yīng)值;5)計(jì)算種群P (t)的非支配解集,然后更新非支配解集E (t) ;6)若達(dá)到截止的進(jìn)化代數(shù)則跳轉(zhuǎn)到步驟7),否則跳轉(zhuǎn)到步驟3) ;7)對(duì)非支配解集E(t)進(jìn)行解碼,然后從中選取軸向包圍盒重疊度與軸向包圍盒體積之和最小的分裂方案作為結(jié)點(diǎn)node的最優(yōu)分裂方案;8)令
結(jié)點(diǎn)node的最優(yōu)分裂方案為
權(quán)利要求
1.一種產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,其特征在于包含以下步驟一、讀取產(chǎn)品逆向工程數(shù)據(jù),建立各散亂點(diǎn)云、多邊形網(wǎng)格及分片連續(xù)曲面的軸向包圍盒,依據(jù)軸向包圍盒的中心及外接球半徑建立各空間對(duì)象對(duì)應(yīng)的數(shù)據(jù)結(jié)點(diǎn),并存入數(shù)據(jù)結(jié)點(diǎn)序列,其中結(jié)點(diǎn)包括索引結(jié)點(diǎn)和數(shù)據(jù)結(jié)點(diǎn),索引結(jié)點(diǎn)包含根索引結(jié)點(diǎn)、內(nèi)部索引結(jié)點(diǎn)和葉索引結(jié)點(diǎn),索引結(jié)構(gòu)的最上層結(jié)點(diǎn)為根索引結(jié)點(diǎn)、最下層結(jié)點(diǎn)為葉索引結(jié)點(diǎn)、其余結(jié)點(diǎn)為內(nèi)部索引結(jié)點(diǎn) ,定乂為結(jié)點(diǎn)的最大子結(jié)點(diǎn)數(shù)、W為結(jié)點(diǎn)最小子結(jié)點(diǎn)數(shù),其中M為大于2的整數(shù)為小于或等于If /2的整數(shù),除根索引結(jié)點(diǎn)外,每個(gè)索引結(jié)點(diǎn)的子結(jié)點(diǎn)數(shù)均小于等于M且大于等于索引結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)的軸向包圍盒恰好包圍該結(jié)點(diǎn)的所有子結(jié)點(diǎn);二、將數(shù)據(jù)結(jié)點(diǎn)插入到索引結(jié)構(gòu)中,步驟具體是1)為結(jié)點(diǎn)選擇插入位置,具體步驟為(1)令當(dāng)前結(jié)點(diǎn)為current_node,如果索引結(jié)構(gòu)為空則返回空,否則令current_node為索引結(jié)構(gòu)根索引結(jié)點(diǎn);(2)令結(jié)點(diǎn)將要插入的層數(shù)為level,若結(jié)點(diǎn)為數(shù)據(jù)結(jié)點(diǎn)則level為索引結(jié)構(gòu)的葉子層,其他類(lèi)型結(jié)點(diǎn)的插入是由強(qiáng)制重新插入引起的,level為其重新插入前所在層數(shù);(3)計(jì)算current_node的每個(gè)子結(jié)點(diǎn)與待插入結(jié)點(diǎn)的軸向包圍盒外接球重疊度,選擇重疊度最小的作為current_node,其中計(jì)算兩個(gè)結(jié)點(diǎn)的軸向包圍盒外接球重疊度的方法為令任意兩結(jié)點(diǎn)q、&的軸向包圍盒外接球半徑分別為Q、O,軸向包圍盒中心間 n +r,·的距離為4 ,采用公式= 一^計(jì)算兩結(jié)點(diǎn)軸向包圍盒的外接球重疊度;(4)重復(fù)步驟dUdU(2)直到索引結(jié)構(gòu)的level層為止;2)將結(jié)點(diǎn)插入到步驟I)中得到的插入位置;3)令結(jié)點(diǎn)插入到結(jié)點(diǎn)node下,判斷結(jié)點(diǎn)node的子結(jié)點(diǎn)數(shù)是否大于結(jié)點(diǎn)的最大子結(jié)點(diǎn)數(shù)1If如果大于則對(duì)結(jié)點(diǎn)node進(jìn)行溢出處理,若結(jié)點(diǎn)node為非根索引結(jié)點(diǎn)且在插入一個(gè)空間對(duì)象過(guò)程中該結(jié)點(diǎn)所在層第一次進(jìn)行溢出處理,則計(jì)算溢出結(jié)點(diǎn)node的i¥ + l個(gè)子結(jié)點(diǎn)的軸向包圍盒的中心到結(jié)點(diǎn)node的軸向包圍盒的中心的距離,以距離值為關(guān)鍵字,對(duì)結(jié)點(diǎn)node的子結(jié)點(diǎn)進(jìn)行降序排序,選出前P個(gè)子結(jié)點(diǎn)將它們重新插入索引結(jié)構(gòu)的該層中,否則將結(jié)點(diǎn)node的子結(jié)點(diǎn)劃分為k mCi H = l-,k),將分簇C1作為結(jié)點(diǎn)node的子結(jié)點(diǎn),為分簇集合(Ci μ = 2,…力分別新建結(jié)點(diǎn)μ = 2,…力,計(jì)算新結(jié)點(diǎn)的軸向包圍盒,并將新節(jié)點(diǎn)|i = 2,…M作為結(jié)點(diǎn)node的父結(jié)點(diǎn)的子結(jié)點(diǎn)插入到索引結(jié)構(gòu)中,實(shí)現(xiàn)結(jié)點(diǎn)的分裂;4)調(diào)整各結(jié)點(diǎn)的軸向包圍盒,具體過(guò)程為(1)設(shè)新插入到索引結(jié)構(gòu)中的結(jié)點(diǎn)的父結(jié)點(diǎn)為src_node ; (2)調(diào)整父結(jié)點(diǎn)src_node的軸向包圍盒,使其恰好包含父結(jié)點(diǎn)src_node的所有子結(jié)點(diǎn);(3)若父結(jié)點(diǎn)srcjode為根索引結(jié)點(diǎn),程序返回,否則繼續(xù)執(zhí)行;(4)令父結(jié)點(diǎn)src_node為步驟(I)中父結(jié)點(diǎn)src_node的父結(jié)點(diǎn),返回步驟(2);三、將體積過(guò)大的軸向包圍盒重新插入到索引結(jié)構(gòu)中,實(shí)現(xiàn)索引結(jié)構(gòu)的優(yōu)化;四、基于產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引結(jié)構(gòu),實(shí)現(xiàn)散亂點(diǎn)云、多邊形網(wǎng)格以及分片連續(xù)曲面的拓?fù)浣彶樵?xún),其中查詢(xún)?nèi)我豢臻g對(duì)象T的鄰接對(duì)象的具體步驟如下1)令空間對(duì)象T的軸向包圍盒外接球?yàn)镾 ;2)令SemcMJ,η)表示在以結(jié)點(diǎn)η為根索引結(jié)點(diǎn)的索引結(jié)構(gòu)中查詢(xún)空間對(duì)象T的鄰近對(duì)象集合,若結(jié)點(diǎn)η為數(shù)據(jù)結(jié)點(diǎn)且與外接球S相交,則返回其包含的空間對(duì)象集合,若結(jié)點(diǎn)η為內(nèi)部結(jié)點(diǎn)、,佩 S&mch(J\n) = Semck(K)IJSemck(J^n2)…Semeh(I^ni),其中^ 表示結(jié)點(diǎn) N 中與外接球S相交的子結(jié)點(diǎn);3)將當(dāng)前結(jié)點(diǎn)N初始化為索引結(jié)構(gòu)的根索引結(jié)點(diǎn),則空間對(duì)象T的鄰近對(duì)象集合為Ssmck(J, N)。
2.如權(quán)利要求I所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)建立方法,其特征在于在步驟二的步驟3)中,結(jié)點(diǎn)分裂的步驟具體是1)對(duì)結(jié)點(diǎn)node的子結(jié)點(diǎn)進(jìn)行二進(jìn)制編碼,O表示非聚類(lèi)中心,I表示聚類(lèi)中心,并構(gòu)造及初始化指定規(guī)模的種群P (t),t=l,計(jì)算其目標(biāo)函數(shù)和適應(yīng)值;2)依據(jù)個(gè)體的目標(biāo)函數(shù)選出非支配解集E(t) ;3)對(duì)種群P(t)進(jìn)行選擇、交叉、變異操作,得到下一代種群P(t+1),令t=t+l ;4)計(jì)算種群P(t)的目標(biāo)函數(shù)值與適應(yīng)值;5)計(jì)算種群P(t)的非支配解集,然后更新非支配解集E(t) ;6)若達(dá)到截止的進(jìn)化代數(shù)則跳轉(zhuǎn)到步驟7),否則跳轉(zhuǎn)到步驟3);7)對(duì)非支配解集E (t)進(jìn)行解碼,然后從中選取軸向包圍盒重疊度與軸向包圍盒體積之和最小的分裂方案作為結(jié)點(diǎn)node的最優(yōu)分裂方案;8)令結(jié)點(diǎn)node的最優(yōu)分裂方案為(Ci | = 1,-^},將分簇(\作為結(jié)點(diǎn)node的子結(jié)點(diǎn),為分簇集合M = U)分別新建結(jié)點(diǎn)I = 2,…,i},計(jì)算新結(jié)點(diǎn)的軸向包圍盒,并將新節(jié)點(diǎn)\i = 2,···,幻作為結(jié)點(diǎn)node的父結(jié)點(diǎn)的子結(jié)點(diǎn)插入到索引結(jié)構(gòu)中。
3.如權(quán)利要求I所述的產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)建立方法,其特征在于在步驟三中對(duì)索引結(jié)構(gòu)進(jìn)行優(yōu)化,步驟具體是1)遍歷索引結(jié)構(gòu),計(jì)算葉索引結(jié)點(diǎn)層軸向包圍盒的平均體積;2)遍歷索引結(jié)構(gòu)各葉索引結(jié)點(diǎn),若該葉索引結(jié)點(diǎn)軸向包圍盒的體積大于( μ為用戶(hù)設(shè)定的閾值,通常取:Γ5),則將其包含的數(shù)據(jù)結(jié)點(diǎn)添加到臨時(shí)序列L中,并將其包含的數(shù)據(jù)結(jié)點(diǎn)從索引結(jié)構(gòu)中刪除;3)將序列L中的數(shù)據(jù)結(jié)點(diǎn)重新插入到索引結(jié)構(gòu)中,實(shí)現(xiàn)索引結(jié)構(gòu)的全局優(yōu)化。
全文摘要
本發(fā)明提供一種產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引多目標(biāo)自適應(yīng)構(gòu)建方法,其特征在于首先讀取產(chǎn)品逆向工程數(shù)據(jù)文件,建立各空間對(duì)象的軸向包圍盒,依據(jù)軸向包圍盒的中心及外接球半徑建立各空間對(duì)象對(duì)應(yīng)的數(shù)據(jù)結(jié)點(diǎn),并存入數(shù)據(jù)結(jié)點(diǎn)序列,通過(guò)選擇插入位置、強(qiáng)制重新插入、結(jié)點(diǎn)分裂、調(diào)整結(jié)點(diǎn)軸向包圍盒等步驟將序列中各數(shù)據(jù)結(jié)點(diǎn)插入到索引結(jié)構(gòu)中,將軸向包圍盒體積較大的數(shù)據(jù)結(jié)點(diǎn)重新插入到索引結(jié)構(gòu)中,進(jìn)一步優(yōu)化索引結(jié)構(gòu),實(shí)現(xiàn)產(chǎn)品逆向工程數(shù)據(jù)動(dòng)態(tài)索引結(jié)構(gòu)的建立。本發(fā)明可建立各種復(fù)雜產(chǎn)品逆向工程數(shù)據(jù)的空間索引結(jié)構(gòu),具有參數(shù)依賴(lài)性低、穩(wěn)定性強(qiáng)、查詢(xún)效率高的特點(diǎn)。
文檔編號(hào)G06F17/30GK102831241SQ20121033253
公開(kāi)日2012年12月19日 申請(qǐng)日期2012年9月11日 優(yōu)先權(quán)日2012年9月11日
發(fā)明者孫殿柱, 史陽(yáng), 劉華東, 李延瑞 申請(qǐng)人:山東理工大學(xué)