AI 一阶逻辑知识工程



AI 一阶逻辑知识工程

什么是知识工程?

首先构建知识库的过程顺序逻辑称为知识工程。在 knowledge-engineering 中,研究某个特定领域,学习该领域的重要概念并生成对象的形式表示的人称为 knowledge engineering 。
在本主题中,我们将了解已经熟悉的电子电路领域的知识工程过程。这种方法主要适合于创建专用知识库。

知识工程过程:

以下是一些主要步骤知识工程过程。使用这些步骤,我们将开发一个知识库,该知识库将使我们能够对数字电路(一位完全加法器)进行推理,该知识在下面给出

AI 一阶逻辑知识工程_https://bianchenghao6.com_【ai 教程】_第1张

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))表示。
我们使用一元谓词开(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

连接谓词是可交换的:

∀  t1, t2 Connect(t1, t2)  →  Connect (t2, t1)

门类型的表示法

∀  g Gate(g) ∧ r = Type(g) → r = OR ∨r = AND ∨r = XOR ∨r = NOT

当且仅当其任何输入为零时,"与"门的输出将为零。

∀  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   

当且仅当其输入不同时,"异或"门的输出为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之类的断言。