车间作业调度问题(JSSP)描述以及编码解码

遗传算法求解车间调度问题(附python代码) 车间调度问题(Job Shop Scheduling Problem, JSSP)是一类经典的组合优化问题,它在制造业和生产管理中有着广泛的应用。JSSP 的目标是对车间中的一系列作业进行排程,以使得作业在不同机器上的加工顺序是最优的,达到某种特定的优化目标,比如最小化总的作业完成时间(即使得总完工时间尽可能短),或者最小化延迟时间、最大化产量等。车间调度问题通常被描述为一系列作业集合 J 和一系列机器集合 M,每个作业由一系列操作组成,每个操作需要在特定的机器上加工一定时间。 阅读详情

车间作业调度问题

  车间作业调度问题(Job Shop Scheduling Problem,JSSP)是经典的组合优化问题,在阅读论文过程中发现了对其描述如下:
给定一组工件J=1,2,...,nJ=1,2,...,nJ=1,2,...,n,要求在一组机器M=1,2,...,mM=1,2,...,mM=1,2,...,m上加工完成,满足以下约束条件:
1)每个工件在机器上的加工次序给定;
2)每台机器在任何时刻最多只加工一个工件,工件加工的时间是固定的且工序一旦开始不能被中断;
3)每道工序必须等到其所有的前继工序加工完毕后才能开始加工。
  数学描述如下:
