越界 发表于 2013-7-8 09:16

有偿服务哦

function  chushis)

K=4; %最多4辆车

inn=100;%迭代次数上限

citynum=8;%需求点数量

KM=citynum+K+1; %配送途径种类

%产生初始种群

m=zeros(1,inn);

m=m';

s=zeros(inn,citynum+K+1);

for i=1:1:inn

s(i,:)=randperm(KM); %随机排列构成个体

end

s=[m s];

for i=1:inn

for j=1:KM-1

if s(i,j)>citynum

s(i,j)=0;

end

end

end

xlswrite('data.xls',s)

%计算适应度

function [f,p]=shyd(s);

K=4; %最多4辆车

M=10000;

inn=100;%迭代次数上限

citynum=8;%需求点数量

KM=citynum+K+1; %配送途径种类

q=[2 1.5 4.5 3 1.5 4 2.5 3]; %需求点的需求量

t=[1 2 1 3 2 2.5 3 0.8]; %各需求点卸货时间

a1=[1 4 1 4 3 2 5 1]; %送货车辆到达时间上限

b=[4 6 2 7 5.5 5 8 4];%送货车辆时间下线

c=[0,40,60,75,90,200,100,160,80

40,0,65,40,100,50,75,110,100

60,65,0,75,100,100,75,75,75

75,40,75,0,100,50,90,90,150

90,100,100,100,0,100,75,75,100

200,50,100,50,100,0,70,90,75

100,75,75,90,75,70,0,70,100

160,110,75,90,75,90,70,0,100

80,100,75,150,100,75,100,100,0];

y=zeros(citynum+1,citynum+1);

for i=1:inn-1

a=s(i,:);

for j=1:KM-1

m=a(j);

n=a(j+1);

m=m+1;

n=n+1;

end

y(m,n)=1; y=y';

for i=1:citynum

for j=1:citynum

mubiaob=c(i,j)*y(i,:);

end

end

xuq1=0;

for i=1:citynum

for j=1:citynum

xuq1=xuq1+s(i)*y(i,:)-q(i);

end

xuqiu=max((xuq1),0)*M;

end

end

shij1=0;

shij2=0;

for i=1:citynum

for j=1:citynum

for l=1:citynum

shij1=shij1+t(i)-a1(i);

shij2=shij2+b(i)-t(i);

end

shij3=max((shij1),0);

shij4=max((shij2),0);

shijian=M*shij3+M*shij4;

end

end

f=mubiaob+xuqiu+shijian;

f=1./f;

%计算选择概率

fsum=0;

for i=1:14

fsum=fsum+f(i);

end

for i=1:14

ps(i)=f(i)/fsum;

end

%计算累积概率

p(1)=ps(1);

for i=2:14

p(i)=p(i-1)+ps(i);

end

p=p';

%“选择”操作

%从种群中选择两个个体

function xuze=sell(s,p)

inn=size(p,1);

for i=1:inn

r=rand(inn,1);  %产生一个随机数

prand=p-r;

j=1;

while prand(j)<0

j=j+1;

end

xuze(i)=j;

%选中个体的序号

end

sel1=xuze(1);

sel2=xuze(2);

%“交叉”操作

function snew=cross(s,B,pc)

A=s(4,:);

B=s(3,:);

c=find(A==0);

d=find(B==0);

a=sym(A);

b=sym(B);

k=size(a,1);

for i=1:size(a,2)

for j=1:k

e(i,c(k))=a(i+k-1);

end

end

for i=1:size(a,2)

for j=1:k

e(i,d(k))=b(i+k-1);

end

end

[f,p]=shyd(s);

f=f';

a=a';

b=b';

c0=round(rand*(k-1))+1;

c1=round(rand*(k-1))+1;

a=[f(:,c0),a]; b=[e(:,c1),b];

for i=1:size(a,2);

j=1:size(e,2)

if a(i)==e(j)

a(i)==[];

end

end

for i=1:size(b,2);

