DecisioWorks
课程目录

标准化数据接口

07 把库存要求转换为累计约束

本页内容

任务:从库存收支推导字段

支架期初库存20件,要求各日末至少保留20件、最多100件。第一天出库80件,第二天再出库40件,无其他入库。需要把这些条件转换成inventory_limit中的累计生产数量范围。

本课检查每个时间单元末的库存。若库容必须在班中每个时刻都满足,需要更细时间表示和收发次序;日末约束不能代替班中检查。

一步一步计算

设截至t累计生产入库为P(t),累计出库为D(t),则库存为20+P(t)−D(t)。要求20 ≤ 20+P(t)−D(t) ≤ 100,得到D(t) ≤ P(t) ≤ D(t)+80。

时期 当期出库 累计出库D(t) 累计生产下限 累计生产上限
1 80 80 80 160
2 40 120 120 200

实际写入:

id product time_unit binding lower_bound_acc upper_bound_acc urgency
1 1 1 NULL 80 160 0
2 1 2 NULL 120 200 0

两行下限80、120已是累计值,不再相加成200。原始期初库存与出库计划保存在来源表或映射依据中;标准表承载推导后的约束。

反向检查

候选生产第一天80、第二天40,累计产出为80、120;两天日末库存均为20,符合要求。如果第一天只生产60,则日末为0,低于安全库存20,即使两天最终总量达到120也不能弥补第一天的库存缺口。

有其他入库E(t)时,上下限应同步扣除E(t)。未配置限制使用NULL;下限0表示确实允许累计生产为0,不能混为一谈。

共用库存与紧迫性

相同binding表达多个制品共用库存的关系,但具体容量分配要考虑共同单位。大箱与小箱各一件可能占用不同空间,应使用体积、托位或明确的等效系数。urgency表达紧迫性或周转相关信息,何时影响优先选择需要对应策略解释。

练习与解析

期初库存改为30,其他条件不变。第一天下限70、上限150,第二天下限110、上限190。若推导的上限为负,说明零生产仍然超过库容,不能把负数静默改为0掩盖矛盾。下限低于0且生产数量要求非负时,可采用0作为有效下界。

当前数据层可以表达和校验上下限。实际求解时检查所选模型采用的库存规则,并用“只改一项库存条件”的对照运行确认结果,而非仅凭表中有值判断已生效。

上一课 · 下一课:导入与校验