网站大量收购独家精品文档,联系QQ:2885784924

组合优化问题(详细版).ppt

  1. 1、本文档共164页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪心算法的优点解题效率更高,即使贪心算法不能得到整体最优解,但其最终结果却是最优解的很好的近似解。 贪心算法总是做出在当前看来是最好的选择,不能从整体最优上加以考虑,它所做出的选择只是在某种意义上的局部最优选择。对于某些情况,它并不是整体最优选择。 16 14 12 11 10 9 8 贪心算法确定的顺序: M1:16+9=25 M2:14+10=24 M3:12+11+8=31 最优顺序: M1:11+16=27 M2:12+14=26 M3:8+9+10=27 时间复杂度: 首先将n个作业依其所需的处理时间从大到小排序,然后按顺序将作业分配给空闲的处理机,主要计算量在于将作业按处理时间进行从大到小排序。算法的时间复杂度为O(n2)。 总结 多机调度问题到目前为止还没有有效的解法,对于这一类问题,用最长处理时间作业优先的贪心选择策略有时可以设计出较好的近似算法。贪心算法在NP类问题的求解中发挥着越来越重要的作用。 这个问题是完全NP问题 * * 一个作业车间调度问题的整数规划模型 例:4台机床加工3个产品,产品i在机床j上的加工工时为aij,各产品的加工工艺路线如下表所示。 由于某种原因,产品2的加工总时间不得超过d.制定加工方案,使最短的时间内加工完全部产品 解:设xij表示产品i在机床j上开始加工时间 (1)同一产品在不同机床上的加工顺序约束 产品1:x11+a11≤x13 及 x13+a13≤x14 产品2:x21+a21≤x22 及 x22+a22≤x24 产品3:x32+a32≤x33 在机床1的结束时间不得晚于在机床3的开始时间 (2)每台机床对不同产品加工顺序约束 机床1:x11+a11≤x21+My1 及:x21+a21≤x11+M(1-y1) 机床2:x22+a22≤x32+My2 及:x32+a32≤x22+M(1-y2) 机床3:x13+a13≤x33+My3 及:x33+a33≤x13+M(1-y3) 机床4:x14+a14≤x24+My4 及:x24+a24≤x14+M(1-y4) 加工产品Ⅰ的结束时间不得迟于加工产品Ⅱ的开始时间 加工产品Ⅱ的结束时间不得迟于加工产品Ⅰ的开始时间 (3)产品2加工总时间约束 x24+a24 - x21 ≤d (4)目标函数的建立 W=max( x14+a14 ,x24+a24 , x33+a33) 设全部产品加工完毕的结束时间为W 目标函数Z为 模型为: x11+a11≤x13 x13+a13≤x14 x21+a21≤x22 x22+a22≤x24 x32+a32≤x33 x11+a11≤x21+My1 x21+a21≤x11+M(1-y1) x22+a22≤x32+My2 x32+a32≤x22+M(1-y2) x13+a13≤x33+My3 x33+a33≤x13+M(1-y3) x14+a14≤x24+My4 x24+a24≤x14+M(1-y4) x24+a24 - x21 ≤d 设有n个独立的作业,1,2,3,…,n,由m台相同的机器进行加工处理。第i个作业所需的处理时间为ti。 约定:每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。 多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 一类并行机器调度问题的传统求解 分n=m(作业数小于机器数),nm(作业数大于机器数)求解。 当n=m时,将n个作业分配给m台机器中的前n台就可以了。 当nm时,需要选择算法来确定最优顺序将作业分配给空闲的处理机,使得处理时间最短。 三种解决方案: 1、不考虑作业处理时间,将作业按次序平均分配给每台机器; 2、把作业按处理时间从小到大排序,然后依次分配给空闲的机器; 3、把作业按处理时间从大到小排序,然后依次分配给空闲的机器(Greedy算法)。 设7个独立作业{1,2,3,4,5,6,7}由3台机器M1,M2和M3加工处理。各作业所需的处理时间分别为{2,14,4,16,6,5,3}。 将作业按次序平均分配给每台机器: 机器 作业 时间 M1 1,2,3 2+14+4=20 M2 4,5 16+6=22 M3 6,7 5+3=8 优点:比较简单,容易想到 缺点:没有考虑时间代价,机器所运行的作业完全由作业的次序决定,当运行时间比较大的作业集中在一起时,会把它们分配给同一个机器,这样所用的时间比较长,效率比较低 例如:(2,6,3,5,4,14,16) M1:2,6,3 M2:5,4 M3:14,16

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档