命题逻辑混合代理和逻辑状态
先决条件:人工智能中的 Wumpus 世界
为了为 wumpus 世界创建一个混合代理,推断世界状态各个方面的能力可以很简单地与条件-动作规则和问题解决算法相结合。代理程序使知识库和当前策略保持最新。非时间公理——那些不依赖于 ,例如将正方形的微风与凹坑的存在联系起来的公理 - 包含在初始知识库中。在每个时间步添加新的感知短语,以及依赖于的所有公理 ,例如后继状态公理。 (代理不需要公理用于未来的时间步长,如下一节所述。)然后代理利用逻辑推理来确定哪些方格是安全的,哪些方格尚未访问知识库的查询。
代理程序的主要机构根据目标优先级递减来制定计划。如果有火花,程序首先设计一个抢金子,回到原来的地方,爬出洞穴的策略。否则,如果当前计划不存在,软件会绘制一条通往它尚未访问过的最近安全广场的路径,以确保该路线仅通过安全广场。 *搜索,而不是 , 用于规划路线。如果代理仍然有箭头并且没有安全方格可供调查,下一步是尝试通过射击其中一个可用的 wumpus 点来建立一个安全方格。这些是通过查询哪里找到的是假的,即当不知道是否有 wumpus 时。 被函数使用 (未显示)来计划一系列操作来排列这个镜头。如果这不起作用,程序会寻找一个可证明不安全的方格来探索 - 也就是说, 返回假。如果不存在这样的方格,任务将无法完成,代理人将撤退到并爬出洞穴。
逻辑状态
代理程序的性能令人钦佩,但它有一个基本缺陷:调用的计算成本随着时间的推移呈指数增长。这是因为所需的结论必须及时回溯并涉及越来越多的命题符号。显然,这是不可持续的——我们不能让代理的每个感知的处理时间与其生命周期同步增长!我们确实需要一个恒定的更新时间——也就是说,一个独立于 .显而易见的解决方案是保存或缓存推理结果,以便下一个时间步骤的推理过程可以建立在先前阶段的结果之上,而不必重新开始。信念状态——即世界上所有可以想象的当前状态的集合的某种表示——可以取代以前的知觉历史及其所有影响
状态估计是在新的感知出现时更新信念状态的过程。我们可以使用涉及与当前时间步相关的命题符号以及非时间符号的逻辑语句,而不是 4.4 节中的明确状态列表。例如,考虑逻辑句子。
描述了 wumpus 还活着的时间 1 的所有情况的集合,代理在 , 广场很凉快, 有一个坑或者 , 或两者。
事实证明,将精确的信念状态保持为逻辑公式并不简单。如果时间 t 有 n 个流利的符号,则有 2 n 个潜在状态,即为这些符号分配真值。物理状态集的幂集(所有子集)现在是信念状态集。有信念状态,因为有 2 n 个物理状态。我们需要整数位来指定当前的信念状态,即使我们采用了最小可能的逻辑公式编码,每个信念状态由一个不同的二进制数表示。换句话说,正确的状态估计可能需要大小与符号数量成比例的逻辑公式。
将信念状态表示为字面量的连词,即 1-CNF 公式,是近似状态估计的一种非常常见和自然的方法。给定 t 1 的信念状态,代理程序只是试图证明和对于每个符号 (以及真值未知的每个非时间符号)。新的信念状态是由可验证的字面量与先前的信念状态在被丢弃。
重要的是要记住,随着时间的推移,这种技术可能会丢失一些信息。如果上面的方程是真实的信念状态,那么也不将被单独证明,并且两者都不会出现在1-CNF信念状态中。另一方面,我们知道整个1-CNF信念状态必须为真,因为其中的每一个字面量都是从先前的信念状态证明的,并且原始的信念状态是一个真实的陈述。结果,由1-CNF信念状态表示的一组可能状态包含了在考虑整个感知历史时实际上可行的所有状态。 CNF 信念状态用作精确信念状态的基本外部包络或保守近似。对复杂集合进行谨慎近似的概念似乎是多个 AI 领域的重复主题。