0028算法笔记——【回溯法】批作业调度问题和符号三角形问题.docVIP

0028算法笔记——【回溯法】批作业调度问题和符号三角形问题.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用标准文案 文档大全 ??1、批作业调度问题 ? ???(1)问题描述 ? ? ?给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理,然后由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。 ? ? ?批处理作业调度问题要求对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。 ? ? ??例:设n=3,考虑以下实例: ? ? ?这3个作业的6种可能的调度方案是1,2,3;1,3,2;2,1,3;2,3,1;3,1,2;3,2,1;它们所相应的完成时间和分别是19,18,20,21,19,19。易见,最佳调度方案是1,3,2,其完成时间和为18。 ??? ?(2)算法设计 ? ???批处理作业调度问题要从n个作业的所有排列中找出具有最小完成时间和的作业调度,所以如图,批处理作业调度问题的解空间是一颗排列树。按照回溯法搜索排列树的算法框架,设开始时x=[1,2,……n]是所给的n个作业,则相应的排列树由x[1:n]的所有排列构成。 ? ? ?算法具体代码如下: [cpp]? \o view plain view plain? \o copy copy #include?stdafx.h?? #include?iostream?? using?namespace?std;??? ?? class?Flowshop?? {?? ????friend?int?Flow(int?**M,int?n,int?bestx[]);?? ????private:?? ????????void?Backtrack(int?i);?? ?? ????????int?**M,????//?各作业所需的处理时间?? ????????????*x,?????//?当前作业调度?? ????????????*bestx,????//?当前最优作业调度?? ?? ????????????*f2,????//?机器2完成处理时间?? ????????????f1,????//?机器1完成处理时间?? ????????????f,?????//?完成时间和?? ?? ????????????bestf,????//?当前最优值?? ????????????n;??//?作业数?? ?};??? ?? int?Flow(int?**M,int?n,int?bestx[]);?? ?? template?class?Type?? inline?void?Swap(Type?a,?Type?b);?? ?? int?main()?? {?? ????int?n=3,bf;?? ????int?M1[4][3]={{0,0,0},{0,2,1},{0,3,1},{0,2,3}};?? ?? ????int?**M=new?int*[n+1];?? ?? ????for(int?i=0;i=n;i++)?? ????{?? ????????M[i]=new?int[3];?? ????}?? ????coutM(i,j)值如下:endl;?? ?? ????for(int?i=0;i=n;i++)?? ????{?? ????????for(int?j=0;j3;j++)?? ????????{?? ????????????M[i][j]=M1[i][j];?? ????????}?? ????}?? ?? ????int?bestx[4];?? ????for(int?i=1;i=n;i++)?? ????{?? ????????cout(;?? ????????for(int?j=1;j3;j++)?? ????????coutM[i][j]?;?? ????????cout);?? ????}?? ?? ????bf=Flow(M,n,bestx);?? ?? ????for(int?i=0;i=n;i++)?? ????{?? ????????delete?[]M[i];?? ????}?? ????delete?[]M;?? ?? ????M=0;?? ?? ????coutendl最优值是:bfendl;?? ????cout最优调度是:;?? ?? ????for(int?i=1;i=n;i++)?? ????{?? ????????coutbestx[i]?;?? ????}?? ????coutendl;?? ????return?0;?? }?? ?? void?Flowshop::Backtrack(int?i)?? {???? ????if?(in)?? ????{?? ???????

文档评论(0)

linlin921 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档