对于这个问题,不太可能有任何有用的模式分析。
我无法证明这一点,但我认为雨滴很可能是使用伪随机过程生成的。即使它们不是,您也已经获得了足够多的信息,说明您的控制器在此模拟中可以“感知”到什么,因此无需预测未来的雨滴。
相反,这是一个优化控制和规划的问题。在机器学习中,通常可以使用强化学习来解决这样的问题——Q-Learning可能会在这里工作,但由于状态数量众多,因此很难实现它以便快速学习。您将需要使用像神经网络这样的函数逼近器,虽然这可以在这里很好地工作,但似乎没有必要。
我认为您在这里不需要任何数据科学技术,这更接近于更传统的AI 规划。然而,规划和学习模型之间有着密切的联系,所以我要建议的也是你可能会在使用机器学习(强化学习)和规划相结合的游戏系统中看到的东西。
快速分析表明您有大量可见状态(242) 这将需要很长时间才能为使用最简单的强化学习算法生成最优规则——尽管它是可行的。但是,您还对动力学和完全确定的系统有充分的了解,您可以看到。此外,您的行动决策的分支因子并不高,每步只有 3 个(有时是 2 个)——例如,向前看 8 个步骤将涉及检查 10,000 个场景。这似乎在每个时间步上都可以做到,这立即提出了一种简单的基于搜索的规划算法——类似于蒙特卡洛树搜索,除非在您的情况下,您可以将所有组合强制强制到任意范围。只要地平线足够远,你就可以通过这种方式达到最佳效果,因为只需要 3 步就可以完全遍历收集器可以所处的不同位置。
在每个时间步:
观察进入雨滴的当前状态和位置
一个接一个,生成可行的行动链,通过所有可能性,提前一些步骤(我建议8个步骤,但想知道你是否可以少做一些,例如只有5个步骤)。
使用迄今为止的最佳动作序列,选择该序列中的第一个动作,并在模拟中“真正地”采取该动作,前进一个时间步长。
丢弃序列的其余部分,即使您的控制器确实可能会走这条路,为下一阶段的计划做好准备。在最简单的情况下,您不会使用聪明的树修剪技术来修改计划,您只需在每次更新后强制进行另一次搜索。更高级的算法可能能够保留最可能的序列以前进到下一个时间步,并节省计算(以复杂性和用于存储候选者的内存为代价)。