我正在试着用最少的滴落或浪费来嵌套材料。
Table A
Qty Type Description Length
2 W 16x19 16'
3 W 16x19 12'
5 W 16x19 5'
2 W 5x9 3'
Table B
Type Description StockLength
W 16X19 20'
W 16X19 25'
W 16X19 40'
W 5X9 20'我已经研究了贪婪算法、装箱、背包、1D-CSP、分支定界、Brute force和其他算法。我很确定这是一个削减库存的问题。我只需要帮助想出(S)函数来运行这个。我不只有一个库存长度,而是多个,用户可能会输入他自己的库存,而不是常见的库存长度。任何在PHP中使用的函数或算法的帮助,以最少的浪费提出优化的切割模式和所需的毛料长度将非常感谢。
谢谢
发布于 2011-07-15 01:19:47
如果你的问题是“给我代码”,我担心你没有提供足够的信息来实现一个好的解决方案。如果你读了这个答案的全部内容,你就会明白为什么。
如果你的问题是“给我算法”,我担心你在错误的地方寻找答案。这是一个面向技术的网站,而不是一个面向算法的网站。尽管我们程序员当然理解算法(例如,为什么在循环的每次迭代中都将相同的字符串传递给strlen是低效的,或者为什么冒泡排序除了非常短的列表之外是不好的),但这里的大多数问题都是“如何使用语言/框架Y使用API?”
回答像这样的复杂算法问题需要某种专业知识(包括但不限于,大量的数学能力)。与我们大多数人相比,operations research领域的人更多地解决了这类问题。这是一个关于这个主题的introductory book。
作为一名试图找到现实世界问题的实际解决方案的工程师,我首先会得到以下问题的答案:
由于你的通用问题是NP-完全的(正如Jitamaro已经说过的),中等大的问题实例需要使用启发式方法。如果你只打算解决小的问题实例,你也许能够实现一个算法,找到确切的最优,但当然你必须警告你的用户,他们不应该使用你的软件来解决大问题instances.
发布于 2011-07-14 08:53:01
在我看来,这就像是一维装箱的变体。你可以尝试最佳拟合,然后尝试对表b进行不同的排序。无论如何,在3/2的最优解中不存在解决方案,因为这是一个NP-完全问题。这里有一个很好的教程:http://m.developerfusion.com/article/5540/bin-packing。我用了很多方法来解决我的问题。
https://stackoverflow.com/questions/6686979
复制相似问题