生产制造计划-工序生产排产计划(2)

2.2.基于资源优先的排产算法

        一种基于有限资源驱动的排产算法。本算法适用于资源受限的离散制造环境。其核心思想是:在每一轮排产中,首先确定当前可用的有限资源集合,然后为这些资源寻找最合适的待排工序,通过多级规则过滤,实现资源与工序的最佳匹配。

2.2.1、符号说明
    Wi: 第 i 个订单,i = 1, 2, 3, …, n
    Wij: 订单 Wi 的第 j 道工序,j = 1, 2, 3, …
    n: 订单总数量
    P: 待排产工序集合
    R: 系统总资源集合(所有工位、设备)
    AR: 当前可用资源集合
    CR: 本轮候选资源集合
    PO: 预排产方案集合
2.2.2、步骤解析

步骤 1:系统初始化
    设定订单索引 i = 1
    初始化待排产工序集合 P,令 P = ∅
    初始化系统总资源集合 R
    初始化当前可用资源集合 AR,令 AR = R
    
步骤 2:构建初始待排产集合
    循环判断:若 i ≤ n,则执行以下操作:
        获取第 i 个订单 Wi 的首道工序 Wij
        将该工序 Wij 添加至待排产集合 P 中
        订单索引 i 自增 1
    此循环持续至 i > n 为止

步骤 3:检查排产终止条件
    循环判断:若待排产集合 P 为空,则所有工序排产完毕,算法结束
    若当前可用资源集合 AR 为空,则无可用资源,等待资源释放后继续

步骤 4:确定本轮候选资源集合
    从当前可用资源集合 AR 中,筛选出当前时刻可参与排产的资源,构成候选资源集合 CR
    筛选逻辑:
        遍历 AR 中的每个资源 r
        判断资源 r 是否就绪(非故障、非保养、已空闲)
        若资源 r 就绪,则 CR = CR ∪ {r}

步骤 5:为候选资源生成预排产方案
    初始化预排产方案集合 PO = ∅
    循环处理:对于候选资源集合 CR 中的每一个资源 r,执行以下子步骤:
        为资源 r 筛选可加工的候选工序:
            从待排产集合 P 中,找出所有工艺路线允许在资源 r 上加工的工序,形成候选工序集 CP
            从 CP 中,进一步筛选出当前可开始排产的工序(满足工序依赖关系和时间约束),形成可行工序集 FP
        应用工序选择规则组合 (Ro1, Ro2, …, Roh) 对 FP 进行排序筛选:
            初始化规则索引 q = 1
            若 FP 中仅剩一个工序,或 q > h,则选定工序 op = FP[0]
            否则,应用规则 Roq 对 FP 进行筛选,得到过滤后的子集 FP',令 FP = FP',并令 q = q + 1,重复此过程
        为选定的工序 op 计算排产时间:
            获取 op 的紧前工序结束时间 pt。若无紧前工序,则 pt 等于订单最早开始时间
            获取资源 r 的最早可用时间 rt
            计算计划开始时间:start_time = max(pt, rt)
            计算计划结束时间:end_time = start_time + op 的计划加工时长
        生成预排产方案:
            将元组 (r, op, start_time, end_time) 封装为预排产方案 po
            将 po 添加至预排产方案集 PO,即 PO = PO ∪ {po}

步骤 6:从预排产方案中确定最终排产方案
    应用资源选择规则组合 (Rc1, Rc2, …, Rcl) 对 PO 进行排序筛选:
        初始化规则索引 q = 1
        若 PO 中仅剩一个方案,或 q > l,则选定最终方案 fpo = PO[0]
        否则,应用规则 Rcq 对 PO 进行筛选,得到过滤后的子集 PO',令 PO = PO',并令 q = q + 1,重复此过程

步骤 7:执行排产并更新系统状态
    根据最终排产方案 fpo (r, op, start_time, end_time) 执行排产:
        将工序 op 正式分配给资源 r
        锁定资源 r 在 [start_time, end_time] 时间段的产能
    更新待排产集合 P:
        将已排产的工序 op 从 P 中移除
        若 op 存在紧后工序,则将该紧后工序加入 P
    更新可用资源集合 AR:
        将资源 r 从 AR 中暂时移除(因其已被占用)
        当资源 r 完成工序 op 后,将其重新加入 AR

步骤 8:循环排产
    算法跳转至步骤 3,开始下一轮的排产决策

 

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容