针对带有运输资源的作业车间调度问题,提出了一种混合粒子群和模拟退火算法

摘要

本工作解决了作业车间调度问题的一个变体,其中作业需要通过有限数量的车辆运送到处理其作业的机器上。考虑到车辆必须将工件交付给机器进行加工,并且机器需要在工件被运输之前完成加工,因此机器调度和车辆调度是相互交织的。同时解决这些相互关联的问题的协调方法提高了制造系统的整体性能。在当前竞争激烈的商业环境中,集成方法是必不可少的,因为它可以促进成本节约和准时交货。因此,带运输资源的作业车间调度问题( JSPT )需要同时调度生产作业和运输任务。考虑最小化两个备选性能指标,即:最大完工时间和退出时间,对JSPT进行了研究。通过混合整数线性规划( MILP )模型找到最优解。然而,由于集成生产和运输调度非常复杂,MILP模型只能处理小规模的问题实例。为了在合理的计算时间内找到质量较好的解,我们提出了一种混合粒子群和模拟退火算法( PSOSA )。进一步地,我们推导了一个快速下界过程,该过程可用于评估较大实例的启发式解的性能。为了评估所提出的PSOSA算法的有效性和效率,在73个基准算例上对这两个性能指标进行了大量的计算实验。这些实验表明,PSOSA算法优于当前最先进的求解方法,并且具有很强的鲁棒性。

4.3解的表示与解码

JSPT的一个解由一个实的两部分向量(粒子)表示,每个向量有N个元素,其中N是生产操作的总数,包括虚拟操作,即N =∑j∈J n′j,n′j = n j + 1。元素1到N与(生产)操作相关联,在它们的自然顺序中被考虑;因此,元素1到n′1表示作业1的操作,元素n′1 + 1到n′1 + n′2表示作业2的操作,以此类推。向量第二部分中的元素是指将车辆分配给操作所需的(运输)任务,正如以前一样,这些任务是按照它们的自然顺序考虑的。最初,所有的粒子都是按照均匀分布随机产生的;区间[ 0、1 ]中的前N个元素和区间[ 0 , A]中的后N个元素。

解码过程有两个截然不同的部分,一个用于获得生产操作的序列,另一个用于获得车辆的分配。为了解码解向量的第一部分,我们采用Bean ( 1994 )提出的最小位置值( SPV )规则,将实数转化为操作的排列。为了保证可行性,将操作的排列转化为对应作业的排列,然后将作业编号转化为有序的操作编号,即作业编号第一次出现时解码为其第一次操作,第二次解码为其第二次操作,依此类推。

对于求解向量的第二部分,将实数转化为车辆编号如下:小于等于1的编号转化为车辆1,大于1但小于等于2的编号转化为车辆2,以此类推,直到车辆A,将大于( A-1)的任何实数转化为车辆A。求解向量第二部分的每个元素表示与每个操作相关的唯一任务。因此,元素N + i将一个车辆分配给需要处理操作i的任务。

让我们通过前面使用的例子来说明编码和解码的过程。解向量有2 × N = 24个元素。在图3a中可以看到这个问题的一个初始随机粒子,图3b中显示了使用SPV规则得到的相应操作的排列。例如,由于第五个位置的0.01是最小的值(在粒子的第一部分),所以调度中的第一个操作是操作5,其次是操作7,是位置为0.05的第二个最小的值,以此类推。然后将该置换转化为图3c所示的工件序列;操作1到4用1表示,它们所指的作业,操作5到8用2表示,操作9到12用3表示。然后通过用Oij替换作业j的第i个外观,将作业编号转换为有序操作。对于向量的第二部分,小于等于1的值用1代替,大于1的值用2代替。因此,一个车辆(元素值)被分配给每个操作(元素位置)所需的任务。一个可行的时间表如图3d所示。

利用得到的操作序列和机器操作分配(见表2)的输入数据,我们确定了每台机器的操作序列:M1-O22,O11,O33;M2-O13,O31;M3-O12,O21;M4-O32,O23。

关于车辆的分配,车辆1被分配到任务1、3、4、7、8、11,这些任务与操作O11、O31、O41、O32、O42、O33。这些操作的顺序由向量的第一部分给出,分别为:O11,O32,O42,O31,O41,O33。因此,车辆1将作业1从LU运输到M11机器,作业2从M22和M32机器运输到LU (作业2退出),作业1从M21和M31机器运输到LU (作业1退出),作业3从M23和M33机器运输。同样,车辆2将工件2从LU运送到M12再运送到M22,工件3从LU运送到M13,工件1在M11和M21之间,工件3在M13和M23之间再运送到LU (作业3退出)。

4.4邻域搜索结构

为了获得近邻解,我们首先生成一个介于0和1之间的随机数:如果它小于0.5,那么我们交换解向量第一部分的两个元素;否则,我们交换第二部分的两个元素。在这两种情况下,我们都会产生两个随机数(在1和N之间或N + 1和2N之间,取决于我们是交换解向量的第一部分的元素还是第二部分的元素)来确定需要交换的元素。得到的邻居解可能对机器和车辆有不同的操作顺序,或者对车辆有不同的分配,这取决于交换的元素是在向量的第一部分还是第二部分。图4通过生成图3a所示的邻居解来说明该过程的应用,为了方便起见,在图4a中重复了该过程。假设交换要在解向量的第一部分进行,并且产生的两个随机数分别为5和10。编码后的邻域解如图4b所示,对应的可行调度如图4c所示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱佩棋(代码版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值