西电人工智能15确定性推理part8
人工智能 AI2章确定性知识系统
2.推理方法及其分类
按推理的逻辑基础分类(2/3) 归纳推理 是一种由个别到一般的推理方法。归纳推理的类型 按照所选事例的广泛性可分为完全归纳推理和不完全归纳推理 按照推理所使用的方法可分为枚举、类比、统计和差异归纳推理等 完全归纳推理 是指在进行归纳时需要考察相应事物的全部对象,并根据这些对象是否都 具有某种属性,推出该类事物是否具有此属性。如,计算机质量检验。 不完全归纳推理 是指在进行归纳时只考察了相应事物的部分对象,就得出了关于该事物的 结论。例如,计算机,随机抽查。 枚举归纳推理 是指在进行归纳时,如果已知某类事物的有限可数个具体事物都具有某种 属性,则可推出该类事物都具有此种属性。 类比归纳推理 是指在两个或两类事物有许多属性都相同或相似的基础上,推出它们在其 他属性上也相同或相似的一种归纳推理。其推理模式可表示为: 12 IF A有属性abc AND B有属性ab THEN B可能有属性c
推理的控制策略 推理的控制策略是指如何使用领域知识使推理过程尽快达到目标的策略。 它可分为推理策略和搜索策略。 推理策略 主要解决推理方向、冲突消解等问题,如推理方向控制策略、求解策略、 限制策略、冲突消解策略等 推理方向控制策略用于确定推理的控制方向,可分为正向推理、逆向推理、 混合推理及双向推理。 求解策略是指仅求一个解,还是求所有解或最优解等。 限制策略是指对推理的深度、宽度、时间、空间等进行的限制。 冲突消解策略是指当推理过程有多条知识可用时,如何从这多条可用知识 中选出一条最佳知识用于推理的策略。 搜索策略 主要解决推理线路、推理效果、推理效率等问题。 本章主要讨论推理策 略,至于搜索策略将放到下一章单独讨论。
18
1.谓词表示的逻辑学基础
谓词、函数 谓词 用来表示谓词逻辑中命题,形如P(x1,x2,…,xn) 。其中 P是谓词名,即命题的谓语,表示个体的性质、状态或个体之间的关系; x1,x2,…,xn是个体,即命题的主语,表示独立存在的事物或概念。 定义2.2:设D是个体域,P:Dn→{T,F}是一个映射,其中
确定性与不确定性推理主要方法-人工智能导论
确定性与不确定性推理主要方法1.确定性推理:推理时所用的知识与证据都是确定的,推出的结论也是确定的,其真值或者为真或者为假。
2.不确定性推理:从不确定性的初始证据出发,通过运用不确定性的知识,最终推出具有一定程度的不确定性但却是合理或者近乎合理的结论的思维过程。
3.演绎推理:如:人都是会死的(大前提)李四是人(小前提)所有李四会死(结论)4.归纳推理:从个别到一般:如:检测全部产品合格,因此该厂产品合格;检测个别产品合格,该厂产品合格。
5.默认推理:知识不完全的情况下假设某些条件已经具备所进行的推理;如:制作鱼缸,想到鱼要呼吸,鱼缸不能加盖。
6.不确定性推理中的基本问题:①不确定性的表示与量度:1)知识不确定性的表示2)证据不确定性的表示3)不确定性的量度②不确定性匹配算法及阈值的选择1)不确定性匹配算法:用来计算匹配双方相似程度的算法。
2)阈值:用来指出相似的“限度”。
③组合证据不确定性的算法最大最小方法、Hamacher方法、概率方法、有界方法、Einstein方法等。
④不确定性的传递算法1)在每一步推理中,如何把证据及知识的不确定性传递给结论。
2)在多步推理中,如何把初始证据的不确定性传递给最终结论。
⑤结论不确定性的合成6.可信度方法:在确定性理论的基础上,结合概率论等提出的一种不确定性推理方法。
其优点是:直观、简单,且效果好。
可信度:根据经验对一个事物或现象为真的相信程度。
可信度带有较大的主观性和经验性,其准确性难以把握。
C-F模型:基于可信度表示的不确定性推理的基本方法。
CF(H,E)的取值范围: [-1,1]。
若由于相应证据的出现增加结论 H 为真的可信度,则 CF(H,E)> 0,证据的出现越是支持 H 为真,就使CF(H,E) 的值越大。
反之,CF(H,E)< 0,证据的出现越是支持 H 为假,CF(H,E)的值就越小。
若证据的出现与否与 H 无关,则 CF(H,E)= 0。
人工智能的推理推断和决策方法
人工智能的推理推断和决策方法人工智能(Artificial Intelligence, AI)是一门研究如何使计算机能够模拟和表现人类智能的学科。
推理、推断和决策是人工智能领域中至关重要的技术之一。
本文将介绍人工智能中的推理推断和决策方法,并深入探讨它们在现实生活中的应用。
一、推理推断方法推理推断是通过已有信息和已有的推理机制从中得出新的结论或发现之间的关系。
推理推断的方法可以分为演绎推理和归纳推理。
1. 演绎推理演绎推理是根据已知的前提和逻辑规则,通过确定性推理得出结论。
它可以分为传统逻辑推理和不确定逻辑推理。
传统逻辑推理是依据逻辑学的基本规则和形式公理进行推理。
其中最著名的逻辑是命题逻辑和谓词逻辑。
命题逻辑主要用于处理简单的命题间的推理,例如当已知A为真,且A蕴含B时,可以推出B为真。
谓词逻辑则用于处理谓词与量词,更为灵活。
不确定逻辑推理是用于处理不确定性信息的推理方法,其中最常用的方法是模糊逻辑和概率逻辑。
模糊逻辑通过引入模糊概念来处理不精确或不完全的信息,如“云彩是模糊的白色”。
概率逻辑则通过将概率引入到逻辑推理中来处理不确定性,如“在下雨的情况下,道路湿滑的概率更高”。
2. 归纳推理归纳推理是通过从具体的事实或实例中总结出普遍规律来进行推理。
归纳推理的方法可以分为归纳泛化和归纳推理。
归纳泛化是从特殊情况中抽象出一般规律。
例如,我们观察到许多坏学生是在游戏时间过长后表现不佳,可以推断出游戏时间过长对学生学习的负面影响。
归纳推理则是通过观察现象、分析数据等方法得出结论。
它通过观察和经验总结概括,可能会受到样本规模、采样偏差等因素的影响。
二、决策方法决策是从多个备选方案中选择最佳方案的过程。
在人工智能领域中,决策问题经常被建模为决策树、马尔可夫决策过程、深度强化学习等形式。
1. 决策树决策树是一种树状的决策图,用于帮助决策者作出决策。
在决策树中,每个分支代表一个决策点,而每个叶节点代表一个可能的决策结果。
人工智能 第3章(确定性推理3-与或树搜索)
包括基于距离的启发式函数、基于成本的启发式函数、基于规则的启发式函数等。
节点排序和选择策略
节点排序的目的和意义
节点排序是为了在扩展节点时,按照一定的顺序选择下一个要扩展的节点,以优化搜索过程。
常用节点排序策略
包括最佳优先搜索、广度优先搜索、深度优先搜索等。最佳优先搜索根据启发式函数的值来选择最优节点; 广度优先搜索按照节点的层次顺序进行扩展;深度优先搜索则尽可能深地扩展节点。
盲目搜索方法比较与选择
• 宽度优先搜索、深度优先搜索和迭代加深搜索都是盲目搜索方法,它们在不同的场景下有不同的应用。 • 宽度优先搜索适用于问题空间较大、解存在于较浅层次的情况,因为它可以逐层遍历整个问题空间,找到最短
路径。 • 深度优先搜索适用于问题空间较小、解存在于较深层次的情况,因为它可以尽可能深地搜索树的分支,找到更
启发式信息获取途径
01
02
03
问题自身的特性
通过分析问题的性质、结 构、约束条件等,提取出 对搜索过程有指导意义的 启发式信息。
领域知识
利用领域内的经验、规则、 常识等,为搜索过程提供 有价值的启发式信息。
搜索过程中的信息
在搜索过程中,通过评估 当前状态、已搜索路径、 未搜索路径等,动态地获 取启发式信息。
04 与或树搜索优化技术
剪枝策略
01
剪枝的定义和目的
剪枝是在搜索过程中,通过某些评估标准,提前终止对某些无意义或低
效的节点的扩展,以减少搜索空间,提高搜索效率。
02 03
常用剪枝策略
包括限界剪枝、启发式剪枝、概率剪枝等。限界剪枝通过设置上下界来 限制搜索范围;启发式剪枝利用启发式函数来评估节点的重要性;概率 剪枝则根据节点的概率分布来进行剪枝。
人工智能--确定性推理 ppt课件
ppt课件
21
流程图
ppt课件
22
注意几点:
①搜索过程产生的节点和指针构成一棵隐式定义的 状态空间树的子树,称之为搜索树
ppt课件
23
② 宽度优先搜索方法能够保证在搜索树中找到 一条通向目标节点的最短途径(所用操作符 最少)
ppt课件
24
例:八数码问题
初始状态
283
1
4
765
目标状态
123
8
初始节点
目标状态
目标节点
操作符
有向弧
ppt课件
7
解的含义:
在状态空间中,解是从初始状态到目标状态的 操作符序列
在图中,解是从初始节点到目标节点的一条路 径
ppt课件
8
必须记住哪下从些一目 点步标走还返过可回了以的走路哪径 些点
状态:(城市名) 算子:常德→益阳
益阳→常德 益阳汨罗 益阳宁乡 益阳娄底 …
是否会认为老师的教学方法需要改进? • 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭 • “不怕太阳晒,也不怕那风雨狂,只怕先生骂我
笨,没有学问无颜见爹娘 ……” • “太阳当空照,花儿对我笑,小鸟说早早早……”
解决实际问题的两个关键之处:
①问题的表达 状态空间法 问题归约法 谓词逻辑法
②问题的求解 搜索技术
P-1
P
P+1
P+3
ppt课件
27
空格移动规则
顺序 规则
1
左移
2
上移
3
下移
4
右移
前提条件
应用结果
P≠1,4,7 P 位置与 P-1 位置上的元素互换
P≠1,2,3
人工智能原理及应用第3章 确定性推理方法
3.1 推理概述
3.1.2 推理的方法
1.演绎推理: 例:有如下三个判断: ①计算机系的学生都会编程序;(一般性知识) ②程强是计算机系的一位学生;(具体情况) ③因此程强会编程序。(结论)
这是一个三段论推理。其中:“①计算机系的学生都会编程序” 是大前提,“②程强是计算机系的一位学生”是小前提,那么“③ 程强会编程序”是经演绎推出来的结论。其结论蕴含在大前提中, 这就是典型的演绎推理三段论。
N
Y Y
以正向推理结果为假设
输入进行反向推理
N
输出结果
Y
成功退出
需要进行正向推理吗?
3.1 推理概述
3.1.4 推理中的冲突
在推理过程中,系统要不断地用数据库中的事实与知识库中的 规则进行匹配,当有一个以上规则的条件部分和当前数据库相匹配 时,就需要有一种策略来决定首先使用哪一条规则,这就是冲突解 决策略。冲突解决策略实际上就是确定规则的启用顺序。
33演绎推理方法332演绎推理的特点正向演绎推理逆向演绎推理问题求解的描述事实文字与或形事实文字合取式规则lw规则wl目标文字析取形目标文字与或形初始与或图相应于事实表达式事实表达式的与或树相应于目标公式事实表达式的与或树演绎推理f规则事实目标b规则目标事实结束条件包含所有目标节点的一致解图以事实节点作为所有终节点的一致解图34归结推理方法341子句集及其化简342herbrand海伯伦定理343robinson鲁宾逊归结原理344利用归结推理进行定理证明345应用归结原理进行问题求解在谓词演算中利用前面列出的等价式和永真蕴含式可以从已知的一些公式推导出新的公式这个导出的公式叫做定理在推导过程中使用的推理规则序列就成了该定理的一个证明而这种推导就是归结推理方法
形成可用知识集
如何在人工智能开发中应用不确定性建模与推理技术
如何在人工智能开发中应用不确定性建模与推理技术人工智能(Artificial Intelligence,简称AI)作为一门交叉学科,涉及了许多领域,如机器学习、计算机视觉、自然语言处理等。
在AI的发展历程中,不确定性建模与推理技术扮演了至关重要的角色。
本文将深入探讨如何在人工智能开发中应用不确定性建模与推理技术。
不确定性是人工智能训练和推理中的一个重要概念。
在决策过程中,往往会遇到不完全的或不确定的信息。
而人工智能的目标就是通过模型和算法来为这些不确定性建模,并进行推理和预测。
在人工智能开发中,不确定性可以来源于多个方面。
其中之一是数据的不确定性。
例如,由于传感器误差或环境变化,输入数据可能存在噪音或错误。
这时候,我们就需要利用不确定性建模技术来处理这些不完全的或不准确的数据。
不确定性建模技术有多种方法。
一种常见的方法是使用贝叶斯网络(Bayesian Network)。
贝叶斯网络是一种图模型,用于描述变量之间的条件依赖关系,并能够根据观测到的证据进行推理。
通过将不确定性信息和先验知识结合起来,贝叶斯网络能够对未知变量进行推断,并计算出相应的后验概率。
另一种常见的不确定性建模技术是蒙特卡洛方法(Monte Carlo methods)。
蒙特卡洛方法利用随机采样的方式,通过估计概率分布来进行推理。
例如,在强化学习中,通过使用蒙特卡洛采样,我们可以估计价值函数,从而指导智能体在不确定环境中作出决策。
除了不确定性建模技术,不确定性推理技术也是人工智能开发中至关重要的一环。
推理是指基于已有的知识和信息,通过演绎或归纳的方式进行推断和预测。
不确定性推理则要求考虑到不完全或不准确的信息,以及不确定性本身。
在不确定性推理中,一种常用的方法是使用概率推理。
概率推理基于贝叶斯定理,通过已有的证据计算出后验概率分布,从而进行推断和预测。
例如,在声音识别中,我们可以使用概率推理来计算某个特定声音对应的语音信号,从而实现语音识别。
人工智能确定性推理部分参考答案
⼈⼯智能确定性推理部分参考答案确定性推理部分参考答案1 判断下列公式是否为可合⼀,若可合⼀,则求出其最⼀般合⼀。
(1) P(a, b), P(x, y)(2) P(f(x), b), P(y, z)(3) P(f(x), y), P(y, f(b))(4) P(f(y), y, x), P(x, f(a), f(b))(5) P(x, y), P(y, x)解:(1) 可合⼀,其最⼀般和⼀为:σ={a/x, b/y}。
(2) 可合⼀,其最⼀般和⼀为:σ={y/f(x), b/z}。
(3) 可合⼀,其最⼀般和⼀为:σ={ f(b)/y, b/x}。
(4) 不可合⼀。
(5) 可合⼀,其最⼀般和⼀为:σ={ y/x}。
2 把下列谓词公式化成⼦句集:(1)(?x)(?y)(P(x, y)∧Q(x, y))(2)(?x)(?y)(P(x, y)→Q(x, y))(3)(?x)(?y)(P(x, y)∨(Q(x, y)→R(x, y)))(4)(?x) (?y) (?z)(P(x, y)→Q(x, y)∨R(x, z))解:(1) 由于(?x)(?y)(P(x, y)∧Q(x, y))已经是Skolem标准型,且P(x, y)∧Q(x, y)已经是合取范式,所以可直接消去全称量词、合取词,得{ P(x, y), Q(x, y)}再进⾏变元换名得⼦句集:S={ P(x, y), Q(u, v)}(2) 对谓词公式(?x)(?y)(P(x, y)→Q(x, y)),先消去连接词“→”得:(?x)(?y)(?P(x, y)∨Q(x, y))此公式已为Skolem标准型。
再消去全称量词得⼦句集:S={?P(x, y)∨Q(x, y)}(3) 对谓词公式(?x)(?y)(P(x, y)∨(Q(x, y)→R(x, y))),先消去连接词“→”得:(?x)(?y)(P(x, y)∨(?Q(x, y)∨R(x, y)))此公式已为前束范式。
人工智能导论复习
⼈⼯智能导论复习⼈⼯智能导论复习题⼈⼯智能导论复习题第⼀章绪论1.智能是()和()的总和。
正确答案:(1) 知识,智⼒2.()是⼀切智能⾏为的基础正确答案:(1) 知识3.()是获取知识并应⽤知识求解问题的能⼒。
正确答案:(1) 智⼒4.智能的特征有()、()、()、()。
正确答案:(1) 具有感知能⼒(2) 具有记忆与思维能⼒(3) 具有学习能⼒(4) 具有⾏为能⼒5.(填空题)⼈⼯智能的长期⽬标是()正确答案:(1) 实现⼈类⽔平的机器智能6.⼈⼯智能的主要研究内容有()、()、()、()、()正确答案:(1) 知识表⽰(2) 机器感知(3) 机器思维(4) 机器学习(5) 机器⾏为7.⼈⼯智能的定义是什么?正确答案:⼈⼯智能主要研究⽤⼈⼯的⽅法和技术,模拟、延伸和扩展⼈的智能,实现机器智能。
8.简述“图灵测试”?正确答案:让⼈与机器分别在两个房间⾥,两者之间可以通话,但彼此看不到对⽅,如果通过对话,⼈的⼀⽅不能分辨对⽅是⼈还是机器,那么就可以认为对⽅的那台机器达到了⼈类智能的⽔平。
第⼆章知识表⽰与知识图谱1.造成知识具有不确定性的原因主要有()、()、()、()。
正确答案:随机性模糊性经验不完全性2.知识的特性有()、()、()。
正确答案:(1) 相对正确性(2) 不确定性(3) 可表⽰性与可利⽤性3.在⼈⼯智能领域内显式的知识表⽰⽅法主要有()、()、()、()。
正确答案:(1) ⼀阶谓词逻辑表⽰法(2) 产⽣式表⽰法(3) 语义⽹络表⽰法(4) 框架表⽰法4.谓词的⼀般形式是()。
(1) P(x1,x2,...,xn)5.⼀个产⽣式系统由()、()和()三部分组成正确答案:(1) 规则库(2) 推理机(3) 综合数据库6.位于量词后⾯的单个谓词或者⽤括弧括起来的谓词公式称为量词的(),域内与量词中同名的变元称为(),不受约束的变元称为()。
正确答案:(1) 辖域(2) 约束变元(3) ⾃由变元7.在谓词公式中,连接词的优先级别从⾼到低排列是(),(),(),(),()。
人工智能导论 第3章 确定性推理方法(导论) [兼容模式]
①足球运动员的身体都是强壮的;
(大前提)
②高波是一名足球运动员;
(小前提)
③所以,高波的身体是强壮的。 (结 论)
9
3.1.2推理方式及其分类
1.演绎推理、归纳推理、默认推理 (2)归纳推理(inductive reasoning):个别一一般
完全归纳推理(必然性推理) 不完全归纳推理(非必然性推理)
■逆向推理需要解决的问题: ♦如何判断一个假设是否是证据?
___ ♦当导出假设的知识有多条时,如何确定先选哪一条? ♦ 一条知识的运用条件一般都有多个,当其中的一个经 验证成立后,如何自动地换为对另一个的验证?
♦ ......
选择初 -_逆向推理:目的性强,利于向用户提供解释,但 始目标时具有盲目性,比正向推理复杂。
22
3.1.3推理的方向
3.混合推理
.正向推理:盲目、效率低。
■逆向推理:若提出的假设目标不符合实际,会降低效
率C
■正反向混合推理:
1 ( ) 先正向后逆向:先进行正向推理,帮助选择某个目标,
即从已知事实演绎出部分结果,然后再用逆向推理证实该目标
2 或提高其可信度;
( ) 先逆向后正向:先假设一个目标进行逆向推理,然后
■实现正向推理需要解决的问题: .确定索知识库。 .冲突消解策略。
■正向推理简单,易实现,但目的性不强,效率低。
19
3.1.3推理的方向
2.逆向推理
.逆向推理(目标驱动推理):以某个假设目标作为出 发点。 -基本思想:
选定一个假设目标。 寻找支持该假设的证据,若所需的证据都能找到,则 原假设成立;若无论如何都找不到所需要的证据,说明 原假设不成立的;为此需要另作新的假设。 ■主要优点:不必使用与目标无关的知识,目的性强, 同时它还有利于向用户提供解释。
AI第3章-确定性推理
③ 对那些先前已在G中出现过,并已经扩展了的M成员,确定是否 需要修改其若发生第③种情况,除了需要确定该子节点指向父节点 的指针外,还需要确定其后继节点指向父节点的指针。 其依据也是由原始节点到该节点的路径上的代价。 ⑸ 在搜索图中,除初始节点外,任意一个节点都含有且只 含有一个指向其父节点的指针。因此,由所有节点及其 指向父节点的指针所构成的集合是一棵树,称为搜索树。
① 按是否使用启发式信息可分为:
◇
盲目搜索
◇
启发式搜索
② 按问题的表示方式可分为:
◇
状态空间搜索
◇
与或树搜索
⑵、推理策略 包括推理方向控制、求解、限制、冲突消解等策略。 推理方向控制策略:用于确定推理的控制方向,可分为正向推理、
逆向推理、混合推理。
求解策略:指仅求一个解,还是求所有解或最优解等。 限制策略:指对推理的深度、宽度、时间、空间等进行的限制。 冲突消解策略:当推理过程有多条知识可用时,如何从多条可用
3.1 图搜索策略(GraphSearch)
图搜索控制可看成是一种在图中寻找路径的方法。 初始节点和目标节点分别代表初始数据库和满足终
止条件的目标数据库。
求得将一个数据库变换为另一数据库的规则序列问题, 等价于求得图中的一条路径问题。
1、图搜索的一般过程
⑴ 将初始节点S放入未扩展节点表OPEN表,并建立当前仅包含S的图G;
◇
◇
1、什么是推理
所谓推理,就是按照某种策略,由已知判断,推出另一
个判断的思维过程。 人工智能中,推理是由程序实现的,称之为推理机。 智能系统的推理过程实际上就是一种思维过程。 按照推理过程所用知识的确定与否,推理可分为:
◇ ◇
确定性推理(第3章) 不确定性推理(第4章)
人工智能中的不确定性建模与推理
人工智能中的不确定性建模与推理人工智能作为一门新兴的学科领域,已经在各个方面展现出了极大的潜力和应用价值。
然而,要想充分发挥人工智能的优势,就必须充分考虑其中存在的不确定性因素。
在实际应用中,不确定性是不可避免的,因此如何对不确定性进行建模和推理就显得尤为重要。
不确定性在人工智能中广泛存在,主要包括模糊性、随机性、不完全性和不确定性等方面。
在决策过程中,各种不确定性因素相互作用,往往会导致决策结果的不确定性。
因此,通过有效的建模和推理技术,可以帮助人工智能系统更好地理解和应对这些不确定性,提高决策的准确性和可靠性。
在人工智能中,不确定性建模与推理是一个重要的研究领域,主要包括概率论、模糊逻辑、贝叶斯网络、马尔可夫决策过程等方法。
这些方法可以帮助人工智能系统对不确定性进行量化和处理,从而提高系统的可靠性和鲁棒性。
例如,在自然语言处理领域,模糊逻辑可以帮助系统更好地理解含糊不清的语义,提高对话系统的交互效果;在机器学习领域,概率论和贝叶斯网络可以帮助系统更好地对数据进行建模和推理,提高预测模型的准确性和泛化能力。
除了传统的数学方法外,人工智能领域还涌现出了一些新的不确定性建模与推理技术,如深度学习、强化学习和元学习等。
这些技术通过模拟人类大脑的神经网络结构,实现了对复杂不确定性问题的高效建模与推理。
例如,在图像识别领域,深度学习可以通过多层次的神经网络结构,实现对图像特征的自动提取和分类,提高图像识别的精度和速度;在智能游戏领域,强化学习可以帮助系统根据环境的实时反馈,自动学习和优化决策策略,提高游戏水平和用户体验。
然而,不确定性建模与推理也面临着一些挑战和困难。
首先,不确定性的表征和量化是一个复杂而多样化的过程,需要考虑各种不同类型的不确定性因素,如认知不确定性、环境不确定性和模型不确定性等。
其次,有效的推理算法需要充分考虑不确定性的逻辑推理规则和模式,从而在面对复杂的决策情境时能够做出正确的判断和决策。
西电电院人工智能课程大作业。
西电人工智能大作业八数码难题一.实验目的八数码难题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。
例如:(a) 初始状态 (b) 目标状态图1 八数码问题示意图请任选一种盲目搜索算法(深度优先搜索或宽度优先搜索)或任选一种启发式搜索方法(A 算法或 A* 算法)编程求解八数码问题(初始状态任选),并对实验结果进行分析,得出合理的结论。
本实验选择宽度优先搜索:选择一个起点,以接近起始点的程度依次扩展节点,逐层搜索,再对下一层节点搜索之前,必先搜索完本层节点。
二.实验设备及软件环境Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI 等编程语言。
三.实验方法算法描述:(1)将起始点放到OPEN表;(2)若OPEN空,无解,失败;否则继续;(3)把第一个点从OPEN移出,放到CLOSE表;(4)拓展节点,若无后继结点,转(2);(5)把n的所有后继结点放到OPEN末端,提供从后继结点回到n的指针;(6)若n任意后继结点是目标节点,成功,输出;否则转(2)。
流程图:代码:#include <stdlib.h>#include <stdio.h>typedef struct Node {int num[9]; //棋盘状态int deepth; //派生的深度 g(n)int diffnum; //不在位的数目 h(n)int value; //耗散值 f(n)=g(n)+h(n)struct Node * pre;struct Node * next;struct Node * parent;}numNode; /* ---------- end of struct numNode ---------- */int origin[9]; //棋盘初始状态int target[9]; //棋盘目标状态int numNode_num,total_step;numNode *open,*close; //Open表和Close表numNode *create_numNode(){return (numNode *)malloc(sizeof(numNode));}numNode *open_getfirst(numNode *head); //返回第一项,并从Open表中删除void open_insert(numNode *head,numNode *item); //向Open表中按序插入新节点void close_append(numNode *head,numNode *item); //向Close表中插入新节点int expand(numNode *item); //扩展节点int print_result(numNode *item); //打印结果numNode *copy_numNode(numNode *orgin);char isNewNode(numNode *open,numNode *close,int num[9]);//是否在Open表或Close表中void print_num(int num[9]); //打印棋盘状态int diff(int num[9]); //求不在位棋子的个数void init(); //初始化,获得棋盘初始状态和目标状态void swap(int *a,int *b);int operate(int num[],int op);void free_list(numNode *head);/** Name: 主函數* Description: 程序入口*/Int main ( int argc, char *argv[] ){//初始化Open表和Close表open=create_numNode();close=create_numNode();open->pre=open->next=close->pre=close->next=NULL; init(); //由用户输入初始和目标状态//初始化初始节点numNode *p1;p1=create_numNode();p1->parent=NULL;p1->deepth=0;int i=0;for ( i=0; i<9; i++){p1->num[i]=origin[i];}open_insert(open,p1);numNode_num=1;p1=open_getfirst(open);while (p1!=NULL){close_append(close,p1);if(expand(p1))return EXIT_SUCCESS;p1=open_getfirst(open);}printf("No solution!\n");return EXIT_SUCCESS;} /* ---------- end of function main ---------- */voidinit ( ){while(1){printf("Please input opriginal status:\nFor example:123456780 stands for\n""1 2 3\n""4 5 6\n""7 8 0\n");char temp[10];scanf("%s",&temp);int i=0;for ( i=0;i<9 && temp[i]-'0'>=0 && temp[i]-'0'<=8; i++){origin[i]=temp[i]-'0';}printf("Please input target status:\n");scanf("%s",&temp);int j=0;for ( j=0; j<9 && temp[j]-'0'>=0 && temp[j]-'0'<=8; j++){target[j]=temp[j]-'0';}system("cls");if ( i==9&&j==9){break;}}} /* ----- end of function init ----- */voidopen_insert (numNode *head,numNode *item){numNode *p,*q;p=head->next;q=head;while ( p!=NULL && item->value > p->value ){q=p;p=p->next;}q->next=item;item->pre=q;item->next=p;if(p!=NULL){p->pre=item;}} /* ----- end of function open_insert ----- */numNode *open_getfirst (numNode *head){numNode *p;if ( head->next == NULL ){return NULL;}p=head->next;head->next=p->next;if ( p->next != NULL ){p->next->pre=head;}p->pre=NULL;p->next=NULL;return p;} /* ----- end of function open_getfirst ----- */voidclose_append (numNode *head,numNode *item){item->next=head->next;item->pre=head;head->next=item;if ( item->next!=NULL ){item->next->pre=item;}} /* ----- end of function close_append ----- */intexpand (numNode *p1){numNode * p2;int op=1;for ( op=1; op<=4; op++){p2=copy_numNode(p1);operate(p2->num,op);if(isNewNode(open,close,p2->num)=='N'){p2->parent=p1;p2->deepth=p1->deepth+1;p2->diffnum=diff(p2->num);p2->value=p2->deepth+p2->diffnum;if(p2->diffnum==0){total_step=print_result(p2);printf("Total step: %d\n",total_step); free_list(open);free_list(close);return 1;}else{numNode_num++;open_insert(open,p2);}}elsefree(p2);}return 0;} /* ----- end of function expand ----- */intoperate(int m[], int op){int blank;blank=0;while (m[blank]!=0 && blank<9 )++blank;if (blank==9)return 1;switch (op) {case 1: /* up */if (blank>2)swap(m+blank,m+blank-3);break;case 2: /* down */if (blank<6)swap(m+blank,m+blank+3);break;case 3: /* left */if (blank!=0 && blank!=3 && blank!=6) swap(m+blank,m+blank-1);break;case 4: /* right */if (blank!=2 && blank!=5 && blank!=8) swap(m+blank,m+blank+1);break;default : return 1;}return 0;}voidswap(int *a, int *b){int c;c=*a;*a=*b;*b=c;}numNode *copy_numNode (numNode *origin){numNode *p;p=create_numNode();p->deepth=origin->deepth;p->diffnum=origin->diffnum;p->value=origin->value;int i;for ( i=0; i<9; i++){(p->num)[i]=(origin->num)[i];}return p;} /* ----- end of function copy_numNode ----- */intdiff (int num[9]){int i,diffnum=0;for(i=0;i<9;i++)if(num[i]!=target[i])diffnum++;return diffnum;} /* ----- end of function diff ----- */charisNewNode (numNode *open,numNode *close,int num[9]) {numNode *p;int i=0;p=open->next;while ( p!=NULL ){for ( i=0; i<9; i++){if(p->num[i]!=num[i])break;}if(i==9)return 'O'; //Openp=p->next;}p=close->next;while ( p!=NULL ){for ( i=0; i<9; i++){if(p->num[i]!=num[i])break;}if(i==9)return 'C'; //Closep=p->next;}return 'N';} /* ----- end of function isNewNode ----- */voidfree_list (numNode *head){numNode *p,*q;p=head->next;while ( p!=NULL ){q=p->next;free(p);p=q;}free(head);} /* ----- end of function free_list ----- */voidprint_num (int num[9]){int i;for ( i=0; i<9; i++){printf("%d\t",num[i]);if((i%3)==2)printf("\n");}} /* ----- end of function print_num ----- */intprint_result ( numNode *item){numNode *p;int step;p=item;if(p!=NULL){step=print_result(p->parent);printf("\nStep %d:\n",step+1);print_num(p->num);return step+1;}else{return -1;}}四.结果:下图实验结果中,一步代表一层的搜索结果中的最优解;八数码难题的宽度优先搜索树:五.实验分析宽度优先搜索属于一种盲目搜索算法,可以系统的展开所有节点,理论上一定能达到搜寻目的。
920090-人工智能导论(第4版)-第3章 确定性推理方法(导论)
3.1.1 推理的定义
已知事实
推理: ( 证 据 ) 某 种 策 略
知识
结论
数据库 知识库
专家
推理机
病人
医疗专家系统
知识 专家的经验、医学常识
初始 证据
病人的症状、化验结果
证据
中间结论
7
3.1 推理的基本概念
3.1.1 推理的定义 3.1.2 推理方式及其分类 3.1.3 推理的方向 3.1.4 冲突消解策略
2
第3章 确确定定性性推推理理方方法法
知识 知识 推理
智 能 ?!
自然演绎 推理
经典逻辑推理 (确定性推理)
推
理
不确定性推理
归结演绎 推理
与 /或 形 演绎推理
3
第3章 确定性推理方法
3.1 推理的基本概念 3.2 自然演绎推理 3.3 谓词公式化为子句集的方法 3.4 鲁宾逊归结原理 3.5 归结反演 3.6 应用归结反演求解问题
22
3.1.3 推理的方向
3. 混合推理
正向推理: 盲目、效率低。 ▪ 逆向推理: 若提出的假设目标不符合实际,会降低效率。 ▪ 正反向混合推理: (1)先正向后逆向:先进行正向推理,帮助选择某个目标,
即从已知事实演绎出部分结果,然后再用逆向推理证实该目标 或提高其可信度;
(2)先逆向后正向:先假设一个目标进行逆向推理,然后再
36
第3章 确定性推理方法
3.1 推理的基本概念 3.2 自然演绎推理 3.3 谓词公式化为子句集的方法 3.4 鲁宾逊归结原理 3.5 归结反演 3.6 应用归结反演求解问题
归 结 演 绎 推 理
37
归结演绎推理
反证法: P Q ,当且仅当 P Q F , 即 Q为 P 的逻辑结论,当且仅当 P Q 是不可
西安科技大学人工智能题库8(含答案)
西安科技大学人工智能题库8(含答案)工智能试卷8一、选择题(每题1分,共15分)1、人工智能是一门A)数学和生理学B)心理学和生理学C)语言学D)综合性的交叉学科和边缘学科2、语义网络表达知识时,有向弧AKO 链、ISA 链是用来表达节点知识的()。
A) 无悖性B) 可扩充性C) 继承性3、(A->B)∧A => B是A)附加律B)拒收律C)假言推理D)US4、命题是可以判断真假的A)祈使句B)疑问句C)感叹句D)陈述句5、仅个体变元被量化的谓词称为A)一阶谓词B)原子公式C)二阶谓词D)全称量词6、MGU是A) 最一般合一B)最一般替换C) 最一般谓词D)基替换最一般合一7、下列不在人工智能系统的知识包含的4个要素中A) 事实B) 规则C) 控制D) 关系8、当前归结式是()时,则定理得证。
A) 永真式 B 包孕式(subsumed)C) 空子句9、或图通常称为A)框架网络B)语义图C)博亦图D)状态图10、不属于人工智能的学派是A)符号主义B) 机会主义C)行为主义D)连接主义。
11、所谓不确定性推理就是从( )的初始证据出发,通过运用( )的知识,最终推出具有一定程度的不确定性但却是合理或者近乎合理的结论的思维过程。
A)不确定性, 不确定性B)确定性, 确定性C)确定性, 不确定性D) 不确定性确定性12.要想让机器具有智能,必须让机器具有知识。
因此,在人工智能中有一个研究领域,主要研究计算机如何自动获取知识和技能,实现自我完善,这门研究分支学科叫()。
A)专家系统 B)机器学习C)神经网络D)模式识别13、下列哪部分不是专家系统的组成部分()A.)用户B)综合数据库C)推理机D)知识库14、产生式系统的推理不包括()A)正向推理B)逆向推理C)双向推理D)简单推理15、C(B|A) 表示在规则A->B中,证据A为真的作用下结论B为真的A)可信度B)信度C)信任增长度D)概率二、填空题(每空1.5分,共30分)1、不确定性类型按性质分:,,,。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
v 推理过程
✓ 1)首先用与/或树把目标公式表示出来; ✓ 2)用B规则的右部和与/或树的叶节点进行匹配,并将
匹配成功的B规则加入到与/或树中; ✓ 3)重复进行步骤2,直到产生某个终止在事实节点上
目标公式的与/或树表示
•¬P(f(z))∨Q(f(y), y)∧(¬R(f(y))∨¬S(y))
•¬P(f(z))
•Q(f(y), y)∧(¬R(f(y))∨¬S(y))
•Q(f(y), y)
•¬R(f(y))∨¬S(y)
若把叶节点用它们之间的
合取及析取关系连接起来, •¬R(f(y))
•¬S(y)
▪ 变元换名后为 ¬P(f(z))∨(Q(f(y), y)∧(¬R(f(y))∨¬S(y)))
关于为何需用对偶方式消去量词,这里不作形式证明,仅 通过与归结反演方法作对比来加以直观说明:在归结反演 中,需将目标公式取反,存在量词约束变量就成为全称量 词约束变量。
西电人工智能15确定性推理part8
目标公式的与/或树表示
Fido是一只狗 Fido是不叫的 Fido摇尾巴 猫咪的名字叫Myrtle
西电人工智能15确定性推理part8
规则逆向演绎推理过程
✓ 规则:
r1: (WAGS-TAIL(x1)∧DOG(x1))→ FRIENDLY(x1) 摇尾巴的狗是温顺的狗
r2: (FRIENDLY(x2)∧ ¬ BARKS(x2))→ ¬ AFRAID(y2, x2) 温顺又不叫的东西是不值得害怕的
r3: DOG(x3)→ANIMAL(x3) :狗为动物 r4: CAT(x4)→ANIMAL(x4):猫为动物 r5: MEOWS(x5)→CAT(x5):喵喵叫的是猫
西电人工智能15确定性推理part8
规则逆向演绎推理过程
✓ 问题:
是否存在这样的一只猫和一条狗,使得这只猫不害怕 这只狗?
该问题的目标公式为: (∃x) (∃y) (CAT(x)∧DOG(y)∧¬AFRAID(x, y))
西电人工智能15确定性 推理part8
2020/12/7
西电人工智能15确定性推理part8
内容提要
•第三章:确定性推理
•1.推理的基本概念 •2.搜索策略 •3.自然演绎推理 •4.归结演绎推理 •5.基于规则的演绎推理 •6.产生式系统
西电人工智能15确定性推理part8
基于规则的演绎推理
v 规则演绎系统 ✓规则正向演绎系统 ✓规则逆向演绎系统 ✓规则双向演绎系统
✓ 再消去存在量词,并进行变元换名,使主析取元之间 具有不同的变元名。
西电人工智能15确定性推理part8
目标公式的与/或形变换
✓ 例如,有如下目标公式: (∃y) (∀x)(P(x)→(Q(x)∧¬(R(x)∧S(y))))
▪ Skolem化后为 ¬P(f(y))∨(Q(f(y), y)∧(¬R(f(y))∨¬S(y)))
▪ 改目标公式经变换后得到 CAT(x)∧DOG(y)∧ ¬ AFRAID(x, y)
✓ 用逆向推理求解该问题的演绎过程如下图所示:
西电人工智能15确定性推理part8
规则逆向演绎推理过程
•CAT(x)∧DOG(y)∧ ¬AFRAID(x,y)
•CAT(x)
•{x5/x}
•CAT(x5)
•r5
西电人工智能15确定性推理part8
目标公式的与/或形变换
v 在与/或形逆向演绎推理中,要求目标公式采用与/ 或形表示,其化简采用与正向系统中对事实表达 式处理的对偶形式。
v 转化步骤
✓ 要用存在量词约束变元的Skolem函数来替换由全称量 词约束的相应变元,消去全称量词。(隐含着变量受 存在量词的约束 )
目标与或树中的叶节点进行匹配(合一),而目标与或 树中的叶节点是文字。 ✓ 如果已知的B规则不是要求的形式,可用与转化F规则类 似的方法把它转化为规定的形式。 ✓ 特别地,当B规则为W→L1∧L2时,则可化件为两条规 则W→L1和W→L2进行处理。
西电人工智能15确定性推理part8
已知事实的表示形式
v 已知事实的表示形式 ✓反向演绎系统的事实表达式限制为文字合取形 式,如: F1∧F2∧ …∧Fn ✓其中,每个Fi(i=1,2,…,n)都为单文字,且都 可单独起作用,因此可表示为如下集合形式 { F1,F2, … ,Fn }
西电人工智能15确定性推理part8
规则逆向演绎推理过程
v 规则逆向演绎推理
就可得到原目标公式的三个
子目标:
子目标是文字的合取
• ¬P(f(z));
Q(f(y),
y)∧¬ R(f(y));
式 Q(f(y),
y)∧¬ S(y)
西电人工智能15确定性推理part8
B规则的表示形式
v B规则的表示形示形式
W→L ✓ 其中,前项W为任一与/或形公式,后项 L为一单文字。 ✓ 这里要求B规则的右边为文字,是因为推理时要用它与
西电人工智能15确定性推理part8
规则逆向演绎系统
v 规则逆向演绎推理过程:
✓ 规则逆向演绎推理过程是从待证明的问题,即目标公 式的与/或树出发,通过逆向地使用蕴含式(B规则), 对目标公式的与/或树进行变换,直到得出包含已知事 实的终止条件为止。
v 规则逆向演绎系统
✓ 目标公式的表示:与/或形变换,与/或树表示 ✓ B规则的表示形式 ✓ 已知事实的表示形式 ✓ 规则逆向演绎推理过程
的一致解图为止。这里的“一致解图”是指在推理过 程中所用到的代换应该是一致的。
西电人工智能15确定性推理part8✓事实:
f1: DOG(Fido) f 2: ¬BARKS(Fido) f 3: WAGS-TAIL(Fido) f 4: MEOWS(Myrtle)
v 目标公式的与/或形也可用与/或树表示出来,其表 示方法与正向演绎推理中事实的与或树表示略有 不同: ✓子表达式之间的析取关系用单一连接符连接, 表示称或的关系; ✓子表达式之间的合取关系则用k线连接符连接, 表示为与的关系。 ✓例如:对上述目标公式的与/或形,可用如下的 与/或树表示。
西电人工智能15确定性推理part8