Skip to content

生产上下文模型 ​

1. 概述 ​

生产上下文拥有切割方案使用变量及产品产出表达式,把已生成方案编译为受限主问题,并通过列插入更新模型。

1. 依赖上下文 ​

材料上下文提供产品、需求和方案系数。切割方案生成服务提供初始列与定价列;可选长度分配、损耗目标等管线依赖生产聚合。应用层控制求解循环。

2. 概念 / 实体 ​

1. 产品与方案 ​

dp:产品 p 的需求。

apj:使用一次方案 j 对产品 p 的需求贡献。在 Demo3 的计件配置中,它是方案内相应产品的件数。

2. 材料使用与余料 ​

m(j):方案 j 使用的材料;使用一次方案计为该材料的一批。

rj:一次方案 j 的余料,由方案数据计算;它不依赖主问题中的产品总产出。

3. 变量 ​

1. 决策变量 ​

xj:方案 j 的使用次数,无量纲,∀j∈Jt。列生成的线性松弛使用 xj∈R≥0;整数求解使用 xj∈Z≥0。

产品产出 qp 是中间值,不另设未关联的产品产量变量。

2. 辅助变量 ​

若整数求解配置包含对应需求的产出偏差项,up,op∈R≥0 分别表示不足和超产,单位与需求一致,∀p∈P。LP 路径不注册这些产出松弛;Demo3 未配置这些偏差项,使用硬需求覆盖。这里的条件不是一个名为 slack 的独立 API 开关。

4. 谓词 ​

active(j,t):方案 j 在本轮求解前已插入列池。

feasible(j):方案满足材料与加工规则。

contributes(j,p):方案对产品 p 的需求贡献非零。

slackEnabled(p):整数求解配置包含产品 p 对应需求的产出偏差项;它是本文对配置条件的记号。

5. 集合 ​

P:产品集合;M:材料集合。

Jt:第 t 次受限主问题求解可用的方案列;Jtm:其中使用材料 m 的方案。

Jt={j:active(j,t)∧feasible(j)}.

它是迭代相关的有限集合,不是预先枚举的全部切割方案。

6. 中间值 ​

1. 产品产出 ​

描述:总产出等于各方案需求贡献乘以其使用次数,再按产品汇总。

qp=∑j∈Jtapjxj,∀p∈P.

2. 材料使用量 ​

描述:每使用一次属于材料 m 的方案,就消耗该材料一批;不从产品产量反推出另一套使用模型。

Um=∑j∈Jtmxj,∀m∈M.

3. 总余料 ​

描述:每个方案余料是固定列系数,总余料按方案使用次数加权。

R=∑j∈Jtrjxj.

qp,Um,R 表示派生量;是否注册某个损耗表达式或将其加入目标由对应配置决定。

7. 断言 ​

所有进入主问题的列都必须可行,且各产品的需求贡献采用与 dp 一致的单位:

∀j∈Jt:feasible(j),∀p∈P, j∈Jt:apj≥0.

在线性松弛阶段,不应把方案使用量的分数值直接解释为最终生产方案;整数结果还需依据原始需求和方案数据分析。

8. 约束 ​

1. 产品需求覆盖(Product Demand Coverage) ​

描述:普通需求配置对每个产品分别保证产出不小于需求。

s.t.∑j∈Jtapjxj≥dp,∀p∈P.

不能改写成对所有产品产量求一次总和后与每个产品需求比较。

2. 产出松弛形式(Yield Slack Form) ​

描述:启用产出不足/超产表达时,对应平衡形式为:

qp−op+up=dp,up,op≥0,∀p∈P.

不足量是否允许、如何受限或受罚,由所选管线决定;不能仅写上式就声称仍然强制满足原始需求。

3. 可选资源与长度规则 ​

材料管线对有限的可用批次 Bm 注册:

s.t.Um≤Bm,∀m∈M 且 Bm 为有限可用批次.

Demo3 的材料未设置有限可用批次,机器列表为空。因此虽会注册材料使用中间值,但不会产生材料批次上限或机器约束。动态长度和其他资源规则同样需要相应数据与配置,不能替换成未定义的“机器工时容量”。

9. 目标函数(如适用) ​

描述:基础方案使用目标最小化使用次数:

minZ=∑j∈Jtxj.

Demo3 未传入额外求解配置,使用上述默认目标,没有额外的产出偏差、废料或长度目标。可选损耗管线可以配置余料、材料成本或超产相关目标;不能无条件把所有项相加,更不能把余料宽度和货币成本以未定义的单位直接相加。

10. 算法引用 ​

算法引用位置说明
受限主问题 LP第 3、8、9 节计算当前列池解与对偶价格
方案定价材料与生成服务搜索负约化成本的可行方案
列插入第 5、6 节增加方案变量并更新产出、资源和目标系数
整数求解与结果分析第 3、7 节将列使用量恢复为可执行切割方案

Kotlin 生产上下文源码;Kotlin/Rust 示例入口。

11. 通用语言 ​

术语符号定义
方案使用量xj方案使用的次数
产品产出qp各方案合计对产品的需求贡献
材料使用量Um方案加权汇总的材料使用
总余料R方案余料按使用量加权的总和
产出不足 / 超产up,op可选需求平衡形式中的偏差
当前列池Jt本轮主问题可用的切割方案

12. 设计决策 ​

决策备选方案原因
按方案声明使用变量同时声明未关联的产品量与方案量由列系数直接保证产出一致性
分离 LP 与整数阶段每次定价前都求整数主问题LP 对偶价格用于列生成
明确可选松弛与目标默认加入全部惩罚和资源规则保持配置与实际模型一致

13. 变更记录 ​

版本变更原因
1.1对齐双语产出公式、变量域与余料定义消除方案和产品变量混用