程序调试过程中出现如下警告:
GAMain
未定义函数或变量 ‘Pop’。

出错 Routedist (line 3)
car_route=Decoding(Popsize,T,Pop,n,w);

出错 Objective (line 7)
route_dist=Routedist(Popsize,T);

GAMain如下:
%%%%%%%%%%%%%%%%数据参数赋值%%%%%%%%%%%%%%%%
n=20;%供应商数量
t=0;%补货周期初值
T=5;%补货周期数
d=xlsread(‘vendorrequirements.xlsx’);%读取需求量
Mu=50;%需求均值
Sigma=10;%需求标准差
cs=1;%线边库单位库存成本
cf=1000;%车辆固定运输成本
cv=2.5;%车辆单位距离运输变动成本
W=1000;%线边库容量
w=200;%车辆容量
%%%%%%%%%%%%%%%%%距离计算%%%%%%%%%%%%%%%%%%
s=zeros(n+1,n+1);%供应商和线边库之间距离
vend_location=[176.6,-113.3,17.1,-200.6,61.2,-142.2,92.4,113.5,148.9, …
-29.7,-249.7,-162.6,248,-208.6,195.5,23,297.7,-253.1,-34.4,-236;…
277.1,297.2,164.9,190.4,221.2,249.3,60.1,144.1,180,41.2,246.4,…
190.9,141.7,212.7,218.4,221.6,47.8,29.9,213,211.8]; %第一行为x坐标,第二行为y坐标
center=[0;0];%线边库坐标
coordinate=[center vend_location];%坐标集
for ii=1:n+1
for jj=1:n+1
s(ii,jj)=sqrt(sum((coordinate(:,ii)-coordinate(:,jj)).^2));
end
end
%%%%%%%%%%%%%遗传算法初始化%%%%%%%%%%%%%
Popsize=20; %种群规模
maxgen=1000; %最大遗传代数
gen=1;%代数计数器
pc=0.8; %交叉率0.6-0.8之间
pm=0.1;%变异率
bestReplenishment=zeros(T,n);%最优补货量
Objv_trace=zeros(maxgen,1);%最小总成本的迹
Pop=InitializingPop(Popsize,n,T,Mu,Sigma,d);%初始种群
%%%%%%%%%%%%%%%%遗传算法循环%%%%%%%%%%%%%%%%%%
while gen<maxgen
Objv=Objective(Popsize,n,T,cs,cf,cv,Pop);%计算总成本(目标函数值)
Fit=Fitness(Objv,Popsize);%计算适值
[Objv_trace(gen),index]=min(Objv);%记录最小成本
bestchrom=Pop(index,:);%最优染色体
newPop=Selection(Pop,Fit,Popsize);%轮盘赌复制
newPop=Crossover(newPop,Popsize,pc,T,n);%概率交叉
newPop=Mutation(newPop,Popsize,pm,T,n);%概率变异
newPop(1,:)=bestchrom;%精英保留
Pop=newPop;%子种群赋值给父代种群
gen=gen+1;%迭代计数器
end
car_route=Decoding(Popsize,T,Pop,n,w);%解码
minObjv=min(Objv_trace);%最优采购总成本
%%%%%%%%%最优补货量%%%%%%%%%%%
for i=1:T
bestReplenishment(i,:)=bestchrom(1,2*(i-1)n+1:(2i-1)n);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bestcar_route=car_route(1,:);%最优车辆取货路径
route_dist=Routedist(Popsize,T);
bestRoutedist=sum(route_dist(1,:),2);%最优总里程
%%%%%%%%%计算车辆使用数量%%%%%
kk=zeros(1,T);%车辆使用数量
for j=1:T
kk(1,j)=k;
k=length(bestcar_route(j));
end
%%%%%%%%%%%绘制车辆取货路线路图形%%%%%%%%%%%
figure(1)
plot(vend_location(1,:),vend_location(2,:),’
’)
hold on
plot(0,0,‘o’)
hold off
for i=1:n
text(vend_location(1,i),vend_location(2,i),num2str(i),‘Fontsize’,14);
end
hold on
for j=1:T%每个周期一张子图
Tbestcar_route=bestcar_route(j);%周期内车辆取货路径
for jj=1:kk(1,j)%同一个子图内每辆车一条线路
temp=coordinate(:,Tbestcar_route(jj));
subplot(1,T,j);plot(temp(1,:),temp(2,:))
hold on
strcat(‘car’,num2str(jj));
end
xlabel(‘x坐标’)
ylabel(‘y坐标’)
title(‘第’,num2str(j),‘周期车辆取货路线图’)
end
%%%%%%%%%%%绘制采购总成本迭代图形%%%%%%%%%%%
figure(2)
plot(Objv_trace)
xlabel(‘迭代次数’)
ylabel(‘采购总成本’)
title(‘采购总成本优化曲线’)

子函数如下:
function route_dist=Routedist(Popsize,T)
route_dist=zeros(Popsize,T);%所有染色体所有周期车辆路径距离存储器
car_route=Decoding(Popsize,T,Pop,n,w);
for i=1:Popsize
for j=1:T
for ii=1:length(car_route(i,j))
carroute=car_route(i,j);%周期内所有车辆的取货路径
dist=zeros(1,1);%周期内所有车辆总行驶距离
iicarroute=carroute(ii);%周期内某车辆的取货路径
iidist=zeros(1,1);%车辆路径距离存储器
for jj=1:length(iidist)
iidist=iidist+s(iicarroute(jj),iicarroute(jj+1));
end
dist=dist+iidist;
end
route_dist(i,j)=dist;
end
end

