默认逻辑(Default Logic)是人工智能知识表示领域的一种非单调逻辑系统,由雷蒙德·赖特(Raymond Reiter)于1980年提出。它通过引入“默认规则”(default rules)来形式化常识推理,允许在缺乏相反证据时做出合理但可被推翻的结论。默认逻辑的核心思想是:在默认情况下,某些命题成立,但遇到例外时结论可以被撤销。这种逻辑广泛应用于专家系统知识库推理和常识推理中,是处理不完备信息的重要工具。

1.1 非单调逻辑概述

非单调逻辑是相对于经典单调逻辑而言的一类逻辑系统。经典逻辑具有单调性:如果已知事实集合F能够推导出结论C,那么在F中添加任何新事实后,C仍然成立。然而,人类的日常推理往往是非单调的——人们会基于默认假设得出结论,但遇到新证据时可以撤回旧结论。例如,看到一只鸟,默认它会飞;但如果发现它是企鹅,则撤回“会飞”的结论。非单调逻辑正是为了模拟这种“可撤销推理”而设计的,默认逻辑是其中最具代表性的形式化系统之一。

1.2 默认逻辑的定义与动机

默认逻辑由雷蒙德·赖特于1980年提出,旨在解决知识表示中常识推理的形式化问题。传统逻辑要求知识完备且一致,但现实中的知识库往往不完整,且可能存在例外。赖特的动机是:设计一种逻辑系统,使得推理机能够在没有相反信息的情况下默认某些事实成立,同时保留应对例外情况的能力。这种逻辑不是简单地推出绝对真理,而是推出“通常如此”的结论,并允许在矛盾出现时进行调整

1.3 默认规则的组成

默认规则是默认逻辑的基本推理单元,它包含三个核心组成部分。

1.3.1 前提(Prerequisite)

前提是触发默认规则必须满足的条件。只有当前提成立时,默认规则才可能被应用。形式化表示为希腊字母α(alpha),它是一阶逻辑公式或命题逻辑公式。例如,在规则“如果X是鸟,则默认会飞”中,“X是鸟”就是前提。

1.3.2 正当性条件(Justification)

正当性条件是对结论的相容性检查。它不是一个必须为真的条件,而是要求该条件不与当前已知事实矛盾。形式上表示为希腊字母β(beta)。只有当正当性条件与当前扩展的已知事实一致(即不矛盾)时,默认规则才能被应用。例如,对于“鸟会飞”规则,正当性条件是“X能飞”——只要没有证据表明X不能飞,规则就可以应用。

1.3.3 结论(Consequent)

结论是默认规则被应用后推出的新事实,形式上表示为希腊字母γ(gamma)。结论不是绝对真理,而是基于默认假设推出的合理推断。在遇到矛盾时,结论可以被撤销。例如,规则应用后得出“X会飞”这一结论。

2.1 默认规则的形式表示

默认规则的标准形式写作:

α : β ───── γ

其中α是前提,β是正当性条件,γ是结论。该公式读作:“如果α成立,且β与当前知识一致(不矛盾),则可以推导出γ”。

2.1.1 闭默认规则与开默认规则

闭默认规则中不包含自由变量,所有变量都被量词约束或实例化为具体常量。例如,“如果Tweety是鸟,默认它会飞”是一条闭默认规则。开默认规则则包含自由变量,类似于带参数的模板,可以应用于多个个体。例如,“如果X是鸟,默认X会飞”是一条开默认规则,其中X是自由变量。实际应用中,开默认规则通常通过变量实例化转化为多条闭默认规则使用。

2.2 默认理论(Default Theory)

一个默认理论由二元组⟨W, D⟩构成,其中W是已知事实(一阶逻辑或命题逻辑公式集),D是默认规则集。W表示绝对确定的知识,D表示可废止的推理规则。默认理论是默认逻辑进行推理的初始基础。

2.2.1 世界知识(Facts)与默认规则集

世界知识W是逻辑上封闭的公式集合,代表推理者绝对相信的事实,例如“企鹅是鸟”、“所有鸟都有翅膀”。默认规则集D包含所有默认规则,例如“鸟会飞”、“哺乳动物有毛发”等。推理过程就是在W基础上,应用D中规则来扩展知识,同时保持一致性

2.3 扩展(Extension)的概念

扩展是默认理论推理的结果,即一个包含所有可推出的、一致的结论的集合。扩展是一个极大化的、逻辑封闭的、一致的公式集,它通过反复应用默认规则构造而成。

2.3.1 扩展的构造过程

构造扩展的过程是一个迭代的固定点算法:从初始事实W开始,反复考虑哪些默认规则可以应用(前提成立且正当性条件与当前集合一致),然后加入结论,直到没有更多规则可应用或出现矛盾。最终得到一个满足固定点条件的集合E,即扩展。形式上,E必须满足:E = Th(W ∪ {γ(α:β/γ)∈D, α∈E, ¬β∉E}),其中Th表示逻辑闭包

