本發(fā)明涉及一種云任務(wù)調(diào)度方法,具體為一種基于改進(jìn)社會(huì)學(xué)習(xí)算法的云任務(wù)調(diào)度方法,屬于云計(jì)算技術(shù)領(lǐng)域。
背景技術(shù):
云計(jì)算是集成了網(wǎng)格計(jì)算、并行計(jì)算和p2p等多種技術(shù)發(fā)展起來(lái)的一種商業(yè)服務(wù)模式和計(jì)算模型,其采用虛擬化技術(shù),將大量計(jì)算資源、存儲(chǔ)資源與軟件資源鏈接在一起,形成大規(guī)模的共享虛擬資源池,為用戶和應(yīng)用系統(tǒng)提供“召之即來(lái),揮之即去”、似乎“能力無(wú)限”的云服務(wù)。云計(jì)算服務(wù)通過(guò)互聯(lián)網(wǎng)進(jìn)行傳輸,在云計(jì)算模式下,如何高效合理地進(jìn)行云資源的優(yōu)化調(diào)度,是滿足用戶需求的關(guān)鍵。因此,云任務(wù)的優(yōu)化調(diào)度是云計(jì)算領(lǐng)域中亟需解決的關(guān)鍵問(wèn)題之一。
云任務(wù)調(diào)度是云計(jì)算領(lǐng)域的核心問(wèn)題,也是一個(gè)典型的np-hard問(wèn)題,針對(duì)這一問(wèn)題已取得了一定的研究成果。已有解決方法還存在有一定的局限性,比如:在不同的云計(jì)算環(huán)境下算法性能差異大,求解算法易陷入局部最優(yōu)、求解效率較低等問(wèn)題,這些都影響了云計(jì)算的應(yīng)用推廣。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)存在的以上不足,本發(fā)明提出了一種基于社會(huì)學(xué)習(xí)算法的云任務(wù)調(diào)度方法。該方法包括以下步驟:
步驟1:輸入改進(jìn)社會(huì)學(xué)習(xí)方法的各項(xiàng)參數(shù);
步驟2:隨機(jī)生成連續(xù)的初始群體;
步驟3:將連續(xù)型的個(gè)體轉(zhuǎn)變?yōu)殡x散型個(gè)體,并計(jì)算個(gè)體的適應(yīng)度值;
步驟4:在微空間內(nèi),依次執(zhí)行選擇操作、交叉操作和變異操作;在完成交叉操作和變異操作之后重復(fù)步驟3,計(jì)算個(gè)體新的適應(yīng)度值;并執(zhí)行貪婪操作,保留適應(yīng)度值較優(yōu)的個(gè)體。
步驟5:在學(xué)習(xí)空間內(nèi),每個(gè)個(gè)體執(zhí)行觀察學(xué)習(xí)操作,之后重復(fù)步驟3,執(zhí)行貪婪操作,保留適應(yīng)度值較優(yōu)的個(gè)體;
步驟6:在學(xué)習(xí)空間內(nèi),每個(gè)個(gè)體執(zhí)行模仿學(xué)習(xí)操作,之后重復(fù)步驟3,執(zhí)行貪婪操作,保留適應(yīng)度值較優(yōu)的個(gè)體;
步驟7:在信仰空間,進(jìn)行知識(shí)更新操作和影響操作;
步驟8:判斷是否滿足方法終止條件,若否,則回轉(zhuǎn)執(zhí)行所述的步驟3;若是,則迭代停止,輸出最終優(yōu)化結(jié)果。
更具體地,上述步驟2中,隨機(jī)生成連續(xù)初始群體根據(jù)poppk=popmin+(popmax-popmin)*rand確定,其中poppk表示種群中第p個(gè)個(gè)體的第k維變量,且p=1,2,…,popsize,k=1,2,…,n,popsize代表種群個(gè)體數(shù)量,n表示任務(wù)數(shù)量,rand為0~1之間的隨機(jī)數(shù),popmax=5,popmin=0.5.
更具體地,上述步驟3中,連續(xù)型個(gè)體popi根據(jù)spv方法將基因按數(shù)值由小到大排序,將其排序之前對(duì)應(yīng)的基因序號(hào)依次賦值給個(gè)體i得到πi,將πi的每一維變量通過(guò)公式rij=πijmodm+1進(jìn)行轉(zhuǎn)換得到rij,,其中rij與πij均表示第i個(gè)個(gè)體的第j維變量,rij則代表任務(wù)分配的變量,m表示虛擬機(jī)的數(shù)量;求解該任務(wù)調(diào)度序列ri的適應(yīng)度值f(x)=ω1*time+ω2*ec+ω3*c,其中time是任務(wù)完成時(shí)間,ec是執(zhí)行成本,c為能耗,ω1、ω2、ω3分別表示這三個(gè)因素的權(quán)重值,且ω1+ω2+ω3=1,ω1≥0,ω2≥0,ω3≥0。
更具體地,上述步驟4中,微空間中,交叉操作和變異操作之后根據(jù)spv操作計(jì)算個(gè)體適應(yīng)度值,并將新個(gè)體與舊個(gè)體進(jìn)行比較,執(zhí)行貪婪操作。
更具體地,在上述步驟5中,設(shè)popr=(popr1,…,poprk',…,poprd)為群體中的任一個(gè)體,
更具體地,在上述步驟6中,模仿學(xué)習(xí)操作采用
更具體地,在上述步驟7中,在信仰空間中,知識(shí)更新操作時(shí),將每次從學(xué)習(xí)空間抽取到的優(yōu)秀個(gè)體替換掉信仰空間內(nèi)較差的個(gè)體;影響操作時(shí),使用信仰空間內(nèi)的知識(shí)替換掉微空間內(nèi)適應(yīng)度值較差的個(gè)體。
本發(fā)明通過(guò)改進(jìn)社會(huì)學(xué)習(xí)算法,結(jié)合由任務(wù)執(zhí)行時(shí)間、執(zhí)行成本、能耗組成的目標(biāo)函數(shù),設(shè)計(jì)了能夠提高收斂速度以及云任務(wù)調(diào)度服務(wù)質(zhì)量的觀察學(xué)習(xí)與模仿學(xué)習(xí)操作。本發(fā)明首先建立云任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型,將云任務(wù)調(diào)度轉(zhuǎn)換為一般的數(shù)學(xué)問(wèn)題進(jìn)行求解,再通過(guò)三層協(xié)同進(jìn)化的演化空間,獲得最優(yōu)調(diào)度方案,避免了單純地根據(jù)迭代次數(shù)的線性函數(shù)進(jìn)行取值。社會(huì)學(xué)習(xí)算法能夠有效減少任務(wù)完成時(shí)間,具有更好的尋優(yōu)性能,在尋找最優(yōu)解和避免陷入局部最優(yōu)等方面更加適合求解優(yōu)化問(wèn)題。
具體實(shí)施方式
一種基于社會(huì)學(xué)習(xí)算法的云資源優(yōu)化調(diào)度方法。該方法包括以下步驟:
步驟1:輸入改進(jìn)社會(huì)學(xué)習(xí)方法的各項(xiàng)參數(shù);
步驟2:隨機(jī)生成連續(xù)的初始群體;
步驟3:將連續(xù)型的個(gè)體轉(zhuǎn)變?yōu)殡x散型個(gè)體,并計(jì)算個(gè)體的適應(yīng)度值;
步驟4:在微空間內(nèi),依次執(zhí)行選擇操作、交叉操作和變異操作;在完成交叉操作和變異操作之后重復(fù)步驟3,計(jì)算個(gè)體新的適應(yīng)度值;并執(zhí)行貪婪操作,保留適應(yīng)度值較優(yōu)的個(gè)體。
步驟5:在學(xué)習(xí)空間內(nèi),每個(gè)個(gè)體執(zhí)行觀察學(xué)習(xí)操作,之后重復(fù)步驟3,執(zhí)行貪婪操作,保留適應(yīng)度值較優(yōu)的個(gè)體;
步驟6:在學(xué)習(xí)空間內(nèi),每個(gè)個(gè)體執(zhí)行模仿學(xué)習(xí)操作,之后重復(fù)步驟3,執(zhí)行貪婪操作,保留適應(yīng)度值較優(yōu)的個(gè)體;
步驟7:在信仰空間,進(jìn)行知識(shí)更新操作和影響操作;
步驟8:判斷是否滿足方法終止條件,若否,則回轉(zhuǎn)執(zhí)行所述的步驟3;若是,則迭代停止,輸出最終優(yōu)化結(jié)果。
更具體地,上述步驟2中,隨機(jī)生成連續(xù)初始群體根據(jù)poppk=popmin+(popmax-popmin)*rand確定,其中poppk表示種群中第p個(gè)個(gè)體的第k維變量,且p=1,2,…,popsize,k=1,2,…,n,popsize代表種群個(gè)體數(shù)量,n表示任務(wù)數(shù)量,rand為0~1之間的隨機(jī)數(shù),popmax=5,popmin=0.5.
更具體地,上述步驟3中,連續(xù)型個(gè)體popi根據(jù)spv方法將基因按數(shù)值由小到大排序,將其排序之前對(duì)應(yīng)的基因序號(hào)依次賦值給個(gè)體i得到πi,將πi的每一維變量通過(guò)公式rij=πijmodm+1進(jìn)行轉(zhuǎn)換得到rij,,其中rij與πij均表示第i個(gè)個(gè)體的第j維變量,rij則代表任務(wù)分配的變量,m表示虛擬機(jī)的數(shù)量;求解該任務(wù)調(diào)度序列ri的適應(yīng)度值f(x)=ω1*time+ω2*ec+ω3*c,其中time是任務(wù)完成時(shí)間,ec是執(zhí)行成本,c為能耗,ω1、ω2、ω3分別表示這三個(gè)因素的權(quán)重值,且ω1+ω2+ω3=1,ω1≥0,ω2≥0,ω3≥0。
更具體地,上述步驟4中,微空間中,交叉操作和變異操作之后根據(jù)spv操作計(jì)算個(gè)體適應(yīng)度值,并將新個(gè)體與舊個(gè)體進(jìn)行比較,執(zhí)行貪婪操作。
更具體地,在上述步驟5中,設(shè)popr=(popr1,…,poprk',…,poprd)為群體中的任一個(gè)體,
更具體地,在上述步驟6中,模仿學(xué)習(xí)操作采用
為了驗(yàn)證本發(fā)明方法的有效性,采用云計(jì)算仿真平臺(tái)cloudsim進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境是pc機(jī),具體配置如下,os:windows7;cpu:inter4,3.20ghz;memory:4g。該實(shí)驗(yàn)通過(guò)擴(kuò)展cloudsim平臺(tái)中的datacenterbroker類,將本發(fā)明方法與已有的pso方法和ga方法進(jìn)行對(duì)比分析,其中測(cè)試分析的性能指標(biāo)為函數(shù)適應(yīng)度值(fitness)、執(zhí)行時(shí)間(taskcompletiontime)、執(zhí)行費(fèi)用(cost)和虛擬機(jī)能耗(energyconsumption)。具體實(shí)驗(yàn)過(guò)程如下:
在相同實(shí)驗(yàn)條件下,實(shí)驗(yàn)參數(shù)統(tǒng)一設(shè)置為:種群規(guī)模p=10,任務(wù)長(zhǎng)度sl,虛擬機(jī)的執(zhí)行能力vc,能耗矩陣e,以及成本矩陣rc統(tǒng)一由matlab隨機(jī)生成。其中sl的隨機(jī)范圍為[10000mi,50000mi],vc的取值范圍為[200,1000],e的取值范圍為[1,10],rc的取值范圍為[1,5]。三種算法的目標(biāo)函數(shù)中的權(quán)重分別為ω1=0.5,ω2=0.2,ω3=0.3;slo算法與遺傳算法的交叉率pc=0.6,變異率pm=0.08;粒子群算法中的c1=c2=2。
為了消除隨機(jī)因素對(duì)實(shí)驗(yàn)結(jié)果的干擾,每組實(shí)驗(yàn)獨(dú)立運(yùn)行10次,取平均值,進(jìn)行實(shí)驗(yàn)結(jié)果比較。
實(shí)驗(yàn)1:任務(wù)規(guī)模較小時(shí)算法性能比較
將云任務(wù)數(shù)量和虛擬機(jī)數(shù)量分別設(shè)置為20和5,統(tǒng)計(jì)三種方法在固定迭代次數(shù)后當(dāng)前最優(yōu)調(diào)度序列的執(zhí)行時(shí)間,執(zhí)行成本,能耗以及適應(yīng)度值。
對(duì)比可知,本發(fā)明提出的方法不但優(yōu)化了任務(wù)的執(zhí)行時(shí)間,而且優(yōu)化了任務(wù)的執(zhí)行成本,具有較快的收斂速度,且在迭代結(jié)束時(shí)獲得的調(diào)度方案適應(yīng)度評(píng)價(jià)結(jié)果最優(yōu)。
實(shí)驗(yàn)2:任務(wù)規(guī)模較大時(shí)算法性能比較
設(shè)置云任務(wù)數(shù)量和虛擬機(jī)數(shù)量分別設(shè)置為150和20,實(shí)驗(yàn)2采用與實(shí)驗(yàn)1相同的目標(biāo)函數(shù),分別對(duì)三種算法尋找到的最優(yōu)調(diào)度序列的任務(wù)執(zhí)行時(shí)間,執(zhí)行成本,能耗和函數(shù)適應(yīng)度值作對(duì)比。
對(duì)比結(jié)果可知,在較大任務(wù)規(guī)模情況下,本發(fā)明提出的方法能夠搜索到具有較短執(zhí)行時(shí)間和較優(yōu)執(zhí)行成本的云任務(wù)調(diào)度方案,且具有較優(yōu)的均衡執(zhí)行成本與執(zhí)行時(shí)間的性能,而其他兩種方法沒(méi)有這種優(yōu)勢(shì)。尋優(yōu)性能較好,所搜索到的最優(yōu)云任務(wù)調(diào)度方案優(yōu)于其他兩種算法所搜索到的結(jié)果。本發(fā)明所設(shè)計(jì)的算法在求解云任務(wù)優(yōu)化調(diào)度問(wèn)題時(shí)具有良好的搜索能力與收斂速度,在獲得更優(yōu)的云任務(wù)調(diào)度方案的同時(shí),很好地均衡了任務(wù)執(zhí)行時(shí)間與執(zhí)行成本。