200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【车间调度】基于遗传算法求解柔性生产调度问题GA-FJSP附matlab代码

【车间调度】基于遗传算法求解柔性生产调度问题GA-FJSP附matlab代码

时间:2021-08-28 20:42:38

相关推荐

【车间调度】基于遗传算法求解柔性生产调度问题GA-FJSP附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

⛄ 内容介绍

车间作业调度问题的优化和研究对制造企业的生产效率和生产成本有着重大的影响力,因此受到学者们的高度关注.本文在对车间调度问题方面的研究做了以下几方面的工作: 首先分析了车间作业调度问题的国内外研究现状,对车间调度问题进行了简单的描述,概述了国内外车间调度问题的研究方法. 其次介绍了遗传算法的基本理论,分析了遗传算法的特点,描述了它的应用情况. 最后在数学建模理论研究的基础上,简单分析了数学建模的方法,对数学建模常用的数学软件进行了简单的描述.根据中信戴卡轮毂制造股份有限公司某车间的车间状况,建立相应的数学模型.利用遗传算法对数学模型进行算法设计,同时利用MATLAB软件对模型求解.为公司的车间生产提供重要的帮助.

⛄ 部分代码

function data=preset(data)

%% 预处理

data.lenb=sum(data.volme);%总任务数

data.lenk=zeros(1,data.lenb);%每个任务的工序数量

data.nk=cell(1,data.lenb);%记录每个任务的每个工序与每个机器的可执行性

n=cell(1,data.lenb);%记录每个任务的每个工序之间的紧前关系

data.taskall=[];%记录所有的需求

n=0;

for i=1:data.pro

buf=data.detail(data.detail(:,1)==i,:);

lenk=size(buf,1);

nk=buf(:,3:end);

cnn=zeros(lenk, lenk);

for j=1: lenk-1

for z=j+1: lenk

if buf(j,2)>buf(z,2) % z 是j的紧前任务

cnn(j,z)=1;

elseif buf(j,2)<buf(z,2) % j 是z的紧前任务

cnn(z,j)=1;

end

end

end

for k=1:data.volme(i) %对于每个零部件而言

n=n+1;

data.lenk(n)=lenk;

data.nk{n}=nk;

n{n}=cnn;

data.taskall=[data.taskall;[ones(data.lenk(n),1).*n,ones(data.lenk(n),1).*i,buf(:,2)]; ];

end

end

data.lena=size(data.taskall,1);

end

⛄ 运行结果

⛄ 参考文献

[1]白俊杰, 龚毅光, 王宁生,等. 批量生产柔性作业车间优化调度研究[J]. 机械科学与技术, (3):6.

[2]张国辉, 党世杰. 遗传算法求解低碳柔性车间生产调度问题[J]. 组合机床与自动化加工技术, (11):4.

[3]ZHANG Shu-li, 张淑丽, LIU Sheng-hui,等. 求解柔性作业车间调度的基于CUDA岛屿模型的遗传算法[C]// 全国现代制造集成技术学术会议. 计算机集成制造系统编辑部, .

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。