这是什么样的算法?盒装/背包?

2024-04-07

昨晚我正在开发一个应用程序,遇到了一个特定的问题,我确信可能有一个有效的算法来解决它。有人可以建议吗?

Problem:

TL;DR:也许一张图片会有所帮助:http://www.custom-foam-inserts.com/ http://www.custom-foam-inserts.com/。我有很多物品可以放在不同的隔间中:我想尽量减少需要携带的箱子数量。

.

我有一套N件昂贵的电子设备,我想将它们装入专门设计的保护盒中。这些盒子每个都有许多隔间,每个隔间可以容纳一个物品:其中一些专门设计用于容纳特定物品(即相机形状的孔),而其中一些是通用的(矩形孔)。我事先知道有 C 个不同尺寸的隔间以及这些尺寸是多少。

这些盒子有 L 种不同的布局,每个布局至少有一个隔间。布局可能是“两个大的矩形隔间和 4 个小的圆形隔间”。

每个隔间尺寸至少出现在一种布局上,但我有不适合任何隔间尺寸的物品。每件物品至少适合一个隔层,并且可以适合多个不同的隔层:例如,我的数码单反相机可能紧密适合“中矩形”隔层,宽松适合“大矩形”隔层,完美适合“大矩形”隔层。单反相机隔层”,但不适合“小圆圈”。为此,我列出了适合每件物品的隔间。

这些商品具有一定程度的异质性,例如可能有 50 个某种尺寸的商品和 20 个另一种尺寸的商品。

每个盒子有两个成本:体积和美元(但 D ~ 与 V 成比例)。我需要最大限度地减少其中一项或两项成本,同时将我的所有物品装入盒子中。由于盒子的布局,最佳解决方案可能包含未使用的隔间。如果两种溶液具有相同的体积,请选择具有最多未使用隔室的一种。由于每个隔间至少有一种布局,并且每个物品至少适合一个隔间,因此总有一种适合所有物品的解决方案。

项目数量:

对这个有什么想法吗?我研究了一些背包和装箱算法,但我不确定它们是正确的方法。非常感谢帮助。


从问题描述来看,这确实似乎是背包问题,因为您必须最大化可用空间,同时牢记weight您的选择。

根据您的需求,您还可以考虑使用遗传算法 http://en.wikipedia.org/wiki/Genetic_algorithm。由于这个问题是 NP Complete,如果您需要添加更多项目,运行时间最终会爆炸,所以如果我需要可用的最佳解决方案,而与所需的时间无关,我会主要使用这个。

另一方面,遗传算法应该能够在相对较短的时间内提供一些解决方案,但是它提供的解决方案可能不如背包算法提供的解决方案,所以我会选择遗传算法如果我的时间有限制,我需要提供一些解决方案,并且我不在乎它是否不是绝对最好的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这是什么样的算法?盒装/背包? 的相关文章

