999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于蟻群遺傳混合算法改進的連接查詢研究*

2021-12-23 06:18:52張逸風佟國香屈亞寧
計算機工程與科學 2021年12期
關鍵詞:優化

張逸風,佟國香,劉 軍,屈亞寧

(1.上海理工大學光電信息與計算機工程學院,上海 200093;2.山東山大華天軟件有限公司,山東 濟南 250000)

1 引言

產品生命周期管理PLM(Product Lifecycle Management)是支持產品信息創建、管理、分發和應用的一系列方案。PLM的核心技術之一是面向產品全生命周期的數據建模技術。目前PLM系統主要以文檔管理為主,很難解決異構平臺、跨單位、跨階段和跨領域開發時的數據交互問題,因此,研發基于模型數據庫的復雜產品全生命周期模型管理原型系統PLMM(Product Lifecycle Management of Model)成為工業4.0時代大趨勢。而產品生命周期中的概念產生、產品設計、采購、生產制造、銷售和服務等各個階段的數據不僅數據量大,且相互關聯錯綜復雜,目前主流的關系型數據庫和數據倉庫都可以作為PLM系統的數據服務支持平臺。由于PLM系統的數據庫結構的復雜度高,數據信息具有多樣性,將數據抽象為模型后,模型之間的關聯關系越來越復雜,耦合性越來越高等諸多因素降低了數據檢索的效率,因此,選擇合適的連接查詢算法[1]尤為重要。

在傳統聯機事務處理OLTP(On-Line Transaction Processing)[2]的多表連接查詢方式中,Hash Join[3]是近些年研究人員改進得最多的連接查詢算法。因為其穩定性和有效性,自誕生以來研究人員就嘗試從各方面對其進行改進。文獻[4]介紹了一種散列合并連接算法HMJ(Hash-Merge Join)。它通過不可預測的、緩慢的或突發的網絡流量處理來自遠程數據源的數據項。算法綜合運用了非阻塞連接算法X-Join和漸進式合并連接算法的優點,得到了更優的結果。文獻[5]提出了一種新的基于NOWs(Network Of Workstations)的散列連接處理的負載共享算法,結合了分塊方法和散列連接來管理當前環境中發生的動態變化,可以用于當前的單連接處理。文獻[6]提出了一種基于列庫的分布式環境中散列連接算法,面向數據的分布式計算模型的設計,引入分區聚合和啟發式優化策略,實現了改進的哈希連接算法。

對于聯機分析處理OLAP(On-Line Analytical Processing)[7]多表連接查詢,由于數據量過于巨大,牽扯的關聯表數量也大幅增加。Ripple Join[8]是主流的估算聚合值方法,輪流在每個表中隨機采樣,將采樣的結果放入內存,對新放入內存的結果和所有現存的結果進行連接查詢。這種方法要求采樣的數據分布具有隨機性,而現代數據庫數據被聚類存放,因此不具有隨機分布的特性。文獻[9]對Ripple Join算法進行了并行性和采樣方面的改進,該方法的局限性是,一旦內存無法再加載數據時,估計結果將不具有統計意義。Chris 等人[10]將sort-merge思想應用到Ripple Join算法中,對內存轉出到外存的數據進行隨機化處理,從而保證估計結果的統計意義,并在引擎DBO(Date Base Owner)上實現了該方法,提升了Ripple Join的部分效率。文獻[11]介紹了Invisible Join,其思想是將表的相關列映射成位圖,對維表主鍵屬性相應的外鍵列建立一個事實表位圖,根據所需要選擇的位圖和屬性獲得相應連接結果。文獻[12]提出的Flash/Five Join是一種基于索引的多路等值的列式數據庫連接算法,對連接列屬性值進行排序,同時索引號隨之變動,再將連接列屬性值物化得到物化后的值,最后對索引號排序得到連接結果。Wander Join[13,14]是一種通過采樣計算聚合值[15]的方法,設計了一個步行計劃選擇器代替隨機采樣,使得采樣更有目的性,效率更高。通過合理應用Wander Join連接查詢,用戶將獲得更高的聚合值返回效率,數據庫系統可以支持更多元的運算。它的問題在于復雜性和適用性,以及對分組查詢的查詢速度不盡如人意。

