本發(fā)明涉及作業(yè)車間調(diào)度技術(shù)領(lǐng)域。
背景技術(shù):
帝國主義算法(ICA)也稱為殖民地競爭算法,是Atashaz_Gargari和Lucas于2007年提出的一種基于帝國主義殖民競爭機制的進化算法,屬于社會啟發(fā)的隨機優(yōu)化搜索方法。ICA算法根據(jù)帝國主義的社會政策來控制更多的國家,在殖民地國家受到一些規(guī)律支配時使用它們的資源,如果一個帝國失去強大的勢力,其他國家將占有它。帝國主義競爭算法的基本思想是:同其他進化算法相似,帝國主義競爭算法開始于一組被定義為國家的個體,所有國家被分為兩類:帝國主義國家和殖民地國家。將最初勢力比較強大的國家作為帝國主義國家,其他國家作為殖民地國家。根據(jù)每個國家的勢力將殖民地分配給不同的帝國主義國家。帝國主義國家與其所包含的殖民地被稱為一個帝國。帝國之間通過競爭以獲得更多的殖民地為目的,勢力更大的帝國有較大的可能性戰(zhàn)友最弱的殖民地,智力薄弱的帝國將逐漸失去其殖民地,當所有殖民地全部被一個帝國占有時,該算法結(jié)束。
帝國主義競爭算法具有簡單、較快的收斂速度和全局最優(yōu)搜索等優(yōu)點,但是也同其他智能優(yōu)化算法一樣,在作業(yè)車間調(diào)度問題中,帝國主義競爭算法也存在著過早收斂、精確度不夠等缺點。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有帝國主義競爭算法中存在的上述不足,本發(fā)明要解決的技術(shù)問題是提供一種改進的帝國主義競爭算法解決作業(yè)車間的調(diào)度問題。
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的:帝國主義競爭算法容易收斂;帝國主義競爭算法求解精確度不夠高;帝國主義算法在車間調(diào)度問題中的應(yīng)用不夠靈活。
本發(fā)明為實現(xiàn)上述目的所采用的技術(shù)方案是:一種改進的帝國主義競爭算法求解作業(yè)車間調(diào)度問題,該算法的步驟如下:
步驟1:初始化帝國主義競爭算法參數(shù):初始化國家數(shù)量、帝國主義國家、殖民地國家;
步驟2:計算帝國的相對勢力:用機器處理作業(yè)能力來刻畫;
步驟3:初始化帝國主義集團:根據(jù)帝國的勢力將不同數(shù)量的殖民地國家分配給帝國主義國家;
步驟4:計算帝國集團的總勢力:一個帝國集團的總勢力包括兩部分,一部分為帝國主義國家的勢力,另一部分為它所擁有的殖民地國家的勢力;
步驟5:殖民地向所屬帝國移動:當?shù)蹏瘓F形成后,每個帝國集團中的帝國主義國家試圖增加其殖民地的數(shù)量,在ICA算法中,殖民地國家沿著指向其所屬帝國的方向靠近帝國;
步驟6:帝國集團的競爭:帝國主義的競爭過程發(fā)生在帝國集團之間,因為每一個帝國集團都試圖占有其他帝國的殖民地并且控制他們,通過競爭使得強大的帝國集團更加強大,弱小的帝國集團更加弱??;
步驟7:殖民地國家的滅亡:在帝國的侵犯過程中,存在殖民地國家滅亡;
步驟8:新殖民地國家的產(chǎn)生:在社會進化過程中,會有新的殖民地產(chǎn)生;
步驟9:弱勢帝國的滅亡:在帝國競爭中,失去勢力的帝國集團將會滅亡,而且它所擁有的殖民地將被其他帝國集團所瓜分;
步驟10:新帝國的產(chǎn)生:在帝國競爭中,會有新的帝國產(chǎn)生;
步驟11:計算帝國存活率:用機器利用率ρ來刻畫;
步驟12:最后,保留最終剩余的帝國,將適應(yīng)度值作為最優(yōu)解;
本發(fā)明的有益效果是:
1、帝國的相對勢力直接用機器處理作業(yè)能力來刻畫,減少算法計算復(fù)雜度。
2、直接定義機器為帝國、作業(yè)為殖民地,避免了隨機產(chǎn)生初始解帶來的不確定性,減少算法運行時間。
3、算法以帝國存活率來刻畫機器利用率,簡單易懂。
4、將帝國主義競爭算法中殖民地向帝國主義靠近的運動轉(zhuǎn)化為帝國主義國家向殖民地國家移動的視角,更加貼切實際情況,同時,利用殖民地與帝國之間的距離來刻畫代價函數(shù),簡單實用,具體高效。
5、帝國向殖民地靠近的方式用鳥類飛行的Mantegna算法執(zhí)行萊維飛行來模擬,適當減緩了算法的收斂速度。
6、設(shè)定了一個帝國侵占殖民地的概率,用0-1規(guī)劃來做隨機選擇,使算法更加靈活,計算結(jié)果更加精確。
附圖說明
本發(fā)明的基本流程圖
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合流程圖進行具體說明。
一、帝國主義競爭算法描述
在帝國主義競爭算法中,每一個國家都是由一個實數(shù)數(shù)組或向量來表示。
對于一個Nvar維優(yōu)化問題,該數(shù)組定義如下:
一個國家的勢力大小需要通過計算一定的目標函數(shù)來得到,變量為即為
二、具體實施步驟
步驟1:初始化帝國主義競爭算法參數(shù):初始化國家數(shù)量Npop、帝國主義國家Nimp、殖民地國家Ncol,其中,帝國主義國家用機器來表示,殖民地國家用作業(yè)來表示:
Npop=Nimp+Ncol
步驟2:計算帝國的相對勢力:用機器處理作業(yè)能力Cn來刻畫:
其中,Ncn表示所有有可能等待某臺機器Mn處理的作業(yè)數(shù)量,Mcn表示可以處理這Ncn個作業(yè)的機器數(shù)量;
步驟3:計算帝國主義國家的勢力:第n個帝國主義國家的勢力大小定義為:
式中,ti為第i項作業(yè)的在第n臺機器的運行時間,即代價值;
步驟3:初始化帝國主義集團:根據(jù)帝國的勢力將不同數(shù)量的殖民地國家分配給帝國主義國家,帝國國家勢力越大,該帝國所擁有的殖民地國家就越多,帝國和它所擁有的殖民地組成一個帝國集團,在車間調(diào)度問題中,帝國所擁有的殖民地等于該機器實際處理的作業(yè)數(shù),因此,殖民地分配方法按式:
式中,N.Cn代表第n個帝國所擁有的殖民地;
步驟4:計算帝國集團的總勢力:一個帝國集團的總勢力包括兩部分,一部分為帝國主義國家的勢力,另一部分為它所擁有的殖民地國家的勢力,在這兩部分中,帝國主義國家的勢力對勢力有更大的影響,因此,一個帝國的總勢力計算方式如下:
式中,T.Cn為第n個帝國集團的總代價函數(shù)值,ti為帝國集團的殖民地的代價函數(shù)值,0<μ<1,是個實數(shù),一般情況下取μ∈[0.1,0.5];
步驟5:殖民地向所屬帝國移動:當?shù)蹏瘓F形成后,每個帝國集團中的帝國主義國家試圖增加其殖民地的數(shù)量,在ICA算法中,殖民地國家沿著指向其所屬帝國的方向靠近帝國,在該過程中,部分國家會產(chǎn)生革命,即殖民地隨機的發(fā)生位置上的改變,本發(fā)明將殖民地向帝國移動轉(zhuǎn)化為帝國向殖民地靠近的視角,把帝國向殖民地靠近的方式用鳥類飛行的Mantegna算法執(zhí)行萊維飛行來模擬,具體實現(xiàn)方式如下:
隨機移動步長(代價ti)S計算公式如下:
其中,β是一個[1,2]之間的參數(shù),此處取β=1.5,u和v服從正態(tài)分布,如下所示:
其中,
在局部搜索時,對每一殖民地位置按條件進行更新:用一個隨機數(shù)Ra與帝國侵占殖民地的概率Pa做比較,若Ra>Pa,則隨機改變殖民地位置,否則保持原來位置不變,并計算位置移動后每個殖民地的代價函數(shù)值,記錄當前最優(yōu)殖民地位置,用如下0-1規(guī)劃模型表示:
其中,
k為有距離為ti的殖民地數(shù)量;
步驟6:帝國集團的競爭:帝國主義的競爭過程發(fā)生在帝國集團之間,因為每一個帝國集團都試圖占有其他帝國的殖民地并且控制他們,通過競爭使得強大的帝國集團更加強大,弱小的帝國集團更加弱小,在ICA算法中,最弱帝國集團中的最弱一個殖民地國家將被其他帝國集團通過競爭去占有,每一個帝國集團都有可能占有最弱的國家,這種可能性的大小由下式定義得到:
式中,N.T.Cn為第n個帝國集團的相對代價函數(shù)值,定義如下:
向量P:
向量R是與向量P相同規(guī)格的向量:
向量D有以下的到:
D=P-R
在向量D中最大的元素所對應(yīng)的帝國集團將會占有上述最弱的殖民地國家;
步驟7:殖民地國家的滅亡:在帝國的侵犯過程中,存在殖民地國家滅亡,
在車間調(diào)度問題中,殖民地滅亡即表示訂單處理完畢,此時,殖民地數(shù)目會減少:
k為消亡的殖民地數(shù)量,e為社會進化第e次;
步驟8:新殖民地國家的產(chǎn)生:在社會進化過程中,會有新的殖民地產(chǎn)生;
在車間調(diào)度問題中,新殖民地的產(chǎn)生極為訂單的增加,此時,殖民地數(shù)目會增加:
h為增加的殖民地數(shù)量,e為社會進化第e次;
步驟9:弱勢帝國的滅亡:在帝國競爭中,失去勢力的帝國集團將會滅亡,而且它所擁有的殖民地將被其他帝國集團所瓜分,在車間調(diào)度問題中,機器故障、機器完工都可用帝國的滅亡來表示,帝國滅亡,則帝國數(shù)目減少:
l為減少的帝國數(shù)量,e為社會進化第e次;
步驟10:新帝國的產(chǎn)生:在帝國競爭中,會有新的帝國產(chǎn)生,在車間調(diào)度問題中,增加新機器即為新帝國的產(chǎn)生:
g為新增的帝國數(shù)量,e為社會進化第e次;
步驟11:計算帝國存活率:用機器利用率ρ來刻畫,如下定義:
e為社會進化第e次;
步驟12:最后,保留最終剩余的帝國,將適應(yīng)度值作為最優(yōu)解。