本文概述
- 什么是知识工程?
- 知识工程过程
在本主题中,我们将了解已经熟悉的电子电路领域的知识工程过程。此方法主要适合于创建专用知识库。
知识工程过程以下是知识工程过程的一些主要步骤。使用这些步骤,我们将建立一个知识库,使我们能够对数字电路(一位全加法器)进行推理,如下所示
文章图片
1.确定任务:
该过程的第一步是确定任务,对于数字电路,有各种推理任务。
在第一层或最高层,我们将检查电路的功能:
- 电路是否正确添加?
- 如果所有输入均为高电平,则门A2的输出将是什么?
- 哪个门连接到第一个输入端子?
- 电路是否有反馈回路?
在第二步中,我们将收集数字电路所需的相关知识。因此,对于数字电路,我们具有以下必需的知识:
- 逻辑电路由导线和门组成。
- 信号通过导线流到栅极的输入端子,每个栅极产生相应的输出,该输出进一步流动。
- 在该逻辑电路中,使用了四种类型的门:AND,OR,XOR和NOT。
- 所有这些门都有一个输出端子和两个输入端子(非门除外,它只有一个输入端子)。
该过程的下一步是选择函数,谓词和常量以表示电路,端子,信号和门。首先,我们将把大门与其他物体区分开。每个门都表示为一个由常量命名的对象,例如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之类的断言。
推荐阅读
- 一阶逻辑中的人工智能推理
- 人工智能中的一阶逻辑
- wumpus世界人工智能知识库
- 人工智能的wumpus世界
- 人工智能的推理规则
- 人工智能中的命题逻辑
- 知识表示的人工智能技术
- 人工智能中的知识表示
- 人工智能中的基于知识的代理