国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于布谷鳥搜索算法求解流水車間調度

2018-01-06 00:56張珊靚王慶喜
電腦知識與技術 2017年35期
關鍵詞:調度

張珊靚+王慶喜

摘要:調度是研究資源如何配置問題的理論,流水車間問題是車間調度問題領域的一個子問題,是通過對制造過程作業(yè)計劃,以實現流水車間環(huán)境下生產過程的優(yōu)化調度,其廣泛應用于實際生產,尤其適用于單件大批量生產背景的制造企業(yè)。該文主要研究的是使用布谷鳥搜索算法優(yōu)化車間調度中的流水車間調度的問題。

關鍵詞:布谷鳥搜索算法;流程車間;調度

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)35-0104-02

流水車間調度問題是一個經典的理論問題,擁有簡潔的形式,廣泛的關聯性和高度的計算復雜度。該問題的簡潔性體現在,任務集合上的一個排列就代表了一個調度序列。而關聯性和復雜性體現在,該問題代表了一大類具有排列性質的問題,許多組合優(yōu)化問題都可以歸約到它。在計算理論中,它是NP-難的。

1 布谷鳥搜索算法

布谷鳥搜索算法自從2009年問世以來廣泛醫(yī)用于多個領域,已經成功優(yōu)化多種問題,其搜索能力和優(yōu)化能力被大量證明,該算法的思想可以從如下代碼解釋。

for i=1:n,

nest(i,:)=Lb+(Ub-Lb).*rand(size(Lb));

end

fitness=10^10*ones(n,1);

[fmin,bestnest,nest,fitness]=get_best_nest(nest,nest,fitness);

N_iter=0;

while (fmin>Tol),

new_nest=get_cuckoos(nest,bestnest,Lb,Ub);

[fnew,best,nest,fitness]=get_best_nest(nest,new_nest,fitness); N_iter=N_iter+n;

new_nest=empty_nests(nest,Lb,Ub,pa) ;

[fnew,best,nest,fitness]=get_best_nest(nest,new_nest,fitness); N_iter=N_iter+n;

if fnew

fmin=fnew;

bestnest=best;

end

end

2 流水車間問題求解

流水車間調度問題是典型的組合優(yōu)化問題。假設有N個工件,每個工件都按相同的順序經過M臺機器加工,求解各工件的加工順序,使某種預先規(guī)定的目標函數達到最優(yōu)。其最優(yōu)時間求解在Matlab中的實現采用矩陣思想,主要代碼如下。

function [F, PI] = FSPFitness( Problem, x )

P = Problem';

[M, N] = size(Problem);

[aaa, ROV] = sort(x);

C = zeros(N, M);

C(ROV(1), 1) = P(ROV(1), 1);

for i = 2:N

C(ROV(i), 1) = C(ROV(i-1), 1) + P(ROV(i), 1);

end

for k = 2:M

C(ROV(1), k) = C(ROV(1), k-1) + P(ROV(1), k);

end

for i = 2:N

for k = 2:M

C(ROV(i), k) = max(C(ROV(i-1), k), C(ROV(i), k-1)) + P(ROV(i), k);

end

end

F = C(ROV(N), M);

PI = ROV;

end

3 布谷鳥求解流水車間問題

在用布谷鳥求解流水車間調度問題時,經過隨機鍵編碼方式,布谷鳥找到的每個鳥巢代表了調度問題的一個解,主要代碼如下。

function [fmin,bestnest]=cuckoo_search_fsp(Problem,params)

[numMachines,numJobs] = size(Problem);

if size(params) == [1, 3]

numNests = params(1);

pa=params(3);

MaxGeneration = params(2);

else

numNests = 300;

pa=0.25;

MaxGeneration = 1000;

end

result = zeros(1, MaxGeneration);

nest = rand(numNests, numJobs);

fitness = 10e5*ones(1, numNests);

[fmin,bestnest,nest,fitness]=get_best_nest(nest,nest,fitness,Problem)

for i=1:MaxGeneration,

new_nest=get_cuckoos(nest,bestnest);

[fnew,best,nest,fitness]=get_best_nest(nest,new_nest,fitness,Problem);

new_nest=empty_nests(nest,pa) ; [fnew,best,nest,fitness]=get_best_nest(nest,new_nest,fitness,Problem);

