求解车间调度问题的双禁忌表禁忌搜索算法.docVIP

求解车间调度问题的双禁忌表禁忌搜索算法.doc

  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文档。上传文档
查看更多
求解车间调度问题的双禁忌表禁忌搜索算法   摘要:针对车间调度问题的特点,为解决传统禁忌搜索算法容易陷入局部最优解的问题,提出一种求解车间调度问题改进的禁忌搜索算法一双禁忌表禁忌搜索算法,该算法通过建立双禁忌表避免在搜索最优解时出现循环的现象,通过该算法与TSAB算法进行比较可知,该算法具有较强的寻优能力。   关键词:车间调度;启发式算法;禁忌搜索;禁忌表;邻域   DOI:10.15938/j.jhust.2016.06.010   中图分类号:TP301   文献标志码:A   文章编号:1007-2683(2016)06-0050-05   0.引言   车间调度JSP(J0b Shop scheduling)问题是一种NP-hard问题,由于其本身问题比较复杂,加之要解决的问题规模比较大,有些问题不能求出一组最优解,只能求出次优解,或者近似最优解,启发式方法较适合求解这类问题,禁忌搜索算法是一种有效的求得全局最优解的启发式算法,其优点是有灵活记忆的功能,当搜索陷入局部最优解时能够跳出;其缺点是对初始解的依赖较强,一个好的初始解往往能够得出一个比较好的结果,当产生某一个最优解时,常常因为这个最优解产生循环,而此时我们要跳出循环,本文提出一种新的禁忌搜索算法一双禁忌表禁忌搜索算法,用以解决在产生最优解的同时容易出现循环的问题。   1.问题描述   JSP问题实际上是安排n个工件在m台机器上加工使工件的加工时间最短,而且每一个工件都有若干道工序,每道工序有指定的加工顺序,固定机器上工件的工序有各自的加工时问.每一个工件都是独立的,也就是说一个工件在某一时刻只能被一台机器加工,并且某一时刻每台机器只能加工一个一个工件,加工期间不允许被中断,每个工件不能在同一台机器上加工多次,最终的目标是使工件完工时间最小。更具体的,问题可以形式化描述成一种JSP调度模型,工件集:J={1,2,…,n};机器集:M={1,2,…,m};加工时间矩阵用T表示,机器j上工件i的加工时间用T表示;机器的加工顺序矩阵JM,加工工件i第j个操作的机器编号用jm(i,j)表示,jm(i,?)表示要工件i所有操作按优先级顺序加工的各机器号的排列;工件排列矩阵Mi,其中Mi(i,j)表示在机器i上加工的第,j个操作的工件号,Mi(i,?)表示在加工机器i上依次加工的各工件号的排列;工件i在机器,j上的完工时间C(i,j)   1)工件的加工时间矩阵T为常数矩阵,也就是说每个工件的各个操作加工时间Ttj是已知的,并且均为常数;   2)加工顺序矩阵JM是已知的,也就是说加工每个工件各个工序的加工,必须在指定的机器上;   3)同一台机器上每个工件只能加工一次,也就是说同一台机器上不允许出现循环加工某个工件的现象;   2.算法设计   2.1邻域设计   本算法基于禁忌搜索算法,并采用两个禁忌表.由于当邻域规模比较大时,只试走一步,在规定的时间内,很容易陷入局部最优解,要采取一种策略使搜素的范围更广一些,并且所用的时间并不是很大.那么在规定一个可行解的情况下,对每两个连续的移动用禁忌搜索得到一个可行解,然后从这些可行解当中选一个最好的解,当作下一次迭代过程的起点,重复以上过程直到不能得到更好的调度解则停止,更具体的描述如下:   JSP问题的完工时间取决于关键路径长短,在一个可行调度解中如果工序之间的时间间隔为0,最长的路径被称为关键路径,我们的工作就是如何减少关键路径的长度.如图1中关键路径为(1,1)(2,1)(1,3)(1,4)(2,2)(3,2)(1,6),图1中调度为单一关键路径,当然可能出现多个关键路径.在关键路径上,有块的定义,在图1中有3个块分别是B1.B2.B3。   移动的定义每个关键块在Nowicki和Smutnicki的定义的基础上,有以下几点有所不同:   1)若关键块B是关键路径上第一个关键快,那么要交换的是关键块B上的最后两个工序61和62;   2)若关键块B是关键路径上的尾块,则要交换关键块B的前两个工序和α1和α1   3)另外的关键块B,交换前两道工序α1和α1和最后两道工序b1和b1,具体的操作如图1所示.   这些移动构成了移动集合p(s),令g(s,p)来表示通过对s运用一次移动而获得的一个可行解,那么s的邻域N(s)={g(s,p):p∈p(s)}.之所以这样定义邻域的原因是,每个关键块只增加了两个移动,并没有极大的增加计算量。   2.2禁忌表   在传统的Ts算法中,禁忌表T所记录的是移动.也就是说在满足定义的邻域前提下,从一个可行解到下一个可行解的移动是交换工序i和j,那么有序对(i,j)被记录在禁忌表T中,它的意思是在接下来的一次移动中,不能再进行工序i和j

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档