Php 下料问题
我试图用最少的滴落或浪费来筑巢Php 下料问题,php,algorithm,knapsack-problem,Php,Algorithm,Knapsack Problem,我试图用最少的滴落或浪费来筑巢 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
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、分支和绑定、蛮力等等。我敢肯定这是一个削减库存的问题。我只是需要帮助来运行这个函数。我不只是有一个库存长度,而是多个库存长度,用户可以输入自己的库存,而不是常见长度。如果您能帮助我们在PHP中使用函数或算法,以最少的浪费获得优化的切割模式和所需的料长,我们将不胜感激
谢谢在我看来,这就像是1d箱子包装的变体。您可以尝试一个最佳匹配,然后使用表b的不同排序进行尝试。无论如何,在3/2的最优解中不存在解,因为这是一个NP完全问题。这里有一个很好的教程:。我用了很多方法来解决我的问题。如果你的问题是“给我代码”,恐怕你没有提供足够的信息来实现一个好的解决方案。如果你通读了这个答案,你就会明白为什么 如果你的问题是“给我算法”,恐怕你找错了答案。这是一个面向技术的网站,而不是面向算法的网站。尽管我们程序员当然理解算法(例如,为什么在循环的每次迭代中将相同的字符串传递给strlen是低效的,或者为什么冒泡排序除了非常短的列表外是不好的),这里的大多数问题都像“如何使用语言/框架Y使用API X?” 回答像这样复杂的算法问题需要一定的专业知识(包括但不限于大量的数学能力)。与我们大多数人相比,从事这一领域工作的人在解决这类问题方面做得更多。下面是关于这个话题的一个例子 作为一名试图为现实问题找到切实可行的解决方案的工程师,我首先会得到以下问题的答案:
- 您试图解决的平均问题实例有多大?由于您的一般问题是NP完全问题(正如Jitamaro已经说过的),中等规模的问题实例需要使用启发式。如果您只打算解决小问题实例,那么您可能可以实现一个能够找到精确最优值的算法,但当然您必须警告您的用户,他们不应该使用您的软件来解决大问题实例
- 您是否可以使用任何模式来降低问题的复杂性?例如,物品是否总是或几乎总是有特定的尺寸或数量?如果是这样的话,您可以实现一个贪婪算法,专注于为常见场景生成高质量的解决方案
- 您的最佳性与计算效率的权衡是什么?如果您只需要一个好的答案,那么您不应该浪费精力或计算精力来尝试提供最佳答案。信息,无论是由个人或计算机提供,只有在需要时可用时才有用
- 您的客户愿意为高质量的解决方案支付多少?与数据库或Web编程不同,数据库或Web编程几乎可以由每个人完成,因为算法保持在最低限度(例如,您很少编写SQL数据库提供查询结果的确切过程),运筹学确实需要数学和工程技能。如果你不收费,你就是在赔钱