排序问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

f ( X , t, i, j) ai aj f [ X / i, j, zij(t )]
zij(t ) max[zi (t ) aj ,0] bj max( t ai aj bi bj , bi bj aj , bj )
动态规划求解 将i和j对调,可得:
zi (t ) max( t ai,0) bi f ( X , t , i ) ai f [ X / i, zi (t )]
X/i表示在集合X中去掉工件i后剩下的工件集合
Zi(t)表示从状态(X,t)出发,从在A上加工完i工 件时刻算起到在B上加工完i工件所用的时间。
动态规划求解
该启发式规则的步骤如下: 1)列出n个作业在两台机床上的作业时间; 2)根据作业时间将n个作业分成P和Q两组。分组原则 是:P组的作业在第二台机器上的加工时间比在第一台机 器上加工时间长;其余作业为Q组; 3)将P组作业按他们在第一台机器上加工时间不减顺 序排列,将Q组作业按他们在第二台机器上加工时间不增 的顺序排列。 4)将P组作业顺序和Q组作业顺序连接在一起,构成的 就是生产周期最短的最优作业顺序。
指标最优值函数:
f(X,t):由状态(X,t)出发,对未加工的工件 采取最优加工顺序后,将X中所有工件加工完
所需时间。
f(X,t,i):由状态(X,t)出发,在A上加工工件 i,然后再对未加工工件采取最优加工顺序后,将X
中所有工件加工完所需时间。
动态规划求解
ai f ( X / i, t ai bi ) 当t ai时 f ( X , t , i) 当t ai时 ai f ( X / i, bi)
即当ai小于bi、aj、bj或bj小于ai、aj、bi时,先 安排工件i加工。
Johnson算法
根据上面的条件,可以得到同顺序两台机 床加工N个工件的最优规则,也就是1954 年Johnson提出的规则。 最优排序规则具体步骤如下: (1) 列出所有工件在两台设备上的作业时 间。 (2)找出作业时间最小者。 (3)如果该最小值是在设备 1上,将对应的 工件排在前面,如果该最小值是在设备 2 上,则将对应的工件排在后面。 (4)排除已安排好的工件,在剩余的工件 中重复步骤(2)和(3),直到所有工件都安 排完毕。
f ( X , t, j, i) ai aj f [ X / j, i , z ji (t )] zji(t )
max( t ai aj bi bj, bi bj ai, bi )
动态规划求解
f ( X , t ) 随t单调增加,所以当 Zij(t)≤ Zji(t)
动态规划求解
最优排序方案:尽量减少在B上等待加
工的时间,使总加工时间最短。
阶段:机床A上更换工件的时刻k=1, 2,…,n。 状态变量:(X,t) X: 在机床A上等待加工的的工件集合。 x:不属于X的在A上最后加工完的工
件。
t: 在A上加工完x的时刻算起到B上加工 完x所需的时间。
动态规划求解
排序问题的分类 根据机器数的多少 单台机器的排序问题 多台机器的排序问题 根据加工路线的特征 单件作业排序 流水作业排序 自由作业排序 根据要实现的目标 单目标排序 多目标排序
排序问题的表示方法 排序问题常用四个符号来描述: n/m/A/B 其中, n-----工件数; m-----机器数; A-----车间类型;( F=流水型排序 、 P=排列排序、R=开放车间排序、G= 一般类型,即单件型排序) B-----目标函数
MATLAB求解
MATLAB求解
Thanks!
排序问题
小组成员:
5
排序问题的介绍
总 体 框 架ຫໍສະໝຸດ 动态规划方法求解排序问题 Johnson算法及应用 改进的Johnson算法 算法求解
2
排序问题的概念
排序问题产生的背景主要是机器制造, 后来被广泛应用于计算机系统、运输调度、 生产管理等领域。 排序问题是指在一定的约束条件下对 工件和机器按时间进行分配和安排次序, 使某一个或某一些目标达到最优。
Johnson算法应用
有6个工件需要在两台设备上加工的流水作业, 单间时间加工矩阵如下表:
i A B 1 8 3 2 4 2 3 7 6 4 1 9 5 3 2 6 10 5
表示方法: 6 / 2 / F / Fmax 最优加工顺序为:4、3、6、1、2、5 或者:4、3、6、1、5、2
改进的Johnson算法
两台机器、n个工件的排序问题
设有n个工件需要在机床A、B上加工 ,每个工件都必须先经过A而后B两道加 工工序。以ai、bi分别表示工件i(1≤i≤n)在 A、B上的加工时间。问应如何在两机床 上安排各工件的加工顺序,使在机床A上 加工第一个工件开始到在机床B上加工完 最后一个工件为止,所用的加工总时间最 少?
f ( X , t,i, j ) f ( X , t , j , i )
工件i放在工件j前面的条件: max(bi bj aj , bj ) max(bi bj ai, bi )
max(ai, bj ) max(aj, bi) min(ai, bj ) min(aj, bi)
假设条件
排序问题提出一些假设条件: 一个工件不能同时在几台机器上加工 工件在加工过程中采取平行移动方式 不允许中断 每道工序只在一台机器上完成 工件数、机器数和加工时间已知 加工时间与加工顺序无关 每台机器同时只能加工一个工件
动态规划方法求解排序问题
如何用动态规划方法来 研究同顺序两台机床加 工N个工件的排序问题?
状态转移方程:
ai
工件i
A t
当t≤ai时 B 当t≥ai 时
工件i-1
bi bi t-ai+bi
t
工件i-1
动态规划求解 f(X,t,i,j):由状态(X,t)出发,在A上 加工工件i、j,然后再对未加工工件采取最 优加工顺序后,将X中所有工件加工完所 需时间。 (X,t) ( X/ {i,j}, zij(t) )
相关文档
最新文档