两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法與流程

文檔序號:11133985閱讀:724來源:國知局
基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法與制造工藝

本發(fā)明涉及一種基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法,更具體的說,尤其涉及一種首相將有圈圖轉(zhuǎn)換為有向無圈圖再根據(jù)小枝中節(jié)點類別和邊的要求進(jìn)行查找的基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法。



背景技術(shù):

圖論以圖為研究對象,圖由若干給定的點及連接兩點的線所構(gòu)成的圖像,是解決復(fù)雜工程問題常用的數(shù)學(xué)理論和工具。圖論中,用點代表事物,用連接兩點的線表示相應(yīng)兩個事物間具有的關(guān)系。

基于區(qū)間標(biāo)記的方法是樹形結(jié)構(gòu)圖中用的較廣的方法。其思想是對樹T中的每個節(jié)點標(biāo)記一個區(qū)間[s,e]。根據(jù)前序遍歷法所構(gòu)建的區(qū)間有一個重要的特點,即如果節(jié)點u可達(dá)節(jié)點v,則u的區(qū)間[su,eu]包含v的區(qū)間[sv,ev]。然而區(qū)間標(biāo)記法不支持有圈圖。

素數(shù)標(biāo)記法也可以支持小枝存在性查詢。其思想是為圖中的每個節(jié)點賦一個素數(shù)或素數(shù)的乘積,使得若節(jié)點u是節(jié)點v的祖先,u的素數(shù)標(biāo)記可以被v的素數(shù)標(biāo)記整除。素數(shù)標(biāo)記法可以支持有圈圖的查詢,但要求用到大量的素數(shù)。而眾所周知,大素數(shù)生成是非常耗時的,因此效率較低。

DataGuide方法構(gòu)建一個模型來描述G中所有的路徑。DataGuide的思想是把圖G看做一個不確定性自動機,并根據(jù)自動機理論用多個確定性自動機來描述一個不確定性自動機。然而DataGuide需要指數(shù)數(shù)量的確定性自動機來準(zhǔn)確描述一個不確定自動機。

Straight-Line Grammar構(gòu)建語法樹來支持存在性查詢。Straight-Line Grammar是上線文無關(guān)文法的特殊形式。Straight-Line Grammar的思想是用通配符來表達(dá)文法中的非終結(jié)符。然而該方法的效率較低。

XSketch是構(gòu)建G的一個概要圖。XSketch的思想是找出G中重復(fù)出現(xiàn)的部分,將多個部分進(jìn)行合并成一個,這樣能節(jié)省查詢時的重復(fù)計算,降低計算量。然而XSketch僅支持無分支路徑查詢。

故,現(xiàn)有的查詢方法不支持有圈圖查詢或不支持小枝查詢,而且查詢效率十分低下。



技術(shù)實現(xiàn)要素:

本發(fā)明為了克服上述技術(shù)問題的缺點,提供了一種基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法。

本發(fā)明的基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法,其特別之處在于,通過以下步驟來實現(xiàn):

a).標(biāo)記有圈圖、小枝,將有圈圖標(biāo)記為G,設(shè)有圈圖G中的節(jié)點數(shù)為n,n個節(jié)點分別標(biāo)記為v1、v2、...、vn,其類別分別標(biāo)記為kindv1、kindv2、...、kindvn;將待查詢的小枝標(biāo)記為T,設(shè)小枝T中的節(jié)點數(shù)為k,k個節(jié)點分別標(biāo)記為u1、u2、...、uk,其類別分別標(biāo)記為kindu1、kindu2、...、kindun,k、n均為正整數(shù);不同節(jié)點可為同一類別;

b).將有圈圖轉(zhuǎn)換為無圈圖,按照“有圈圖G中的一個強連通分量變?yōu)橛邢驘o圈圖中的一個節(jié)點,且變?yōu)楣?jié)點的類別為強連通分量中各節(jié)點類別的并集”的原則,從有圈圖G中提取強連通分量,把有圈圖G轉(zhuǎn)換為一個有向無圈圖G′;設(shè)轉(zhuǎn)換后的有向無圈圖G′有m個節(jié)點,m個節(jié)點分別為v1′、v2′、...、vm′,m為正整數(shù),m<n;

