资源简介
用matlab程序解决作业车间调度问题的小例子,程序可运行,可画出进化图与甘特图。内附算例与程序说明。
代码片段和文件信息
function [ ret ] = Cross( pxchromlenchromn )
%本函数完成交叉操作
%px input:交叉概率
%chrom input:染色体群
%sizepop input:种群规模
%lenchrom input:染色体长度
%ret output:交叉后的染色体
sizepop=size(chrom1);
i=1;
randjob=4; %变动工件数
while i<=sizepop %是否进行交叉操作由交叉概率决定(continue控制)
%随机选择两个染色体进行交叉
temp=randperm(sizepop);
index=temp(1:2);
s1=chrom(index(1):);
s2=chrom(index(2):);
%初始化中间片段
s11=zeros(1n*2);
s22=zeros(1n*2);
index=zeros(2n*2);
%交叉概率决定是否交叉
pick=rand;
while pick==0
pick=rand;
end
id1=1;
id2=1;
if pick %随机选择两个工件
tempjob=randperm(n);
job1=tempjob(11);
job2=tempjob(12);
job3=tempjob(13);
job4=tempjob(14);
%job5=tempjob(15);
for j=1:lenchrom
if s1(1j)==job1
index(1id1)=j;
s11(1id1)=job1;
id1=id1+1;
end
if s1(1j)==job2
index(1id1)=j;
s11(1id1)=job2;
id1=id1+1;
end
if s1(1j)==job3
index(1id1)=j;
s11(1id1)=job3;
id1=id1+1;
end
if s1(1j)==job4
index(1id1)=j;
s11(1id1)=job4;
id1=id1+1;
end
end
for j=1:lenchrom
if s2(1j)==job1
index(2id2)=j;
s22(1id2)=job1;
id2=id2+1;
end
if s2(1j)==job2
index(2id2)=j;
s22(1id2)=job2;
id2=id2+1;
end
if s2(1j)==job3
index(2id2)=j;
s22(1id2)=job3;
id2=id2+1;
end
if s2(1j)==job4
index(2id2)=j;
s22(1id2)=job4;
id2=id2+1;
end
end
%交叉后的第一条染色体
for j=1:(randjob*n)
id1=index(1j);
s1(1id1)=s22(1j);
end
%交叉后的第二条染色体
for j=1:(randjob*n)
id2=index(2j);
s2(1id2)=s11(1j);
end;
end
if i==sizepop %调整ret染色体数目,控制为奇数
ret(i:)=s1;
else
ret(i:)=s1;
ret((i+1):)=s2;
end
i=i+2;
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2617 2017-12-24 15:59 GA_JSP\Cross.m
文件 5399 2018-05-25 23:06 GA_JSP\gant.m
文件 3297 2018-06-04 20:09 GA_JSP\main.m
文件 4251 2018-06-04 20:01 GA_JSP\makespan.m
文件 738 2018-01-15 14:17 GA_JSP\Mutation.m
文件 382 2018-06-04 20:04 GA_JSP\remain.m
文件 1142 2018-06-04 20:00 GA_JSP\Select.m
文件 422 2018-06-04 19:59 GA_JSP\time.m
文件 233 2018-06-04 20:14 GA_JSP\程序说明.txt
文件 1019 2017-12-21 13:05 GA_JSP\算例.txt
相关资源
- matlab标定界面程序
- RS码编解码MATLAB程序
- matlab2019a最新wlan tool box,含802.11ax
- MATLAB老外的ICP小程序
- tophat变换matlab代码
- sac文件读取函数matlab代码
- 人脸特征点手动标定的matlab程序
- matlab实现的基于颜色直方图的特征匹
- 自适应信号与系统 LMS与RLS算法收敛
- 相空间重构代码-matlab
- css算法 角点检测 matlab
- 非完整轮式移动机器人运动规划与控
- 分水岭算法分割苹果(matlab代码实现
- 该源代码的功能是用matlab来实现链码
- matlab的GUI录音程序,带有界面文件。
- 非常经典的MATLAB人脸识别程序可显示
- 1.5维普matlab程序
-
OQPSK的Matlab_Simuli
nk调制解调仿真系统 - Matlab 2018b 破解文件
- 降低OFDM系统PAPR算法(PTS-SLM-C变换)
- Classification matlab code - Quadratic Discrim
- 数字下变频MATLAB仿真
- UWB matlab程序
- 超分辨的MATLAB程序
- 图像相似度量Matlab代码
- 数字信号处理理论算法与实现课后习
- haar人脸 人眼检测 MATLAB
- s变换的matlab程序
- 应用Matlab产生各种数字调制信号以及
- 基于MATLAB的线性二次型最优控制设计
评论
共有 条评论