function Objv=Objective(Popsize,n,T,cs,cf,cv,Pop)
d=xlsread(‘vendorrequirements.xlsx’);%读取需求
Objv=zeros(Popsize,1);%总成本
F1=zeros(Popsize,1);%库存成本
F2=zeros(Popsize,1);%固定运输成本
F3=zeros(Popsize,1);%变动运输成本
route_dist=Routedist(Popsize,T);
for i=1:Popsize
for j=1:T
Replenishment(1,:)=Pop(i,2*(j-1)n+1:(2j-1)n);
F1(i,1)=F1(i,1)+cs
(Replenishment(1,:)-d(1,2*(j-1)n+1:(2j-1)n));
F2(i,1)=F2(i,1)+cf
max(ceil(cumsum(Replenishment,2)./w));
F3(i,1)=F3(i,1)+cv*route_dist(i,j);
end
Objv(i,1)=F1(i,1)+F2(i,2)+F3(i,1);
end

matlab遗传算法程序报错相关推荐

  1. MATLAB读视频报错 Unable to initialize the video obtain properties (videoreader in Matlab)

    添加一种问题情况:可能是某个视频无法初始化,可以对视频重新处理再重新读取试试 其他解决思路:MATLAB读视频报错 Unable to initialize the video obtain prop ...

  2. 使用matlab中cell2mat报错:错误使用cat 要串联的数组的维度不一致

    使用matlab中cell2mat报错:错误使用cat 要串联的数组的维度不一致 从Excel中用readtable读取数据,因为默认每一列都是cell类型,想转成matrix类型方便使用. 在mat ...

  3. matlab中system prt,急!!求救!!MATLAB关于prt报错!

    急呀!!向各位大侠求助!!!崩溃了啊!!终于把spatial toolbox放到matlab里了.可是发现,还是会不停的报错. 本人新手!请教各位高手,这个问题应该怎么解决?????? 报错如下: & ...

  4. matlab添加路径报错,Win10 + Caffe + CPU + MATLAB (包括各种问题详细解决)(二)

    转载自:https://blog.csdn.net/u014546828/article/details/80447583 这里介绍一下 Win10 下,如何搭建 Caffe,仅有 CPU.因为我需要 ...

  5. 解决Matlab deembedsparams函数报错

    使用Matlab,自带的去嵌函数deembedsparams,套入Fixture+DUT+Fixture的S参数,左右两边治具S参数后,报如下错误,大概意思是频率不一致,实际检查又是一致的 Matla ...

  6. matlab斜杠报错,java调用matlab 时出现java.lang.NullPointerException错误

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...

  7. matlab 程序运行报错 调试 不退出函数

    遇到问题后会停下,保留变量和当前函数 注:该方法有时会停留在matlab的一些内置函数中,主要逐层退出. dbstop if all error

  8. MATLAB运行程序报错:“等号右侧的输出数目不足,不满足赋值要求。”的解决方法

    等号右侧的输出数目不足,不满足赋值要求.         在Matlab运行程序时出现这种情况的原因即是:在使用Matlab自带的函数或者调用自己创建的函数时,等式(等号"=")两 ...

  9. matlab添加路径报错,MATlAB如何添加工具箱

    1. 如何添加工具箱? 以下是添加工具箱的方法:(论坛很多人转载过,这里就不作区分了,下面的举例也一样) 如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可.如果是单独下载的工具箱,则需 ...

  10. matlab的cell2mat报错记录

    在使用MATLAB自带的随机森林函数TreeBagger做分类时,它的label格式是放在cell中字符串.由于要提取出数值格式,便使用了cell2mat和str2num组合. cell2mat要求同 ...

最新文章

  1. 数据中心业务价值永续的密码——施耐德电气全生命周期服务
  2. Microsoft RTF栈溢出漏洞(CVE-2010-3333)漏洞分析
  3. 大数据WEB阶段(十九)Threadlocal
  4. Linux uniq命令
  5. 实践中的弹性基础架构
  6. chrome浏览器的跨域设置,前端修改跨域问题
  7. react-native 安装的时候遇到的问题
  8. 闲谈 Kubernetes 的主要特性和经验分享
  9. 卡方拟合优度检验怎么做?
  10. 【Python PE解析器】——制作解析PE文件软件 并进行编译EXE程序 并打包为单个安装程序(全程详细包资料)
  11. TiDB 社区专栏:让技术人员成为更好的读者/作家
  12. ue 查看 html,网页查看源文件 默认用UltraEdit或记事本打开 修改办法
  13. 华为云服务器如何使用
  14. 微信公众号开发部署服务器
  15. 【Python】经典问题创建一个矩形类,定义方法 属性 初始化
  16. vue-03-4:vue封装方法到工具类
  17. c语言课程设计 选课系统,学生选课系统c语言课程设计.doc
  18. 远程服务器套娃,无限套娃!RemoteView云上浏览器:运行在浏览器里的远程浏览器...
  19. Ubuntu 20.04.2.0 LTS 更改默认关联视频播放器VLC的方法
  20. 伦敦银实时走势图决胜关键

热门文章

  1. 创新声卡KX驱动调试设置及效果器使用详解
  2. Hive教程(一) Hive入门教程
  3. 2019最新《网易云课堂C++开发工程师案例-网吧收银系统(MFC+ADO)》
  4. 科技文献检索与计算机应用,科技文献检索与计算机应用.doc
  5. 做用dm工具做游戏 需要不需要c语言,DM的C语言课堂笔记
  6. Android音视频开发之ExoPlayer(二):播放列表常用的功能
  7. 尼康1c全站仪语言设置,尼康NIVO.1C全站仪
  8. wince与android USB通信,WinCE全站仪如何与手机通过USB互传数据
  9. 模糊控制在matlab的实现,模糊控制系统的MATLAB实现
  10. MAC 下的SVN客户端 Versions、SmartSVN、Cornerstone