《生产计划与控制实践大作业2》.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
生产计划与控制实践大作业 遗传算法求解车间作业调度问题 课程名称: 生产计划与控制实践 报告题目: 遗传算法求解车间作业调度问题 指导老师: 高杰 组员姓名: 王佳昀、姚泽坤、方正 所在组号: 第 十 二 组 二0一 四 年 12 月 22 日 1、问题回顾 车间作业调度问题 (1)PPT中例子(如下图所示)的求解 编写MATLAB 遗传算法GA_JSP函数M文件代码(源代码较长)见附录 之后在命令窗口调用GA_JSP函数求解的文件主程序编写如下: %% 文件主体部分 clc,clear %清除命令窗口,清除工作空间 NIND = 40; %种群所包含个体数目 MAXGEN = 50; %最大遗传代数 GGAP = 0.9; %代沟 P_Cross = 0.8; %交叉率 P_Mutation = 0.6; %变异率 Jm={1 2 3;1 3 2;2 1 3};% 工序机器矩阵 T={3 3 2;1 5 3;3 2 3};%加工时间矩阵 MakeSpan = GA_JSP(NIND,MAXGEN,GGAP,P_Cross,P_Mutation,Jm,T); fprintf(最小加工流程时间为:\n) disp(MakeSpan) 程序运行结果如下: 最小加工流程时间为11,比课件图中给出的两种方案用时少,此方案更优 图中201表示第二个工件的第一道工序,其余类推 (2)公邮中TXT文本 Fisher and Thompson 6x6 instance的求解 采用与(1)相同的方法,输入工序机器矩阵Jm和加工时间矩阵T即可求解 其中: Jm={3 1 2 4 6 5;2 3 5 6 1 4;3 4 6 1 2 5;2 1 3 4 5 6;3 2 5 6 1 4;2 4 6 1 5 3}; % 工序机器矩阵 T={1 3 6 7 3 6;8 5 10 10 10 4;5 4 8 9 1 7;5 5 5 3 8 9;9 3 5 4 3 1;3 3 9 10 4 1}; %加工时间矩阵 运行结果截图: 附录 1 MATLAB 遗传算法GA_JSP函数M文件的部分主要代码(由于代码较长,此处仅保留了主函数代码): function MakeSpan = GA_JSP(NIND,MAXGEN,GGAP,P_Cross,P_Mutation,Jm,T) %% 程序功能说明 %基于遗传算法的作业车间调度问题的求解程序(GA_JSP) %====输入变量==== %NIND :种群所包含个体的数目 %MAXGEN :最大遗传代数 %GGAP :代沟 %P_Cross :交叉概率 %P_Mutation :变异概率 %Jm :各工序的可选机器集合,为m×n的元胞矩阵,m为机器数(工序),n为工件数 %T :加工时间矩阵 %====输出变量==== %MakeSpan :最小的最大完工时间 %% 主函数程序部分 gen = 0; %迭代计数器 JmNumber = Max_Cell(Jm); %调用Max_Cell子函数求机器的数量 [PNumber,MNumber] = size(Jm); %PNumber为工件个数,MNumber为工序个数 trace = zeros(2,MAXGEN); %寻优结果的初始值,一行存放各代的最优解,一行存放各代解的均值 TotalOP_Number = PNumber*MNumber; %工序总个数 %(1)初始化 Number = zeros(1,PNumber); %Number存放每个工件的工序数,PNumber工件个数 for i = 1:PNumber Number(i) = MNumber; %MNumber工序个数 end %染色体个体编码:代码分为两层,第一层表示工序,第二层表示机器 Chrom = zeros(NIND,2*TotalOP_Number); %染色体的长度为2*TotalOP_Number for j = 1:NIND %逐代寻优 WPNumberTemp = Number; for i = 1:TotalOP_Number %

您可能关注的文档

文档评论(0)

一点通 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档