排工问题

这篇博客探讨了排工问题,即n个工件依次通过A、B两个机床加工,目标是最小化总加工时间。通过举例和数学解析,详细阐述了解决该问题的动态规划方法,包括状态定义、最优加工时间和状态转移方程,并证明了选择加工顺序的条件。
摘要由CSDN通过智能技术生成

1. 问题描述

n n n个工件,每个工件都要按顺序经过 A A A B B B两个机床进行加工,工件i在 A A A B B B两个机床上加工时间分别为 a i a_i ai b i b_i bi,确定 n n n个工件的加工顺序,使得总加工时间最短。

2. 例子描述

  • 例子1
机床 N1 N2
A 4 2
B 1 3

先加工N1,所需总时间为4+2+3=9,先加工N2,所需总时间为2+4+1=7。

  • 例子2
机床 1 2 3 4 5
A 3 7 4 5 7
B 6 2 7 3 4

加工顺序为13542。

3. 问题解决

状态(X,t): X X X中是还没有经过 A A A机床加工的工件, t t t B B B机床加工X外的工件还需要的时间,如果取 为下一个放在 A A A上加工的工件,则i在 A A A上完成加工时达到下一个状态 ( X - i , z i ( t ) ) (X-i,z_i(t)) (Xizi(t)),其中
z i ( t ) = { b i , t ≤ a i t − a i + b i , t > a i = max ⁡ { t − a i , 0 } + b i = max ⁡ { t − a i + b i , b i } \begin{aligned} z_{i}(t) &=\left\{\begin{array}{ll}{b_{i},} & {t \leq a_{i}} \\ {t-a_{i}+b_{i},} & {t>a_{i}}\end{array}\right. \\ &=\max \left\{t-a_{i}, 0\right\}+b_{i} \\ &=\max \left\{t-a_{i}+b_{i}, b_{i}\right\} \end{aligned} zi(t)={ bi,tai+bi,tait>ai=max{ tai,0}+bi=max{ tai+bi,bi}
  令 f ( X , t ) f(X,t) f(X,t)为处于状态 ( X , t ) (X,t) (X,t)时剩余的最优排工时间,则 f ( X , t ) f(X,t) f(X,t) t t t的单调上升函数,且
{ f ( X , t ) = min ⁡ i ∈ X { a i + f ( X − i , z i ( t ) ) } f ( ϕ , t ) = t \left\{\begin{array}{l}{f(X, t)=\min _{i \in X}\left\{a_{i}+f\left(X-i, z_{i}(t)\right)\right\}} \\ {f(\phi, t)=t}\end{array}\right. { f(X,t)=miniX{ ai+f(Xi,zi(t))}f(ϕ,t)=t

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值