本發(fā)明涉及眾包,特別是涉及一種基于兩階段遺傳算法的任務(wù)分配方法。
背景技術(shù):
1、對于眾包系統(tǒng)來說,任務(wù)分配對系統(tǒng)的整體性能有著至關(guān)重要的影響。一般的任務(wù)分配主要依據(jù)時間窗、技能、距離等約束完成用戶與任務(wù)間的匹配。但這只能完成簡單的任務(wù)分配,例如拍攝地標(biāo)圖片為地圖軟件更新地標(biāo)狀態(tài)。近年來對于復(fù)雜任務(wù)分配的研究也逐漸興起,依舊不能解決一些多階段復(fù)雜任務(wù)的分配問題。
2、眾包平臺收集的任務(wù)可以簡單容易地完成,例如simoni提出一種訂單批處理和分配算法實現(xiàn)外賣配送、朱正秋通過去中心化自治車輛組織和運營,實現(xiàn)群體感知智能可用于監(jiān)控交通狀況。然而,眾包任務(wù)有時可能很復(fù)雜,比如修理房子、舉辦體育賽事、準(zhǔn)備派對。這些任務(wù)通常由多個階段組成,需要多個不同技能的用戶合作,這給任務(wù)分配帶來了更多的挑戰(zhàn)。
3、為了解決空間眾包中復(fù)雜的任務(wù)分配問題,現(xiàn)有研究通常從技能、時間、距離和預(yù)算等角度考慮約束條件。cheng等人提出了一種g-d&c的算法,將復(fù)雜的任務(wù)與滿足指定約束的一組用戶進行匹配。liang等人提出了一種基于成本的貪婪方法,在工人和任務(wù)的約束下,通過匹配一組合適的工人來完成空間任務(wù),從而使平臺成本最小化。
4、然而這些研究往往忽略了任務(wù)之間的依賴約束,導(dǎo)致任務(wù)分配效率低下。被分配的用戶在到達任務(wù)位置后可能需要等待很長時間,直到前一個任務(wù)完成。而且對于復(fù)雜任務(wù)來說,很難找到擁有所有所需技能的用戶組,因為用戶通常是稀缺的。這種稀缺性將導(dǎo)致眾包平臺無法處理某些復(fù)雜的任務(wù)。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種基于兩階段遺傳算法的任務(wù)分配方法,以便為眾包平臺提供復(fù)雜任務(wù)的高效任務(wù)分配方案。
2、一種基于兩階段遺傳算法的任務(wù)分配方法,所述方法包括:
3、獲取構(gòu)建的任務(wù)分配模型;任務(wù)分配模型包括任務(wù)和用戶;每個任務(wù)被劃分為多個子任務(wù);
4、在預(yù)設(shè)的最大迭代次數(shù)內(nèi),根據(jù)兩階段遺傳算法優(yōu)化任務(wù)分配方案;具體如下:
5、采用遺傳算法對當(dāng)前迭代的子任務(wù)執(zhí)行序列進行交叉和變異操作,得到當(dāng)前迭代的優(yōu)化子任務(wù)執(zhí)行序列,并確保其中的子任務(wù)必須在與其存在依賴關(guān)系的前置子任務(wù)完成后再執(zhí)行;其中,當(dāng)前迭代的子任務(wù)執(zhí)行序列由兩部分組成:當(dāng)前迭代重新初始化得到的子任務(wù)執(zhí)行序列,以及上一次迭代的優(yōu)化子任務(wù)執(zhí)行序列;
6、為優(yōu)化子任務(wù)執(zhí)行序列中的子任務(wù)匹配用戶,以此構(gòu)建任務(wù)分配方案,采用啟發(fā)式算法和評分函數(shù)得到當(dāng)前迭代的中間任務(wù)分配方案;評分函數(shù)是根據(jù)任務(wù)分配模型的目標(biāo)函數(shù)構(gòu)建的;
7、采用局部搜索算法探索中間任務(wù)分配方案的鄰域解,再次根據(jù)評分函數(shù)從鄰域解中選出當(dāng)前迭代的優(yōu)化任務(wù)分配方案。
8、一種基于兩階段遺傳算法的任務(wù)分配裝置,所述裝置包括:
9、任務(wù)分配模型構(gòu)建模塊,用于獲取構(gòu)建的任務(wù)分配模型;任務(wù)分配模型包括任務(wù)和用戶;每個任務(wù)被劃分為多個子任務(wù);
10、兩階段遺傳算法執(zhí)行模塊,用于在預(yù)設(shè)的最大迭代次數(shù)內(nèi),根據(jù)兩階段遺傳算法優(yōu)化任務(wù)分配方案;具體如下:
11、采用遺傳算法對當(dāng)前迭代的子任務(wù)執(zhí)行序列進行交叉和變異操作,得到當(dāng)前迭代的優(yōu)化子任務(wù)執(zhí)行序列,并確保其中的子任務(wù)必須在與其存在依賴關(guān)系的前置子任務(wù)完成后再執(zhí)行;其中,當(dāng)前迭代的子任務(wù)執(zhí)行序列由兩部分組成:當(dāng)前迭代重新初始化得到的子任務(wù)執(zhí)行序列,以及上一次迭代的優(yōu)化子任務(wù)執(zhí)行序列;
12、為優(yōu)化子任務(wù)執(zhí)行序列中的子任務(wù)匹配用戶,以此構(gòu)建任務(wù)分配方案,采用啟發(fā)式算法和評分函數(shù)得到當(dāng)前迭代的中間任務(wù)分配方案;評分函數(shù)是根據(jù)任務(wù)分配模型的目標(biāo)函數(shù)構(gòu)建的;
13、采用局部搜索算法探索中間任務(wù)分配方案的鄰域解,再次根據(jù)評分函數(shù)從鄰域解中選出當(dāng)前迭代的優(yōu)化任務(wù)分配方案。
14、一種計算機設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)以下步驟:
15、獲取構(gòu)建的任務(wù)分配模型;任務(wù)分配模型包括任務(wù)和用戶;每個任務(wù)被劃分為多個子任務(wù);
16、在預(yù)設(shè)的最大迭代次數(shù)內(nèi),根據(jù)兩階段遺傳算法優(yōu)化任務(wù)分配方案;具體如下:
17、采用遺傳算法對當(dāng)前迭代的子任務(wù)執(zhí)行序列進行交叉和變異操作,得到當(dāng)前迭代的優(yōu)化子任務(wù)執(zhí)行序列,并確保其中的子任務(wù)必須在與其存在依賴關(guān)系的前置子任務(wù)完成后再執(zhí)行;其中,當(dāng)前迭代的子任務(wù)執(zhí)行序列由兩部分組成:當(dāng)前迭代重新初始化得到的子任務(wù)執(zhí)行序列,以及上一次迭代的優(yōu)化子任務(wù)執(zhí)行序列;
18、為優(yōu)化子任務(wù)執(zhí)行序列中的子任務(wù)匹配用戶,以此構(gòu)建任務(wù)分配方案,采用啟發(fā)式算法和評分函數(shù)得到當(dāng)前迭代的中間任務(wù)分配方案;評分函數(shù)是根據(jù)任務(wù)分配模型的目標(biāo)函數(shù)構(gòu)建的;
19、采用局部搜索算法探索中間任務(wù)分配方案的鄰域解,再次根據(jù)評分函數(shù)從鄰域解中選出當(dāng)前迭代的優(yōu)化任務(wù)分配方案。
20、上述基于兩階段遺傳算法的任務(wù)分配方法、裝置和計算機設(shè)備,首先,將復(fù)雜任務(wù)分解為具有不同技能要求的多個子任務(wù),建立具有依賴關(guān)系的空間眾包復(fù)雜任務(wù)分配模型;然后,提出兩階段遺傳算法對任務(wù)分配問題進行求解,最終形成基于兩階段遺傳算法考慮依賴關(guān)系的的空間眾包任務(wù)分配方法。對于復(fù)雜任務(wù)的分配,將其過程可分為確定完成子任務(wù)的順序和將這些子任務(wù)與用戶進行匹配兩個階段。在子任務(wù)序列優(yōu)化階段,對子任務(wù)的各種排序方案進行編碼,然后利用遺傳算法對其進行優(yōu)化。在用戶-子任務(wù)匹配優(yōu)化階段,利用順序子任務(wù)-用戶匹配方法,以及融合局部搜索算法,通過探索鄰域解,防止陷入局部最優(yōu)。綜上,采用本發(fā)明能夠為眾包平臺在復(fù)雜任務(wù)分配中提供有效的任務(wù)分配方案。
1.一種基于兩階段遺傳算法的任務(wù)分配方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,每個任務(wù)的基本屬性包括:任務(wù)位置和任務(wù)時間窗;其中,任務(wù)時間窗由任務(wù)發(fā)布時間和任務(wù)截止時間構(gòu)建;
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,任務(wù)分配模型的目標(biāo)函數(shù)的構(gòu)建步驟如下:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,采用遺傳算法對當(dāng)前迭代的子任務(wù)執(zhí)行序列進行交叉和變異操作,得到當(dāng)前迭代的優(yōu)化子任務(wù)執(zhí)行序列,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述交叉操作為單點交叉或任務(wù)交叉;其中:
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述變異操作為任務(wù)變異或子任務(wù)變異;其中:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述局部搜索算法為禁忌搜索算法或模擬退火算法。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,采用局部搜索算法探索中間任務(wù)分配方案的鄰域解,包括:
9.一種基于兩階段遺傳算法的任務(wù)分配裝置,其特征在于,所述裝置包括:
10.一種計算機設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)權(quán)利要求1至8中任一項所述方法的步驟。