随机推荐

  • 根据另一个列表从列表中过滤元素[重复]

    这个问题在这里已经有答案了 我想在Java 8 我有一个Boolean清单和另一个Object列表 这两个列表的大小始终相同 我想从中删除所有元素object列表 其中有false在相应的索引处boolean list 我将尝试用一个例子来
  • WPF datagrid 选定行单击事件?

    我想在双击 WPF DataGrid 的选定行时执行一些代码 我知道数据网格有一个 MouseDoubleClicked 事件 并且它还有一个行选定事件 但我没有看到任何 选定行双击 事件 您认为有可能以某种方式捕捉到这一事件吗 您可以在中
  • ModuleNotFoundError:没有名为“MySQLdb”的模块

    在完成我的一个 Flask 项目后 我像其他人一样将其上传到 github 上 2 3 个月后 我将整个 githube 存储库下载到另一台机器上来运行它 但是 该应用程序无法运行 因为找不到软件包 并显示以下消息 ModuleNotFou
  • 未找到 Hadoop 命令

    我已经在 Linux 机器上安装并配置了 hadoop 现在我正在尝试运行示例 MR 作业 我已经通过命令 usr local hadoop bin start all sh 启动了 hadoop 输出为 namenode running
  • 如何使用 c# excel interop 读取 excel 自定义文档属性

    我正在尝试检查是否已为 Excel 文件设置自定义文档属性 如果设置了则读取该值 这是我正在使用的代码 但到目前为止还没有运气 它不会进入 foreach 循环并出来 var propval ReadDocumentProperty Tes
  • OpenGL:重复使用具有不同参数的相同纹理

    在我的程序中 我有一个纹理 它在不同情况下使用多次 在每种情况下 我都需要应用一组特定的参数 我想避免创建额外的缓冲区 并在每次需要将其用于其他用途时实质上创建纹理的副本 所以我想知道是否有更好的方法 这是什么采样器对象 http www
  • 对“respond_to”与“respond_to”感到困惑吗?

    我正在通过railstutorial org学习Rails 但我对一些事情感到困惑 在本章 http ruby railstutorial org chapters modeling and viewing users two sec pa
  • 使用 cron 表达式流口水规则?

    我有一个要求 我只想在工作日触发规则 我有一些规则 如烟雾 温度 运动 您能否建议我如何根据我的要求制定规则 请给我一些示例 除了 cron 之外 还有其他更好的方法来根据时间触发规则吗 您可以在工作日或周末解雇规则 我也遇到过同样的要求
  • Internet Explorer 11 自动换行不起作用

    似乎自动换行不再适用于 IE 11 中的 textarea 元素 在 IE 10 及更早版本中 FF Safari 和 Chrome 自动换行按预期工作 IE 11 没有实现任何自动换行 我尝试将 wrap hard 添加到textarea
  • 如何检查节点到其后代叶子的所有路径的黑色高度?

    Given a 红黑树 我需要写一个高效算法检查对于每个节点 从该节点到后代叶子的所有路径是否包含相同数量的黑色节点 即如果属性为 true 或 false 则算法应返回布尔值 它将返回 RB 树的黑色高度 如果高度为0 则该树是无效的红黑
  • UIButton 的自定义字体标题

    有没有办法为按钮标题添加自定义字体 The UIButton类暴露了一个标题标签 http developer apple com library ios documentation UIKit Reference UIButton Cla
  • 计算余弦相似度 Spark Dataframe

    我正在使用 Spark Scala 来计算 Dataframe 行之间的余弦相似度 数据帧格式如下 root SKU double nullable true Features vector nullable true 下面的数据框示例 S
  • 将字符串分配给字符数组

    我对下面的事情感到有点惊讶 示例1 char s 100 abcd declare and initialize WORKS 示例2 char s 100 declare s hello initalize DOESN T WORK lva
  • Apple 应用内购买 StoreKit 错误

    我正在为书架实现应用程序购买功能 但在购买书籍期间随机出现错误消息 错误信息是 付款请求仅限于通过 Store Kit 的 didReceiveResponse 方法返回的有效产品 我在苹果找到了这个文档http developer app
  • 如何在 tsconfig 中使用单个模块的路径?

    这个问题是后续问题如何使用 tsconfig json 中的路径 https stackoverflow com q 43281741 49942但我想为单个模块执行此操作 我有一个模块 它的实施于src functions foo ts
  • 获取字符串及其子字符串的所有组合[重复]

    这个问题在这里已经有答案了 我见过很多关于获取所有可能的子字符串 即相邻的字符集 的问题 但没有看到关于生成所有可能的字符串 包括其子字符串的组合 的问题 例如 让 x abc 我希望输出是这样的 abc ab ac bc a b c 要点
  • 如何使用唯一值更新表中的列,但不是所有行,不递增[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以使用单个 UPDATE SQL 语句执行多个更新 https stackoverflow com questions 412101 is it possible to perform mult
  • 对其中包含数字的 std::string 进行排序?

    我目前正在按 std string 30 Thanks 您可以创建自定义比较函数来使用std sort 该函数必须检查字符串是否以数值开头 如果是 则将每个字符串的数字部分转换为int使用某种机制 如字符串流 然后比较两个整数值 如果值比较
  • 在 Objective-C 中将 NSString 拆分为数组

    我怎样才能分割字符串 Hello 至 一个 C 数组 H e l l o or Objective C 数组 H e l l o 如果您对 C 数组感到满意chars try const char array Hello UTF8Strin
  • 这是什么样的算法?盒装/背包?

    昨晚我正在开发一个应用程序 遇到了一个特定的问题 我确信可能有一个有效的算法来解决它 有人可以建议吗 Problem TL DR 也许一张图片会有所帮助 http www custom foam inserts com http www c