正如您在标题中所看到的,我正在尝试用Java编写一个AI程序,以帮助优化他的存储空间。
用户必须输入他的存储空间的大小(一个盒子,一个房间,一个仓库等)然后输入他必须存储在这个空间中的物品的大小。(注意,所有的东西都必须是矩形的平行线),AI应该为每个项目找到最佳位置,这样才能优化空间。
下面是我开始做的事情的清单:
总之,谁能给我这个问题的适当术语,在人工智能文献,以及链接到现有的工作,这类?谢谢
发布于 2018-10-19 15:11:03
这看起来非常像装箱问题的一个变体。坏消息是,这在数学上是一个困难的问题,事实上是NP难的(这意味着不可能有多项式时间解)。好消息是,它得到了大量的研究,有多种解决方法,或者至少在合理的范围内优化解决方案。
哪种优化方法最适合你,这将取决于你希望你的模型在物理上的精确程度。您的体素方法已经在这方面做出了一些决定,但是您也可能想要考虑一些问题,比如重力、您创建的任何一堆结构的稳定性以及对项目的访问。这些因素增加了额外的约束,使问题建模和实现优化器变得更加困难,因此您可能需要从更不现实的模型开始。
一种简单的方法可能是使用一种简单的启发式方法,例如先包装最大的物体,先填充接近边缘的物体等,然后尝试交换或修改几件包装的顺序,看看是否有改进。你可以贪婪地做那些改变,或者考虑让它们变得更随意,但是使用一个奖励更好改进的系统。像模拟退火或遗传算法这样的方法可以作为随机方法使用,其他许多方法也是可能的。有大量的全局优化器可以帮助解决这样的组合问题。
下面是一个用遗传算法求解垃圾箱包装问题的例子。
https://datascience.stackexchange.com/questions/39915
复制相似问题