本文旨在讲清楚:
1)KBA(knowledge based agent)与逻辑
2)模型,有效性,可满足性,蕴含,推理过程
3)如何证明KB蕴含a(模型检验,逻辑等价,推理规则)
基于知识的Agent的核心部件是其知识库,或称KB。
知识库(KB):是一个语句(用知识表示语言表达,表示了关于世界的某些断言)集合。有时,当某语句是直接给定而不是推导得到的时候,我们将其尊称为公理。
Ask:查询目前所知内容
Tell:将新语句添加到知识库
二者都涉及推理,即从原有语句中推导出新语句。
KBA(Knowledge based agent),即基于知识的Agent,通过感知器,把感知信息加入知识库,向知识库询问最好改采取哪个行动,并告诉知识库它会实施该行动。
PEAS描述:
Wumpus world can be solved using logic:
一个知识库KB就是句子构成的集合。
一个模型m是一个知识库的模型当且仅当这个模型是知识库中所有句子的模型。也就是说在知识库中的所有句子在模型m下都是真的。
例如:
KB={P, P∨R}
M(KB)={“P=T,R=T”,“P=T,R=F”}
一个知识库KB是可满足的当且仅当这个知识库的模型M(KB)是非空集合。即,一个知识库KB是不可满足的当且仅当这个知识库的模型M(KB)是空集。
KB1 = {P, ¬Q∧ R} is satisfiable
KB2 = {¬P∨RP} is satisfiable
KB3 = {P, ¬P} is unsatisfiable
知识库KB蕴含α:KB ╞ α,
x+y = 4 ╞ 4 = x+y ? (yes)
x^2 +y^2 <=4 ╞ x^2 +y^2 <=16 ? (yes)
P ╞ P ∧ R ? (no)
KB ╞ α
推理算法i从KB中导出语句α或语句α通过i从KB导出记为: K B ⊢ i α KB \vdash_i \alpha KB⊢iα
Soundness(可靠性):对于推理过程i从KB推理出的每条语句α,都有KB╞α,则i是可靠的或真值保持的
Completeness(完备性):对于KB蕴涵的每条语句α,推理过程i都能从KB推理出α,则i是完备的
原子语句:单个命题词组成,每个命题词代表一个真或假的命题
复合句:简单语句和逻辑连接词构造而成
文字:原子命题及其否定。
互补文字:一个文字是另一文字的否定。
子句:文字的析取式。单个文字可以被视为只有一个文字的析取式,也叫单元子句。
归并:去除文字的多余副本。
5种常用逻辑连接词:
1)非 ¬,否定式
2)与 ∧,合取式
3)或 ∨,析取式
4)蕴含 ⇒或→或⊃,蕴含式
蕴含式也称为规则或if-then语句。
5)当且仅当 ⇔(英文:If and only if, 或者:iff),双向蕴含式
定义了用于判定特定模型中的语句真值的规则。在命题逻辑里面,命题词的真值只有两个——true或false。
模型:语句α在模型m中为真,称m满足α,或者m是α的一个模型。M(α)表示α的所有模型。
考虑一个具有四个命题A、B、C、D的词表,对于下列语句分别有多少个模型?
(1)⇒表示语言的一个组成部分
语句P⇒Q只有当P=true,Q=false时为False,其余为True。
P⇒Q等价于¬P∨Q
不要有P为真则Q为真的错觉
命题逻辑不要求P和Q之间存在相关性或因果关系。例如,语句“5是奇数蕴含北京是中国的首都”是命题逻辑的真语句
前提为假的任意蕴含都为真
(2)╞表示推理,语句间的逻辑蕴含关系
逻辑蕴含关系类似于算术:语句x=0蕴含了语句xy=0。
α╞β(蕴含)当且仅当在使α为真的每个模型中,β也为真。
α╞β 当且仅当 M(α) ⊆ M(β)
P⇒Q为假,除非P在m中为真且Q在m中为假
对任意语句α和β,α╞β 当且仅当语句α⇒β是有效的
对任意语句α和β,α╞β 当且仅当语句α∧¬β是不可满足的
逻辑推理:用蕴含推导出结论
模型检验:通过枚举所有可能的模型来检验KB为真的情况下α都为真,即M(KB) ⊆ M(α)
有效性:一个语句是有效的,如果在所有的模型中它都为真。(有效语句也叫重言式——必定为真)例如¬P∨P为有效的
对任意语句α和β,α╞β 当且仅当语句α⇒β是有效的
可满足性:如果一个语句在某些模型中为真,则可满足。
对任意语句α和β,α╞β 当且仅当语句α∧¬β是不可满足的
SAT问题:命题逻辑语句的可满足性判定。是第一个被证明为NP完全的问题。(如CSP,就是询问在某个赋值下约束是否满足的)
单调性:逻辑蕴含语句集会随着添加到知识库的信息的增长而增长。
对任意语句α和β,如果KB╞α,那么KB∧β╞α
推导规则:
1)假言推理规则(Modus Ponens,拉丁文)
α ⇒ β , α β \frac{\alpha \Rightarrow \beta , \alpha}{\beta} βα⇒β,α
2)消去合取词
α ∧ β α \frac{\alpha \wedge \beta}{\alpha} αα∧β
3)逻辑等价
逻辑等价:如果两个语句在同样的模型集合中为真,则二者逻辑等价。
α ⇔ β ≡ ( α ⇒ β ) ∧ ( β ⇒ α ) \alpha \Leftrightarrow \beta \equiv (\alpha \Rightarrow \beta) \wedge (\beta \Rightarrow \alpha) α⇔β≡(α⇒β)∧(β⇒α)
α ⇔ β ( α ⇒ β ) ∧ ( β ⇒ α ) \frac{\alpha \Leftrightarrow \beta}{(\alpha \Rightarrow \beta) \wedge (\beta \Rightarrow \alpha)} (α⇒β)∧(β⇒α)α⇔β
( α ⇒ β ) ∧ ( β ⇒ α ) α ⇔ β \frac{(\alpha \Rightarrow \beta) \wedge (\beta \Rightarrow \alpha)}{\alpha \Leftrightarrow \beta} α⇔β(α⇒β)∧(β⇒α)
任意搜索算法来找出证明序列,只需定义如下证明问题:
(这叫搜索证明,是模型枚举的一个替代方法)
若每个l都是一个文字,而且 l i l_i li和m是互补文字,则有:
l 1 ∨ . . . ∨ l k , m l 1 ∨ . . . ∨ l i − 1 ∨ l i + 1 ∨ , . . . , ∨ l k \frac{l1 \vee... \vee l_k,m}{l1 \vee...\vee l_{i-1} \vee l_{i+1} \vee ,..., \vee l_k} l1∨...∨li−1∨li+1∨,...,∨lkl1∨...∨lk,m
l i l_i li和 m j m_j mj是互补文字:
l 1 ∨ . . . ∨ l k , m 1 ∨ . . . ∨ m n l 1 ∨ . . . ∨ l i − 1 ∨ l i + 1 ∨ , . . . , ∨ l k ∨ m 1 ∨ . . . ∨ m j − 1 ∨ m j + 1 ∨ . . . ∨ m n \frac{l_1 \vee... \vee l_k, m_1 \vee ... \vee m_n}{l_1 \vee...\vee l_{i-1} \vee l_{i+1} \vee ,..., \vee l_k \vee m_1 \vee ... \vee m_{j-1} \vee m_{j+1} \vee ... \vee m_n} l1∨...∨li−1∨li+1∨,...,∨lk∨m1∨...∨mj−1∨mj+1∨...∨mnl1∨...∨lk,m1∨...∨mn
归结规则的可靠性证明:已知 l 1 ∨ . . . ∨ l k 和 m 1 ∨ . . . ∨ m n l_1 \vee... \vee l_k 和m_1 \vee ... \vee m_n l1∨...∨lk和m1∨...∨mn,则这两个子句为真。如果 l i l_i li为真,则由于是互补文字知 m j m_j mj为假,则 m 1 ∨ . . . ∨ m j − 1 ∨ m j + 1 ∨ . . . ∨ m n m_1 \vee ... \vee m_{j-1} \vee m_{j+1} \vee ... \vee m_n m1∨...∨mj−1∨mj+1∨...∨mn必为真。如果 l i l_i li为假,则 j 1 ∨ . . . ∨ j i − 1 ∨ j i + 1 ∨ . . . ∨ j k j_1 \vee ... \vee j_{i-1} \vee j_{i+1} \vee ... \vee j_k j1∨...∨ji−1∨ji+1∨...∨jk必为真。因此,结论必定成立。
归结选取两个子句并生成一个新的子句,该子句包含除了两个互补文字以外的原始子句中的所有文字。
归结规则中每个文字只能出现一次。例如,(A∨B)和(A∨¬B)归结得(A∨A),简化为A。
CNF:子句的合取式
归结演绎推理是一种基于逻辑“反证法”的机械化定理证明方法。其基本思想是把永真性的证明转化为不可满足性的证明。即要证明 P→QP永真,只要能够证明P∧﹁Q 为不可满足即可。
对于知识库而言,为了证明KB ╞ α,需要证明{KB,¬α}(或KB∧¬α)是不可满足的。
步骤:
(1)将(KB∧¬α)转化成CNF。
(2)对结果子句运用归结规则,对含有互补文字的子句进行归结产生新的子句,如果该新的子句没有出现过就将其加入子句集中。
如果含有多个互补文字,需要一次性进行归结(¬B、A∨B,C∨B)归结得(A,C)而不是(A,C∨B)
(3)持续上面两步,直到:
限定子句:受限形式的一种子句,它是指恰好只含一个正文字的析取式。例如:(A∨B∨¬C)不是限定子句,而(A∨¬B∨¬C)是限定子句。
每个限定子句可写为蕴含式
Horn子句:至多只有一个正文字的析取式。如:(A∨¬B∨¬C)和(¬A∨¬B∨¬C)都是horn子句。
Horn子句在归结下是封闭的:如果对两个Horn子句进行归结,结果依然是Horn子句。
目标子句:没有正文字的析取式。如:(¬A∨¬B∨¬C)就是目标子句。
horn子句=限定子句+目标子句
前向链接:从知识库中的已知事实(正文字)开始。如果蕴涵的所有前提已知,那么把它的结论加到已知事实集。持续这一过程,直到询问q被添加或者直到无法进行更进一步的推理。前向链接的运行时间是线性的。
前向链接是数据驱动推理的实例——即推理是从已知数据开始的。对于Horn KB,前向链接是
反向链接:反向链接算法正如它的名字,从查询开始进行推理。如果查询q已知为真,那么无需进行任何操作。否则,寻找知识库中那些以q为结论的蕴含式。如果其中某个蕴含式的所有前提都能证明为真(通过反向链接),则q为真。 与前向链接一样,有效实现的时间复杂度是线性的。
反向链接是一种目标制导的推理形式。
本章讨论丁基于知识的 Agent,指明了如何定义一种逻辑,使得 Agent 可以使用这种逻辑对世界进行推理。
本章主要知识点如下:
实验代码下载:
https://github.com/yyl424525/AI_Homework
人工智能-一种现代方法中文第三版pdf、课件、作业及解答、课后习题答案、实验代码和报告、历年考博题下载:https://download.csdn.net/download/yyl424525/11310392