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