复杂示例 3:一维分切 — 总览
1. 概述
本示例通过一维分切(CSP1D)框架,把产品和材料数据、切割方案主问题、方案定价分开组织。总览说明列生成流程;材料与生产子页分别定义数据契约和主问题数学模型。
2. 上下文与依赖
| 上下文 | 职责 | 依赖 |
|---|---|---|
| 材料 | 产品、需求、材料与切割方案数据 | 输入配置 |
| 生产 | 方案使用变量、产出和资源表达式、主问题管线 | 材料、已生成方案 |
| 切割方案生成 | 初始方案和改进列搜索 | 材料、主问题对偶价格 |
| 长度分配与废料最小化 | 可选长度规则及损耗相关目标 | 材料、生产、配置 |
应用层负责组装上下文和列生成循环,不能把算法角色当作另一组独立产量变量。
3. 概念、集合与谓词
4. 变量与中间值
5. 断言、约束与目标
需求约束逐产品写为
6. 算法与生命周期
生成初始方案,求解受限主问题并读取对偶价格,搜索负约化成本方案,去重后加入列池并重新求解。终止应区分完整定价无改进列与时间、迭代等限制导致的提前返回。
7. 注册 → 构造 → 求解 → 分析
注册阶段创建生产聚合及其管线;构造阶段把已有方案编译成主问题列;求解阶段交替执行主问题和定价;分析阶段将方案使用量转换为产品产出及材料使用结果。
8. 源码入口
9. Kotlin/Rust 对照与设计决策
两种语言的示例入口均调用各自的 CSP1D 框架,而非在 Demo 目录内重复实现全部上下文。数学记号统一按方案索引
10. 上下文模型页面
11. 变更记录
| 版本 | 变更 | 原因 |
|---|---|---|
| 1.1 | 统一中英文总览、数学记号和源码入口 | 与所属上下文模型保持一致 |