逻辑程序的知识表示:偏好与析取的扩展
1. 逻辑程序基础与偏好处理的引入
在逻辑程序中,我们常常需要处理各种规则和信息,以得出合理的结论。在这个过程中,默认规则之间的偏好起着至关重要的作用。
1.1 偏好的动机
在非单调推理中,默认规则之间的偏好是一个关键因素。特异性是偏好的一个重要来源,例如,当我们知道学生是成年人,成年人通常有工作,而学生通常没有工作时,如果得知彼得是学生,我们会倾向于得出“彼得没有工作”的结论,因为学生这个默认规则更具体,提供了更可靠的信息。
然而,特异性并非偏好的唯一来源。在法律领域,更一般的规则可能由于代表联邦法律而比州法律更受青睐。在其他应用领域,如基于模型的诊断或配置,偏好也起着根本性的作用。
以往的非单调逻辑中,偏好通常以“外部”方式处理,即通过默认规则的排序来控制非单调结论的生成,但偏好信息本身并未在逻辑语言中表达。我们希望进一步将这种信息纳入逻辑语言,以便不仅能基于偏好进行推理,还能对偏好本身进行推理,这在法律论证等情境中尤为必要。
1.2 处理偏好的准备工作
为了处理偏好,我们需要在逻辑语言中明确表达偏好信息,为此对语言进行了两方面扩展:
- 使用规则名称集合 $N$ 和命名函数 $name$,以便引用特定规则。
- 使用特殊的中缀符号 $\prec$ 来表示规则之间的偏好,例如 $n_1 \prec n_2$ 表示名称为 $n_1$ 的规则比名称为 $n_2$ 的规则更受偏好。
1.3 优先程序的定义
优先逻辑程序是一个二元组 $(R, name)$,其中:
- $R$ 是一组规则