一種基于圖挖掘的社交網(wǎng)絡(luò)組隊(duì)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種社交網(wǎng)絡(luò)組隊(duì)方法,主要利用圖挖掘從全局角度求解最佳組隊(duì)方 式下的隊(duì)員,屬于計(jì)算機(jī)技術(shù)、信息技術(shù)、數(shù)據(jù)挖掘技術(shù)交叉技術(shù)應(yīng)用領(lǐng)域。
【背景技術(shù)】
[0002] 社交網(wǎng)絡(luò),是由社會(huì)行動(dòng)者、二元關(guān)系W及人們之間的社會(huì)互動(dòng)組成的社會(huì)結(jié)構(gòu)。 社交網(wǎng)絡(luò)視角提供了一組可用于分析整個(gè)社會(huì)實(shí)體結(jié)構(gòu)的方法,并且提供了一系列理論用 W說(shuō)明從運(yùn)些結(jié)構(gòu)中觀察到的模式。生活中最常見(jiàn)的也是最直觀的社交網(wǎng)絡(luò),主要包括學(xué) 術(shù)合作、人物關(guān)系、在線交友等應(yīng)用等。
[0003] 在社交網(wǎng)絡(luò)中,個(gè)體之間的組隊(duì)問(wèn)題非常普遍。本發(fā)明采用最少優(yōu)先算法,同時(shí)采 用哈希存儲(chǔ)優(yōu)化求解過(guò)程,尋找最佳的組隊(duì)方案。最少優(yōu)先算法是一種優(yōu)先處理最少的方 法。目前,該算法主要應(yīng)用在BT系統(tǒng)中文件塊的選擇策略方面,在本發(fā)明中,我們應(yīng)用最少 優(yōu)先算法進(jìn)行社交網(wǎng)絡(luò)中組隊(duì)問(wèn)題的求解。哈希存儲(chǔ)在數(shù)據(jù)查詢中有著廣泛的應(yīng)用,是一 種力圖將數(shù)據(jù)元素的存儲(chǔ)哈希位置與關(guān)鍵碼之間建立確定對(duì)應(yīng)關(guān)系的查找技術(shù)。哈希法存 儲(chǔ)的基本思想是由節(jié)點(diǎn)的關(guān)鍵碼值決定節(jié)點(diǎn)的存儲(chǔ)地址。本發(fā)明將會(huì)形成解決全局情況下 社交網(wǎng)絡(luò)中最佳組隊(duì)方案,采用哈希存儲(chǔ),使問(wèn)題的解決過(guò)程在時(shí)間和空間復(fù)雜度得到優(yōu) 化,并能求得精確解。本發(fā)明給出一種基于圖挖掘的社交網(wǎng)絡(luò)組隊(duì)方法,該方法將社交網(wǎng)絡(luò) 中的人員定義為圖模型,依據(jù)圖半徑的定義并結(jié)合最少優(yōu)先算法,從全局角度求解社交網(wǎng) 絡(luò)中的最佳組隊(duì)方案,并利用哈希存儲(chǔ)優(yōu)化求解過(guò)程。
【發(fā)明內(nèi)容】
[0004] 技術(shù)問(wèn)題:本發(fā)明的目的是提供一種基于圖挖掘的社交網(wǎng)絡(luò)組隊(duì)方法,解決社交 網(wǎng)絡(luò)中的組隊(duì)問(wèn)題,該問(wèn)題是指給定一項(xiàng)需要某些技能才能完成的任務(wù),W及具有不同技 能的多位候選人,從候選人中選擇部分人進(jìn)行組隊(duì)構(gòu)成候選人子集,使得該隊(duì)的總體技能 不但能夠達(dá)到完成任務(wù)的要求,同時(shí)保證該隊(duì)中的隊(duì)員之間能夠高效地進(jìn)行交流與工作。
[0005] 技術(shù)方案:所述社交網(wǎng)絡(luò)的組隊(duì)問(wèn)題描述如下:設(shè)給定一個(gè)任務(wù)T,該任務(wù)的完成 需要一些技能,有n個(gè)候選人,將候選人集合定義為X ={ 1,2,…,n},每個(gè)候選人個(gè)體i都具 備技能集Xi。我們假定運(yùn)些候選人組織在一個(gè)帶權(quán)無(wú)向圖G(x,E)中,每個(gè)候選人看作一個(gè) 節(jié)點(diǎn),邊的權(quán)值定義為候選人之間的交流代價(jià),其中低權(quán)值表明兩個(gè)候選人之間交流代價(jià) 更小、更容易進(jìn)行合作。我們的目標(biāo)是從候選人集中尋找候選人子集進(jìn)行組隊(duì),使得最終所 組的隊(duì)具備能夠完成任務(wù)T的能力,而且隊(duì)中人員能夠高效地交流與合作。每一個(gè)組隊(duì)方案 是圖G(x,E)的一個(gè)子圖,我們用子圖中的交流代價(jià)來(lái)描述高效程度,交流代價(jià)用直徑R進(jìn)行 表示,即子圖中任意兩節(jié)點(diǎn)之間距離的最大值。直徑越小,則表明交流代價(jià)越小,該隊(duì)的合 作和工作效率也越高。
[0006] 本發(fā)明所述的基于圖挖掘的社交網(wǎng)絡(luò)組隊(duì)方法將社交網(wǎng)絡(luò)中的組隊(duì)問(wèn)題定義成 圖模型、采用最少優(yōu)先算法獲得解空間及利用哈希存儲(chǔ)優(yōu)化求解過(guò)程。
[0007] 本發(fā)明所述的基于圖挖掘的社交網(wǎng)絡(luò)組隊(duì)方法包括W下步驟:
[0008] 步驟1)根據(jù)用戶輸入的信息,構(gòu)建社交網(wǎng)絡(luò)組隊(duì)問(wèn)題的圖模型G,所述圖模型G在 建立后,任意兩個(gè)候選人之間的最短路都有相應(yīng)的權(quán)值,表示兩者的交流代價(jià);
[0009] 步驟2)使用最少優(yōu)先算法,獲得社交網(wǎng)絡(luò)組隊(duì)問(wèn)題在圖模型G上的解空間;
[0010] 步驟3)利用哈希存儲(chǔ)優(yōu)化求解過(guò)程,采用哈希表存儲(chǔ)相關(guān)技能集。
[00川 其中
[001 ^ 所述的步驟1)具體如下:
[0013] 步驟11)用戶輸入任務(wù)完成所需的技能集、候選人集及每個(gè)候選人具有的技能集, 其中用戶輸入的技能集記為T(mén)= {日1,日2,''',am},候選人集記為X= {1,n};所述m是任務(wù) 完成需要的技能個(gè)數(shù);W是第j個(gè)技能;n是候選人個(gè)數(shù);T表示技能集,也表示所要完成的任 務(wù);aj E T表不aj是完成任務(wù)T的技能;
[0014] 步驟12)將所有候選人作為圖模型G中的節(jié)點(diǎn),代表候選人i稱為節(jié)點(diǎn)i,所述iex;
[0015] 步驟13)將候選人巧日i/間的路徑看作圖模型G中節(jié)點(diǎn)巧日節(jié)點(diǎn)i/之間的弧,候選 人之間的交流代價(jià)作為節(jié)點(diǎn)i和節(jié)點(diǎn)i/之間弧的權(quán)值。所述d(i,i〇為圖模型G中節(jié)點(diǎn)i到節(jié) 點(diǎn)i/最短路的權(quán)值,且節(jié)點(diǎn)間的距離滿足=角不等式,所述i'EX;所述=角不等式是指在 =角形中,必然有兩邊之和大于第=邊;
[0016] 步驟14)用Xi表示候選人i所代表的節(jié)點(diǎn)所具備的技能集,當(dāng)a^eXi時(shí),候選人i具 有技能aj;當(dāng)。/-《別寸,候選人巧具有技能aj;
[0017]步驟15)定義候選人子集Z'e J,當(dāng)X'中至少有一個(gè)候選人具有技能a擁,X'有技能 aj,定義X'的覆蓋為C(^,T)。所述C(^,T)表示X'完成任務(wù)T必需的技能并且在X'中每個(gè)候 選人至少具備T中一種技能,即C(x/,T)=Tn(U記x'Xl),用化th(i,i/)表示節(jié)點(diǎn)i到節(jié)點(diǎn)i/ 的最短路上的節(jié)點(diǎn)集,定義d(i )=mini'ex'd(i , i/ ),表示節(jié)點(diǎn)i到候選人子集^的最短 距離,其中i ex且義,定義化th(i )表示從巧化=argmim'ex' d(i , i/ )最短路上的節(jié) 點(diǎn)集,所述k = argmim' ex' d(i , i/ )是i到X'所構(gòu)成子圖上最短路的終點(diǎn)。
[001引所述的步驟2)具體如下:
[0019] 步驟21)定義支撐集S(a),所述S(a)表示在X中具有技能a的候選人所組成的集合, 即S(a) = U I iex且aeXi};
[0020] 步驟22)對(duì)于完成任務(wù)T所需的每個(gè)技能a,按照每個(gè)候選人i具備的技能集Xi計(jì)算 相應(yīng)的支撐集S(a),其中S(a) = UlaEXih
[0021] 步驟23)定義S(arare),所述S(arare)表示基數(shù)最小的候選人支撐集,即最小支撐,該 支撐集對(duì)應(yīng)的技能為最少技能arare;
[0022] 步驟24)對(duì)于每個(gè)候選人ies(arare),將該候選人到其余支撐集的距離d(i,S(a)) 保存至距離集Ria中;
[0023] 步驟25)對(duì)于每個(gè)距離集Ria,將其中的最大值maxaRia添加到直徑集Ri中;
[0024] 步驟26)將直徑集1?1中的最小值對(duì)應(yīng)的節(jié)點(diǎn)1^定義為關(guān)鍵候選人,保存到解空間 Solution 中;
[0025] 步驟27)求解節(jié)點(diǎn)1巧1]每個(gè)支撐集S(a)最短路徑上的所有候選人節(jié)點(diǎn),目陽(yáng)ath(i^ 5(曰)),將運(yùn)些節(jié)點(diǎn)添加到解空間5。1。*1。。,所述1^乂;
[0026] 步驟28)確定組隊(duì)方案S〇iuti〇n=i*U {Path(i*,S(a)) laET}。
[0027] 所述的步驟3)具體如下:
[0028] 步驟31)用哈希表存儲(chǔ)候選人i具有的技能集Xi,即化sh(i)=Xi,所述哈希表是根 據(jù)關(guān)鍵碼值而直接進(jìn)行訪問(wèn)的數(shù)據(jù)結(jié)構(gòu),通過(guò)把關(guān)鍵碼值映射到表中一個(gè)位置來(lái)訪問(wèn)記 錄,W加快查找的速度;
[0029] 步驟32)使用一組不同的哈希表,存儲(chǔ)具有最少技能曰皿日的候選人=U IarareE Xi},即HashQ*" ) = {i larareEXi};
[0030] 步驟33)按照上述算法流程,采用新的存儲(chǔ)結(jié)構(gòu),得到相同的組隊(duì)方案,即Solution = i*U {Path(i*,S(a)) |aET}。
[0031] 有益效果:本發(fā)明利用圖算法形成高效的社交網(wǎng)絡(luò)組隊(duì)方法。具體體現(xiàn)如下有益 效果:
[0032] 1)本發(fā)明提供一種社交網(wǎng)絡(luò)組隊(duì)方法,其完整的方法過(guò)程包括將社交網(wǎng)絡(luò)中的組 隊(duì)問(wèn)題定義成圖模型、采用最少優(yōu)先算法獲得解空間及利用哈希存儲(chǔ)優(yōu)化求解過(guò)程。
[0033] 2)本發(fā)明中所述建模過(guò)程中,提供一個(gè)或一套較為抽象的圖模型,能夠?qū)?shí)際問(wèn) 題中的相關(guān)求解方法轉(zhuǎn)化為數(shù)學(xué)化的模型形式。
[0034] 3)本發(fā)明中所述模型從全局的角度求社交網(wǎng)絡(luò)組隊(duì)方法,使組隊(duì)問(wèn)題最終能夠得 到最優(yōu)精確解。
[0035] 4)本發(fā)明在優(yōu)化求解過(guò)程中采用哈希結(jié)構(gòu)存儲(chǔ)候選人信息,有效降低最少優(yōu)先算 法的算法時(shí)間復(fù)雜和空間復(fù)雜度。
【附圖說(shuō)明】
[0036] 圖1是基于圖挖掘的社交網(wǎng)絡(luò)組隊(duì)方法對(duì)應(yīng)的流程圖。
【具體實(shí)施方式】
[0037] 下面對(duì)本發(fā)明附圖的某些實(shí)施例作更加詳細(xì)的描述。
[0038] 根據(jù)附圖1,本發(fā)明【具體實(shí)施方式】為:
[0039] 1)將社交網(wǎng)絡(luò)中的組隊(duì)問(wèn)題定義成圖模型。
[0040] 11)列出任務(wù)完成所需的技能集、候選人集及每個(gè)候選人具有的技能集。目前需要 完成一項(xiàng)開(kāi)發(fā)任務(wù),完成該任務(wù)所需要的技能有算法軟件工程、分布式系統(tǒng)、網(wǎng)絡(luò)編程和大 數(shù)據(jù)。同時(shí)有5個(gè)候選人,將其編號(hào)為1,2,3,4,5。其中,1號(hào)候選人具有技能:算法和大數(shù)據(jù), 2號(hào)候選人具有技能:算法、網(wǎng)絡(luò)編程和數(shù)據(jù),3號(hào)候選人具有技能:軟件工程和分布式系 統(tǒng),4號(hào)候選人具有技能:軟件工程、分布式系統(tǒng)、網(wǎng)絡(luò)編程和大數(shù)據(jù),5號(hào)候選人具有技能: 軟件工程、分布式系統(tǒng)和網(wǎng)絡(luò)編程。
[0041] 12)將5位候選人看作圖G中節(jié)點(diǎn)。
[0042] 13)將i號(hào)候選人到j(luò)號(hào)候選人之間的路徑看作兩者之間的弧,候選人之間的交流 代價(jià)作為該弧的權(quán)值,定義d(i,j)表示在圖G中i號(hào)候選人到j(luò)號(hào)候選人的最短路上的權(quán)值, 其中 d(l,2) =4,d( 1,3) = 5,d(2,3) = 3,d(4,5) = 3,d( 1,4) = 100,d( 1,5) = 100,d(2,4) = 100,(1(2,5) =