j=1:size(f,2)

if b(i)==f(j)

b(i)==[];

end

end

a=double(a);

b=double(b);

g=zeros(size(A));

for i=1:size(a)

for j=1:size(c)

g(i+j)=a(i);

end

end

h=zeros(size(A));

for i=1:size(b)

for j=1:size(d)

h(i+j)=b(i);

end

end

g=g';

h=h';

snew=[g h];

%变异

function  snew=bianyi(snew,pm)

bn=size(snew,2);

snnew=snew;

c2=round(rand*(bn-2))+1;

%在[1,bn-1]范围内随机产生一个变异位

c3=round(rand*(bn-2))+1;

chb1=min(c2,c2);

chb2=max(c3,c2);

x=snew(chb1+1:chb2);

snnew(chb1+1:chb2)=fliplr(x);

pmm=pro(pm);

%根据变异概率决定是否进行变异操作,1则是,0则否

if pmm==1

c2=round(rand*(bn-2))+1;

%在[1,bn-1]范围内随机产生一个变异位

c3=round(rand*(bn-2))+1;

chb1=min(c2,c3);

chb2=max(c2,c3);

x=snew(chb1+1:chb2);

snnew(chb1+1:chb2)=fliplr(x);

end

function pcc=pro(pc);

test(1:100)=0;

l=round(100*pc);

test(1:l)=1;

n=round(rand*99)+1;

pcc=test(n);

%主程序

function ga

s=xlsread('data.xls');

[f,p]=shyd(s);

pm=0.8; %变异概率

pc=0.2; % 交叉比率

gn=1;

inn=100;%迭代次数上限

gnmax=1000; %最大代数

while gn

for j=1:2:inn

xuze=sell(s,p);

%选择操作

scross=cross(s,xuze,pc);

%交叉操作

scnew(j,:)=scross(1,:);

scnew(j+1,:)=scross(2,:);

smnew(j,:)=bianyi(scnew(j,:),pm);

%变异操作

smnew(j+1,:)=bianyi(scnew(j+1,:),pm);

end

s=smnew;

%产生了新的种群

[f,p]=shyd(s);

%计算新种群的适应度

%记录当前代最好和平均的适应度

[fmax,nmax]=max(f);

ymean(gn)=1/mean(f);

ymax(gn)=1/fmax;

%记录当前代的最佳个体

x=s(nmax,:);

gn=gn+1;

end

gn=gn-1;

figure(2);

plot(ymax,'r');

hold on;

plot(ymean,'b');

grid;

title('搜索过程');

legend('最优解','平均解');

