本發(fā)明屬于計(jì)算機(jī),涉及一種開源項(xiàng)目中群智激發(fā)監(jiān)控方法、裝置和設(shè)備。
背景技術(shù):
1、開源軟件已經(jīng)成為現(xiàn)代社會(huì)基礎(chǔ)設(shè)施不可或缺的一部分。在開源軟件托管平臺(tái)的支持下,世界各地的開發(fā)人員都可以輕松發(fā)布和參與開源軟件項(xiàng)目。開源軟件項(xiàng)目的成功在很大程度上取決于社區(qū)成員的積極參與和智慧的集成,也即從群智范式角度所說的群智激發(fā)與匯聚。鑒于開源軟件開發(fā)參與者的自治性和差異性,項(xiàng)目的開發(fā)時(shí)間、勞動(dòng)強(qiáng)度和成本存在高度的不確定性。因此,對(duì)開源軟件項(xiàng)目中群智的定量測量和可視化,對(duì)于管理者而言,在掌握和優(yōu)化群體智能模式,實(shí)現(xiàn)群體智能的有效涌現(xiàn)方面至關(guān)重要。
2、現(xiàn)有群智度量方法主要應(yīng)用于機(jī)器人群體在強(qiáng)化學(xué)習(xí)任務(wù)的場景中,借助熵理論來衡量群體行為中體現(xiàn)的智慧水平。機(jī)器人群體被視為一個(gè)群體智能系統(tǒng),群智的涌現(xiàn)過程看作群智激發(fā)和匯聚的迭代過程。群智激發(fā)和匯聚中,機(jī)器人群體的行為復(fù)雜性變化對(duì)應(yīng)了群體智能系統(tǒng)中熵增熵減的過程。
3、比如在一個(gè)復(fù)雜圖結(jié)構(gòu)上的搜索任務(wù)場景下,任務(wù)為智能體在給定圖結(jié)構(gòu)上通過游走策略發(fā)現(xiàn)未知節(jié)點(diǎn),若所有節(jié)點(diǎn)被發(fā)現(xiàn)則任務(wù)完成。智能體在執(zhí)行任務(wù)的過程中會(huì)得到獎(jiǎng)勵(lì),獎(jiǎng)勵(lì)與智能體發(fā)現(xiàn)的新未知節(jié)點(diǎn)數(shù)和游走的總步數(shù)有關(guān)。初始時(shí)只有單個(gè)智能體在執(zhí)行任務(wù),但隨著獎(jiǎng)勵(lì)數(shù)值的增加會(huì)激發(fā)新的個(gè)體加入任務(wù),之后隨著任務(wù)難度增加,可供新發(fā)現(xiàn)的節(jié)點(diǎn)數(shù)量減少,個(gè)體間開始共享信息以便更高效地完成任務(wù)獲得更多獎(jiǎng)勵(lì),呈現(xiàn)出群智涌現(xiàn)的現(xiàn)象。在這個(gè)場景中,智能體以一定概率選取一個(gè)鄰居節(jié)點(diǎn)進(jìn)行搜索,根據(jù)信息熵理論,可以用智能群體行為的平均不確定性來度量這個(gè)智能群體行為表現(xiàn)出來的智能。將這種智能群體涌現(xiàn)出來的群智作為多智能體強(qiáng)化學(xué)習(xí)訓(xùn)練效果的度量工具可以有效的加快收斂并提高強(qiáng)化學(xué)習(xí)的效果。
4、然而在開源軟件開發(fā)的場景中,目前急需相應(yīng)適配的群智度量方法。不同于機(jī)器人群強(qiáng)化學(xué)習(xí)的任務(wù)場景,在開源軟件開發(fā)的場景中,開源軟件開發(fā)過程涉及的影響因素是復(fù)雜多樣的,并且開發(fā)者作為一種擁有主觀意識(shí)形態(tài)的特殊智能體,其行為也是不可預(yù)測的,這給開源軟件開發(fā)的群智度量帶來了不一樣的挑戰(zhàn)。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)上述傳統(tǒng)方法中存在的問題,本發(fā)明提出了一種開源項(xiàng)目中群智激發(fā)監(jiān)控方法、一種開源項(xiàng)目中群智激發(fā)監(jiān)控裝置和一種計(jì)算機(jī)設(shè)備,能夠有效監(jiān)控開源軟件項(xiàng)目的群智激發(fā)程度。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例采用以下技術(shù)方案:
3、一方面,提供一種開源項(xiàng)目中群智激發(fā)監(jiān)控方法,包括步驟:
4、獲取用戶端發(fā)送的群智激發(fā)監(jiān)測請(qǐng)求;群智激發(fā)監(jiān)測請(qǐng)求包括目標(biāo)軟件項(xiàng)目的名稱;
5、根據(jù)群智激發(fā)監(jiān)測請(qǐng)求在后臺(tái)服務(wù)器數(shù)據(jù)庫中查找目標(biāo)軟件項(xiàng)目的設(shè)定時(shí)段內(nèi)的最新開發(fā)者行為數(shù)據(jù);
6、當(dāng)后臺(tái)服務(wù)器數(shù)據(jù)庫內(nèi)沒有最新開發(fā)者行為數(shù)據(jù)時(shí),從互聯(lián)網(wǎng)上搜索并下載目標(biāo)軟件項(xiàng)目的最新開發(fā)者行為數(shù)據(jù)到后臺(tái)服務(wù)器數(shù)據(jù)庫;
7、將目標(biāo)軟件項(xiàng)目的生命周期按設(shè)定時(shí)間窗口大小進(jìn)行時(shí)間窗口劃分;生命周期為目標(biāo)軟件項(xiàng)目的創(chuàng)建時(shí)間起點(diǎn)至當(dāng)前時(shí)間;
8、按時(shí)間從先到后的順序分別過濾出各時(shí)間窗口中的開發(fā)者行為數(shù)據(jù),并根據(jù)開發(fā)者行為數(shù)據(jù)計(jì)算出各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵;
9、根據(jù)各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵生成目標(biāo)軟件項(xiàng)目的群智激發(fā)熵隨時(shí)間變化曲線并返回給用戶端。
10、在其中一個(gè)實(shí)施例中,按時(shí)間從先到后的順序分別過濾出各時(shí)間窗口中的開發(fā)者行為數(shù)據(jù),并根據(jù)開發(fā)者行為數(shù)據(jù)計(jì)算出各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵的步驟,包括步驟:
11、按時(shí)間從先到后的順序選擇當(dāng)前一個(gè)時(shí)間窗口;
12、檢查時(shí)間窗口中是否存在開發(fā)者行為數(shù)據(jù);
13、若存在開發(fā)者行為數(shù)據(jù),則過濾出時(shí)間窗口中的開發(fā)者行為數(shù)據(jù)并根據(jù)開發(fā)者行為數(shù)據(jù)計(jì)算出時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵;時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵存儲(chǔ)于后臺(tái)服務(wù)器數(shù)據(jù)庫;
14、按時(shí)間從先到后的順序選擇下一個(gè)時(shí)間窗口,若下一個(gè)時(shí)間窗口存在,則返回檢查時(shí)間窗口中是否存在開發(fā)者行為數(shù)據(jù)的步驟;
15、若下一個(gè)時(shí)間窗口不存在,則跳轉(zhuǎn)至根據(jù)各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵生成目標(biāo)軟件項(xiàng)目的群智激發(fā)熵隨時(shí)間變化曲線并返回給用戶端的步驟。
16、在其中一個(gè)實(shí)施例中,檢查時(shí)間窗口中是否存在開發(fā)者行為數(shù)據(jù)的步驟后,還包括步驟:
17、若不存在開發(fā)者行為數(shù)據(jù),則記錄時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵為0并存儲(chǔ)于后臺(tái)服務(wù)器數(shù)據(jù)庫。
18、在其中一個(gè)實(shí)施例中,當(dāng)后臺(tái)服務(wù)器數(shù)據(jù)庫內(nèi)已有最新開發(fā)者行為數(shù)據(jù)時(shí),開源項(xiàng)目中群智激發(fā)監(jiān)控方法還包括步驟:
19、從后臺(tái)服務(wù)器數(shù)據(jù)庫中找到目標(biāo)軟件項(xiàng)目的群智激發(fā)熵隨時(shí)間變化曲線并返回給用戶端。
20、在其中一個(gè)實(shí)施例中,上述的開源項(xiàng)目中群智激發(fā)監(jiān)控方法還包括步驟:
21、對(duì)后臺(tái)服務(wù)器數(shù)據(jù)庫中已有的各軟件項(xiàng)目進(jìn)行定期檢查,更新計(jì)算各軟件項(xiàng)目的群智激發(fā)熵。
22、另一方面,還提供一種開源項(xiàng)目中群智激發(fā)監(jiān)控裝置,包括:
23、請(qǐng)求接收模塊,用于獲取用戶端發(fā)送的群智激發(fā)監(jiān)測請(qǐng)求;群智激發(fā)監(jiān)測請(qǐng)求包括目標(biāo)軟件項(xiàng)目的名稱;
24、數(shù)據(jù)庫查找模塊,用于根據(jù)群智激發(fā)監(jiān)測請(qǐng)求在后臺(tái)服務(wù)器數(shù)據(jù)庫中查找目標(biāo)軟件項(xiàng)目的設(shè)定時(shí)段內(nèi)的最新開發(fā)者行為數(shù)據(jù);
25、項(xiàng)目獲取模塊,用于當(dāng)后臺(tái)服務(wù)器數(shù)據(jù)庫內(nèi)沒有最新開發(fā)者行為數(shù)據(jù)時(shí),從互聯(lián)網(wǎng)上搜索并下載目標(biāo)軟件項(xiàng)目的最新開發(fā)者行為數(shù)據(jù)到后臺(tái)服務(wù)器數(shù)據(jù)庫;
26、時(shí)窗劃分模塊,用于將目標(biāo)軟件項(xiàng)目的生命周期按設(shè)定時(shí)間窗口大小進(jìn)行時(shí)間窗口劃分;生命周期為目標(biāo)軟件項(xiàng)目的創(chuàng)建時(shí)間起點(diǎn)至當(dāng)前時(shí)間;
27、熵計(jì)算模塊,用于按時(shí)間從先到后的順序分別過濾出各時(shí)間窗口中的開發(fā)者行為數(shù)據(jù),并根據(jù)開發(fā)者行為數(shù)據(jù)計(jì)算出各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵;
28、熵返回模塊,用于根據(jù)各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵生成目標(biāo)軟件項(xiàng)目的群智激發(fā)熵隨時(shí)間變化曲線并返回給用戶端。
29、在其中一個(gè)實(shí)施例中,熵計(jì)算模塊包括:
30、時(shí)窗選擇子模塊,用于按時(shí)間從先到后的順序選擇當(dāng)前一個(gè)時(shí)間窗口;
31、行為檢查子模塊,用于檢查時(shí)間窗口中是否存在開發(fā)者行為數(shù)據(jù);
32、過濾計(jì)算子模塊,用于存在開發(fā)者行為數(shù)據(jù)時(shí),過濾出時(shí)間窗口中的開發(fā)者行為數(shù)據(jù)并根據(jù)開發(fā)者行為數(shù)據(jù)計(jì)算出時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵;時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵存儲(chǔ)于后臺(tái)服務(wù)器數(shù)據(jù)庫;
33、時(shí)窗選擇子模塊還用于按時(shí)間從先到后的順序選擇下一個(gè)時(shí)間窗口,在下一個(gè)時(shí)間窗口存在時(shí)觸發(fā)行為檢查子模塊;
34、時(shí)窗選擇子模塊還用于在下一個(gè)時(shí)間窗口不存在時(shí),觸發(fā)熵返回模塊。
35、在其中一個(gè)實(shí)施例中,過濾計(jì)算子模塊還用于在不存在開發(fā)者行為數(shù)據(jù)時(shí),記錄時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵為0并存儲(chǔ)于后臺(tái)服務(wù)器數(shù)據(jù)庫。
36、在其中一個(gè)實(shí)施例中,上述的開源項(xiàng)目中群智激發(fā)監(jiān)控裝置還包括:
37、檢查更新模塊,用于對(duì)后臺(tái)服務(wù)器數(shù)據(jù)庫中已有的各軟件項(xiàng)目進(jìn)行定期檢查,更新計(jì)算各軟件項(xiàng)目的群智激發(fā)熵。
38、又一方面,還提供一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,處理器執(zhí)行計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述的開源項(xiàng)目中群智激發(fā)監(jiān)控方法的步驟。
39、上述技術(shù)方案中的一個(gè)技術(shù)方案具有如下優(yōu)點(diǎn)和有益效果:
40、上述開源項(xiàng)目中群智激發(fā)監(jiān)控方法、裝置和設(shè)備,通過獲取用戶端發(fā)送的群智激發(fā)監(jiān)測請(qǐng)求時(shí),先在后臺(tái)服務(wù)器數(shù)據(jù)庫中查找目標(biāo)軟件項(xiàng)目的設(shè)定時(shí)段內(nèi)的最新開發(fā)者行為數(shù)據(jù),當(dāng)后臺(tái)服務(wù)器數(shù)據(jù)庫內(nèi)沒有最新開發(fā)者行為數(shù)據(jù)時(shí),從互聯(lián)網(wǎng)上搜索并下載目標(biāo)軟件項(xiàng)目的最新開發(fā)者行為數(shù)據(jù)到后臺(tái)服務(wù)器數(shù)據(jù)庫,然后將目標(biāo)軟件項(xiàng)目的生命周期進(jìn)行時(shí)間窗口劃分,接著按時(shí)間從先到后的順序分別過濾出各時(shí)間窗口中的開發(fā)者行為數(shù)據(jù),并根據(jù)開發(fā)者行為數(shù)據(jù)計(jì)算出各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵,最后根據(jù)各時(shí)間窗口對(duì)應(yīng)的群智激發(fā)熵生成目標(biāo)軟件項(xiàng)目的群智激發(fā)熵隨時(shí)間變化曲線并返回給用戶端。
41、相比于現(xiàn)有群智度量方法,通過引入基于熵理論的群智激發(fā)度量手段并充分挖掘利用項(xiàng)目自身長期的開發(fā)者行為數(shù)據(jù),能夠細(xì)致地捕捉并量化開源軟件項(xiàng)目開發(fā)過程中參與者行為所引發(fā)的群智動(dòng)態(tài)變化。該技術(shù)易于操作且靈活度高,適用于采用開源方式開發(fā)的軟件項(xiàng)目監(jiān)管,為開源軟件項(xiàng)目的管理者提供了一個(gè)有效的監(jiān)控工具,以實(shí)時(shí)追蹤和評(píng)估開源軟件開發(fā)過程中集體智慧的激發(fā)程度。