人工智能中的正向链与反向链

2025年6月10日 | 阅读 9 分钟

在人工智能中,正向链和反向链是一个重要的话题,但在理解正向链和反向链之前,我们先来了解一下这两个术语的来源。

推理引擎是智能系统中用于将逻辑规则应用于知识库以从已知事实推断新信息的组件。第一个推理引擎是专家系统的一部分。推理引擎通常有两种模式,即

  1. 正向链接(Forward Chaining)
  2. 反向链接(Backward Chaining)

Horn 子句和确定子句

Horn 子句和确定子句是能够使知识库使用更受限制且更有效的推理算法的语句形式。逻辑推理算法使用正向链和反向链方法,这需要 KB 是第一阶确定子句的形式。

  • 确定子句: 一个子句,它是文字的析取,并且只有一个正文字,称为确定子句或严格 Horn 子句。
  • Horn 子句: 一个子句,它是文字的析取,并且最多有一个正文字,称为 Horn 子句。因此,所有确定子句都是 Horn 子句。

示例

(¬ p V ¬ q V k)

它只有一个正文字 k。

它等价于 p ∧ q → k。

1. 正向链

在使用推理引擎时,正向链也称为正向推导或正向推理方法。正向链是一种推理形式,它从知识库中的原子句开始,并沿正向应用推理规则(Modus Ponens)来提取更多数据,直到达到目标。

正向链算法从已知事实开始,触发所有前提满足的规则,并将它们的结论添加到已知事实中。此过程重复进行,直到问题解决。

正向链的属性

  • 它是一种自下而上的方法,因为它从底部移动到顶部。
  • 它是通过从初始状态开始并达到目标状态来根据已知事实或数据得出结论的过程。
  • 正向链方法也称为数据驱动,因为我们使用可用数据来达到目标。
  • 正向链方法通常用于专家系统,例如 CLIPS、商业系统和生产规则系统。
  • 考虑以下我们将用于两种方法的著名示例

示例

“根据法律,美国人向敌对国家出售武器是犯罪。A国是美国的敌人,拥有一些导弹,所有这些导弹都是由美国公民罗伯特卖给它的。”

证明“罗伯特是罪犯。”

为了解决上述问题,我们将首先把所有事实转换为第一阶确定子句,然后使用正向链算法来达到目标。

事实转换为 FOL

美国人向敌对国家出售武器是犯罪。(假设 p、q 和 r 是变量)

A 国拥有一些导弹。?p Owns(A, p) ∧ Missile(p)。通过使用存在实例化,引入一个新常量 T1,可以将其写成两个确定子句。

所有导弹都是罗伯特卖给 A 国的。

导弹是武器。

美国的敌人被称为敌对。

A 国是美国的敌人。

罗伯特是美国人。

正向链证明

步骤 1

第一步,我们将从已知事实开始,选择不包含蕴含的句子,例如 American(Robert)、Enemy(A, America)、Owns(A, T1) 和 Missile(T1)。所有这些事实将如下所示。

Forward Chaining and Backward Chaining in AI

步骤 2

第二步,我们将看到那些可以从现有事实推断出来且前提得到满足的事实。

规则-(1) 不满足前提,因此在第一次迭代中不会添加它。

规则(2) 和 (3) 已添加。

规则-(4) 满足替换 {p/T1},因此添加了 Sells (Robert, T1, A),该规则是从规则(2) 和 (3) 的合取推断出来的。

规则-(6) 满足替换 (p/A),因此添加了 Hostile(A),该规则是从规则-(7) 推断出来的。

Forward Chaining and Backward Chaining in AI

步骤 3

在第三步,我们可以看到规则-(1) 满足替换 **{p/Robert, q/T1, r/A}**,因此我们可以添加 **Criminal(Robert)**,它推断出所有可用事实。因此,我们达到了目标陈述。

Forward Chaining and Backward Chaining in AI

因此,通过正向链方法证明了罗伯特是罪犯。

正向链的应用

在专家系统中的应用

示例

在医学诊断系统中,正向链用于将患者的症状与疾病和症状的知识库进行比较。根据提供的事实(例如,“患者发烧并有皮疹”),系统通过规则将输入事实与可能的诊断联系起来。

其他用途

正向链常用于化工过程控制、财务分析和技术系统故障排除等行业的专家系统的决策。

实际应用

诊断系统:正向链传统上应用于各种领域的诊断工具

  • 医疗保健:例如,MYCIN 等系统使用正向链,列出可能的感染和治疗方案。
  • 汽车:车辆中使用的诊断工具利用正向链从传感器数据中检测发动机故障等问题。
  • 配置问题:为了使复杂系统的配置自动化,使用了正向链,例如
  • 网络配置:它有助于在大型 IT 网络中建立理想的路由和接口。
  • 制造系统:它根据生产约束自动化机器。

优点和局限性

正向链的优点

  • 数据驱动方法:正向链从已知数据开始,并使用推理规则推导出所有可能的结论。
  • 实时处理:该方法在需要快速决策的场合(如控制和监控系统)表现出色。
  • 易于自动化:正向链的基于规则的性质使其易于在诊断等领域自动化,这些领域会出现可预测的决策模式。
  • 可扩展性:只要系统经过适当优化,它就可以处理大型规则库和数据集。

