材料上下文模型
1. 概述
材料上下文提供产品需求、材料尺寸及切割方案的领域数据。生产上下文消费这些数据并拥有主问题的方案使用变量;材料页不再重复声明一个独立的“产品产量变量”。
1. 依赖上下文
输入适配与配置提供产品、材料和切割规则。切割方案生成服务依据这些数据构造可行方案。
2. 概念 / 实体
1. 产品
2. 材料
3. 切割方案
3. 变量
1. 决策变量
本页描述的材料数据契约不声明主问题决策变量。方案使用量
2. 辅助变量
方案件数与余料在方案成为主问题列时均为已知数据,不是独立的主问题辅助变量。定价算法可以在生成方案时搜索这些值。
4. 谓词
5. 集合
6. 中间值
1. 方案已用宽度
描述:按一个方案内的产品件数计算已用宽度,不能代入整个主问题的产品总产出。
2. 方案余料
描述:计件示例中,一个方案的余料是材料可用宽度减去方案已用宽度。
若加工配置有额外损耗或不同宽度口径,应按该配置生成的方案属性计算系数,不能直接套用无损耗的简式。
3. 需求贡献
描述:本示例以件数满足需求;长度、重量等其他需求单位需要相应换算。
7. 断言
有效输入具有正宽度与非负需求,方案件数为非负整数:
在第 6 节的无额外损耗口径下,可行方案满足:
8. 约束
1. 材料宽度可行性(Material Width Feasibility)
描述:候选方案必须装得进对应材料;其余刀数、长度等规则由已配置的方案生成逻辑共同检查。
这是单个方案的数据与生成可行性条件,不是本上下文新增的主问题行。需求覆盖
9. 目标函数(如适用)
材料数据契约没有独立主问题目标。它提供需求贡献、材料使用和余料系数,由生产及可选损耗目标管线使用。
10. 算法引用
| 算法 | 引用位置 | 说明 |
|---|---|---|
| 切割方案生成 | 第 4、5、8 节 | 搜索符合材料与加工规则的方案 |
| 需求贡献换算 | 第 2、6 节 | 将件数、长度或重量转换为需求使用的单位 |
| 方案属性计算 | 第 6 节 | 计算已用宽度与余料 |
Kotlin 材料上下文源码;Kotlin/Rust 示例入口。
11. 通用语言
| 术语 | 符号 | 定义 |
|---|---|---|
| 产品宽度 | 产品的横向切割尺寸 | |
| 需求 | 按所选需求单位计量的产品要求 | |
| 方案件数 | 一次方案中某产品的件数 | |
| 需求贡献 | 一次方案对某产品需求的贡献 | |
| 方案余料 | 一次方案未使用的宽度 |
12. 设计决策
| 决策 | 备选方案 | 原因 |
|---|---|---|
| 分离方案系数与使用变量 | 将全局产量写进方案属性 | 避免系数随主问题解变化 |
| 显式说明需求单位 | 始终把贡献系数当成件数 | 长度与重量配置需要换算 |
| 将需求行交给生产上下文 | 在材料页另建产量模型 | 保持变量和约束的单一归属 |
13. 变更记录
| 版本 | 变更 | 原因 |
|---|---|---|
| 1.1 | 对齐双语材料契约与方案系数 | 移除错误的产品求和需求式和变量混用 |