用matlab求解工作时间调度问题,09车间作业调度问题(JSP)的遗传算法通用MATLAB源代码...

车间作业调度问题(JSP)的遗传算法通用MATLAB源代码

车间作业调度问题(JSP)是一类满足任务配置和顺序约束要求的资源分配问题,是最难的组合优化问题之一。下面的MATLAB源代码可用于求解标准JSP 问题,虽然采用的是最普通的遗传算法,但在编解码环节,采用了十分巧妙的设计,可以大幅提高搜索效率。

function [S_best,T_min,LC]=JSPGA(M,N,Pc,Pm,Q,W)

%% 车间作业调度问题遗传算法

% GreenSim团队——专业级算法设计&代写程序

% 欢迎访问GreenSim团队主页→http://www.doczj.com/doc/ec5de6eeb8f67c1cfad6b8b8.html/greensim

%% 输入参数列表

% M 遗传算法进化代数

% N 种群规模

% Pc 交叉概率

% Pm 变异概率

% Q 机器序号矩阵

% W 操作时间矩阵

%% 输出参数列表

% S_best 最优调度方案,m×1的细胞结构,每个细胞单元为La×2的矩阵

% T_min 最优调度方案对应的最短调度时间

% LC 历史最优适应值收敛曲线

%% 第一步:参数初始化

[n,k]=size(Q);%n为工件总数,k为工序总数

m=max(max(Q));%m为机器总数

S_best=cell(m,1);

T_min=inf;

LC=zeros(1,M);

%% 第二步:产生初始种群

farm=InitPop(N,Q,W,n,k,m);%调用产生初始种群的子函数

%%

counter=0;%设置迭代计数器

while counter%% 第三步:交叉

FARM=Cross(farm,Pc,m);%调用交叉子函数

%% 第四步:变异

FARM=Mutate(FARM,Pm,m);%调用变异子函数

%% 第五步:修正算子

FARM=Modify(FARM,Q,W,n,k);%调用修正子函数

%% 第六步:计算适应值

FITNESS=Fit(FARM);%调用计算适应值的子函数

%% 第七步:选择复制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值