c).素數(shù)標(biāo)記,先對有向無圈圖G′中的節(jié)點進(jìn)行素數(shù)標(biāo)記,然后在根據(jù)“有圈圖G的同一個強連通分量的節(jié)點賦相同素數(shù)標(biāo)記”的原則對有圈圖G中的節(jié)點進(jìn)行素數(shù)標(biāo)記;

d).根據(jù)類別信息查找匹配節(jié)點,根據(jù)小枝T中節(jié)點ui的類別kindui,從有向無圈圖G′中查找出與類別kindui一致的節(jié)點,并將節(jié)點ui與查找出的節(jié)點建立對應(yīng);直至小枝T中所有節(jié)點查找完畢;

e).根據(jù)小枝T中邊的要求進(jìn)行篩選,按照小枝T中各單跳邊、多跳邊以及孩子節(jié)點、父親節(jié)點對有向無圈圖G′中節(jié)點類別的要求,判斷步驟d)中查找的節(jié)點是否滿足要求,如果滿足要求,則表明有圈圖G中存在小枝T;如果不滿足要求,則表明有圈圖G中不存在小枝T。

本發(fā)明的基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法,步驟c)中所述的素數(shù)標(biāo)記按照如下步驟實現(xiàn):

c-1).對G′進(jìn)行素數(shù)標(biāo)記:

c-1-1).葉子節(jié)點賦素數(shù),首先將有向無圈圖G′中的每個葉子節(jié)點賦一個不同的素數(shù);

c-1-2).父親節(jié)點賦素數(shù),如果父親節(jié)點u的所有孩子節(jié)點均存在另一個父親節(jié)點,則把u的所有孩子的素數(shù)標(biāo)記進(jìn)行乘積,再乘以一個新的素數(shù),將最后的乘積賦給u;否則,將u的所有孩子的素數(shù)標(biāo)記進(jìn)行乘積,將乘積賦給u;

c-2).對G進(jìn)行素數(shù)標(biāo)記:

c-2-1).若G中的節(jié)點u在G′中是一個獨立的節(jié)點u′,則直接把u′的素數(shù)標(biāo)記賦給u;

c-2-2).若G中的節(jié)點u在G′中是一個強連通分量縮變成的節(jié)點u′,則直接把u′的素數(shù)標(biāo)記賦給u。

本發(fā)明的有益效果是:本發(fā)明的基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法,首先將有圈圖轉(zhuǎn)化為有向無圈圖,再利用“葉子節(jié)點賦一個不同的素數(shù)、父親節(jié)點賦孩子素數(shù)乘積或孩子素數(shù)與新素數(shù)乘積”的形式對有向無圈圖中各節(jié)點進(jìn)行素數(shù)標(biāo)記;在小枝查詢的過程中,首先根據(jù)小枝節(jié)點中節(jié)點的類別查詢出符合要求的節(jié)點,再根據(jù)小枝中單跳邊、多跳邊以及孩子節(jié)點、父親節(jié)點對節(jié)點類別的要求,進(jìn)行進(jìn)一步篩選,以判斷有圈圖中是否存在所要查找的小枝,解決了現(xiàn)有的查詢方法不支持有圈圖查詢或不支持小枝查詢的問題。

本發(fā)明的基于素數(shù)標(biāo)記的有圈圖小枝存在性查詢方法的優(yōu)點體現(xiàn)在:

(1)本發(fā)明所提出的素數(shù)標(biāo)記法所需要的素數(shù)大大小于現(xiàn)有的素數(shù)標(biāo)記法,一方面大大減少了素數(shù)標(biāo)記的空間開銷,另一方面大大減少了素數(shù)生成所需的時間開銷。

(2)本發(fā)明能支持有圈圖上的小枝查詢,而現(xiàn)有的方法要么不支持有圈圖,要么不支持小枝查詢,本發(fā)明拓寬了小枝查詢的應(yīng)用范圍。

附圖說明

圖1為本發(fā)明的實施例中有圈圖G;

圖2為本發(fā)明的實施例中待查詢的小枝T;

圖3為本發(fā)明的實施例中有圈圖G轉(zhuǎn)換為的有向無圈圖G′;

