用途:解决所有切割必须为断头台切割(从矩形一边直切到对边的直线切割)的排样问题,常见于剪板机、裁板锯、锯床、CNC 等设备。
主要能力:先做初始评估,明确切割约束(是否全部断头台、两阶段/三阶段/无限制、能否混合横竖切、切割顺序、最大阶段数)、设备特性(设备类型、台面尺寸、能否旋转、精度、每次切割准备时间)、材料与工件(板材尺寸、矩形件尺寸与数量、可否 90 度旋转、纹理方向)、优化目标(最少板材、最少切割次数、最短时间、最大利用率、多目标平衡)以及实际因素(最小切长、最小件尺寸、锯缝 kerf、是否需追踪切割顺序、实时或批量)。
问题分类:两阶段(先切条再切件,最受限但简单)、三阶段、N 阶段、无限制断头台、精确断头台(不允许边角废料)。
使用方式:资料给出两种方法。方法一为两阶段断头台动态规划,类 TwoStageGuillotine 接收 sheet_width、sheet_height、kerf,用 add_item 添加矩形件,生成条带类型、对每条带求解一维下料模式、用整数规划求解主问题、再用 FFD 将条带装入板材;示例调用为 solver = TwoStageGuillotine(sheet_width=2440, sheet_height=1220, kerf=3),并添加若干工件后 solve()。方法二为递归断头台划分,用 CutNode 树结构表示切割方案,通过 make_cut 在节点上做水平或垂直切割。
适用场景:板材、玻璃、金属、木材等需要边到边直切的排样与下料优化。
限制:两阶段问题仍为 NP-hard;精确断头台限制极强、实际少见;资料中的主问题求解与利用率计算为简化实现,部分代码含占位逻辑,完整实现需自行补全;未提供具体收费、平台或效果数据。