我之前阅读了一些关于构建代理层次结构的可能性的简单材料,其中叶子上的代理解决原始任务,而高级代理则针对编排直接后代代理进行了优化。
据我了解,每个智能体都有不同的目标函数和可能的动作。
我如何设计这样一个代理层次结构,每个代理都有不同的目标?有没有例子?
我之前阅读了一些关于构建代理层次结构的可能性的简单材料,其中叶子上的代理解决原始任务,而高级代理则针对编排直接后代代理进行了优化。
据我了解,每个智能体都有不同的目标函数和可能的动作。
我如何设计这样一个代理层次结构,每个代理都有不同的目标?有没有例子?
在强化学习的背景下,将面向目标的问题建模为多个子问题的层次结构的想法称为分层强化学习,它产生了诸如半马尔可夫决策过程和选项(又名宏观行动)等概念。文章The Promise of Hierarchical Reinforcement Learning很好地呈现和描述了这个主题,所以我建议你阅读它。
然而,解决多个子任务以解决更大任务的想法并不局限于强化学习。例如,在论文Neural Programmer-Interpreters (NPI) 中,没有参考传统的 RL 主题,而是提出了一种通过组合更简单的程序来编写程序的模型。
另一个例子是具有自动定义函数(ADF) 的遗传编程,其中子程序 (ADF) 可以根据适用性在程序的不同部分中重复使用。
因此,您可以通过不同的方式设计一个系统,通过解决多个子任务然后组合它们来解决一个大任务。您选择的方法取决于您的用例。如果您想构建程序,那么 NPI 可以作为一个开始。如果您想在系统中加入时间组件,那么 HRL 可能是一种可行的方法。有几种 HRL 算法。其中一些(例如MAXQ-OP)已成功用于解决RoboCup 挑战。