Q
切割优化算法
2
A
回答
1
这可能是矫枉过正你所需要的,但下面的链接描述了一种方法,提供了很好的结果这种类型的问题:
http://www.intechopen.com/articles/show/title/a_greedy_algorithm_with_forward-looking_strategy
没有可用的代码,但该算法足够详细地描述它不难实现。我已经使用C#实现了这一点(抱歉,无法分享该代码),并对结果感到非常满意。
0
当我想为我工作的木工公司做同样的事情时,我遇到了困难。问题本身是NP难的,所以你需要使用一个近似算法,如第一个拟合或最佳拟合算法。 搜索2d装箱算法。我找到的那个,你将面板从最大到最小排序,然后按顺序将它们添加到表单中,放入适合的第一个bin。对不起,没有与我和它在vb.net的代码无论如何。
1
这听起来就像stock cutting problem这是非常辛苦!最好的解决方案使用线性编程(通常基于单纯形法)和列生成(即使经过多年的约束解决研究项目,我感觉没有给出一半体面的解释)。总之,你不会想在Actionscript中尝试这种方法;因此,无论你实施的是什么,除了小问题之外,你不应该期望得到很好的结果。
然后,我可以提供的最好建议是查看是否可以将源矩形切成条(每个需要的最大矩形的宽度),然后将每个条的其余部分细分为“头”矩形已被删除。
我建议使用分支定界作为优化策略。 BnB通过彻底搜索树来追踪目前所见的最佳解决方案。当您找到解决方案时,请更新绑定并回溯寻找下一个解决方案。每当你知道你的搜索将你带到一个你认为不能找到比你找到的最好解决方案更好的解决方案的分支时,你可以在那个时候提前回溯。
由于这些搜索树将会非常大,因此您可能希望在搜索中放置一个时间限制并返回最佳效果。
希望这会有所帮助。
相关问题
- 1. 切割/优化radacct表(FreeRADIUS)
- 2. 断头台切割优化的遗传算法
- 3. 切割段算法
- 4. Python:切割/切片排序列表的优化方法
- 5. 花岗岩和石块切割优化
- 6. 优化算法
- 7. 算法优化
- 8. 算法的优化
- 9. 算法的优化
- 10. SciPy优化算法
- 11. 优化WordWrap算法
- 12. 优化pow算法
- 13. 进化优化算法
- 14. Python棒切割算法 - 变体
- 15. 使用图形切割算法
- 16. Python中的s-t切割算法
- 17. 递归混淆 - 杆切割算法
- 18. Python实现杆切割算法
- 19. Scipy优化牛顿割线方法
- 20. 随机优化算法
- 21. 优化算法惊奇
- 22. 贪心算法优化
- 23. GLSL着色算法优化
- 24. 优化算法问题
- 25. C++优化此算法
- 26. Dijkstra算法优化/缓存
- 27. 优化转换算法
- 28. 优化A-Star算法
- 29. SQL中的优化算法
- 30. 优化遗传算法?
谢谢,似乎是一个很好的解决方案,我会研究它。 :) – Varnius 2010-12-06 09:13:33