情节的预期引导
1. 目标与计划示例
首先来看一个 JAM 代理的示例:
GOALS:
ACHIEVE live;
FACTS:
FACT friends "Lovisa" "Karin" 1;
FACT in_love "Lovisa" "Niklas";
PLAN: { NAME:
"live"
GOAL:
ACHIEVE live;
BODY:
FACT friends "Lovisa" "Karin" $strength;
OR
{
TEST( > $strength 1);
ACHIEVE gossip;
}
{
EXECUTE doIdle;
};
} PLAN: { NAME:
"gossip"
GOAL:
ACHIEVE gossip;
BODY:
RETRIEVE in_love "Lovisa" $who;
PERFORM tell "Karin" "in_love" "Lovisa" $who;
EFFECTS:
ASSERT knows "Karin" "in_love" "Lovisa" $who;
}
这个示例展示了代理的目标、事实和计划。目标是实现“live”,有两个相关计划:“live”计划和“gossip”计划。在“live”计划中,会检查 Lovisa 和 Karin 的友谊强度,如果强度大于 1 则尝试实现“gossip”目标,否则执行空闲行为。“gossip”计划则是检索 Lovisa 所爱的人并告知 Karin,同时更新 Karin 的知识状态。
当代理遇到问题时,预期器可以为其设定一个优先级更高的新目标。例如,预期器可以降低代
基于有限自动机的情节引导
超级会员免费看
订阅专栏 解锁全文
1189

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