if fnew

fmin=fnew;

bestnest=best;

end

result(i)=fmin;

%fprintf('best:%f\n',fmin);

end

plot(result);

4 仿真測試

仿真測試的測試函數采用Car問題和Rec問題。為了獲得較好準確的結果,求解流水車間調度問題時獨立運行程序20詞,求出20詞中求得最優(yōu)解的次數,然后求出尋優(yōu)率,根據尋優(yōu)率,對比多種算法的優(yōu)劣。主要代碼

Car7=[692 310 832 630 258 147 255;

581 582 14 214 147 753 806;

475 475 785 578 852 2 699;

23 196 696 214 586 356 877;

158 325 530 785 325 565 412;

796 874 214 236 896 898 302;

542 205 578 963 325 800 120]';

Problem = Car7;

BESTANSWER = 6590;

runTimes = 20;

for i=1:runTimes

subplot(2,1,1);

hold on

[Best(i), paixu] = cuckoo_search_fsp(Problem, [25, 500, 0.25]);

hold off

subplot(2,1,2);

xlim([1,runTimes]);

hold on

plot(Best);

hold off

drawnow;

end

count = 0;

for i=1:runTimes

if Best(i) == BESTANSWER

count = count + 1;

end

end

為了驗證布谷鳥算法求解FSP的性能,對算法沒有采取改進策略,完全依靠算法自身進化機制尋優(yōu)。選擇Car類基準測試問題進行仿真測試,并與螢火蟲算法在離散空間的優(yōu)化性能進行對比。仿真測試的一組結果如圖1所示。

5 結論

本文將布谷鳥搜索算法這一優(yōu)秀的元啟發(fā)式算法應用于流水車間調度問題領域。雖然流水車間調度問題是一個古老的課題,但由于它不可忽略的現實和理論意義,對該問題進一步探索守非常有意義的。本文針對求解以最小時間跨度的流水車間調度問題,具體設計布谷鳥算法,所做的工作有。求解質量是指,在給定的迭代次數內所求解的質量的好壞。本文基于該考慮,觀察和設計布谷鳥算法的各個組成要素,盡可能使算法能夠得到較優(yōu)的調度。

參考文獻:

[1] 王慶喜, 趙珊. 基于改進布谷鳥搜索算法的工程設計優(yōu)化[J]. 黑龍江大學自然科學學報, 2017, 345(2):247-52.

[2] 陳超. 改進CS算法結合決策樹的云工作流調度[J]. 電子科技大學學報, 2016, 46(6):974-980.

[3] 謝麗霞, 王志華. 基于布谷鳥搜索優(yōu)化BP神經網絡的網絡安全態(tài)勢評估方法[J]. 計算機應用,2017, 37(7):1926-1930.

[4] 王慶喜, 魏勝利. 基于混沌和非線性規(guī)劃的螢火蟲算法[J]. 科技通報, 2017, 33(5):120-123.

猜你喜歡
調度
交通運輸行政執(zhí)法指揮調度管理系統(tǒng)
《調度集中系統(tǒng)(CTC)/列車調度指揮系統(tǒng)(TDCS)維護手冊》正式出版
電力調度自動化中UPS電源的應用探討
基于強化學習的時間觸發(fā)通信調度方法
一種基于負載均衡的Kubernetes調度改進算法
虛擬機實時遷移調度算法
CTC調度集中與計算機聯鎖通信接口的分析
調度自動化系統(tǒng)不間斷電源的選擇
枯期風電調度模式探討
談調度絞車的安全性
湖南省| 日喀则市| 白城市| 轮台县| 松潘县| 莒南县| 阳原县| 红安县| 同心县| 通化市| 德昌县| 双鸭山市| 陕西省| 齐河县| 富宁县| 锡林浩特市| 谷城县| 英德市| 辰溪县| 灵川县| 岐山县| 荣昌县| 宾阳县| 嘉祥县| 昌江| 鹤峰县| 新民市| 三原县| 嘉荫县| 白玉县| 锡林郭勒盟| 奇台县| 田阳县| 三原县| 博湖县| 山西省| 灵璧县| 拉孜县| 观塘区| 丰台区| 城市|