首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AI,它最大限度地将矩形并行点存储在更大的并行点中。

AI,它最大限度地将矩形并行点存储在更大的并行点中。
EN

Data Science用户
提问于 2018-10-19 12:54:06
回答 1查看 48关注 0票数 1

正如您在标题中所看到的,我正在尝试用Java编写一个AI程序,以帮助优化他的存储空间。

用户必须输入他的存储空间的大小(一个盒子,一个房间,一个仓库等)然后输入他必须存储在这个空间中的物品的大小。(注意,所有的东西都必须是矩形的平行线),AI应该为每个项目找到最佳位置,这样才能优化空间。

下面是我开始做的事情的清单:

  • 我让用户输入存储空间的大小(这里的单位很小,除了AI的计算成本之外,我猜),告诉他这些值将被四舍五入到单位。
  • 我首先创建了一个表示存储空间卷的三维整数数组,使用了前面的3个值。填充0,其中0稍后表示空闲空间和1s占用的空间。
  • 然后,将必须存储的项的大小存储在另一个多维数组中,这就是AI部分应该开始的位置。AI应该做的第一件事是检查添加所有项目的卷是否超过存储空间的容量。但有那么多的事情要做,很多的可能性,我迷失在我的想法,不知道从哪里开始.

总之,谁能给我这个问题的适当术语,在人工智能文献,以及链接到现有的工作,这类?谢谢

EN

回答 1

Data Science用户

回答已采纳

发布于 2018-10-19 15:11:03

这看起来非常像装箱问题的一个变体。坏消息是,这在数学上是一个困难的问题,事实上是NP难的(这意味着不可能有多项式时间解)。好消息是,它得到了大量的研究,有多种解决方法,或者至少在合理的范围内优化解决方案。

哪种优化方法最适合你,这将取决于你希望你的模型在物理上的精确程度。您的体素方法已经在这方面做出了一些决定,但是您也可能想要考虑一些问题,比如重力、您创建的任何一堆结构的稳定性以及对项目的访问。这些因素增加了额外的约束,使问题建模和实现优化器变得更加困难,因此您可能需要从更不现实的模型开始。

一种简单的方法可能是使用一种简单的启发式方法,例如先包装最大的物体,先填充接近边缘的物体等,然后尝试交换或修改几件包装的顺序,看看是否有改进。你可以贪婪地做那些改变,或者考虑让它们变得更随意,但是使用一个奖励更好改进的系统。像模拟退火遗传算法这样的方法可以作为随机方法使用,其他许多方法也是可能的。有大量的全局优化器可以帮助解决这样的组合问题。

下面是一个用模拟退火方法求解垃圾箱包装问题的例子。

下面是一个用遗传算法求解垃圾箱包装问题的例子。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/39915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档