越界 发表于 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源码

    算法的思路如下:取各障碍物顶点连线的中点为路径点,相互连接各路径点,将机器人移动的起点和终点限制在各路径点上,利用Dijkstra算法来求网络图的最短路径,找到从起点P1到终点Pn的最短路径,由于上述 ...

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

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

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

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

  4. Matlab 基于遗传算法优化的VMD信号去噪算法 创新点:基于样本熵作为适应度函数

    Matlab 基于遗传算法优化的VMD信号去噪算法 创新点:基于样本熵作为适应度函数 创新点2:基于信噪比作为适应度函数 提高信噪比 本人研究方向信号处理特征提取与故障诊断算法 ID:34506686 ...

  5. BP神经网络优化 | MATLAB基于遗传算法优化BP神经网络(GA-BP)的预测模型(含完整代码)

    文章目录 前言 一.遗传算法描述 二.优化思路 三.完整代码 预测结果 前言 首先需要安装一下遗传算法工具箱,可参考这篇博客 MATLAB遗传算法工具箱安装包及安装方法(图解)_周杰伦今天喝奶茶了吗的 ...

  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. MATLAB实战系列(二十六)-matlab通过遗传算法求解车间调度问题

    文章目录 文中涉及源代码请参见,感兴趣的小伙伴可自行订阅下载! 数学建模源码集锦-基于多层编码遗传算法的车间调度算法应用实例 1. 关于遗传算法的一个小故事 2. 遗传算法操作流程 3. 车间调度问题 ...

最新文章

  1. Java项目:医院住院管理系统(java+SSM+jsp+mysql+maven)
  2. [ python ] 类的组合
  3. 哪家中国公司为Java 16贡献最多?Java第一大厂居然不是第一的...
  4. php使用axios发送请求,axios源码之模拟实现axios发送请求
  5. Fescar TC-beigin流程
  6. 新建raw data 分区
  7. 计算机专业论文周记20篇,毕业论文工作周记6篇
  8. 【RDMA】RDMA通信测试工具|RDMA信息查询工具
  9. JS——数组中去除空空字符串
  10. Gas Station (环形加油站)
  11. 我们为什么做Banana Pi开源硬件项目:
  12. 基于ARM的智能灯光控制系统(4)数据结构
  13. 【附源码】计算机毕业设计SSM网上商城比价系统
  14. python通过qq邮箱发邮件
  15. js 获取设备或浏览器唯一标识的方式
  16. Firefox全面兼容中国银联“在线支付”
  17. Linux下Quagga安装与配置
  18. php报错 Function name must be a string in xxxx解决
  19. Wannafly 22A
  20. 手机信号屏蔽器的设计与制作

热门文章

  1. 《叮当 大结局》意想不到啊……
  2. Altium Designer 20 入门基础知识(2)
  3. American Fuzzy Lop(AFL) Fuzz无源码程序
  4. excel一列数据两两组合(excel一列的数据等于另一列)
  5. java计算机毕业设计小型企业财务报销管理源代码+数据库+系统+lw文档
  6. 量化对冲领域有哪些经典的策略和传奇人物?
  7. P-1.4.1 尝试实现OW的自动瞄准
  8. 软件自动化测试开发邹辉,软件自动化测试开发
  9. JAVA类和对象(1)
  10. 如何应对AIoT对芯片的碎片化需求?