(3) 阅读 (3300)

推理引擎 编辑

词条创建者 匿名用户

什么是推理引擎

编辑

人工智能领域,推理引擎是将逻辑规则应用于知识库以推断出新信息的系统组件。xxx个推理引擎是专家系统的组件。典型的专家系统由知识库和推理引擎组成。知识库存储有关世界的事实。推理引擎将逻辑规则应用于知识库并推导出新知识。由于知识库中的每个新事实都可能触发推理引擎中的其他规则,因此该过程将重复进行。推理引擎主要以特殊规则或事实两种模式之一工作,前向链接和后向链接。前向链接从已知事实开始,然后断言新事实。向后链接从目标开始,并向后工作以确定必须断言哪些事实才能实现目标。

逻辑及示例

编辑

推理引擎使用的逻辑通常表示为IF-THEN规则。这种规则的一般格式是IF <逻辑表达式> THEN <逻辑表达式>。在开发专家系统和推理引擎之前,人工智能研究人员专注于更强大的定理证明者环境,该环境提供了更全面的一阶逻辑实现。例如,包含通用量化(对于所有X某些语句为真)和存在量化的常规语句(存在一些X,使得某些语句为true)。研究人员发现,这些定理证明环境的强大功能也是它们的缺点。创建逻辑表达式可能要花费不确定的甚至无限的时间来终止,这太容易了。例如,在通用量化中,对无穷集(例如所有自然数的集合)进行声明是很常见的。这样的陈述是完全合理的,甚至在数学证明中也是必需的,但是当包含在计算机上执行的自动定理证明器中时,可能会导致计算机陷入无限循环。专注于IF-THEN语句(逻辑学家称之为Modus Ponens)仍然为开发人员提供了一种非常强大的通用机制来表示逻辑,但是可以与计算资源一起有效地使用。

推理引擎

有关如何在推理引擎中使用此规则的简单示例如下。在前向链接中,推理引擎将在知识库中找到与Human(x)匹配的任何事实,并且对于发现的每个事实,推理引擎会将新信息Mortal(x)添加到知识库中。因此,如果它找到一个名为“苏格拉底”的人类物体,则可以推断出“苏格拉底”是“凡人”。在向后链接中,系统将有一个目标,例如回答问题是Socrates Mortal?它将搜索知识库,并确定苏格拉底是否是人类,如果可以,则断言他也是凡人。但是,在向后链接中,一种常见的技术是将推理引擎与用户界面集成在一起。通过这种方式,系统不再是简单地自动化,而是可以是交互式的。在这个简单的例子中,如果系统的目标是回答苏格拉底是否为真人,并且尚不知道他是否是人类,那么它将生成一个向用户询问“苏格拉底是人类吗?”的窗口。然后将相应地使用该信息。

这种将推理引擎与用户界面集成在一起的创新导致了专家系统的第二次早期发展:解释功能。知识作为规则而不是代码的显式表示形式使得有可能向用户生成解释。两种解释都是实时的和事后的。因此,如果系统询问用户“苏格拉底是人类吗?” 用户可能想知道为什么有人问她这个问题,而系统将使用规则链来解释为什么它当前正在尝试确定这一点知识:即,它需要确定Socrates是否是Mortal,而这样做需要确定他是否是人类。最初,这些解释与开发人员在调试任何系统时处理的标准调试信息没有太大不同。

推理引擎通过三个连续步骤循环:匹配规则,选择规则和执行规则。规则的执行通常会导致将新的事实或目标添加到知识库中,从而触发重复的循环。这个循环一直持续到没有新的规则可以匹配为止。

xxx步,匹配规则,推理引擎将找到由知识库的当前内容触发的所有规则。在前向链接中,引擎会寻找规则,其中前提(左侧)与知识库中的某些事实匹配。在向后链接中,引擎会寻找可以满足当前目标之一的前提条件。

在第二步选择规则中,推理引擎对匹配的各种规则进行优先排序,以确定执行它们的顺序。在最后一步,执行规则,引擎以步骤2中确定的顺序执行每个匹配的规则,然后再次迭代回到步骤1。循环一直持续到没有新规则匹配为止。

实现

编辑

早期的推理引擎主要专注于前向链接。这些系统通常以Lisp编程语言实现。Lisp由于其强大的符号操纵能力而成为早期AI研究的常用平台。此外,作为一种解释型语言,它提供了适合调试复杂程序的高效开发环境。这些好处的必然结果是,与当时的编译语言(例如C)相比,Lisp程序往往更慢且更不可靠。早期的一种常见方法是采用专家系统应用程序,并将用于该系统的推理引擎重新打包,以作为其他研究人员可用于开发其他专家系统的可重用工具。例如,MYCIN是用于医学诊断的早期专家系统,而EMYCIN是从MYCIN推断出来的推理引擎,可供其他研究人员使用。

随着专家系统从研究原型转移到已部署的系统,人们越来越关注速度和健壮性等问题。OPS5是最早的也是最受欢迎的正向链接引擎之一,它使用Rete算法来优化规则触发的效率。另一种非常流行的技术是Prolog逻辑编程语言。Prolog主要专注于向后链接,并且还具有各种商业版本以及针对效率和健壮性的优化。

随着专家系统引起了商业界对各种公司的极大兴趣,其中许多公司是由著名的AI研究人员创办或指导的,他们创建了推理引擎的产品版本。例如,Intellicorp最初是由Edward Feigenbaum指导的。这些推理引擎产品最初也经常是在Lisp中开发的。然而,对更实惠和商业上可行的平台的需求最终使个人计算机平台非常受欢迎。


内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/111515/

发表评论

登录后才能评论

词条目录
  1. 什么是推理引擎
  2. 逻辑及示例
  3. 实现

轻触这里

关闭目录

目录