缺点和挑战

  • 规则爆炸:在复杂的系统中,规则数量的激增可能会呈指数级增长,因此,在跟上规则库方面存在挑战。
  • 效率问题:正向链可能效率低下,因为它可能会生成与所关注问题无关的结论,从而浪费计算资源。
  • 依赖完整数据:该方法依赖于完整且准确的数据。事实的缺失或错误可能导致不完整或不正确的结论。
  • 维护复杂性:在新规则的扩展或大型系统中使用的法规的修改可能会破坏推理过程并导致不一致。
  • 非目标导向:与反向链相反,正向链不一定是目标驱动的,因此在目标导向的推理中效率不高。

2. 反向链

在使用推理引擎时,反向链也称为反向推导或反向推理方法。反向链算法是一种推理形式,它从目标开始,并通过规则反向链工作,以找到支持目标的已知事实。

反向链的属性

  • 它被称为自顶向下的方法。
  • 反向链基于 modus ponens 推理规则。
  • 在反向链中,目标被分解为子目标或子目标,以证明事实的真实性。
  • 它被称为目标驱动方法,因为目标列表决定了选择和使用哪些规则。
  • 反向链算法用于博弈论、自动定理证明工具、推理引擎、证明助手和各种人工智能应用。
  • 反向链方法主要使用 深度优先搜索 策略进行证明。

示例

在反向链中,我们将使用上面相同的示例并重写所有规则。

  1. American (p) ∧ weapon(q) ∧ sells (p, q, r) ∧ hostile(r) → Criminal(p) ...(1)
  2. Owns(A, T1) ........(2)
  3. Missile(T1)
  4. ?p Missiles(p) ∧ Owns (A, p) → Sells (Robert, p, A) ......(4)
  5. Missile(p) → Weapons (p) .......(5)
  6. Enemy(p, America) →Hostile(p) ........(6)
  7. Enemy (A, America) .........(7)
  8. American(Robert). ..........(8)

反向链证明

在反向链中,我们将从目标谓词 **Criminal(Robert)** 开始,然后推断出其他规则。

步骤 1

第一步,我们将获取目标事实。从目标点,我们将推断出其他事实,最后,我们将证明这些事实为真。所以我们的目标事实是“罗伯特是罪犯”,所以以下是它的谓词。

Forward Chaining and Backward Chaining in AI

步骤 2

第二步,我们将从满足规则的目标事实中推断出其他事实。所以,正如我们在规则-1 中看到的,目标谓词 Criminal (Robert) 存在于替换 {Robert/P} 中。所以,我们将所有合取的子句添加到第一层下方,并将 p 替换为 Robert。

这里,我们可以看到 American (Robert) 是一个事实,所以它在这里被证明了。

Forward Chaining and Backward Chaining in AI

步骤 3

第三步,我们将提取子句 Missile(q),该子句是从 Weapon(q) 推断出来的,因为它满足规则-(5)。Weapon (q) 也与 q 处的常量 T1 的替换为真。

Forward Chaining and Backward Chaining in AI

步骤 4

第四步,我们可以从 Sells(Robert, T1, r) 推断出事实 Missile(T1) 和 Owns(A, T1),这满足规则 4,其中 A 被替换为 r。所以,这两个陈述在这里被证明了。

Forward Chaining and Backward Chaining in AI

第五步

在第五步,我们可以从 Hostile(A) 推断出事实 **Enemy(A, America)**,它满足规则 6。因此,所有陈述都通过反向链被证明为真。

Forward Chaining and Backward Chaining in AI

反向链的应用

在问题解决系统中的应用

  • 诊断专家系统:反向链广泛应用于诊断专家系统,例如医学诊断工具。例如,如果发烧是目标(即症状),系统将通过追溯将症状与诊断联系起来的规则来查找疾病。
  • 法律和合规系统:在法律和监管要求中,反向链用于确定某个行动或流程是否符合必要的法律要求,从适用的规则开始。
  • 故障排除工具:利用反向链从观察到的问题追溯到根本原因以解决技术问题的系统使用此类模型。

实际应用

  • 查询系统:反向链的应用在数据库查询系统和基于知识的应用程序中非常普遍。例如,如果用户要求系统查找某些信息,反向链会衡量数据是否符合查询标准。
  • 规划和调度:在规划系统中,反向链确定为实现给定结果所需执行的步骤。
  • 项目管理软件:确定项目里程碑的先决任务。
  • 人工智能驱动的任务调度:创建一系列动作以在机器人或物流等领域执行复杂任务。
  • 基于规则的人工智能系统:反向链常用于智能系统中,用于快递服务的计划和路线优化活动,或在自动化工业环境中创建工作流。

优点和局限性

反向链的优点

  • 目标驱动策略:当最终目标描述清晰时,反向链表现良好。通过仅关注所需结果所需的规则和数据,它不会执行不必要的计算。
  • 高效利用资源:与正向链消耗所有可能性集不同,反向链将搜索空间缩小到满足目标所需的范围。
  • 适应复杂规则集:反向链在处理复杂的层次化规则系统和将目标分解为更易于管理的目标方面表现成功。

缺点和挑战

  • 依赖规则的完整性:反向链非常依赖于精确且完整的规则库。规则的缺失或不完整可能导致错误的判断或不完整的判断。
  • 多目标计算限制:在具有相互依赖目标的多目标系统中,反向链的计算量可能很大。它必须评估不同的可能性,这可能导致处理时间增加。
  • 处理大型数据集的困难:当反向链系统用于大型数据集或高度互联的规则时,它们可能无法从大量的逻辑链中追溯。
  • 与不确定数据不兼容:概率推理 系统不像反向链那样需要精确数据。在信息模糊和不完整的领域(例如,未来事件的预测)中,它的效果较差。