本文將蟻群遺傳混合算法[16]與Wander Join相結合,提出了優化連接順序的連接查詢算法。該算法通過一個連接選擇器計算出連接表之間的代價,用于連接圖建模時的順序選擇。執行連接圖對應的連接計劃后,使用剪枝策略對樣本多余的節點進行剪枝操作,保留高選擇性的節點,以減少節點的數量,避免重復搜索。最后將提出的混合連接算法在TPC-H(Transaction process Performance Council-H)數據集和TPC-DS(Transaction process Performance Council-DS)數據集[17,18]上分別進行了仿真驗證。

2 Wander Join查詢算法

Wander Join查詢算法使采樣過程更加集中,避免了盲目地從每個表中抽取樣本進行連接操作,只從其中一個表中隨機抽取一個元組,從該元組開始進行隨機遍歷,在隨機遍歷的每一步中,只考慮當前已采樣元組及其相鄰元組。與Ripple Join連接算法的“盲目搜索”相比,它是一種引導探索。

具體方法是將表之間的連接建模為連接圖,然后在該連接圖中執行隨機遍歷。由于可以用不同的順序對相同的連接執行隨機遍歷,所以Wander Join查詢算法設計了一個優化器來選擇最優的遍歷計劃。由于每一條路徑被選擇的概率不相同,易導致采樣不均勻,為了判斷遍歷計劃的優劣,Wander Join引入HT(Horvitz-Thompson)估計量,用式(1)來估算樣本總體的期望值[19]:

(1)

其中,n表示采樣數目,XIi表示采樣這個Ii得到的值,πIi表示出現采樣的概率。而選擇概率如式(2)所示:

(2)

其中,γ表示不同時刻,Rλ(1)表示第1個表里總記錄的條數,dλ(i)(tp(i))表示從第i-1個表的某條記錄連接到第i個表的邊的數目。

在給定的時間內,最終估計量的方差與Var[X1]E[T]/T成正比,如式(3)所示:

(3)

其中,W表示游走總步數,Xi表示第i個隨機游走的估計值,E[T]表示隨機游走中查找的索引條目的平均值,T表示總運行時間,最終估計量的方差越小,越接近最優的游走方案。

3 改進的連接查詢算法

本文引入蟻群遺傳混合算法和裁剪搜索空間對Wander Join算法進行優化,算法流程如算法1和圖1所示。

算法1改進的連接查詢算法

Step1表節點建模:將N個表上的連接建模為連接圖;

Step2連接順序確定:引入蟻群遺傳混合算法確定表連接順序;

Step3執行選擇計劃:根據新的連接順序執行計劃;

Step4樣本選擇:采用剪枝策略縮小選擇范圍;

Step5完成連接查詢。

Figure 1 Flow chart of improved algorithm 圖1 改進算法流程圖

3.1 表節點建模

數據庫連接查詢優化問題與傳統的旅行商問題類似,目標是尋求一條代價最小的路徑。本文提出的改進算法將需要進行連接查詢的數據表建模成連接圖,以最小代價提供連接查詢路徑,流程如下所示:

Step1初始化節點:每個表被建模為一個節點ci,i=1,2,…,N;

Step2節點連接:若2表之間存在連接條件,則2表之間形成一條邊;

Step3形成連接圖:整合節點和邊形成連接圖G(V,E),其中V={ci|i=1,2,…,N},E為所有邊組成的集合。

3.2 連接順序確定

實體和群體的能力描述代表了它們執行任務的能力,是進行任務規劃的根本依據。能力描述還將組織任務的可完成性判斷轉化成了描述任務邏輯的定理證明。另外,群體中成員的變更可能導致組織能力的變化,能力描述也能自然地將這種變化表現出來。

由于模擬生物或自然界的不確定算法易陷入局部最優,而基于啟發式的確定算法存在收斂速度慢等問題,本文算法將蟻群算法與遺傳算法相結合,將蟻群算法每次迭代的結果作為遺傳算法的初始種群,用遺傳算法產生的結果更新蟻群算法的信息素。同時,引入2種新的交叉算子,后期使用兩元素優化(2-opt)算法,避免了算法過早陷入局部最優解,加快了算法的收斂速度,流程如下所示:

Step1生成初始種群。

