模块化代理编程与目标分解树在多智能体系统中的应用
在多智能体系统(MAS)的设计领域,有两种重要的方法值得深入探讨,分别是基于策略意图的模块化代理编程(如 GOAL 模块)和目标分解树(GDT)模型。下面将详细介绍这两种方法的特点、优势以及它们之间的比较。
1. GOAL 模块与其他代理编程元素的比较
GOAL 模块与其他代理编程语言中的计划有相似之处。在许多代理编程中,计划通常是计划库的一部分,在设计时提供给代理。GOAL 模块和这些计划都指定了一个条件,即模块或计划的上下文。这个上下文条件明确了模块或计划能够发挥作用的情况,并且在两种情况下,上下文都可以通过替换机制绑定变量,实例化模块或计划体中的变量。
然而,GOAL 模块与计划也存在明显差异。以 3APL 或 AgentSpeak 代理为例,在处理多个交付订单目标时,它们会将多个计划引入代理的计划库,可能导致类似的干扰效应。而 GOAL 模块一旦被激活,就会成为执行的焦点;计划则只是添加到代理的计划库中,成为代理尝试完成的当前“活跃”计划之一。
另一种模块化方法引入了操作符 m(φ) 来控制非确定性,它也可解决示例代理的问题。但与 GOAL 模块的上下文部分不同,该操作符采用非声明性机制激活模块。并且,GOAL 模块的终止条件基于承诺策略,会持续追求目标直至实现;而这种方法中的模块终止策略是尝试各种计划一次,失败则退出。此外,要激活多个模块,需要在计划中明确包含对这些模块的调用,而 GOAL 模块是由环境触发的,能让代理专注于模块提供策略的情况,类似于基于策略意图的概念。
使用模块进行代理编程有诸多好处:
- 聚焦执行 :模块能限制代理
超级会员免费看
订阅专栏 解锁全文
1171

被折叠的 条评论
为什么被折叠?