matlab 调度算法,基于遗传算法的车辆调度问题的matlab源程序相关推荐

  1. 车辆调度 matlab,基于遗传算法的车辆调度问题的matlab源程序

    越界 发表于 2013-7-8 09:16 有偿服务哦 function  chushis) K=4; %最多4辆车 inn=100;%迭代次数上限 citynum=8;%需求点数量 KM=cityn ...

  2. matlab遗传算法拟合,基于遗传算法的数据拟合在MATLAB环境中的实现

    湖 南 农 机 2010 年 5 月 收稿日期:2010-04-02 作者简介:林鸿彬(1987-),男,海南海口人,主要从事信息与计算科学专业的学习. 摘 要:在自然科学中,常常在相关的 2 个量之 ...

  3. 【建模算法】基于遗传算法求解TSP问题(matlab求解)

    [建模算法]基于遗传算法求解TSP问题(matlab求解) TSP (traveling salesman problem,旅行商问题)是典型的NP完全问题,即其最坏情况下的时间复杂度随着问题规模的增 ...

  4. 分布式电源优化配置与选址定容MATLAB程序基于遗传算法

    分布式电源优化配置与选址定容MATLAB程序基于遗传算法 (1)该程序为基于遗传算法的分布式电源优化配置与选址定容程序,硕士学位论文源程序,配有该论文. (2)本程序可有效配置分布式电源容量与安装位置 ...

  5. MATLAB实现基于遗传算法/引力搜索算法优化新安江水文模型

    MATLAB实现基于遗传算法/引力搜索算法优化新安江水文模型 1 新安江模型 1.1 新安江模型结构 1.2 模型参数种类及意义 2 新安江模型优化参数 2.1 蒸散发参数: KC.WUM.WLM.C ...

  6. matlab代做mhslogic,MATLAB代做|FPGA代做|simulink代做——基于遗传算法的车间布局优化MATLAB源码...

    MATLAB代做|FPGA代做|simulink代做--基于遗传算法的车间布局优化MATLAB源码 添加时间:2019-12-8 来源:本站整理 基于遗传算法的车间布局优化MATLAB源码 车间布局优 ...

  7. matlab和投影寻踪,基于遗传算法的投影寻踪模型Matlab源码

    基于遗传算法的投影寻踪模型Matlab源码 %% "投影寻踪+遗传算法优化"的主仿真程序 % GreenSim团队原创作品,转载请注明 % Email:greensim@http: ...

  8. 【优化调度】基于遗传算法实现车辆发车间隔优化问题matlab源码

    1 简介 根据公交调度优化问题的特点,考虑车辆满载率及最大,最小发车间隔的约束,以企业收益和乘客利益最大为目标建立的公交发车间隔模型,采用遗传算法进行求解.实际应用表明,利用该模型及其算法能够快速得到 ...

  9. [置顶] 基于遗传算法求解车辆路径问题

    今天整理了一下以前写过的一个遗传算法求解车辆路径问题的程序(C#写的),发上来和大家分享一下,有误的地方还请各位指点. 1.车辆路径问题: 车辆路径问题可以描述为:在一个存在供求关系的系统中,有若干台 ...

  10. 基于遗传算法求解车辆路径问题

    今天整理了一下以前写过的一个遗传算法求解车辆路径问题的程序(C#写的),发上来和大家分享一下,有误的地方还请各位指点. 1.车辆路径问题: 车辆路径问题可以描述为:在一个存在供求关系的系统中,有若干台 ...

最新文章

  1. CodeForces - 632E Thief in a Shop 完全背包
  2. 如何找出标有App Store 精华,Essentials的所有软件?
  3. python了解一下_想要精通python?19个语法了解一下!
  4. 怎样在python代码中输入π_鼠标自动点击、键盘自动输入?几行Python代码搞定
  5. 数据库存储字符超过2000处理办法;
  6. linux不允许root用户登录图形界面的解决办法
  7. 有人说:轻量级锁一定比重量级锁快!我忍不住笑了
  8. spark sql uv_内置函数_SparkSQL学习 - 编程那点事
  9. PHP 中 this,self,parent 的区别、用法
  10. 2.学习管理系统项目学习一
  11. 机器学习样本处理算法(二)详细特点描述
  12. 【leetcode】数组的度-两个map关联初探
  13. 疫情下的创业品牌如何逆风翻盘?
  14. CoreData 增删改查
  15. PythonCookbook读书笔记
  16. 2.4G无线音箱四层PCB设计学习(一)
  17. 风口下的追逐:AI正在驾驶、客服、教育领域疾驰
  18. 34岁IBM工程师电脑被抢身亡:以命相争背后,是无处安放的生活
  19. 命令行quser logoff
  20. js中的内存溢出和内存泄漏

热门文章

  1. PINN物理驱动的深度学习方法入门到详解
  2. 微信小程序登录界面 服务器,微信小程序之登录页-------实例
  3. 电力电气自动计算excel表格大全【共46份】
  4. php自定义生成用户收据,Shopify POS收据自定义操作步骤
  5. shiro简单配置教程
  6. 在使用RadASM一开始的过程中遇到的问题汇总(后续更新)
  7. Vue后台管理系统模板推荐
  8. 【IntelliJ IDEA】设置字体大小
  9. iwconfig工具源码
  10. RANSAC算法详解+Python实现