典型JSP车间调度问题学习1

本文探讨了作业车间调度问题(JobShop Scheduling, JSP)的复杂性,涉及实际应用领域,如航空和制造业。文章详细介绍了问题定义、约束条件,以FT类算例和实例演示如何安排工序顺序以优化性能。深入剖析了关键数据结构和常见问题类型,如FT06、FT10和FT20。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作业车间调度问题(Job Shop Scheduling, JSP)是最经典的几个NP-hard问题之一。其应用领域极其广泛,涉及航母调度,机场飞机调度,港口码头货船调度,汽车加工流水线等。

JSP问题描述:一个加工系统有M台机器,要求加工N个作业,其中,作业i包含工序数为Li。则L为任务集的总工序数。其中,各工序的加工时间已确定,并且每个作业必须按照工序的先后顺序加工。调度的任务是安排所有作业的加工调度排序,约束条件被满足的同时,使性能指标得到优化。

作业车间调度需要考虑如下约束:

Cons1:每道工序在指定的机器上加工,且必须在其前一道工序加工完成后才能开始加工;

Cons2:某一时刻1台机器只能加工1个作业;

Cons3:每个作业只能在1台机器上加工1次;

Cons4:各作业的工序顺序和加工时间已知,不随加工排序的改变而改变。

算例数据结构(以FT类为例)

FT类:该类问题由Fisher和Thompson设计(1963),包括3个典型问题,分别称为FT06 ,FT10和FT20(有些场合也称为MT06,MT10和MT20),规模分别为6X6,10x10和20X5,前者为工件数,后者为机器数,如FT06,表示有6个工件需要加工,有6台机器用于加工。见下图为FT06的数据结构,其中奇数列表示的是第几号机器-1(因为编码时喜欢从0开始),偶数表示的是该工件在此机器上需要加工的时间是多少,每一行代表对应的每一个工件加工顺序。

 上图表示工件1(job0)的加工顺序和时间,剩余工件以此类推。

问题实例

下面给出作业车间调度问题的一个实例,其中每个工序上标注有一对数值(m,p),其中,m表示当前工序必须在第m台机器上进行加工,p表示第m台机器加工当前工序所需要的加工时间。(注:机器和作业的编号从0开始)

jop0=[(0,3),(1,3),(2,2)]
jop1=[(0,1),(2,5),(1,3)]
jop2=[(1,3),(0,2),(2,3)]
在这个例子中,作业jop0有3道工序:它的第1道工序上标注有(0,3),其表示第1道工序必须在第0台机器上进行加工,且需要3个单位的加工时间;它的第2道工序上标注有(1,3),其表示第2道工序必须在第1台机器上进行加工,且需要3个单位的加工时间;余下的同理。总的来说,这个实例中共有9道工序。
该问题的一个可行解是L=9道工序开始时间的一个排列,且满足问题的约束。下图给出了一个可行解(注:该解不是最优解)的示例:
 

在各类典型JSP中,以FT类、LA类和TA类调度问题的研究居多。更多算例可以从此网站http://people.brunel.ac.uk/~mastjjb/jeb/info.html下载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值