2.3.2 扩展的存在性与唯一性

一个默认理论可能没有扩展、恰好有一个扩展、或有多个扩展。当默认规则之间出现冲突时,不同的规则应用顺序可能导致不同的扩展。例如,已知“学生通常有手机”和“小学生通常没有手机”,对于一个小学生,两个规则都可应用但结论矛盾,从而产生两个互不相容的扩展。扩展的存在性不是必然的,当出现循环依赖或无法满足的一致性问题时,可能没有扩展。

3.1 默认推理的步骤

默认推理的基本步骤包括:检查前提、验证正当性条件、应用规则、检查一致性。具体流程为:先从世界知识W开始,对于每条默认规则,判断前提是否已被推导出或可从当前知识得出;然后检查正当性条件是否与当前推导集的结论一致;如果都满足,则加入结论;重复此过程直到所有可应用的规则都被应用或遇到矛盾。

3.1.1 固定点迭代

固定点迭代法是一种系统化的扩展构造算法。它从E₀ = Th(W)开始,第i+1步:从D中选择所有满足α∈Eᵢ且¬β∉Eᵢ的规则,应用它们得到结论集,取逻辑闭包得到Eᵢ₊₁,然后检查一致性。重复直到Eᵢ = Eᵢ₊₁,即达到固定点,此时Eᵢ就是扩展。如果中途出现不一致(即Eᵢ含有矛盾),则算法回溯并尝试不同的规则应用顺序。

3.2 扩展的判定问题

判定一个公式是否属于某个扩展是计算上的难题。这涉及检查是否存在一个规则应用序列能够使该公式被推导出,同时保持一致性。

3.2.1 可满足性检查

在每一步中,需要检查当前推导集与规则正当性条件的一致性。这本质上是对世界知识和已推导结论进行可满足性(SAT)问题的求解。如果检查结果不一致,则当前应用序列无效,需要回溯寻找其他顺序。

3.2.2 扩展的枚举算法

枚举所有扩展的算法通常采用深度优先搜索:每个节点代表当前推导集,每条分支代表应用一条默认规则或跳过它。算法系统地探索所有可能的规则应用顺序,记录每次达到固定点的结果。剪枝策略(如冲突检测)用于减少搜索空间。由于扩展数量可能呈指数级增长,算法在最坏情况下复杂度较高。

3.3 与经典逻辑的关系

默认逻辑建立在经典一阶逻辑的基础上,世界知识W和任何扩展都是经典逻辑的公式集。

3.3.1 默认逻辑与一阶逻辑的对比

经典一阶逻辑是单调的:如果F⊨C,则F∪{新事实}⊨C。默认逻辑是非单调的:即使从⟨W, D⟩推出C,添加新事实后可能无法再推出C。经典逻辑要求所有前提必须显式给出,而默认逻辑允许用默认规则隐式地假设信息。经典逻辑的结论是绝对的,默认逻辑的结论是可废止的。

3.3.2 非单调性证明

非单调性可以通过一个简单例子证明:设W = {企鹅(Tweety),鸟(Tweety)},D = {鸟(X):会飞(X)/会飞(X)}。在只考虑W和D时,默认规则可应用,得到扩展包含“会飞(Tweety)”。现在向W添加新事实“¬会飞(Tweety)”,则默认规则的正当性条件“会飞(Tweety)”与W矛盾,规则不再可用,扩展中不再包含“会飞(Tweety)”。这表明默认推理不是单调的:增加知识可能减少结论。

4.1 “鸟会飞”默认规则

“鸟会飞”是默认逻辑最经典的例子。默认规则表示为:鸟(X):会飞(X)/会飞(X)。前提是X是鸟,正当性条件是会飞(X)不与已知事实矛盾,结论是X会飞。给定事实“鸟(Tweety)”,且没有相反证据时,推理会得出Tweety会飞。

4.1.1 典型例子:企鹅例外

引入例外:已知企鹅是鸟(企鹅(X)→鸟(X)),且已知企鹅不会飞(企鹅(X)→¬会飞(X))。设W包含“企鹅(Polly)”和“鸟(Polly)”,则D中的规则虽然前提成立,但正当性条件“会飞(Polly)”与“¬会飞(Polly)”矛盾,因此规则被阻止应用。最终扩展不包含“会飞(Polly)”。这是默认逻辑处理例外的典型方式。当然,如果你非要拿一只炖熟的鸭子问它怎么飞,教练也只能表示带不动。

4.2 “奎克”药物副作用示例

假设规则:“如果病人服用奎克药物,默认会头痛(除非有抗药性)”。规则形式:服用奎克(X):头痛(X)/头痛(X)。知识库中已知“患者张三服用奎克”,且不知道张三是否有抗药性,则推理得出“张三会头痛”。如果后来发现张三具有抗药性(即¬头痛(张三)),则规则不可用,结论被撤回。

4.3 预设推理与常识

