java - 如何找到使用背包切割库存问题的最佳组合
问题描述
编辑(2019 年 12 月 31 日)- https://jonathan.overholt.org/projects/cutlist
以上是我正在寻找的免费项目的链接。我只是在寻找适当的指导,这样我才能让它发挥作用。
我正在努力减少铝滑动窗制造商的铝挤压切割的浪费,但我无法弄清楚我应该使用哪种算法/数据结构来解决这个问题。
我做了基础研究,发现问题属于切削库存问题(也称为一维切削问题),线性规划问题,贪心算法。但我无法决定我应该选择哪一个以及如何开始。
问题简介:
基本上,窗户制造商有3 种尺寸的材料可供选择。
12 | 15 | 16 (IN FT)
现在输入将是 Window 的大小。
宽度 x 高度(英尺)
1) 6 x 8 - 10 个窗口
2) 9 x 3 - 20 个窗口
计算为(2 x 宽度)+(2 x 高度)。因此,从上述窗口尺寸来看,它们需要如下挤压。
1) 6' (FT) 尺寸的块 -> 2 x 10 = 20
2) 8' (FT) 尺寸的块 -> 2 x 10 = 20
3) 9' (FT) 尺码 -> 2 x 20 = 40
4) 3' (FT) 尺码 -> 2 x 20 = 40
使用背包,我们可以找出组合,但它的大小只能为 1,而在我的例子中,我有 3 种不同的尺寸可用,我想从中生成最佳的最佳组合来解决切割库存问题。
对于 Java 或任何其他语言中的数据结构和算法,我应该如何处理上述问题需要帮助。我的数学知识达不到标准,这就是为什么我在项目中实现逻辑时遇到问题并希望从社区获得一些帮助。
解决方案
推荐阅读
- android - 使用 mqtt 发送推送通知,从最近的应用程序中滑动时不起作用
- stripe-payments - 用条纹测试谷歌支付
- ios - 在 iOS 10 上从自定义键盘打开设置应用程序时崩溃
- c# - 如何为另一个类的测试参数设置 IEqualityComparer?
- html - overscroll-behavior 属性不适用于 webview
- docker - 节点 API 失败并出现错误:EHOSTUNREACH
- assembly - S1.geti、S2.geti 都调用同一个过程(称为 Sc_geti)。S1.i 不可用。奇怪的字符
- javascript - 在 parseFloat() 之后将对象键数组中的所有值相加
- javascript - 无法选中第二个循环内的复选框
- python - 使用fuzzywuzzy合并数据框