一维下料优化器
在按长度切割棒材、管材和型材时最大限度减少废料. 使用 First Fit Decreasing(FFD)或 Best Fit Decreasing(BFD)启发式算法优化一维切割排样,并包含锯缝补偿。输出切割方案、原料用量、利用率和废料量。
使用 First Fit Decreasing(FFD)或 Best Fit Decreasing(BFD)启发式算法优化一维切割排样,并包含锯缝补偿。输出切割方案、原料用量、利用率和废料量。
一维下料优化的工作原理
一维下料问题(cutting stock problem)研究如何用尽可能少的标准长度原料(棒材、管材、型材、挤压材)切出所需的全部工件。该问题是 NP 难问题,因此实用工具采用快速启发式算法,对典型车间订单清单可得到非常接近最优解的结果。
First Fit Decreasing(FFD)将所有工件按从长到短排序,然后把每个工件放入第一根仍有余量的原料中;如果都放不下,就启用一根新原料。Best Fit Decreasing(BFD)同样按降序排列,但把每个工件放入放置后剩余空间最小的那根原料,在某些订单组合中能把紧凑的组合排得略好一些。
每次切割都会消耗等于锯缝宽度的材料。本计算器在同一根原料上的相邻工件之间计入锯缝(n 个工件需要 n − 1 次切割),因此输出的废料能将棒材末端的真实余料与锯缝损耗区分开。对于 FFD,理论上保证结果不超过 11/9 × 最优解 + 6/9 根原料(Dósa, 2007)——实际中通常就是最优解,或与最优解相差不超过一根原料。
适用场景
- 用标准 6 m 或 12 m 原料切割钢筋、结构钢、管材或铝挤压材订单清单时
- 在订购材料前估算某项加工任务需要采购多少根原料
- 比较供应商提供的两种原料长度的废料量,以选出更经济的方案
- 为锯床操作工生成每根料带标签工件的切割顺序表
- 在论证更换更薄锯片时,将锯缝损耗与余料废弃分别量化
应避免的常见错误
- 忽略锯缝——把一根 6 m 棒材切成 20 件时,3 mm 锯缝约消耗 57 mm,可能导致最后一件被挤到新的一根棒材上
- 原料长度与工件清单单位混用(原料按米输入而工件按毫米输入)
- 不使用数量列而直接输入多个装配体的工件总数,导致订单清单难以核对
- 把启发式结果当作安全关键材料预算中的保证最优解——对大规模工业化生产,列生成线性规划方法有时还能再省下几根原料
- 忘记可再利用的剩余料(长余料)在此也计入废料——若将剩余料留作再利用,应从输出的废料中扣除
如何解读结果
- 原料用量是核心指标——与下界 ⌈工件总长 ÷ 原料长度⌉ 比较,可判断排样的紧凑程度
- 对于混合订单清单,利用率高于约 90% 属于良好;高于 95% 则非常优秀,通常意味着工件长度与原料长度组合得很好
- 各模式的废料显示哪几根料承担余料——废料大部分集中在一根料上时,往往会产生一段可再利用的剩余料
- 锯缝损耗随工件数量而非工件长度增长——短工件越多,被锯片消耗的材料比例越高
- 如果 FFD 与 BFD 给出相同的原料数,该排样对此原料长度几乎可以肯定是最优的;若不同,取较优的那个
相关标准与参考文献
- Gilmore & Gomory (1961) — A Linear Programming Approach to the Cutting-Stock Problem (Operations Research 9:849-859),精确解法的奠基性论文
- Dósa (2007) — First Fit Decreasing 的紧最坏情况界: FFD(I) ≤ 11/9·OPT(I) + 6/9
- Johnson (1973) — Near-optimal bin packing algorithms (MIT),FFD/BFD 系列启发式算法的经典分析
- 商品原料长度通常遵循钢筋及结构型材的 6000 mm 和 12000 mm 轧制定尺;优化前请核实供应商的规格清单
常见问题
应该选择 FFD 还是 BFD?
两者都先将工件按从长到短排序,区别仅在于选料方式:FFD 选择第一根有空间的原料,BFD 选择放置后最贴合的原料。它们通常得到相同的原料数;不同时差距为一根。一键运行两种算法,保留较优的排样即可。
锯缝是如何计算的?
锯缝加在同一根原料上相邻工件之间——n 个工件需要 n − 1 次切割,末端余料不需要额外切割。请将锯缝设为实际锯片或割炬的宽度(冷锯通常 2-4 mm,带锯 1-2 mm)。
结果会比真正的最优解差吗?
会,但差距小且可证明:FFD 所需原料数不会超过最优数量的 11/9 加上一个常数。对车间规模的订单清单,结果几乎总是最优;对数千件的轧钢厂规模生产,精确的列生成求解器有时还能再节省一些原料。