预设推理是语言理解中的常见现象,默认逻辑可以形式化这类推理。例如,句子“张三的自行车被偷了”预设张三有自行车。默认规则可表示为:被偷(X):拥有(X)/拥有(X)(不能说被偷却没有)。结合常识:“人通常拥有自行车”、“偷窃导致失去”等,默认逻辑能推理出合理的预设信息。如果发现张三根本没钱买车,预设即被撤销。

5.1 半默认逻辑(Semi-Default Logic)

半默认逻辑对默认规则中的正当性条件进行了限制,要求正当性条件必须是原子公式或其否定,简化了语义。这种变体降低了计算的复杂性,更易实现。

5.2 约束默认逻辑(Constrained Default Logic)

约束默认逻辑通过引入“约束集”来管理一致性的范围。在应用规则时,不但要保证结论与当前推导集一致,还要保证结论与所有已应用的正当性条件一致。这种做法避免了某些不符合直觉的扩展。

5.3 积累默认逻辑(Cumulative Default Logic)

积累默认逻辑要求推理是“累积的”:如果一个结论可以从某一阶段推出,那么即使后续加入更多的默认规则(不冲突的情况下),该结论仍应保持。这种变体增强了推理的稳定性。

5.4 概率默认逻辑(Probabilistic Default Logic)

概率默认逻辑将概率论引入默认逻辑,允许默认规则带有置信度或概率值。例如,“大多数鸟会飞”可以用概率规则表示:鸟(X):会飞(X)/会飞(X)[0.95]。这种变体结合了统计信息与默认推理。

6.1 专家系统与知识工程

默认逻辑是专家系统知识表示的重要工具。在医学诊断、地质勘探等系统中,经常需要基于不完备信息做出假设推理。例如,一个医学专家系统可以有默认规则:“如果病人有发热和咳嗽,默认为感冒,除非有更特异症状”。系统能够处理例外并动态调整诊断。

6.2 自然语言理解中的默认推理

在自然语言处理中,默认逻辑用于消解歧义、推导预设和隐含信息。例如,理解“约翰敲了敲门,但没人应声”时,系统默认有人应声才合理,但这里默认被撤销。默认逻辑形式化了这种常识性推导。

6.3 诊断与故障排除

在故障诊断中,系统默认各组件正常工作,只有在出现异常时才推断故障原因。默认规则可表达为:“如果设备不工作,且电源灯亮,默认故障在内部电路,除非有外部干扰”。这种推理方式支持高效地定位问题。

6.4 法律与规则推理

法律推理涉及大量默认规则:法律条文通常有例外条款。默认逻辑可以形式化“通常适用A条款,除非符合B例外”的推理过程,辅助法律专家系统进行案例分析与裁决建议。

7.1 赖特的原始论文(1980)

雷蒙德·赖特于1980年在《人工智能》期刊上发表《A Logic for Default Reasoning》,首次提出默认逻辑。该论文从常识推理中的非单调性现象出发,给出了默认逻辑的完整形式化定义、语义(基于扩展)以及若干基本性质。这篇论文是非单调推理领域的里程碑,奠定了现代常识推理研究的基础。

7.2 与其他非单调逻辑的比较

默认逻辑一诞生就引发了与其他非单调逻辑系统的比较研究,促成了对非单调推理本质的更深入理解。

7.2.1 与封闭世界假设的比较

封闭世界假设(CWA)是一种简单的非单调推理:如果一个事实没被知识库证明为真,则默认它为假。默认逻辑比CWA更灵活:CWA对所有未知事实进行统一的否定假设,而默认逻辑允许对特定类型的公式应用不同的默认规则。CWA可能导致不一致(在知识库不完备时),而默认逻辑通过多个扩展管理冲突。

7.2.2 与缺省逻辑(如Autoepistemic Logic)的关系

缺省逻辑(Autoepistemic Logic)是一种基于认识论的非单调逻辑,它使用“相信”的模态算符来表达推理。缺省逻辑认为“我不知道P不成立”是推出P的基础。默认逻辑与缺省逻辑在表达能力上等价(可以相互编码),但推理机制不同:缺省逻辑依赖认知稳定性和嵌套知识,默认逻辑依赖规则应用和扩展。赖特本人曾与摩尔(Moore,缺省逻辑的提出者)进行过深入讨论。

7.3 后续发展与研究方向

自1980年代以来,默认逻辑的研究持续深入。主要方向包括:计算复杂性分析与高效算法(如扩展的启发式搜索)、与概率推理的融合(如概率默认逻辑)、在语义网和本体推理中的应用、以及与机器学习中“默认类偏置”的结合。近年来,研究者也尝试将默认逻辑用于解释性人工智能(XAI)和可微推理网络。

默认逻辑的影响远远超出人工智能领域,其思想被借鉴到数据库理论(默认值约束)、认知科学(信念修正)和哲学(可废止推理)等多个学科。即使在今天,每当需要在不完备信息下做出合理推断并保留例外修正能力时,默认逻辑依然是技术工具箱中的经典选择。