移动块以创建设计的表面

人工智能 强化学习
2021-10-25 12:44:43

我是机器学习和人工智能的新手,如果这很明显,请原谅我。我正在和一位朋友讨论如何解决这个问题,但我们都不知道该怎么做。

假设我有一个 100x100 块的网格区域,我想要一个机器人构建一个 100x100 的水平网格,高 3 个块。我得到一个随机但已知的起始表面,始终为 100x100,但随机表面的高度可以在 1 到 5 个方块之间变化。我有多余的积木可以捡起来,所以不用担心用完。机器人可以向任何方向移动,甚至是对角线移动,但需要付出一些代价。机器人显然可以移动一个 4 高的块来填充一个 2 高的块,所以每个块的设计高度都是 3。这听起来像是一个强化学习问题,但是谁能更详细地解释我将如何做到这一点, a) 最小化移动量,b) 到达设计表面。

2个回答

这个任务可以用基于关键帧的动画来完成。起始表面是关键帧 0,目标表面是关键帧 10。RRT 规划器可以将系统从第 0 帧带到第 10 帧。这是通过问题空间中的蛮力搜索来完成的。为了加快搜索速度,在它们之间定义辅助关键帧(引导策略搜索)是有意义的。这种中间关键帧可以从以前的手动演示中提取。整个系统由两部分组成:

  1. 一种搜索动作以将关键帧 a 带到关键帧 b 的算法
  2. 以及在先前演示中搜索以获取中间关键帧的算法

在文献中,此类问题在 PDDL 领域中进行了讨论。任务规划器使用 PDDL 规范,而运动规划器使用快速探索随机树。逻辑几何规划:一种基于优化的组合任务和运动规划方法

本质上,你可以做一些事情,比如让机器人随机移动(四处移动和移动块)一些步骤。重复多次,并在最后记录“分数”(您与完美结果网格的距离有多近)。告诉你的算法更像是最好的得分运行(优化损失函数),然后重新开始。希望你最终会得到一个管理任务的机器人——整个“最佳路径”的事情将由计算机告诉自己从最低成本的例子中学习。

请记住,您是在让机器认真思考做这件事或做那件事的最佳方式。你所要做的就是给它一个学习的框架。