基于Jason的多智能体系统模拟与应用
1. 智能体计划与目标
在多智能体系统中,当目标已经达成时,智能体可能无需再执行其他操作。例如,当智能体相信自己已经处于目标坐标时,便无需再做额外动作。
1.1 计划执行与目标验证
以一段计划代码为例,第19行的计划执行移动智能体位置的动作(向目标移动),然后使用测试目标(与成就目标相对,测试目标用于从信念库中检索信息)来确保目标已经达成。测试目标以‘?’符号为前缀。如果智能体不认为自己处于期望的位置,该计划体的公式将失败,整个计划也会失败。在Jason中,当一个实现目标 +!g 的计划失败时,会生成一个 -!g 类型的事件。
1.2 应急计划
第23行的计划是一个“应急计划”,即当实现某个目标的计划失败时,程序员可以编写的备用计划。在这种情况下,会再次生成相同的目标,这在BDI术语中意味着该智能体“盲目地致力于”实现这个目标。
1.3 目标的不同用途
在第26和28行的计划中,目标的使用方式有所不同。第26行的计划表示,如果位置归智能体自身所有,则无需确认进食。第28行的计划使用 .send 内部动作向允许食用食物的智能体发送消息,消息使用 tell 行为告知所有者该位置的食物已被食用。
2. 解释器的数据结构
Jason解释器维护着一些重要的数据结构,这些结构对于实现BDI智能体至关重要。
2.1 主要数据结构
| 数据结构 | 描述 |
|---|
超级会员免费看
订阅专栏 解锁全文
41

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