(1)定義啟發式信息素因子α,啟發式期望值因子β,表節點連接代價d,信息素τ,啟發式信息η,信息素強度q,交叉概率pe,變異概率pm,信息素揮發系數ρ等。

(2)禁忌表初始化為空。

(3)將螞蟻釋放在N個表節點上。

(4)狀態及轉移方向初始化,如式(4)所示:

(4)

(5)將表節點按照被遍歷的順序組成編碼,把蟻群算法中所有螞蟻遍歷一次后的完整路徑作為遺傳算法的初始種群。

Step2執行選擇。

按照1∶1的比例,采用輪盤賭方法和最優個體保存法對種群中的個體進行選擇。第k個個體適應度被選擇的概率pk和前k個個體被選擇的累計概率qk如式(5)和式(6)所示:

(5)

(6)

其中,f(k)為適應度函數。

計算個體適應度在整個種群適應度中被選擇概率和累計概率,最后通過0~1的隨機數r與累計概率qk來決定被保留的個體。

適應度的計算采用目標函數和適應度函數,目標函數如式(7)所示:

(7)

其中,d(ci,cj)表示表節點ci到表節點cj的距離,Lk則代表螞蟻k在一次迭代中走過的路徑長度。

適應度函數選取目標函數f(Lk)的倒數,如式(8)所示:

(8)

可知,路徑長度影響適應度,路徑越長適應度越小。

Step3執行交叉。

按照交叉概率進行交叉操作。從種群中隨機確定個體a和個體b作為子代路徑的父個體,隨機確定一個交叉節點rc作為子代路徑的起始節點。計算父個體a和b路徑中節點rc與其下一個節點ca1和cb1之間的距離da1和db1,計算節點rc與ca2和cb2之間的距離da2和db2,如果da1+db2*r≤da2+db2*r,0

Step4執行變異。

對交叉后得到的結果采用對換變異,將隨機選取的若干基因按照變異概率pm互換,初始概率選擇較大的值,以便在更大范圍內搜索,盡可能減小丟失最優解的概率。根據進化代數令變異概率pm遞減,最終鎖定最優解。

Step52元素優化(2-opt)。

從當前解中任意選擇2條路徑,拆成2個部分。在不構成環路的前提下,將第1部分的路徑反接回另一條路徑,比較產生的路徑與原路徑的長度,并保留路徑相對較短的解。針對不同的路徑重復進行2-opt,最終得到局部優化后的解。

Step6用式(9)更新信息素:

(9)

(10)

Step7若迭代次數大于最大循環次數或遺傳算法的結果滿足當前要求的最優解,輸出最優連接路徑結果P(x1,x2,…,xn)。

3.3 執行選擇計劃

根據3.2節中得到的新的查詢連接順序P(x1,x2,…,xn),執行新的選擇計劃。

以圖2為例,如果按照原始的查詢順序A→B→C,連接一次成功率為3/5,但是在優化連接順序后,新的選擇計劃的查詢順序為C→B→A,則連接的一次成功率為4/5,達到了優化效果。

Figure 2 Data connection diagram圖2 數據連接示意圖

3.4 樣本選擇優化

刪除未通過篩選的節點可以對高選擇性查詢樣本進行優化,防止查詢節點失敗,使用更少的節點進行查詢,以加快查詢速度。優化過程如下所示:

Step1初始化權重。

在實踐中,當發出過濾查詢時,統一設置每個節點的權重。

Step2更新權重。

在進行抽樣時,如果遇到一個節點未能通過篩選,將該節點的權值設置為0,并將此節點視為查詢失敗。通過將權值設置為0,保證不再對這個失敗的節點采樣。

Step3裁剪。

如圖3所示,對于3張表A、B、C,可以看到2條可能的采樣路徑是A1→B1→C2和A1→B2→C2。如果連接選擇了A1,B1,而節點C2沒有通過篩選,則將C2的權重置為0,并裁剪。這樣不僅消除了A1→B1→C2這條可能的路徑,也消除了A1→B2→C2路徑。刪除沒有通過篩選的節點,防止了任何路徑對該節點進行再次采樣。

Figure 3 Node clipping diagram圖3 節點裁剪示意圖

Step4輸出裁剪后結果。如果再次執行同一查詢計劃,查詢正確率將有所提升。

4 實驗及結果討論

本文實驗環境為Python 3.6.5,實驗數據集為TPC-H與TPC-DS。

實驗參數設置:蟻群遺傳混和算法種群規模M(k)=25,啟發式信息素因子α=2,啟發式期望值因子β=3,信息素揮發系數ρ=0.7,釋放的信息素總量q=100,交叉概率pe=0.75,變異概率pm=0.05,遺傳算法進化代數設為20,混合算法的總迭代次數達到100代時輸出結果。

基于相對錯誤率、置信區間寬度、平均權重和執行時間對算法性能進行評估,并將蟻群遺傳混合算法+剪枝策略+Wander Join改進的算法(本文算法,記作S-WJ-P)分別與蟻群遺傳混合算法+Wander Join改進的算法(記作S-WJ)以及Wander Join算法(記作WJ)進行了對比實驗。

相對錯誤率如式(11)所示:

(11)

其中,v表示方差,Ns表示抽樣個數。

置信區間的左右值分別用L-int和R-int表示,半寬度(ε-width)公式為:

(12)

平均權重如式(13)所示:

(13)

其中,n為樣本數量,wi為權重。

4.1 模擬多表連接順序優化

把每個表節點映射為一個二維數組后,基于TPC-H數據集和本文算法獲得的優化表連接路徑如圖4所示。

Figure 4 Minimum cost path of table join圖4 表連接最小代價路徑

為了驗證在更大數量表連接時算法的可行性,模擬實驗了20和50個表連接的情況,本文算法獲得的優化表連接路徑如圖5所示。

Figure 5 Minimal cost path for a large number of table join圖5 大量表連接最小代價路徑

由圖4和圖5可見,表節點數量越多,路徑選擇就越多,本文算法容易找到相對最優解進行連接,從而減少連接的相對錯誤率。

4.2 實驗結果分析

將置信度設置為95%,分別在樣本數量為10 000和100 000的條件下,測試了3種算法在6個檔次選擇率情況下的相對錯誤率、執行時間、平均權重和置信區間寬度,結果如表1和表2所示。

對比表1和表2,在不同選擇概率ch下,WJ的相對錯誤率波動較大,這是因為3.2節中提到的WJ的隨機游走會導致路徑不同,從而影響選擇成功率,而S-WJ和S-WJ-P的相對錯誤率波動較小,說明改進的算法具有良好的魯棒性。S-WJ-P和S-WJ的置信區間寬度與平均權重也均小于WJ的。以上實驗結果表明,本文算法達到95%置信區間的收斂速度比WJ快,換言之,達到相同置信區間所需的樣本數量比WJ的少。此外,由于剪枝策略的加入,裁剪了大量沒有遍歷的節點,因此在低選擇率條件下獲得了更好的優化效果,從而本文算法的估算結果更精確。

圖6~圖9給出了不同樣本數量時的算法對比情況。從圖6和圖7給出的相對錯誤率的對比情況來看,在2種不同樣本數量條件下,S-WJ-P在大部分選擇率區間內的相對錯誤率均低于WJ和S-WJ的,只有在低選擇率區間內S-WJ的相對錯誤率略低。3種算法的執行效率如圖8和圖9所示,S-WJ-P和S-WJ的執行時間均高于WJ的。這是因為引入的蟻群遺傳混合算法和剪枝策略增加了算法的計算時間,但在樣本數量大幅度增加后,由于剪枝策略有效減少了表節點數量,3種算法時間趨于一致,因此犧牲部分時間減少20%~70%的相對錯誤率是值得的。樣本數量較少時的效率問題仍是后續改進算法的方向。

Table 1 Comparison of partial experimental results of 10 000 samples表1 10 000個樣本部分實驗結果對比

Table 2 Comparison of partial experimental results of 100 000 samples表2 100 000個樣本部分實驗結果對比

Figure 6 Comparison of relative error rate of 10 000 samples圖6 10 000個樣本相對錯誤率對比

Figure 7 Comparison of relative error rate of 100 000 samples圖7 100 000個樣本相對錯誤率對比

Figure 8 Execution time of 10 000 samples圖8 10 000個樣本執行時間

Figure 9 Execution time of 100 000 samples圖9 100 000個樣本執行時間

為了驗證改進算法的普適性,基于TPC-DS數據集再次驗證,從圖10、圖11與圖6、圖7中相對錯誤率的對比情況來看,在相同樣本數量條件下,S-WJ-P在大部分選擇率區間內的相對錯誤率均低于WJ和S-WJ的。實驗結果表明,改進算法具有更高的正確率和更好的魯棒性。

Figure 10 Comparison of relative error rates of 10 000 samples on TPC-DS圖10 TPC-DS上10 000個樣本相對錯誤率對比圖

Figure 11 Comparison of relative error rates of 100 000 samples on TPC-DS圖11 TPC-DS上100 000個樣本相對錯誤率對比

5 結束語

本文提出了一種基于Wander Join改進的數據庫連接查詢算法,利用蟻群遺傳混合算法優化表連接的路徑選擇,結合Wander Join算法,使連接查詢得到部分優化。按照新的連接順序進行連接后,引入剪枝策略,減少連接節點數量。實驗表明,算法在控制相對錯誤率和控制樣本數量方面取得了較好的效果。選擇率為10%左右時,改進算法表現最佳,相對錯誤率只有Wander Join算法的1/5。改進算法在數據庫更新操作時會破環剪枝的效果,加上蟻群算法的處理時間,導致執行時間增加。今后的研究可以嘗試連接算法的并行化,或與其它啟發式算法結合,引入強化學習算法全面提升其性能。

猜你喜歡
優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目標優化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
圍繞“地、業、人”優化產業扶貧
今日農業(2020年16期)2020-12-14 15:04:59
事業單位中固定資產會計處理的優化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 亚洲中文无码h在线观看| 中文国产成人精品久久| 国产精品无码制服丝袜| 亚洲成人77777| 99国产精品免费观看视频| 伊人色婷婷| 亚洲中文字幕在线观看| 热九九精品| 国产女人爽到高潮的免费视频 | 日本亚洲成高清一区二区三区| 国产福利一区在线| 国产青榴视频| 无码在线激情片| 久久久噜噜噜久久中文字幕色伊伊| 啪啪永久免费av| аv天堂最新中文在线| 成人在线欧美| 亚洲色图欧美在线| 国产精品免费福利久久播放| 2020久久国产综合精品swag| 成人无码区免费视频网站蜜臀| 欧美亚洲一区二区三区导航| 成人韩免费网站| 九九热精品视频在线| 91系列在线观看| 精品91在线| 再看日本中文字幕在线观看| 又粗又硬又大又爽免费视频播放| 69精品在线观看| 一区二区三区在线不卡免费| 国产一二视频| 国产特级毛片| 亚洲人成色在线观看| 美女视频黄又黄又免费高清| 精品国产免费观看| AV天堂资源福利在线观看| 麻豆AV网站免费进入| 国产十八禁在线观看免费| 伊人蕉久影院| 国产精品林美惠子在线播放| 日韩成人在线网站| 久久久久九九精品影院| 超清无码熟妇人妻AV在线绿巨人| 一区二区偷拍美女撒尿视频| 日韩天堂在线观看| 这里只有精品在线播放| 国内精自线i品一区202| 亚洲国产精品日韩av专区| 国产理论最新国产精品视频| 日韩成人午夜| 免费看a级毛片| a天堂视频| 日本91在线| a级毛片免费播放| 久久久久亚洲精品无码网站| 一本大道视频精品人妻| 亚洲av无码成人专区| 日韩久久精品无码aV| 日韩高清成人| 真人高潮娇喘嗯啊在线观看| 久久精品只有这里有| 国产精品露脸视频| 91福利一区二区三区| 99久久99视频| 国产成人1024精品| 99精品在线视频观看| 欧美性猛交xxxx乱大交极品| 国产精品天干天干在线观看| 97国产在线视频| 亚洲人成在线精品| 99视频免费观看| 国产在线日本| 四虎影视库国产精品一区| 曰韩免费无码AV一区二区| 不卡无码h在线观看| a级毛片免费看| 精品国产亚洲人成在线| 国产办公室秘书无码精品| 久久综合一个色综合网| 欧美啪啪网| 亚洲h视频在线| 成人久久精品一区二区三区|