• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于BFS+DFS的圖數據快速多層擴線方法技術

    技術編號:38004919 閱讀:22 留言:0更新日期:2023-06-30 10:20
    本發明專利技術涉及一種基于BFS+DFS的圖數據快速多層擴線方法,基于預設目標類型對象集,設計首先以正向搜索方式,執行各目標對象對應預設最大關系層數K的關系網的搜索;然后以反向搜索方式,執行以各目標對象出發、關于預設關聯屬性下的關系對象網搜索;并且在正向搜索與反向搜索中,為了滿足對應最大關系層數K的要求,引入回溯機制,如此設計邏輯策略,并加入BFS與DFS的具體搜索方式,最終實現以預設目標類型對象集中目標對象出發、關于預設關聯屬性下的關系對象網搜索,克服了現有技術的不足,有效提高了關系對象網搜索的搜索效率。提高了關系對象網搜索的搜索效率。提高了關系對象網搜索的搜索效率。

    【技術實現步驟摘要】
    一種基于BFS+DFS的圖數據快速多層擴線方法


    [0001]本專利技術涉及一種基于BFS+DFS的圖數據快速多層擴線方法,屬于圖數據庫


    技術介紹

    [0002]隨著物聯網Iot技術的快速發展,各個行業涌現出海量需要進行關聯分析的數據,而傳統的關系型數據庫無法滿足復雜關聯網絡數據的存儲查詢和分析,圖數據庫表現出前所未有的性能優勢。
    [0003]對于圖數據特有的多層擴線問題,由于數據隨著查詢層級的深入呈指數級增加,資源占用會大幅增加,并且性能會大幅下降。例如查詢10個節點的5層關系,每個節點的平均關系數為100,則第一層查詢出的關系數為10*100=1000,第二層為10*1002=100000,第三層為10*1003=10000000,第四層為10*1004=1000000000,

    ,不考慮重復的關系數據,四層查詢此時的關系數據已經達到10億級別,如果出現超級節點,數據量更是成倍增加。
    [0004]多層擴線屬于搜索類操作,一般有DFS、BFS兩種方式,DFS是深度優先搜索,而BFS是廣度優先搜索。
    [0005]DFS就是暴力的把所有路徑都搜索出來,運用了回溯法,保存這次的位置,深入搜索,都搜索完了便進行回溯,搜索下一個位置,直到把所有的最深位置都搜一遍,找到的許多路徑可能都是無用的,但是由于每次只會順著一個方向深入搜索,所以不會引發資源緊張問題,但是可能耗時較久。
    [0006]BFS就是每一層都找到所有可能的路徑,在選擇其中一個方向,繼續找到所有可能的路徑,接下來選擇上一層另外一個方向,繼續找到素有可能的路徑,直到把每一層的每一個方向都遍歷完成,由于隨著層數的深入,需要緩存的前N層路徑越來越多,容易引發資源問題,但搜索耗時較少。
    [0007]由此可知,DFS以時間換空間,BFS以空間換時間,DFS遍歷效率太慢,而BFS容易引發服務端資源緊張,甚至出現OutOfMemory問題。

    技術實現思路

    [0008]本專利技術所要解決的技術問題是提供一種基于BFS+DFS的圖數據快速多層擴線方法,整合兩種方法之間的聯系,引入全新搜索策略,能夠有效提高關系對象網的搜索效率。
    [0009]本專利技術為了解決上述技術問題采用以下技術方案:本專利技術設計了一種基于BFS+DFS的圖數據快速多層擴線方法,基于預設目標類型對象集,根據預設關聯屬性下的關系搜索請求,實現以預設目標類型對象集中目標對象出發、關于預設關聯屬性下的關系對象網搜索;包括如下步驟:
    [0010]步驟A.基于預設目標類型對象集的等量均分,獲得各個預設目標類型對象子集,然后初始化i=1、以及結果路徑集合為空集,并進入步驟B;
    [0011]步驟B.根據預設大于1的最大關系層數K,以第i個預設目標類型對象子集中各目
    標對象對應第0關系層,初始化第i個預設目標類型對象子集所對應的第1關系層至第K
    ?
    1關系層,并初始化n=1,然后進入步驟C;
    [0012]步驟C.針對第i個預設目標類型對象子集中的第n個目標對象,執行對應預設最大關系層數K的關系搜索,若成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,則獲得該第n個目標對象對應預設最大關系層數K的關系網,并進入步驟D;若未成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,則進入步驟F;
    [0013]步驟D.針對最新所獲該第n個目標對象對應預設最大關系層數K的關系網,由第K
    ?
    1關系層向第0關系層方向,搜索對應該第n個目標對象的各關系對象路徑,加入結果路徑集合中,并判斷結果路徑集合中關系對象路徑的數量是否滿足關系搜索請求中的路徑數要求,是則完成以目標對象出發、關于預設關聯屬性下的關系對象網搜索;否則進入步驟E;
    [0014]步驟E.針對該第n個目標對象對應預設最大關系層數K的關系網,按第K
    ?
    1關系層向第0關系層方向,執行對應預設最大關系層數K的新關系搜索,若成功完成該第n個目標對象對應預設最大關系層數K的新關系搜索,獲得該第n個目標對象對應預設最大關系層數K的關系網,并返回步驟D;若未成功完成該第n個目標對象對應預設最大關系層數K的新關系搜索,則進入步驟F;
    [0015]步驟F.判斷n是否等于第i個預設目標類型對象子集中目標對象的數量,是則進入步驟G;否則針對n的值進行加1更新,并返回步驟C;
    [0016]步驟G.判斷i的值是否等于預設目標類型對象子集的數量,是則結束以預設目標類型對象集中目標對象出發、關于預設關聯屬性下的關系對象網搜索;否則針對i的值進行加1更新,并初始化n=1,然后返回步驟C。
    [0017]作為本專利技術的一種優選技術方案:所述步驟C按如下步驟C1至步驟C8執行;
    [0018]步驟C1.初始化k=1,并選擇第i個預設目標類型對象子集中的第n個目標對象,作為該第n個目標對象所對應第k
    ?
    1關系層的待分析對象,并進入步驟C2;
    [0019]步驟C2.查找判斷該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性、是否存在所關聯的關系對象,是則獲得該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性所關聯的各關系對象,并進入步驟C3;否則進入步驟C6;
    [0020]步驟C3.判斷k是否等于K
    ?
    1,是則進入步驟C5;否則進入步驟C4;
    [0021]步驟C4.判斷該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性所關聯的關系對象的數量是否大于預設分析上限L,是則由該所關聯各關系對象中隨機選擇L個關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,并針對k的值進行加1更新,然后返回步驟C2;否則直接將該所關聯的各關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,并針對k的值進行加1更新,然后返回步驟C2;
    [0022]步驟C5.將該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性所關聯的各關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,即成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,獲得該第n個目標對象對應預設最大關系層數K的關系網,并進入步驟D;
    [0023]步驟C6.判斷k
    ?
    1是否等于0,是則即未成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,然后進入步驟F;否則進入步驟C7;
    [0024]步驟C7.判斷該第n個目標對象所對應第k
    ?
    2關系層各待分析對象關于預設關聯屬
    性所關聯的各關系對象中、是否存在未作為該第n個目標對象所對應第k
    ?
    1關系層中待分析對象的各個關系對象,是則僅將該各個關系對象作為該第n個目標對象所對應第k
    ?
    2關系層各待分析對象關于預設關聯屬性所關聯的各關系對象,然后針本文檔來自技高網
    ...

    【技術保護點】

    【技術特征摘要】
    1.一種基于BFS+DFS的圖數據快速多層擴線方法,其特征在于:基于預設目標類型對象集,根據預設關聯屬性下的關系搜索請求,實現以預設目標類型對象集中目標對象出發、關于預設關聯屬性下的關系對象網搜索;包括如下步驟:步驟A.基于預設目標類型對象集的等量均分,獲得各個預設目標類型對象子集,然后初始化i=1、以及結果路徑集合為空集,并進入步驟B;步驟B.根據預設大于1的最大關系層數K,以第i個預設目標類型對象子集中各目標對象對應第0關系層,初始化第i個預設目標類型對象子集所對應的第1關系層至第K
    ?
    1關系層,并初始化n=1,然后進入步驟C;步驟C.針對第i個預設目標類型對象子集中的第n個目標對象,執行對應預設最大關系層數K的關系搜索,若成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,則獲得該第n個目標對象對應預設最大關系層數K的關系網,并進入步驟D;若未成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,則進入步驟F;步驟D.針對最新所獲該第n個目標對象對應預設最大關系層數K的關系網,由第K
    ?
    1關系層向第0關系層方向,搜索對應該第n個目標對象的各關系對象路徑,加入結果路徑集合中,并判斷結果路徑集合中關系對象路徑的數量是否滿足關系搜索請求中的路徑數要求,是則完成以目標對象出發、關于預設關聯屬性下的關系對象網搜索;否則進入步驟E;步驟E.針對該第n個目標對象對應預設最大關系層數K的關系網,按第K
    ?
    1關系層向第0關系層方向,執行對應預設最大關系層數K的新關系搜索,若成功完成該第n個目標對象對應預設最大關系層數K的新關系搜索,獲得該第n個目標對象對應預設最大關系層數K的關系網,并返回步驟D;若未成功完成該第n個目標對象對應預設最大關系層數K的新關系搜索,則進入步驟F;步驟F.判斷n是否等于第i個預設目標類型對象子集中目標對象的數量,是則進入步驟G;否則針對n的值進行加1更新,并返回步驟C;步驟G.判斷i的值是否等于預設目標類型對象子集的數量,是則結束以預設目標類型對象集中目標對象出發、關于預設關聯屬性下的關系對象網搜索;否則針對i的值進行加1更新,并初始化n=1,然后返回步驟C。2.根據權利要求1所述一種基于BFS+DFS的圖數據快速多層擴線方法,其特征在于:所述步驟C按如下步驟C1至步驟C8執行;步驟C1.初始化k=1,并選擇第i個預設目標類型對象子集中的第n個目標對象,作為該第n個目標對象所對應第k
    ?
    1關系層的待分析對象,并進入步驟C2;步驟C2.查找判斷該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性、是否存在所關聯的關系對象,是則獲得該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性所關聯的各關系對象,并進入步驟C3;否則進入步驟C6;步驟C3.判斷k是否等于K
    ?
    1,是則進入步驟C5;否則進入步驟C4;步驟C4.判斷該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性所關聯的關系對象的數量是否大于預設分析上限L,是則由該所關聯各關系對象中隨機選擇L個關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,并針對k的值進行加1更新,然后返回步驟C2;否則直接將該所關聯的各關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,并針對k的值進行加1更新,然后返回步驟C2;
    步驟C5.將該第n個目標對象所對應第k
    ?
    1關系層各待分析對象關于預設關聯屬性所關聯的各關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,即成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,獲得該第n個目標對象對應預設最大關系層數K的關系網,并進入步驟D;步驟C6.判斷k
    ?
    1是否等于0,是則即未成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,然后進入步驟F;否則進入步驟C7;步驟C7.判斷該第n個目標對象所對應第k
    ?
    2關系層各待分析對象關于預設關聯屬性所關聯的各關系對象中、是否存在未作為該第n個目標對象所對應第k
    ?
    1關系層中待分析對象的...

    【專利技術屬性】
    技術研發人員:丁軍峰黃曉丹夏軍生趙智峰曹俊亮
    申請(專利權)人:西安烽火軟件科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲看片无码在线视频| 国产免费无码AV片在线观看不卡 | 亚洲日韩v无码中文字幕| 国产成人无码精品久久久免费| 亚洲日韩欧洲无码av夜夜摸| 亚洲av永久无码一区二区三区| 人妻无码人妻有码中文字幕| 亚洲AV无码成人精品区日韩| 中文字幕无码乱人伦| 久久久久久久久免费看无码| 久久久久亚洲AV成人无码网站 | 97久久精品无码一区二区| 亚洲va中文字幕无码| 日韩精品成人无码专区免费| 91精品国产综合久久四虎久久无码一级| 无码日韩精品一区二区人妻| 亚洲精品久久久久无码AV片软件| 亚洲永久无码3D动漫一区| 国产午夜无码福利在线看网站| 中文字幕日产无码| 熟妇无码乱子成人精品| 国产精品无码无需播放器| 亚洲va中文字幕无码| 无码日韩人妻AV一区二区三区 | 国产精品午夜无码体验区 | 欧洲无码一区二区三区在线观看| 国产亚洲?V无码?V男人的天堂| 无码任你躁久久久久久老妇| 国产精品成人无码久久久| 国产成人无码精品久久久露脸 | 国产啪亚洲国产精品无码| 精品久久久无码人妻字幂| 成人免费无码大片A毛片抽搐 | 无码中文字幕日韩专区视频| 无码人妻精品一区二区三区东京热| 日韩AV无码一区二区三区不卡毛片| 国产AⅤ无码专区亚洲AV| 亚洲国产精品成人精品无码区在线 | 男人的天堂无码动漫AV| 精品人妻系列无码一区二区三区 | 亚洲av永久无码精品古装片|