我在寻找一些例子,展示如何在情况演算(Reiter 2001)中对动作(以及可能的流变)进行量化。
我理解动作、流变和情况之间的区别,但为什么它们需要用二阶逻辑来表示?为什么不使用一阶逻辑呢?你能解释一下吗?
回答:
除了少数公式外,用于编码动态世界的所有公式都需要二阶逻辑(SOL)。特别是,
- 初始状态的[属性]
- 动作的前提条件
- 动作的效果
- 后继状态公理(用于解决“框架问题”)
都可以用一阶逻辑(FOL)来表达。
在某些领域,使用SOL来处理上述项目可能更为方便且更简洁,但据我所知,在有限领域内,总是可以将这样的SOL转换为FOL在上述项目 contexto,因此SOL并不是必要的(再次强调,对于上述项目)。
通常,情况演算中对SOL的需求仅来自于一些“基础公理”,例如对情况进行归纳的公理。
此外,根据具体应用的不同,可能不需要基于SOL的基础公理,因此整个世界可以完全用FOL来描述。
我不是该领域的专家,但我认为在许多情况下,为了[逻辑]过滤、规划、时间投影,我们可以避免使用归纳,从而只依赖于FOL。