我是靠谱客的博主 飘逸狗,最近开发中收集的这篇文章主要介绍std输入参数太多matlab,输入参数过多,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

用GA解决VRP问题,调用适应度函数时,出现输入参数过多的错误,怎么解决

m=35;

ch=10;

X=[25,50;45,68;40,50;42,61;44,75;43,80;40,69;38,75;35,70;32,21;35,30;

30,31;25,32;22,75;20,20;10,40;12,30;15,50;8,57;20,60;17,32;

30,80;27,82;25,90;22,80;30,68;13,64;31,54;23,70;40,40;19,28;

8,35;13,76;16,81;8,45;5,70;

12,40;21,31;32,32;27,30;38,61;24,77;15,73;40,80;10,65;7,40];

q=[0,1.7,2.3,0.2,0.2,0.9,1.2,0.5,0.9,2.3,1.7,1.2,0.1,1.6,0.2,0.8,2.1,3.1,1.2,1.4,1.2,2.1,1.6,2.2,1.3,0.6,0.2,0.7,0.9,1.9,2.1,0.4,1.1,0.2,0.6,2.2 ...

0,0,0,0,0,0,0,0,0,0];

ET=[8,6,9,11,7,6,4,5,3,7,12,9,13,7,11,10,16,10,8,11,13,9,8,10,12,15,8,11,16,10,9,11,15,10,14,0,0,0,0,0,0,0,0,0,0];

LT=[10,10,13,16,8,7,6,12,9,11,19,10,17,13,19,13,18,15,13,12,15,11,10,14,15,18,10,12,18,13,11,15,19,11,15,100,100,100,100,100,100,100,100,100,100];

tt=0.1+0.8*rand(1,35);%客户点停留时间,随机产生35个0.1到0.8之间的随机数

sq=sum(q);

Qk=8;%车载容量

k=ceil(sq./Qk)+1;%计算所需车辆数

e=0.27;

qd=200;%车辆的启动成本

r=1./120;

c=1.2;

Ck=1;

C1=20;

C2=30;

e=0.27;%单位距离消耗的电量

Dis=200;

speed=45;

NIND=70;

pc=0.9;%交叉概率

pm=0.05;%变异概率

maxgen=500;%遗传代数

n=m+ch+1;

[dislist,clist]=Distance(n);

%初始化种群

s=zeros(NIND,m+ch);

for i=1:NIND

s(i,:)=randperm(m+ch);

end

d=zeros(NIND,k-1);

ss=[d,s];

for i=1:NIND

ss(i,:)=ss(i,randperm(m+ch+k-1));

end

d=zeros(NIND,1);

s=[d,ss,d]; %在初始矩阵首末加入0元素,得到初始种群s

gen=0;

figure;

hold on;box on;

xlim([0,maxgen]);

title('优化过程');

xlabel('代数');

ylabel('最优值');

[fit,ff,p]=fitness(NIND,m,qd,Ck,Dis,C1,C2,LT,ET,s,Qk,q,k,speed,e,c,r,ch,X);

调用函数(部分):

function [fit,ff,p]=fitness(NIND,m,qd,Ck,Dis,C1,C2,LT,ET,s,Qk,q,k,speed,e,c,r,ch,X)

ddd=zeros(NIND,1);

dd=zeros(NIND,m+ch+k);

e2=zeros(1,NIND);

Q=zeros(NIND,m+ch+k+1);

q1=0;

qq=zeros(NIND,m+ch+k+1);

qqq=zeros(NIND,1);

T=zeros(NIND,m+ch+k);

最后

以上就是飘逸狗为你收集整理的std输入参数太多matlab,输入参数过多的全部内容,希望文章能够帮你解决std输入参数太多matlab,输入参数过多所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部