我花了一些时间研究2D装箱算法。我没有算法方面的丰富经验,尤其是高级数学方面的经验,但是我可以编写代码:)
http://www.cutlistoptimizer.com展示了我需要实现的完美示例。它可以工作,但是我不知道它使用什么算法。
我尝试了许多方法,其中有些非常简单,例如https://codeincomplete.com/posts/bin-packing/ DEMO here,但是它不支持必不可少的轮换。
对我来说最有前途的是https://ssbothwell.github.io/greedypacker-react/ 不确定我做错了什么,但不能算最适合我。我尝试了使用不同算法的不同组合。
演示数据: 工作表尺寸:w:2655,h:2100
{ w: 900, h: 320 },
{ w: 320, h: 900 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 860, h: 320},
{ w: 860, h: 320},
{ w: 564, h: 310 },
{ w: 452, h: 293},
{ w: 720, h: 530},
{ w: 720, h: 530},
{ w: 696, h: 530},
{ w: 696, h: 100 }
这些零件应放在一张纸之内。
经过一段时间的研究,我发现可能应该使用遗传算法来发展这些启发式方法。这有意义吗?