f=min{max{cik}}(1) f=min\{max\{c_{ik}\}\} \tag{1} f=min{max{cik}}(1)s.t.cik−pik+M(1−aihk)≥cih,i=1,2,....,n;h,k=1,2,...m(2)c_{ik}-p_{ik}+M(1-a_{ihk})\ge c_{ih}, \\i=1,2,....,n;h,k=1,2,...m \tag{2}cikpik+M(1aihk)cih,i=1,2,....,n;h,k=1,2,...m(2)cjk−cik+M(1−xijk)≥pjk,i,j=1,2,....,n;k=1,2,...m(3) c_{jk}-c_{ik}+M(1-x_{ijk})\ge p_{jk}, \\ i,j=1,2,....,n;k=1,2,...m \tag{3}cjkcik+M(1xijk)pjk,i,j=1,2,....,n;k=1,2,...m(3)cik≥0,i=1,2,...,n;k=1,2,...,m(4)c_{ik}\ge 0,i=1,2,...,n;k=1,2,...,m\tag{4}cik0,i=1,2,...,n;k=1,2,...,m(4)
其中,符号cikc_{ik}cikpikp_{ik}pik分别表示工件iii在机器kkk上的加工完成时间和加工时长;MMM是一个足够大的正数;aihka_{ihk}aihkxijkx_{ijk}xijk分别为指示系数和指示变量,意义如下:
aihk={1若机器h先于机器k加工工件i0非上述情况(5) a_{ihk}= \begin{cases} 1& \text{若机器$h$先于机器$k$加工工件$i$}\\ 0& \text{非上述情况} \end{cases}\tag{5}aihk={10若机器h先于机器k加工工件i非上述情况(5)xijk={1若工件i先于工件j在机器k上加工0非上述情况(6) x_{ijk}= \begin{cases} 1& \text{若工件$i$先于工件$j$在机器$k$上加工}\\ 0& \text{非上述情况} \end{cases}\tag{6}xijk={10若工件i先于工件j在机器k上加工非上述情况(6)
理解:
  目标函数(1)中的max{cik}max\{c_{ik}\}max{cik}表示一系列工件最后一个工件完工的时间。
  约束(2)表示,若机器hhh先于机器kkk加工工件iii,则需保证cik−pik≥cihc_{ik}-p_{ik}\ge c_{ih}cikpikcih,即工件iii在机器hhh上加工完后再到机器kkk上加工。
  约束(3)表示,若工件iii先于工件jjj在机器kkk上加工,则须保证cjk−cik≥pjkc_{jk}-c_{ik}\ge p_{jk}cjkcikpjk,即工件jjj在机器kkk上加工完后才能再加工工件iii
  约束(4)表示每个工件在每个机器上都要加工。

编码

  这里对基于工序的编码方式进行介绍:
  每个个体的染色体有所有工序的排序构成,每个基因代表一个工序,同一作业的所有工序由同一作业序号表示,根据他们在染色体排序中的顺序决定他们在不同机器上的加工顺序。对于一个nnn个工件,mmm个机器的作业调度问题,每个染色体由n×mn\times mn×m个基因组成,每个工件号在染色体中出现的次数为mmm次,同一工件的第iii次出现表示该工件的第iii道工序。

解码

  这里采用前插式解码,根据给定的染色体,对每个当前工序,从其所在机器的前面开始遍历,如果有时间间隔和约束条件可以满足当前工序,则将其插入该位置。

示例

  下面以论文《Optimization of job shop scheduling problems using teaching-learning-based optimization algorithm》中的例子为例。已知的工件对应的操作机器、时间如下表所示,
在这里插入图片描述
在这里插入图片描述
  假设编码为:1 2 3 1 2 3 2 1 3
  那么它对应的时间安排是什么样的呢?
  将上述两个表格进行重新整理:

JobOperation1Operation2Operation3
11(15)2(25)3(18)
22(10)3(20)1(7)
33(8)1(12)2(10)

(括号外为这一操作使用的机器,括号内为每一步操作所需时间)
  1 表示工件1的第一个操作,在机器1上完成:15min
  2 表示工件2的第一个操作,在机器2上完成:10min
  3 表示工件3的第一个操作,在机器3上完成:8min
  1 表示工件1的第二个操作,在机器2上完成:此时需等待工件1的第一个操作已完成,且机器2有空闲:15min+25min=40min
  2 表示工件2的第二个操作,在机器3上完成:此时需等待工件2的第一个操作已完成,且机器3有空闲:10min+20min=30min
  3 表示工件3的第二个操作,在机器1上完成:此时需等待工件3的第一个操作已完成,且机器1有空闲:15min+12min=27min
  2 表示工件2的第三个操作,在机器1上完成:此时需等待工件2的第二个操作已完成,且机器1有空闲:30min+7min=37min
  1 表示工件1的第三个操作,在机器3上完成:此时需等待工件1的第二个操作已完成,且机器3有空闲:40min+18min=58min
  3 表示工件3的第三个操作,在机器2上完成:此时需等待工件3的第二个操作已完成,且机器2有空闲:40min+10min=50min
于是该染色体对应甘特图如下:
在这里插入图片描述

遗传算法 与 作业车间调度问题(C++实现) 之前我们算法老师留的一个大作业,即作业车间调度问题,属于NP-hard问题,有很多种解法,这里给出遗传算法的解法。算法使用C++实现,如果需要Java或Python代码,请看这篇文章:作业车间调度与遗传算法Python/Java实现及应用:BitMES,基于Electron的作业车间调度系统 问题描述 作业车间调度问题(Job Shop Scheduling, JSP)是最经典的几个NP-ha... 阅读详情

相关推荐

车间调度问题总结笔记一

一、王霄汉,张霖,任磊,谢堃钰,王昆玉,叶飞,陈真.基于强化学习车间调度问题研究简述[J].系统仿真学报,2021,33(12):2782-2791.DOI:10.16182/j.issn1004731x.joss.21-FZ0774.1. 车间调度问题建模2. 仿真技术在车间调度问题中的应用3. 车间调度问题的传统解决算法 一、王霄汉,张霖,任磊,谢堃钰,王昆玉,叶飞,陈真.基于强化学习车间调度问题研究简述[J].系统仿真学报,2021,33(12):2782-2791.DOI:10.16182/j.

l903445981的博客 8956

JSSP问题论文集

关于JSSP问题的论文集

从数学抽象到代码实现:JSSP编码解码策略详解

本文深入探讨了车间作业调度问题JSSP)的编码解码策略,从数学抽象到代码实现的全过程。详细介绍了基于工序的编码设计和前插式解码方法,并通过Python实现案例展示了如何优化解码效率。文章还涵盖了混合编码策略和并行解码架构等进阶话题,为制造业和计算机科学领域的JSSP解决方案提供了实用指导。

weixin_33721427的博客 457

车间调度问题及模型分类

作业车间调度问题是许多实际生产调度问题的抽象模型,是典型的NP-hard问题,其研究具有重要的理论意义和研究价值。车间调度问题具有目前最先进算法仍很难求解小规模问题的最优解。

m0_73970831的博客 1万+

车间调度问题

作业车间调度问题描述 作业车间调度问题(Job Shop Scheduling, JSP)是最经典的几个NP-hard问题之一。其应用领域极其广泛,涉及航母调度,机场飞机调度,港口码头货船调度,汽车加工流水线等。 JSP问题描述:一个加工系统有M台机器,要求加工N个作业,其中,作业i包含工序数为Li。令,则L为任务集的总工序数。其中,各工序的加工时间已确定,并且每个作业必须按照工序的先后顺序加工。...

qq_41249282的博客 2万+

车间调度到算法面试:JSSP编码解码如何帮你搞定LeetCode难题?

本文探讨了车间作业调度问题JSSP)的编码解码思想如何应用于算法面试,特别是LeetCode中的任务调度和资源分配类题目。通过分析JSSP与算法问题的共通点,如排序+约束满足、资源竞争和优化目标,文章展示了如何将JSSP的建模框架迁移到面试场景,并提供实战案例和通用解题框架,帮助工程师提升算法解题能力。

weixin_42554408的博客 392

车间调度到算法面试:JSSP编码解码思想如何帮你搞定LeetCode难题?

本文探讨了如何将车间作业调度问题JSSP)的编码解码思想应用于解决LeetCode算法面试题。通过分析JSSP的核心思想——编码表示状态、解码执行调度,文章揭示了其在任务调度、区间安排等高频题型中的实用价值,帮助读者提升解题效率并培养独特的算法设计视角。

weixin_30647065的博客 567

车间调度到算法竞赛:JSSP编码解码在LeetCode类题目中的应用思路

本文探讨了车间调度问题(JSSP)编码解码思想在算法竞赛中的应用,特别是如何将JSSP的工序编码和前插式解码技术迁移到LeetCode类题目中。通过资源约束、时序依赖和优化目标的共性分析,提供了从工业问题到算法题的简化策略和典型解题框架,帮助开发者提升调度类问题的解决能力。

weixin_30906185的博客 461

车间调度到外卖派单:JSSP编码解码思想在现实系统中的应用拆解

本文探讨了JSSP车间作业调度问题编码解码思想在外卖派单等现实系统中的应用。通过将车间调度术语映射到外卖场景,详细解析了业务规则编码方案和解码实战,展示了如何优化配送时效、骑手效率等多目标平衡。文章还揭示了这套方法论在网约车、云计算等更广阔领域的通用模式,为复杂系统调度提供了创新思路。

weixin_30703911的博客 397

从数学建模到代码实现:JSSP编码解码核心逻辑剖析

本文深入剖析了车间作业调度问题JSSP)从数学建模到代码实现的全过程,重点讲解了编码解码的核心逻辑。通过基于工序的编码设计和前插式解码算法,将复杂的调度问题转化为可执行的Python代码,并提供了完整的案例演示,帮助读者掌握JSSP问题的解决思路和实现技巧。

