基于遗传算法的预拌混凝土车辆调度优化MATLAB源码

上传人:笛音 文档编号:35733187 上传时间:2018-03-19 格式:DOC 页数:9 大小:32.51KB
返回 下载 相关 举报
基于遗传算法的预拌混凝土车辆调度优化MATLAB源码_第1页
第1页 / 共9页
基于遗传算法的预拌混凝土车辆调度优化MATLAB源码_第2页
第2页 / 共9页
基于遗传算法的预拌混凝土车辆调度优化MATLAB源码_第3页
第3页 / 共9页
基于遗传算法的预拌混凝土车辆调度优化MATLAB源码_第4页
第4页 / 共9页
基于遗传算法的预拌混凝土车辆调度优化MATLAB源码_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于遗传算法的预拌混凝土车辆调度优化MATLAB源码》由会员分享,可在线阅读,更多相关《基于遗传算法的预拌混凝土车辆调度优化MATLAB源码(9页珍藏版)》请在金锄头文库上搜索。

1、基于基于遗传遗传算法的算法的预预拌混凝土拌混凝土车辆调车辆调度度优优 化化MATLAB源源码码原文地址:基于遗传算法的预拌混凝土车辆调度优化MATLAB源码作者:GreenSim%clc close all clear%问题参数设置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;20;20;25;10;12;30;25;%各工

2、地的浇筑持续时间(分钟)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;%举例,8,15表示8:15%各工地需要的预拌车总数量RT=ceil(R/L);A=zeros(0,0);for i=1:length(RT);A=

3、A;i*ones(RT(i),1);end N=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,C,MD,TDG,TDB,CD,A BD,ADD,ST,Alpha,Beta);%整理输出结果x=BESTXKGA;Y,X,T1,T2,T3,T4,T5,WTS,WTT,C1,C2=Fit(x,A,C,MD,TDG,TDB,CD,ABD,ADD,

4、S T,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/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(配料和装车开始时间(小时/分钟);

5、disp(T1H,T1M);disp(从基地出发时间(小时/分钟);disp(T2H,T2M);disp(到达施工地时刻(小时/分钟);disp(T3H,T3M);disp(从施工地返回时刻(小时/分钟);disp(T4H,T4M);disp(到达基地时刻(小时/分钟);disp(T5H,T5M);functionBESTX,BESTY,ALLX,ALLY=GAUCP(K,N,Pm,LB,UB,AAA,C,MD,TDG,TDB,CD,ABD,ADD,ST,Alpha,BetaQ)%此函数实现遗传算法,用于预拌混凝土配送的调度优化%GreenSim团队原创作品,转载请注明%Email:%Gree

6、nSim团队主页:color=red欢迎访问GreenSim-算法仿真团队url=输入参数列表%K迭代次数%N种群规模,要求是偶数%Pm变异概率%LB决策变量的下界,M1的向量%UB决策变量的上界,M1的向量%输出参数列表%BESTX K1细胞结构,每一个元素是M1向量,记录每一代的最优个体%BESTY K1矩阵,记录每一代的最优个体的评价函数值%ALLX K1细胞结构,每一个元素是MN矩阵,记录全部个体%ALLY KN矩阵,记录全部个体的评价函数值%第一步:M=length(LB);%决策变量的个数%种群初始化,每一列是一个样本farm=zeros(M,N);for i=1:M x=unif

7、rnd(LB(i),UB(i),1,N);farm(i,:)=x;end%输出变量初始化ALLX=cell(K,1);%细胞结构,每一个元素是MN矩阵,记录每一代的个体ALLY=zeros(K,N);%KN矩阵,记录每一代评价函数值BESTX=cell(K,1);%细胞结构,每一个元素是M1向量,记录每一代的最优个体BESTY=zeros(K,1);%K1矩阵,记录每一代的最优个体的评价函数值k=1;%迭代计数器初始化%第二步:迭代过程while k=K%以下是交叉过程newfarm=zeros(M,2*N);Ser=randperm(N);%两两随机配对的配对表A=farm(:,Ser(1)

8、;B=farm(:,Ser(2);P0=unidrnd(M-1);a=A(1:P0,:);B(P0+1):end,:);%产生子代a b=B(1:P0,:);A(P0+1):end,:);%产生子代b newfarm(:,2*N-1)=a;%加入子代种群newfarm(:,2*N)=b;for i=1:(N-1)A=farm(:,Ser(i);B=farm(:,Ser(i+1);P0=unidrnd(M-1);a=A(1:P0,:);B(P0+1):end,:);b=B(1:P0,:);A(P0+1):end,:);newfarm(:,2*i-1)=a;newfarm(:,2*i)=b;end

9、 FARM=farm,newfarm;%选择复制SER=randperm(3*N);FITNESS=zeros(1,3*N);fitness=zeros(1,N);for i=1:(3*N)Beta=FARM(:,i);SE=Fit(Beta,AAA,C,MD,TDG,TDB,CD,ABD,ADD,ST,Alpha,BetaQ);FITNESS(i)=SE;end for i=1:N f1=FITNESS(SER(3*i-2);f2=FITNESS(SER(3*i-1);f3=FITNESS(SER(3*i);if f1=f2&f1=f3 farm(:,i)=FARM(:,SER(3*i-2)

10、;fitness(:,i)=FITNESS(:,SER(3*i-2);elseif f2=f1&f2=f3 farm(:,i)=FARM(:,SER(3*i-1);fitness(:,i)=FITNESS(:,SER(3*i-1);else farm(:,i)=FARM(:,SER(3*i);fitness(:,i)=FITNESS(:,SER(3*i);end end%记录最佳个体和收敛曲线X=farm;Y=fitness;ALLXk=X;ALLY(k,:)=Y;minY=min(Y);pos=find(Y=minY);BESTXk=X(:,pos(1);BESTY(k)=minY;%变异f

11、or i=1:N if Pm rand&pos(1)=i AA=farm(:,i);BB=GaussMutation(AA,LB,UB);farm(:,i)=BB;end end disp(k);k=k+1;end%绘图BESTY2=BESTY;BESTX2=BESTX;for k=1:K TempY=BESTY(1:k);minTempY=min(TempY);posY=find(TempY=minTempY);BESTY2(k)=minTempY;BESTX2k=BESTXposY(1);end BESTY=BESTY2;BESTX=BESTX2;plot(BESTY,-ko,MarkerEdgeColor,k,MarkerFaceColor,k,MarkerSize,2)ylabel(函数值)xlabel(迭代次数)grid on MSN空间完美搬家到新浪博客!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号