Skip to content

材料上下文模型 ​

1. 概述 ​

材料上下文提供产品需求、材料尺寸及切割方案的领域数据。生产上下文消费这些数据并拥有主问题的方案使用变量;材料页不再重复声明一个独立的“产品产量变量”。

1. 依赖上下文 ​

输入适配与配置提供产品、材料和切割规则。切割方案生成服务依据这些数据构造可行方案。

2. 概念 / 实体 ​

1. 产品 ​

wp:产品 p 的切割宽度,使用统一长度单位。

dp:产品 p 的需求。Demo3 的计件需求使用卷数语义;配置长度或单位重量时,需求贡献需要由相应计算规则换算。

2. 材料 ​

Lm:材料 m 可用于切割的宽度。完整框架的数据可以包含尺寸范围和加工属性,生成方案时需选定适用值。

3. 切割方案 ​

m(j):方案 j 使用的材料。

npj:方案 j 中产品 p 的件数,非负整数。

apj:方案 j 对产品 p 的需求贡献系数。对本示例不带长度、单位重量的计件产品,apj=npj。

3. 变量 ​

1. 决策变量 ​

本页描述的材料数据契约不声明主问题决策变量。方案使用量 xj 归生产上下文所有,产品产出 qp 由 xj 派生。

2. 辅助变量 ​

方案件数与余料在方案成为主问题列时均为已知数据,不是独立的主问题辅助变量。定价算法可以在生成方案时搜索这些值。

4. 谓词 ​

uses(j,m):方案 j 使用材料 m。

contains(j,p):方案 j 含产品 p。

feasible(j):方案符合材料尺寸及已配置的加工规则。

dynamic(p):产品具有需要单独处理的长度规则。

5. 集合 ​

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

J:符合材料与加工规则的候选方案集合;Jt⊆J:第 t 次主问题求解已插入的方案集合。

Pj={p∈P:npj>0}:方案 j 包含的产品。

Pdynamic:具有可选长度规则的产品子集。

6. 中间值 ​

1. 方案已用宽度 ​

描述:按一个方案内的产品件数计算已用宽度,不能代入整个主问题的产品总产出。

Wj=∑p∈Pwpnpj,j∈J.

2. 方案余料 ​

描述:计件示例中,一个方案的余料是材料可用宽度减去方案已用宽度。

rj=Lm(j)−Wj,j∈J.

若加工配置有额外损耗或不同宽度口径,应按该配置生成的方案属性计算系数,不能直接套用无损耗的简式。

3. 需求贡献 ​

描述:本示例以件数满足需求;长度、重量等其他需求单位需要相应换算。

apj=npj,p∈P, j∈J(本示例计件配置).

7. 断言 ​

有效输入具有正宽度与非负需求,方案件数为非负整数:

∀p∈P:wp>0∧dp≥0,∀p∈P, j∈J:npj∈Z≥0.

在第 6 节的无额外损耗口径下,可行方案满足:

∀j:feasible(j)⇒rj≥0.

8. 约束 ​

1. 材料宽度可行性(Material Width Feasibility) ​

描述:候选方案必须装得进对应材料;其余刀数、长度等规则由已配置的方案生成逻辑共同检查。

∑p∈Pwpnpj≤Lm(j),j∈J.

这是单个方案的数据与生成可行性条件,不是本上下文新增的主问题行。需求覆盖 qp≥dp 在生产上下文逐产品注册;本页不再写错误的跨产品总和约束,也不凭材料名称额外假定库存上限。

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

材料数据契约没有独立主问题目标。它提供需求贡献、材料使用和余料系数,由生产及可选损耗目标管线使用。

10. 算法引用 ​

算法引用位置说明
切割方案生成第 4、5、8 节搜索符合材料与加工规则的方案
需求贡献换算第 2、6 节将件数、长度或重量转换为需求使用的单位
方案属性计算第 6 节计算已用宽度与余料

Kotlin 材料上下文源码;Kotlin/Rust 示例入口。

11. 通用语言 ​

术语符号定义
产品宽度wp产品的横向切割尺寸
需求dp按所选需求单位计量的产品要求
方案件数npj一次方案中某产品的件数
需求贡献apj一次方案对某产品需求的贡献
方案余料rj一次方案未使用的宽度

12. 设计决策 ​

决策备选方案原因
分离方案系数与使用变量将全局产量写进方案属性避免系数随主问题解变化
显式说明需求单位始终把贡献系数当成件数长度与重量配置需要换算
将需求行交给生产上下文在材料页另建产量模型保持变量和约束的单一归属

13. 变更记录 ​

版本变更原因
1.1对齐双语材料契约与方案系数移除错误的产品求和需求式和变量混用