weixin_30859423的博客 253

别再死磕数学公式了!用Python从零实现JSSP车间调度(附完整代码与甘特图绘制)

本文通过Python实战演示了JSSP车间作业调度的全流程实现,从工序编码、前插式解码到甘特图绘制。文章摒弃复杂的数学公式,提供完整代码帮助读者可视化解决这一制造业经典难题,特别适合希望快速掌握车间调度技术的开发者和工程师。

weixin_30458043的博客 198

遗传算法解决作业调度c语言,应用遗传算法解决车间作业调度问题

《应用遗传算法解决车间作业调度问题》由会员分享,可在线阅读,更多相关《应用遗传算法解决车间作业调度问题(2页珍藏版)》请在人人文库网上搜索。1、应用遗传算法解决车间作业调度问题应用遗传算法解决车间作业调度问题摘要车间调度问题简单来说就是设备资源优化配置问题。近年来遗传算法得到了很大的发展,应用遗传算法来解决车间调度问题早有研究。本文在已有算法基础上详细讨论了染色体编码方法并对其进行了改进。最后根据...

weixin_36294852的博客 614

柔性作业车间调度问题(FJSP)

如图2.1(a)所示为表2.3中调度问题的一个可行调度的有向图,图2.1(b)所示为对应图2.1(a)的甘特图,其中机器1上的选择S1={O21,O11,O32},机器2上的选择S2={O31,O12,O23},机器3上的选择S3={O22,O13,O33}。关键路径的长度等于16。在作业车间调度问题(job shop scheduling problem,JSP)中,加工系统有一组功能不同的机床,待加工的工件包含多道工序,每道工序在一台机床上加工,工件的加工路线互不相同,每个工件工序之间有先后顺序约束。

qq_55882840的博客 8348

作业车间问题的调度学习:使用图神经网络(GNN)和强化学习(RL)的表示和策略学习

《Learning to schedule job-shop problems:representation and policy learning using graph neural network and reinforcement learning》 Internation Journal of production research/2021 1 摘要 我们提出了一个使用图神经网络(GNN)和强化学习(RL)学习调度作业车间问题(JSSP)的框架。为了考虑JSSP的结构,我...

太剧烈的快乐与太剧烈的悲哀是有相同之点的——同样地需要远离人群! 7238

车间调度问题综述

在单机调度问题(Single machine scheduling problem,SMP)中,加工系统只有一台机床,待加工的工件有且仅有一道工序,所有工件都在该机床上进行加工。

weixin_45348216的博客 5054

作业车间调度问题描述

作业车间调度问题(Job Shop Scheduling, JSP)是最经典的几个NP-hard问题之一。其应用领域极其广泛,涉及航母调度,机场飞机调度,港口码头货船调度,汽车加工流水线等。 JSP问题描述:一个加工系统有M台机器,要求加工N个作业,其中,作业i包含工序数为Li。令,则L为任务集的总工序数。其中,各工序的加工时间已确定,并且每个作业必须按照工序的先后顺序加工。调度的任务是安排所有作...

weixin_36909758的博客 1万+

粒子群算法

一.产生背景     ❃粒子群算法(particleswarm optimization,PSO)由Kennedy和Eberhart在1995年提出,该算法对于Hepper的模拟鸟群(鱼群)的模型进行修正,以使粒子能够飞向解空间,并在最好解处降落,从而得到了粒子群优化算法。 ❃同遗传算法类似,也是一种基于群体叠代的,但并没有遗传算法用的交叉以及变异,而是粒子在解空间追随最优的

KHFlash的博客 1581
上一篇: 组合优化问题的尺度邻近点算法研究
下一篇: DWTA问题的群优化算法
Na_Lv
博客等级 码龄5年 2054粉丝 17原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值