1 、有一卷无限长的布匹,布宽约 5.55 米(我们且称为原始布 X )。
2 、根据客人的订单,需要将这 5.55 米宽的布匹分成宽度各异的小的布匹卷( y1 、y2 、y3.....,相加小于等于 5.55 米)。
3 、每个小卷的宽度( Yi )是订单中给定的,每个小卷的长度是固定的 150 米。
4 、切割布匹需要使用多把机械剪刀,比如根据订单
可以将 5.55 米的原始布 X 分成 1.2 米、1.2 米、1.5 米、1.55 米、0.1 米(损耗),
这样会同时布置四把机械剪刀,但更换剪刀间距(或者增加、取下)需要一定的成本δ,所以尽可能在少换刀的情况下对 原始布 X 进行剪裁。
5 、如果订单的小布匹卷相加起来宽度小于 5.55 米,可以搭配切一些比较好卖的小布匹卷 Ui (如 1.5 米宽、1.2 米宽等)。
6 、在此基础上如何最节约不浪费的剪裁布料。
输入: X(原始布的宽度)
Yi*n (订单中小布卷的宽度 以及 每种宽度需求数量 n )
Ui (搭配裁剪的小布卷)
输出就是裁剪的方案组别。
值得注意的事情,“5.55 米的原始布 X 分成 1.2 米、1.2 米、1.5 米、1.55 米、0.1 米(损耗)”,这里是需要 4 把机械剪刀的!而不是三把~
最初我拿到这个之后第一反应是能做,使用多重动态规划就行了,可是我发现根本没有那么简单,真实案例中还涉及到布匹的厚度,原始布的总长度等奇形怪状的因素。
如果实在不行可以先忽略换刀的情况。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.