Algorithm 自动宇宙飞船布局——是否存在压缩长方体的算法?

Algorithm 自动宇宙飞船布局——是否存在压缩长方体的算法?,algorithm,3d,computational-geometry,Algorithm,3d,Computational Geometry,我正在研究一种算法来自动化一个合理的宇宙飞船布局。作为输入,我有一个模块列表(反应堆、乘员舱、传感器、轨道炮等)以及每个模块的以下内容: int长度、宽度和高度 浮点首选项中心/外壳 偏好强度 浮点首选项前/后 偏好强度 例如,船员宿舍应该在中心,以保护他们免受宇宙射线的伤害,推进器和散热器必须在外部,以及传感器或太阳能电池 让我们假设所有模块都是长方体,不重叠,否则没有交互作用。是否存在算法?是否自动在三维中布局长方体列表,以便尽可能匹配首选项? 除了匹配首选项外,任何模块与质心之间的最大

我正在研究一种算法来自动化一个合理的宇宙飞船布局。作为输入,我有一个模块列表(反应堆、乘员舱、传感器、轨道炮等)以及每个模块的以下内容:

  • int长度、宽度和高度
  • 浮点首选项中心/外壳
  • 偏好强度
  • 浮点首选项前/后
  • 偏好强度
例如,船员宿舍应该在中心,以保护他们免受宇宙射线的伤害,推进器和散热器必须在外部,以及传感器或太阳能电池

让我们假设所有模块都是长方体,不重叠,否则没有交互作用。是否存在算法?是否自动在三维中布局长方体列表,以便尽可能匹配首选项? 除了匹配首选项外,任何模块与质心之间的最大距离应最小化,以增加稳定性并使转向更容易


一个简单的解决方案是按照模块的中心/外壳偏好对模块进行排序,从最中心的模块开始,然后按照外壳偏好的递增顺序将其他模块放在合适的位置。但是,这可能会留下大洞,无法提供任何保证。

这比在3D空间中填充长方体(没有首选项信息)更困难,这比在平面区域中填充矩形更困难,后者已经是一个难题。你最好的选择可能是决定一个质量函数,它只会随着新部件的添加而变得更差;然后可以应用分支和绑定搜索。如果速度太慢,您可以使用beam搜索来获得近似的解决方案。感谢与其他问题相关的分类和建议。我将看一看更通用的算法。这比在3D空间中包装长方体(没有偏好信息)更困难,这比在平面区域中包装矩形更困难,而在平面区域中包装矩形已经是一个困难的问题。你最好的选择可能是决定一个质量函数,它只会随着新部件的添加而变得更差;然后可以应用分支和绑定搜索。如果速度太慢,您可以使用beam搜索来获得近似的解决方案。感谢与其他问题相关的分类和建议。我来看看更一般的算法。