从模型更新到程序更新:理论与实践
1. 引言与动机
在处理由命题理论表示的知识库修改时,存在两种抽象框架:理论修正和理论更新。理论修正处理将关于静态世界的新知识融入现有知识库,而理论更新则关注处理不断变化的世界。目前,理论更新领域的大部分工作集中在逐个修改模型上,通过所谓的修正程序来指定更新。
模型更新由更新规则和应用于未直接受更新程序影响的文字的惯性原则共同控制。然而,除了更新模型,还需要处理指定理论的程序的更新。逻辑程序编码的不仅仅是一组模型,还包括这些模型元素之间的关系。因此,本文主张将惯性原则应用于初始程序的规则,而非模型中的单个文字。
为了说明逻辑程序编码了模型元素之间的关系,以下是两个例子:
- 例 1 :正常程序 P 和其稳定模型 M 如下:
P : go home ← not money
go restaurant ← money
money ←
M = {money, go restaurant}
更新程序 U 表明某人被抢劫,抢劫后此人没钱了:
U : out(money) ← in(robbed)
in(robbed) ←
根据模型更新,得到的更新模型为:
MU = {robbed, go restaurant}
但