资源描述:
《基于遗传算法的预拌混凝土车辆调度优化matlab源码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于遗传算法的预拌混凝土车辆调度优化MATLAB源码原文地址:基于遗传算法的预拌混凝土车辆调度优化MATLAB源码作者:GreenSim%%clccloseallclear%%问题参数设置M=8;%工地总数目L=6;%预拌车吨位(立方米)C=20;%预拌车总数目MD=3;%配料和装车时间(分钟)%到各工地的去程时间(分钟)TDG=[30;25;40;15;35;45;20;20];%到各工地的回程时间(分钟)TDB=[25;20;30;15;30;35;20;15];%各工地需要的混凝土总量(立方米)R=[15;
2、20;20;25;10;12;30;25];%各工地的浇筑持续时间(分钟)CD=[20;30;25;10;35;15;20;15];%施工工地允许的最大中断时间(分钟),与连续施工保证施工质量有关ABD=[5;5;15;5;5;10;10;5];%施工工地允许的最大配送时间(分钟),与保证混凝土品质有关ADD=[100;90;100;90;120;110;100;90];%各施工地开始施工的时刻(以分为单位的相对时间)ST=[0;0;30;0;0;30;0;0];%0时刻对应的真实时间(小时分钟制)HM=[8;0
3、];%举例,[8,15]表示8:15%各工地需要的预拌车总数量RT=ceil(R/L);A=zeros(0,0);fori=1:length(RT);A=[A;i*ones(RT(i),1)];endN=length(A);%%算法参数设置%迭代次数KGA=50;%种群规模NGA=50;%变异概率PmGA=0.2;LB=zeros(N,1);UB=ones(N,1);Alpha=1;Beta=1;%%调用遗传算法[BESTX,BESTY,ALLX,ALLY]=GAUCP(KGA,NGA,PmGA,LB,UB,A,
4、C,MD,TDG,TDB,CD,ABD,ADD,ST,Alpha,Beta);%%整理输出结果x=BESTX{KGA};[Y,X,T1,T2,T3,T4,T5,WTS,WTT,C1,C2]=Fit(x,A,C,MD,TDG,TDB,CD,ABD,ADD,ST,Alpha,Beta);disp('最佳染色体为');disp(X');Time0=60*HM(1)+HM(2);T1=T1+Time0;T2=T2+Time0;T3=T3+Time0;T4=T4+Time0;T5=T5+Time0;T1H=floor(T1
5、/60);T1M=mod(T1,60);T2H=floor(T2/60);T2M=mod(T2,60);T3H=floor(T3/60);T3M=mod(T3,60);T4H=floor(T4/60);T4M=mod(T4,60);T5H=floor(T5/60);T5M=mod(T5,60);disp('配料和装车开始时间(小时/分钟)');disp([T1H,T1M]');disp('从基地出发时间(小时/分钟)');disp([T2H,T2M]');disp('到达施工地时刻(小时/分钟)');disp([
6、T3H,T3M]');disp('从施工地返回时刻(小时/分钟)');disp([T4H,T4M]');disp('到达基地时刻(小时/分钟)');disp([T5H,T5M]');function[BESTX,BESTY,ALLX,ALLY]=GAUCP(K,N,Pm,LB,UB,AAA,C,MD,TDG,TDB,CD,ABD,ADD,ST,Alpha,BetaQ)%%此函数实现遗传算法,用于预拌混凝土配送的调度优化%GreenSim团队原创作品,转载请注明%Email:greensim@163.com%Gre
7、enSim团队主页:[color=red]欢迎访问GreenSim--算法仿真团队→[url=输入参数列表%K迭代次数%N种群规模,要求是偶数%Pm变异概率%LB决策变量的下界,M×1的向量%UB决策变量的上界,M×1的向量%%输出参数列表%BESTXK×1细胞结构,每一个元素是M×1向量,记录每一代的最优个体%BESTYK×1矩阵,记录每一代的最优个体的评价函数值%ALLXK×1细胞结构,每一个元素是M×N矩阵,记录全部个体%ALLYK×N矩阵,记录全部个体的评价函数值%%第一步:M=length(LB);%决
8、策变量的个数%种群初始化,每一列是一个样本farm=zeros(M,N);fori=1:Mx=unifrnd(LB(i),UB(i),1,N);farm(i,:)=x;end%输出变量初始化ALLX=cell(K,1);%细胞结构,每一个元素是M×N矩阵,记录每一代的个体ALLY=zeros(K,N);%K×N矩阵,记录每一代评价函数值BESTX=cell(K,1);%细