一阶逻辑中的人工智能知识工程

本文概述

  • 什么是知识工程?
  • 知识工程过程
什么是知识工程?用一阶逻辑构造知识库的过程称为知识工程。在知识工程中,研究特定领域,学习该领域的重要概念并生成对象的形式表示的人称为知识工程师。
在本主题中,我们将了解已经熟悉的电子电路领域的知识工程过程。此方法主要适合于创建专用知识库。
知识工程过程以下是知识工程过程的一些主要步骤。使用这些步骤,我们将建立一个知识库,使我们能够对数字电路(一位全加法器)进行推理,如下所示
一阶逻辑中的人工智能知识工程

文章图片
1.确定任务:
该过程的第一步是确定任务,对于数字电路,有各种推理任务。
在第一层或最高层,我们将检查电路的功能:
  • 电路是否正确添加?
  • 如果所有输入均为高电平,则门A2的输出将是什么?
【一阶逻辑中的人工智能知识工程】在第二级,我们将检查电路结构细节,例如:
  • 哪个门连接到第一个输入端子?
  • 电路是否有反馈回路?
2.汇总相关知识:
在第二步中,我们将收集数字电路所需的相关知识。因此,对于数字电路,我们具有以下必需的知识:
  • 逻辑电路由导线和门组成。
  • 信号通过导线流到栅极的输入端子,每个栅极产生相应的输出,该输出进一步流动。
  • 在该逻辑电路中,使用了四种类型的门:AND,OR,XOR和NOT。
  • 所有这些门都有一个输出端子和两个输入端子(非门除外,它只有一个输入端子)。
3.决定词汇:
该过程的下一步是选择函数,谓词和常量以表示电路,端子,信号和门。首先,我们将把大门与其他物体区分开。每个门都表示为一个由常量命名的对象,例如Gate(X1)。每个门的功能取决于其类型,该类型被视为诸如AND,OR,XOR或NOT之类的常数。电路将由谓词标识:电路(C1)。
对于终端,我们将使用谓词:Terminal(x)。
对于门输入,我们将使用函数In(1,X1)表示门的第一个输入端子,对于输出端子,我们将使用Out(1,X1)。
函数Arity(c,i,j)用于表示电路c具有i输入,j输出。
门之间的连通性可以用谓词Connect(Out(1,X1),In(1,X1))表示。
我们使用一元谓词On(t),如果终端上的信号打开,则为true。
4.编码有关该领域的常识:
要编码有关逻辑电路的常识,我们需要遵循以下规则:
  • 如果连接了两个端子,则它们具有相同的输入信号,可以表示为:
?t1, t2 Terminal (t1) ∧ Terminal (t2) ∧ Connect (t1, t2) → Signal (t1) = Signal (2).

  • 每个端子上的信号值为0或1,将表示为:
?t Terminal (t) →Signal (t) = 1 ∨Signal (t) = 0.

  • Connect谓词是可交换的:
?t1, t2 Connect(t1, t2)→Connect (t2, t1).

  • 闸门类型的表示:
?g Gate(g) ∧ r = Type(g) → r = OR ∨r = AND ∨r = XOR ∨r = NOT.

  • 当且仅当其任何输入为零时,AND门的输出才会为零。
?g Gate(g) ∧ Type(g) = AND →Signal (Out(1, g))= 0 ??n Signal (In(n, g))= 0.

  • 当且仅当其任何输入为1时,或门的输出为1:
?g Gate(g) ∧ Type(g) = OR → Signal (Out(1, g))= 1 ??n Signal (In(n, g))= 1

  • 当且仅当其输入不同时,XOR门的输出才为1:
?g Gate(g) ∧ Type(g) = XOR → Signal (Out(1, g)) = 1 ?Signal (In(1, g)) ≠ Signal (In(2, g)).

  • 非门的输出是其输入的反相:
?g Gate(g) ∧ Type(g) = NOT →Signal (In(1, g)) ≠ Signal (Out(1, g)).

  • 上述电路中的所有门都有两个输入和一个输出(非门除外)。
?g Gate(g) ∧ Type(g) = NOT →Arity(g, 1, 1) ?g Gate(g) ∧ r =Type(g)∧ (r= AND ∨r= OR ∨r= XOR) →Arity (g, 2, 1).

  • 所有门都是逻辑电路:
?g Gate(g) → Circuit (g).

5.编码问题实例的描述:
现在我们对电路C1的问题进行编码,首先我们对电路及其门极组件进行分类。如果已经考虑了有关该问题的本体,则此步骤很容易。此步骤涉及编写概念实例的简单原子语句,这称为本体。
对于给定的电路C1,我们可以使用原子语句对问题实例进行编码,如下所示:
由于电路中有两个XOR,两个AND和一个OR门,因此这些门的原子语句为:
For XOR gate: Type(x1)= XOR, Type(X2) = XOR For AND gate: Type(A1) = AND, Type(A2)= AND For OR gate: Type (O1) = OR.

然后代表所有门之间的连接。
注意:本体论定义了关于存在本质的特定理论。6.对推理过程进行查询并获得答案:
在这一步中,我们将找到加法器电路所有端子的所有可能值集。第一个查询将是:
输入将生成电路C1的第一输出为0而第二输出为1的输入的组合是什么?
? i1, i2, i3 Signal (In(1, C1))=i1∧Signal (In(2, C1))=i2∧ Signal (In(3, C1))= i3 ∧ Signal (Out(1, C1)) =0 ∧ Signal (Out(2, C1))=1

7.调试知识库:
现在,我们将调试知识库,这是整个过程的最后一步。在这一步中,我们将尝试调试知识库问题。
在知识库中,我们可能省略了诸如1≠0之类的断言。

    推荐阅读