如有错误,敬请指正!
谓词包括一元谓词、二元谓词、多元谓词
谓词公式:
单个谓词是谓词公式,称为原子谓词公式。
谓词公式的性质:
蕴含关系:P→Q,仅当Q为F时,表达式才为假
全称量词和存在量词在同一命题中的次序会影响命题意思。
量词辖域:
量词辖域:位于量词后面的单个谓词或者用括弧括起来的谓词公式。
约束变元与自由变元:辖域内与量词中间名的变元称为约束变元,不同名的变元称为自由变元。
步骤:
特点:
确定性规则:
只要前提满足,结论一定正确
基本形式:IF P THEN Q、 或 P→Q、
不确定性规则:
基本形式:IF P THEN Q(置信度) 或 P→Q(置信度)
确定性事实性知识:
表示:(对象,属性,值) 或 (关系,对象1,对象2)
不确定性事实性知识:
表示:(对象,属性,值,置信度) 或 (关系,对象1,对象2,置信度)
产生式与蕴含式的区别:
巴科斯范式BNF(backus normal form):
产生式系统就是不断对特征进行匹配,并将匹配结果加入特征中,知道匹配到相应结果。
两个弧连接的结点之间的关系默认为合取关系。用封闭的虚线作为析取界限,表示析取关系,并注以DIS。
如果合取关系嵌套在析取关系内部,也应用虚线围起来,并标以CONJ。
“非”的关系用NEG表示。
蕴涵关系用一对封闭虚线表示,前项标以ANTE,后项标以CONSE。
具有继承性的关系:
结点:物理实体、概念、性质和关系。
弧:该关系所涉及参数。
lFORM-OF、COMP-OF均为LISP函数,在语义网络中表示为:
点:断言,取值为真、假,或附以确信度。
弧:规则。
结点格式:
规则格式:
推理方式——混合主动式:
过程:不断修改各结点的可信度(后验概率),直至顶层结点的可信度超过某一阈值为止。
一种描述所论对象属性的数据结构。
例:教师框架
问题规模很大或很复杂,以至于不可能考虑其目标的全部可能性时,以解决寻优问题为目标的优化算法就转变为局部搜索。
局部搜索算法的终止条件一般有两种选择:
状态空间法:基于解答空间的问题表示和求解方法,它是以状态和算符为基础来表示和求解问题的。
主要包括:状态、算符、状态空间
状态:表示问题求解过程中每一步问题状态的数据结构,一般用一组数据表示:
S k = { S k 0 , S K 1 , . . . } S_k=\{Sk_0, SK_1, ...\} Sk={ Sk0,SK1,...}
式中每个元素为集合的分量,称为状态变量。
迷宫问题的状态表示:
八数码问题的状态表示:
算符:当对一个问题状态使用某个可用操作时,它将引起该状态中某些分量值的变化,从而使问题从一个具体状态变为另一个具体状态。
迷宫问题的算符:
八数码难题的算符:
问题的状态空间:用来描述一个问题的全部状态以及这些状态之间的互相关系。
状态空间常用一个三元组表示: ( S , F , G ) (S, F, G) (S,F,G)。
八数码的状态空间:
状态图示法:状态空间的图示形式,其中节点表示状态,边表示算符,求解过程就是求相应路径的问题(搜索)。
状态:
算符:
状态空间图:
局部最大值可能出现在局部最大值、“平坦”局部最大值、山肩的平坦处。
爬山法是一种贪心算法,即从当前状态出发,向相邻状态进行试探,若发现某个相邻转台比当前状态更好,则转入相邻状态并放弃当前状态。
八皇后问题若不做任何约束,则可能的排列数很大。若限制每个皇后只能再同一行或同一列移动,则排列数大大减少。
八皇后问题中,需要采用一个代价函数h。其代表再八皇后问题中,两两冲突对的个数h值不能增加,只能慢慢减少,以此作为标准判断是否从当前状态移动到相邻状态。
图搜索流程:
搜索图:算法结束后,所生成的“足迹”为一个图 G G G。
搜索树:由于每个节点都有一个指针指向父节点,这些指针指向的节点构成 G G G的一个支撑树。
对OPEN表中节点排序方式产生了不同的搜索策略,不同的搜索搜索策略效率不同。
按预定的控制策略进行搜索,在搜索过程中获得的中间信息不用来改进控制策略。
宽度优先搜索(BFS):
BFS的性质:
深度优先搜索(DFS):
与BFS的不同在于,DFS将待拓展的节点放在OPEN表的开头。
节点深度:
DFS的特点:
等代价搜索:
核心思想:利用边的代价,对OPEN表进行排序。若每条边的代价为1,则等代价搜索即为BFS。
小结:
盲目式搜索的缺点:效率低,耗费过多的计算空间与时间。
盲目式搜索只知道 S 0 → n S_0→n S0→n,但是启发式搜索可以通过 S 0 → n S_0→n S0→n及 n → S g n→S_g n→Sg两者来判断目标,向最有希望的方向搜索。
八数码难题:
S 0 S_0 S0与 S A S_A SA、 S B S_B SB、 S C S_C SC相比, S B S_B SB与 S g S_g Sg最相似,变为 S g S_g Sg移动次数最少,故先拓展 B B B节点。
启发式信息:与具体问题求解过程有关的,并可知道搜索过程朝着最有希望的方向前进的控制信息。
启发式需要猜测:
要解决这些问题,需要定义一个评价函数 f ( n ) f(n) f(n),用于估算节点“希望”程度。
f ( n ) = g ( n ) + h ( n ) f(n)=g(n)+h(n) f(n)=g(n)+h(n)
g ( n ) g(n) g(n):从起始状态到当前状态 n n n的代价。
h ( n ) h(n) h(n):从当前状态到目标状态的估计代价(启发函数)。
A算法:
局部择优算法
有序搜索算法:选择OPEN表中具有最小 f f f值的节点作为下一个要拓展的节点。
八数码难题难题的有序搜索搜索图:
有序搜索有一点儿类似DFS。
A*算法:
g ∗ ( n ) g^*(n) g∗(n):从初始节点 S 0 S_0 S0到任意节点 n n n的一条最佳路径的代价。
h ∗ ( n ) h^*(n) h∗(n):从节点 n n n到目标节点的一条最佳路径的代价。
A*算法有评价函数:
f ( n ) = g ( n ) + h ( n ) f(n)=g(n)+h(n) f(n)=g(n)+h(n)
八数码难题:
根据 h ( x ) h(x) h(x)函数值,有:
0 ⩽ h 1 ( n ) ⩽ h 2 ( n ) ⩽ h ∗ ( n ) 0\leqslant h_1(n)\leqslant h_2(n)\leqslant h^*(n) 0⩽h1(n)⩽h2(n)⩽h∗(n)
由于 h 2 ( n ) h_2(n) h2(n)相较于 h 1 ( n ) h_1(n) h1(n)更接近于 h ∗ ( n ) h^*(n) h∗(n),故方案二与方案一相比,方案二更好。
A*算法的搜索效率在很大程度上取决于 h ( n ) h(n) h(n),在满足 h ( n ) < = h ∗ ( n ) h(n)<= h^*(n) h(n)<=h∗(n)的前提下, h ( n ) h(n) h(n)的值越大越好。
衡量一个搜索策略性能的准则:
当所有节点都是或节点时,这是变为状态空间图。
除起始节点外,所有节点只有一个父节点,此时为与或树。
与或图的结构:
与或图有解的条件是:起使节点是可解的。
与或图BFS搜索:
与或图DFS搜索:
要判断从OPEN表取出来的节点深度。如果等于深度界限,认定它是不可解节点。
拓展节点 n n n把其子节点放入OPEN表的前端,即新产生的节点先拓展
在对与或图进行搜索时,需要关注节点是与节点还是或节点。
一种特殊的与或树。其节点为博弈的格局(棋局),相当于状态空间中的状态,反映了博弈的信息,并且与节点、或节点隔层交替出现。
与或节点交替出现的原因:我方走步时,我方只需选择一种好步骤执行,是或关系;而对方走步时,我方则需要考虑所有好步骤,是与关系。
在博弈树中,所有能使自己一方获胜的终局是本原问题,相应节点为可解节点,所有能使对方获胜的终局都是不可解节点。
基本思想:
搜索步骤:
打分评估方法是从叶节点自下而上进行打分。
在生成博弈树的过程中计算评估各节点的倒推值。
搜索策略:k-步博弈;深度优先;每次扩展一个节点;一边扩展一边评估。
基本概念:
由于在最左侧分支中,已经求得 α \alpha α=-1,又求得第二分支的第一次分支中得分为-1,那么第二分支的 β \beta β=-1。即使第二分支中还有次分支的值比-1大或小, α \alpha α的也不会受到影响。故X处进行剪枝。
以上过程是根据Min节点上界与Max节点下界进行判断。
剪枝规则:
文字:正、负原子公式,前面有否定连接词的谓词公式为负原子公式。
子句:仅使用析取连接词将原子公式连接后的公式。
空子句:不包含任何文字的子句。
Horn子句:至多有一个正文字的子句,其中正文字称为Horn子句头,其他称为子句体。
置换:设 x 1 , … , x n x_1,…,x_n x1,…,xn是 n n n个变量,且各不相同, t 1 , … , t n t_1,…,t_n t1,…,tn是 n n n个项(常量、变量、函数), t i ≠ x i t_i\ne x_i ti=xi,则用 t i t_i ti替换变量 x i x_i xi操作形成的有限序列 x 1 / t 1 , … , x n / t n {x_1/t_1, …,x_n/t_n} x1/t1,…,xn/tn称为一个置换(运算)。
置换乘积(置换合成):设 θ \theta θ和 λ \lambda λ是2两个置换,则先 θ \theta θ后 λ \lambda λ作用于公式或项,称为置换乘积,用 θ o λ \theta^o\lambda θoλ表示。
合一:通过相关置换使不同的一阶谓词公式称为相同的过程。
合一置换:设有一组谓词公式 { F 1 , … , F k } \{F_1,…,F_k\} { F1,…,Fk}和置换 θ \theta θ,使得 F 1 θ = F 2 θ = … = F k θ F_1\theta=F_2\theta=…=F_k\theta F1θ=F2θ=…=Fkθ,则 θ \theta θ称为合一置换, F 1 , … , F k F_1,…,F_k F1,…,Fk称为可合一的。
最一般合一置换(mgu):如果 σ \sigma σ和 θ \theta θ都是公式组 { F 1 , … , F k } \{F_1,…,F_k\} { F1,…,Fk}的合一置换,且有置换 λ \lambda λ存在,使得 θ = σ o λ \theta=\sigma^o\lambda θ=σoλ,则称 σ \sigma σ为公式组 { F 1 , … , F k } \{F_1,…,F_k\} { F1,…,Fk}的最一般合一置换。
定理: Q Q Q为 P 1 , P 2 , … , P n P_1,P_2,…,P_n P1,P2,…,Pn的逻辑结论,当且仅当 ( P 1 ∧ P 2 ∧ … ∧ P n ) ∧ ¬ Q (P_1\wedge P_2\wedge …\wedge P_n)\wedge \lnot Q (P1∧P2∧…∧Pn)∧¬Q是不可满足的。
谓词公式生成子句集步骤:
子句集中子句之间是合取关系,只要有一个子句不可满足,则子句集就不可满足。
基本思想:检查子句集 S S S中是否包含空子句,若包含,则 S S S不可满足。若不包含,在 S S S中选择合适的子句进行归结,一旦归结出空子句,就说明 S S S是不可满足的。
定义3.1(归结):设 C 1 C_1 C1与 C 2 C_2 C2是子句集中的任意两个子句,如果 C 1 C_1 C1中的文字 L 1 L_1 L1与 C 2 C_2 C2中的文字 L 2 L_2 L2互补,那么从 C 1 C_1 C1和 C 2 C_2 C2中分别消去 L 1 L_1 L1和 L 2 L_2 L2,并将两个子句余下的的部分析取,构成新的子句 C 12 C_{12} C12。
定理3.2:归结式 C 12 C_{12} C12是其亲本子句 C 1 C_1 C1与 C 2 C_2 C2的逻辑结论。如果 C 1 C_1 C1与 C 2 C_2 C2为真,则 C 12 C_{12} C12为真。
推论1:设 C 1 C_1 C1与 C 2 C_2 C2是子句集 S S S中的两个子句, C 12 C_{12} C12是它们的归结式,若用 C 12 C_{12} C12代替 C 1 C_1 C1与 C 2 C_2 C2后得到新子句集 S 1 S_1 S1,则由 S 1 S_1 S1不满足性可推出原子句集 S S S的不可满足行,即:
S 1 的 不 可 满 足 性 ⇒ S 的 不 可 满 足 性 S_1的不可满足性\Rightarrow S的不可满足性 S1的不可满足性⇒S的不可满足性
推论2:设 C 1 C_1 C1与 C 2 C_2 C2是子句集 S S S中的两个子句, C 12 C_{12} C12是它们的归结式,若 C 12 C_{12} C12新子句集加入原子句集 S S S得到新子句集 S 2 S_2 S2,则 S 1 S_1 S1与 S 2 S_2 S2在不满足性的意义上是等价的,即:
S 2 的 不 可 满 足 性 ⟺ S 的 不 可 满 足 性 S_2的不可满足性\Longleftrightarrow S的不可满足性 S2的不可满足性⟺S的不可满足性
谓词逻辑中的归结原理(上一小节有讲):
定义3.2:设 C 1 C_1 C1与 C 2 C_2 C2是两个没有相同变元的子句, L 1 L_1 L1和 L 2 L_2 L2分别是 C 1 C_1 C1和 C 2 C_2 C2中的文字,若 σ \sigma σ是 L 1 L_1 L1和 ¬ L 2 \lnot L_2 ¬L2的最一般合一,则称 C 12 = ( C 1 σ − { L 1 σ } ∨ ( C 2 σ − { L 2 σ } ) ) C_{12}=(C_1\sigma-\{L_1\sigma\} \vee (C_2\sigma-\{L_2\sigma\})) C12=(C1σ−{ L1σ}∨(C2σ−{ L2σ}))为 C 1 C_1 C1和 C 2 C_2 C2的二元归结式。
证明步骤:
一个与或图表示的子句集就对应于在图的文字结点上结束的解图集。
将相应规则转换为与或图:
正向演绎系统中,所推出的目标即叶子节点之间的关系为析取,与归结反演系统对偶。
与或图的描述: