本發(fā)明涉及大規(guī)模數(shù)據(jù)輪廓查詢、推薦系統(tǒng)等應(yīng)用領(lǐng)域的不確定偏好的輪廓查詢方法的并行實(shí)現(xiàn)的研究,具體涉及一種基于不確定偏好關(guān)系的輪廓查詢的并行方法。
背景技術(shù):
輪廓查詢也被稱為skyline查詢,最早作為最大化向量問(wèn)題研究,是一個(gè)典型的多目標(biāo)優(yōu)化問(wèn)題,目前在數(shù)據(jù)庫(kù)領(lǐng)域引起了廣泛關(guān)注。skyline查詢是指從給定的一個(gè)n維空間的對(duì)象集合s中選擇一個(gè)子集,該子集中的點(diǎn)均不能被s中其它的點(diǎn)所支配,滿足此條件的點(diǎn)稱為sp(skylinepoint)。此處的支配關(guān)系指在n維空間內(nèi),若存在兩個(gè)對(duì)象p和q,對(duì)象p的n維數(shù)據(jù)中的每一維都優(yōu)于或等于q,且至少存在一個(gè)維度要優(yōu)于q,則稱p支配q。
隨著信息技術(shù)的不斷發(fā)展和現(xiàn)實(shí)應(yīng)用需求的不斷擴(kuò)大,在無(wú)線傳感器網(wǎng)絡(luò)、無(wú)線射頻識(shí)別rfid(radiofrequencyidentification)網(wǎng)絡(luò)、移動(dòng)對(duì)象跟蹤、氣象雷達(dá)網(wǎng)絡(luò)和隱私保護(hù)等應(yīng)用中逐漸涌現(xiàn)出一類數(shù)據(jù),即不確定性數(shù)據(jù)。目前學(xué)術(shù)界對(duì)于不確定數(shù)據(jù)的skyline查詢開(kāi)展了非常多的研究,相比之下對(duì)于不確定偏好的skyline查詢的研究才剛剛起步。當(dāng)前存在的基于不確定偏好的skyline查詢算法都是基于抽樣或者近似原理來(lái)計(jì)算,尚還沒(méi)有算法能夠準(zhǔn)確查詢大規(guī)模數(shù)據(jù)集中基于不確定偏好的skyline。和不確定數(shù)據(jù)相似,不確定偏好廣泛存在于大量應(yīng)用中。不確定偏好存在的原因有很多,首先在不同的應(yīng)用背景中“好”與“壞”的標(biāo)準(zhǔn)是相對(duì)的;其次是在很多時(shí)候我們無(wú)法百分之百判斷兩個(gè)屬性值之間的好壞,在這種情況下我們使用概率來(lái)描述這兩個(gè)屬性值之間的好壞情況。比如60%情況下屬性值a比屬性值b好,或者30%情況下屬性值b比屬性值a好。不確定偏好的skyline查詢是為適應(yīng)現(xiàn)實(shí)環(huán)境中不斷出現(xiàn)的不確定偏好應(yīng)用而提出的一類skyline查詢。自從將skyline查詢引入不確定偏好之后,基于不確定偏好的skyline查詢?cè)谕扑]系統(tǒng)、人工智能、信息檢索、數(shù)據(jù)挖掘和決策制定等眾多應(yīng)用中發(fā)揮著重要作用。目前已成為數(shù)據(jù)庫(kù)領(lǐng)域的一個(gè)研究新的熱點(diǎn)。隨著近年來(lái)不確定偏好應(yīng)用的廣泛興起和發(fā)展,高效處理不確定偏好的skyline查詢成為當(dāng)前亟待解決的問(wèn)題。然而,由于查詢需求的不斷擴(kuò)大及其計(jì)算時(shí)間復(fù)雜度與數(shù)據(jù)集的大小成指數(shù)關(guān)系,導(dǎo)致已有的集中式方法難以滿足現(xiàn)實(shí)應(yīng)用對(duì)查詢效率的需求。
由于不確定偏好skyline建模的特點(diǎn)以及復(fù)雜的概率表示和計(jì)算,使得不確定偏好的skyline查詢面臨嚴(yán)峻挑戰(zhàn)。而且因?yàn)榛诓淮_定偏好skyline查詢指數(shù)級(jí)別的時(shí)間復(fù)雜度,不確定偏好的skyline查詢面臨著查詢實(shí)用性的問(wèn)題。當(dāng)前的基于不確定偏好skyline查詢都是串行方法,其性能不能滿足大規(guī)模查詢的需求,目前還沒(méi)有基于不確定偏好skyline的并行查詢方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是:針對(duì)現(xiàn)有技術(shù)的上述問(wèn)題,提供一種并行進(jìn)程數(shù)目可控、能最大化并行效率、所需時(shí)間隨著標(biāo)簽長(zhǎng)度指數(shù)下降,能夠極大的減少查詢時(shí)間,實(shí)現(xiàn)高效查詢針對(duì)大規(guī)模數(shù)據(jù)的基于不確定偏好關(guān)系的輪廓查詢的并行方法。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
一種基于不確定偏好關(guān)系的輪廓查詢的并行方法,其特征在于實(shí)施步驟包括:
1)輸入數(shù)據(jù)集d,數(shù)據(jù)集d={q1,q2,...,qn}為一個(gè)包含n個(gè)數(shù)據(jù)元組的數(shù)據(jù)集,qi均為數(shù)據(jù)集d中的第i個(gè)數(shù)據(jù)元組,1≤i≤n,數(shù)據(jù)元組
2)根據(jù)標(biāo)簽長(zhǎng)度|l|將數(shù)據(jù)集劃分d生成2l個(gè)不同的標(biāo)簽l,數(shù)據(jù)集d的標(biāo)簽l是一個(gè)二進(jìn)制數(shù),l[i]表示標(biāo)簽l的第i位,|l|表示標(biāo)簽l的位數(shù);
3)從數(shù)據(jù)集d中遍歷選擇一個(gè)數(shù)據(jù)元組作為當(dāng)前數(shù)據(jù)元組o;
4)針對(duì)當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)包含2n項(xiàng),將當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)劃分為相應(yīng)的大小相等的2l個(gè)不相交晶格,每一個(gè)晶格都對(duì)應(yīng)于一個(gè)標(biāo)簽;其中任意一個(gè)晶格[α,β],其標(biāo)簽為l;任意一個(gè)屬于[α,β]的元素s滿足
5)分別采用2l個(gè)進(jìn)程并行計(jì)算2l個(gè)不相交晶格的值,每個(gè)進(jìn)程計(jì)算一個(gè)晶格,將各個(gè)進(jìn)程計(jì)算得到的結(jié)果相加得到當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)并輸出;
6)判斷數(shù)據(jù)集d中的n個(gè)數(shù)據(jù)元組是否已經(jīng)遍歷完畢,如果尚未遍歷完畢,則跳轉(zhuǎn)執(zhí)行步驟3);否則,結(jié)束并退出。
優(yōu)選地,步驟1)初始化數(shù)據(jù)集d的標(biāo)簽長(zhǎng)度|l|具體是指根據(jù)計(jì)算節(jié)點(diǎn)分配得到的計(jì)算資源確定數(shù)據(jù)集d的標(biāo)簽長(zhǎng)度|l|,且計(jì)算節(jié)點(diǎn)分配得到的計(jì)算資源中的最大并發(fā)進(jìn)程數(shù)p和數(shù)據(jù)集d的標(biāo)簽長(zhǎng)度|l|之間滿足表達(dá)式|l|≤log2p。
本發(fā)明基于不確定偏好關(guān)系的輪廓查詢的并行方法具有下述優(yōu)點(diǎn):本發(fā)明對(duì)于數(shù)據(jù)集d中任意一個(gè)數(shù)據(jù)元組o,根據(jù)標(biāo)簽長(zhǎng)度|l|,將當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)中包含的2n項(xiàng)劃分為不相交的2l晶格。并行2l個(gè)進(jìn)程計(jì)算這2l個(gè)不相交晶格的值,每個(gè)進(jìn)程計(jì)算一個(gè)晶格。最后將各個(gè)進(jìn)程計(jì)算得到的結(jié)果相加得到當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)的值。通過(guò)上述并行計(jì)算方法,即可對(duì)基于不確定偏好關(guān)系的輪轂查詢完成并行計(jì)算。上述并行計(jì)算可以通過(guò)調(diào)節(jié)標(biāo)簽長(zhǎng)度l來(lái)實(shí)現(xiàn)不同進(jìn)程數(shù)目的并行。既能達(dá)到最大并行效率,又能根據(jù)機(jī)器的實(shí)時(shí)狀態(tài)調(diào)節(jié)并行進(jìn)程的數(shù)目。本發(fā)明將并行2l個(gè)進(jìn)程計(jì)算這2l個(gè)不相交晶格的值,因此每個(gè)進(jìn)程所承擔(dān)的計(jì)算量是一致的。所以每個(gè)進(jìn)程所需要的計(jì)算時(shí)間基本相同,采用本發(fā)明基于不確定偏好關(guān)系的輪廓查詢的并行方法能夠最大限度利用cpu的計(jì)算能力,從而使并行效率最大化,具有以下效果:
1)控制并行進(jìn)程數(shù)目:通過(guò)控制標(biāo)簽長(zhǎng)度|l|能夠控制并行進(jìn)程數(shù)目??梢愿鶕?jù)機(jī)器的實(shí)時(shí)狀態(tài)調(diào)整并行進(jìn)程數(shù);
2)最大化并行效率:本發(fā)明將任意當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)中包含的2n項(xiàng)均等的劃分為不相交晶格,所以每個(gè)進(jìn)程上所承擔(dān)的計(jì)算量大小是一致的,不會(huì)出現(xiàn)有進(jìn)程空閑等待的情況發(fā)生,因此本發(fā)明能最大化并行效率;
3)高效查詢:采用本發(fā)明可實(shí)現(xiàn)高效查詢。本發(fā)明中并行計(jì)算方法所需時(shí)間隨著標(biāo)簽長(zhǎng)度|l|指數(shù)下降。能夠極大的減少查詢時(shí)間,實(shí)現(xiàn)高效查詢。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例方法的基本流程示意圖。
圖2為本發(fā)明實(shí)施例方法的標(biāo)簽劃分示意圖。
圖3為本發(fā)明實(shí)施例方法的擴(kuò)展性驗(yàn)證試驗(yàn)結(jié)果。
具體實(shí)施方式
如圖1所示,本實(shí)施例基于不確定偏好關(guān)系的輪廓查詢的并行方法的實(shí)施步驟包括:
1)輸入數(shù)據(jù)集d,數(shù)據(jù)集d={q1,q2,...,qn}為一個(gè)包含n個(gè)數(shù)據(jù)元組的數(shù)據(jù)集,qi均為數(shù)據(jù)集d中的第i個(gè)數(shù)據(jù)元組,1≤i≤n,數(shù)據(jù)元組
本實(shí)施例中,步驟1)初始化數(shù)據(jù)集d的標(biāo)簽長(zhǎng)度|l|具體是指根據(jù)計(jì)算節(jié)點(diǎn)分配得到的計(jì)算資源確定數(shù)據(jù)集d的標(biāo)簽長(zhǎng)度|l|,且計(jì)算節(jié)點(diǎn)分配得到的計(jì)算資源中的最大并發(fā)進(jìn)程數(shù)p和數(shù)據(jù)集d的標(biāo)簽長(zhǎng)度|l|之間滿足表達(dá)式|l|≤log2p。本發(fā)明中的并行算法部署在國(guó)防科學(xué)技術(shù)大學(xué)天河2a計(jì)算機(jī)節(jié)點(diǎn)上,計(jì)算節(jié)點(diǎn)分配得到的計(jì)算資源為兩顆八核cpu,因此在此計(jì)算節(jié)點(diǎn)上最多并發(fā)16條進(jìn)程,所以|l|≤4。本實(shí)施例中取標(biāo)簽長(zhǎng)度|l|=2。
2)根據(jù)標(biāo)簽長(zhǎng)度|l|將數(shù)據(jù)集劃分d生成2l個(gè)不同的標(biāo)簽l,數(shù)據(jù)集d的標(biāo)簽l是一個(gè)二進(jìn)制數(shù),l[i]表示標(biāo)簽l的第i位,|l|表示標(biāo)簽l的位數(shù);
本實(shí)施例中取標(biāo)簽長(zhǎng)度|l|=2,因此共生成4個(gè)標(biāo)簽,分別為{(00),(01),(10),(11)},參見(jiàn)圖2中,分別表示為label(00)、label(01)、label(10)、label(11),其中標(biāo)簽中的數(shù)字為數(shù)據(jù)元組qi的上標(biāo)序號(hào),例如1代表q1,12代表{q1,q2},
3)從數(shù)據(jù)集d中遍歷選擇一個(gè)數(shù)據(jù)元組作為當(dāng)前數(shù)據(jù)元組o;
4)針對(duì)當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)包含2n項(xiàng),將當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)劃分為相應(yīng)的大小相等的2l個(gè)不相交晶格,每一個(gè)晶格都對(duì)應(yīng)于一個(gè)標(biāo)簽;其中任意一個(gè)晶格[α,β],其標(biāo)簽為l;任意一個(gè)屬于[α,β]的元素s滿足
5)分別采用2l個(gè)進(jìn)程并行計(jì)算2l個(gè)不相交晶格的值,每個(gè)進(jìn)程計(jì)算一個(gè)晶格,將各個(gè)進(jìn)程計(jì)算得到的結(jié)果相加得到當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)并輸出;
6)判斷數(shù)據(jù)集d中的n個(gè)數(shù)據(jù)元組是否已經(jīng)遍歷完畢,如果尚未遍歷完畢,則跳轉(zhuǎn)執(zhí)行步驟3);否則,結(jié)束并退出。
對(duì)于任意當(dāng)前數(shù)據(jù)元組o而言,
式(1)和(2)中,ei表示事件
對(duì)于數(shù)據(jù)集d而言,一個(gè)任意當(dāng)前數(shù)據(jù)元組o屬于輪廓集合skyline表明當(dāng)前數(shù)據(jù)元組o不被數(shù)據(jù)集d中其他元組所支配。當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)表示當(dāng)前數(shù)據(jù)元組o在輪廓集合skyline中的概率。因此則有式(3):
式(3)中,sky(o)為當(dāng)前數(shù)據(jù)元組o的輪廓查詢,n為數(shù)據(jù)集d包含的數(shù)據(jù)元組數(shù)量,qi均為數(shù)據(jù)集d中的第i個(gè)數(shù)據(jù)元組,
定義
式(4)中,ei表示事件數(shù)據(jù)集i中的所有元素聯(lián)合支配o,i表示數(shù)據(jù)集d中的一個(gè)子集,qi表示數(shù)據(jù)集d中的第i個(gè)數(shù)據(jù)元組,ei表示事件
根據(jù)式(4)和和容斥原理可知式(5):
式(7)中,sky(o)為當(dāng)前數(shù)據(jù)元組o的輪廓查詢,n表示數(shù)據(jù)集d中包含的數(shù)據(jù)元組個(gè)數(shù),k為數(shù)據(jù)元組的序號(hào),i表示數(shù)據(jù)集d中的一個(gè)子集,|i|表示i中的元素個(gè)數(shù),ei表示事件數(shù)據(jù)集i中的所有元素聯(lián)合支配o,pr(ei)表示ei發(fā)生的概率。由上述公式可知,當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)包含2n項(xiàng),計(jì)算當(dāng)前數(shù)據(jù)元組o的輪廓查詢sky(o)的時(shí)間復(fù)雜度為o(2n)。
為了對(duì)本實(shí)施例基于不確定偏好關(guān)系的輪廓查詢的并行方法的并行效率進(jìn)行驗(yàn)證,針對(duì)不同大小的數(shù)據(jù)集分別運(yùn)行現(xiàn)有串行算法和本實(shí)施例基于不確定偏好關(guān)系的輪廓查詢的并行方法,現(xiàn)有串行算法和本實(shí)施例基于不確定偏好關(guān)系的輪廓查詢的并行方法所需要的時(shí)間如圖2所示。在實(shí)驗(yàn)中記錄串行算法運(yùn)行時(shí)間為t1,串行算法運(yùn)行時(shí)間為t2。如圖2所示,黑色柱狀圖表示t1,格子柱狀圖表示t2,t2隨著并行進(jìn)程數(shù)的增加指數(shù)下降。并行效率
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。