圖4為本發(fā)明的實施例中有向無圈圖G′進(jìn)行素數(shù)標(biāo)記后的示意圖。

具體實施方式

下面結(jié)合附圖與實施例對本發(fā)明作進(jìn)一步說明。

如圖1所示,給出了本發(fā)明的實施例中有圈圖G,有圈圖G中包含的節(jié)點分別為v1、v2、v3、v4、v5、v6、v7,其類別分別為a、b、e、b、d、c、b。如圖2所示,給出了本發(fā)明的實施例中待查詢的小枝T,小枝T中包含的節(jié)點分別為u1、u2、.u3、u4,其類別分別為a、b、c、d。

如圖3所示,給出了有圈圖G轉(zhuǎn)換為的有向無圈圖G′,圖1中有圈圖G中的三個節(jié)點v1、v2、v3為G的一個強連通分量,合并為有向無圈圖G′的一個節(jié)點v1′。v1′節(jié)點的類別是v1、v2、v3三個節(jié)點類別的并集a、b、e。有圈圖G中的v1、v2、v3的素數(shù)標(biāo)記等于有向無圈圖G′中v1′的素數(shù)標(biāo)記。有圈圖G轉(zhuǎn)換為的有向無圈圖G′中,節(jié)點分別為v1′、v2′、v3′、v4′、v5′,其類別分別為a、b、e,b,c,e,b。

如圖4所示,給出了有向無圈圖G′進(jìn)行素數(shù)標(biāo)記后的示意圖,對有向無圈圖G′進(jìn)行素數(shù)標(biāo)記進(jìn)行素數(shù)標(biāo)記過程中,葉子節(jié)點v3′、v5′分別賦予素數(shù)3、5;在無圈圖G′中,父親節(jié)點v2′只有v3′節(jié)點一個孩子,但是v3′節(jié)點有2個父親(v2′和v4′),所以父親節(jié)點v2′的素數(shù)標(biāo)記需要引入一個新的素數(shù)(素數(shù)7)。父親節(jié)點v4′有兩個孩子v3′節(jié)點和v5′節(jié)點,但不是所有的孩子都有多個父親(節(jié)點v5′只有一個父親v4′),所以v4′的素數(shù)標(biāo)記為v4′的孩子(v3′、v5′)的素數(shù)標(biāo)記的乘積即可。同理,父親節(jié)點v1′標(biāo)記為孩子節(jié)點v2′和v4′的素數(shù)標(biāo)記的乘積。

在查詢有向無圈圖G′是否存在小枝T的過程中,首先根據(jù)類別信息,找出小枝T中的節(jié)點和有向無圈圖G′中的節(jié)點的匹配關(guān)系。例如小枝T中u1的類別為a,它對應(yīng)到G′中所有類別為a的節(jié)點。即u1對應(yīng)v1′;u2的類別為b,它對應(yīng)到G′中的v2′和v5′。u3的類別為c,它對應(yīng)到G′中的節(jié)點v3′;u4的類別為d,它對應(yīng)到G′中的節(jié)點v4′。

然后,根據(jù)小枝T中邊的要求,對上面匹配的節(jié)點進(jìn)行篩選。具體如下:小枝T總要求類別a的u1和類別b的u2要有多跳可達(dá)關(guān)系,而G′中的v2′和v5′都滿足該要求;小枝T中要求類別b的u2要有一個類別為c的孩子,則只有v2′滿足該要求;小枝T中要求類別為c的節(jié)點要有一個類別為d的父親,則v3′和v4′可滿足該要求,篩選完畢后,可見有圈圖G中是存在小枝T的。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
彰化县| 榆林市| 崇仁县| 额济纳旗| 鄂尔多斯市| 昌黎县| 油尖旺区| 青冈县| 雅江县| 习水县| 察哈| 光泽县| 沙洋县| 洪雅县| 剑阁县| 鄂托克前旗| 老河口市| 清水河县| 宁城县| 芜湖县| 梁山县| 贞丰县| 长武县| 罗源县| 阿尔山市| 新平| 庄河市| 城市| 新沂市| 青浦区| 方正县| 嵊泗县| 宜春市| 星座| 龙胜| 连州市| 哈尔滨市| 五莲县| 宽城| 百色市| 西乡县|