西电人工智能大作业
西电人工智能11确定性推理part4
博弈树的启发式搜索
博弈树
在双人完备信息博弈中,若将两位对垒选手分别记为 MAX和MIN ,则博弈树中,下一步该MAX走步的节点 称为MAX节点,该MIN走步的节点称为MIN节点。
博弈树的特点:
(1) 博弈的初始状态是初始节点; (2) 博弈树中的“或”节点和“与”节点逐层交替出现; (3) 整个博弈过程始终站在某一方的立场上。所有能使
e(P)=e(+P)-e(-P)=5-4=1
西安电子科技大学
MAX节点
博弈树的启发式搜索
S0
一子棋的极大极小搜索
1
MAX节点
MIN节点
-1
S1
-2
S2
1
S3
6-5=1 5-5=0 6-5=1 5-5=0 4-5=-1
S4
S5
5-4=1 6-4=2
5-6=-1 5-5=0 5-6=-1 6-6=0 4-6=-2
出以S0为根的希望树T; (3) 依次在OPEN表中取出T的端节点放入CLOSED表,
并记该节点为n;节点n有三种不同情况:①n为终止节 点,②n不是终止节点,但可扩展,③n不是终止节点, 且不可扩展,对三种情况分别进行步骤(4) (5) (6)的操作 过程;
西安电子科技大学
与/或树的启发式搜索
鉴于博弈树具有“与”节点和“或”节点逐层交替出现 的特点,如果能边生成节点边对节点估值,就有可能删 去一些不必要的节点,从而减少搜索及计算的工作量。
西电人工智能大作业
人工智能大作业
学生:021151**
021151**
时间:2013年12月4号
一.启发式搜索解决八数码问题
1. 实验目的
问题描述:现有一个3*3的棋盘,其中有0-8一共9个数字,0表示空格,其他的数字可以和0交换位置(只能上下左右移动)。给定一个初始状态和一个目标状态,找出从初始状态到目标状态的最短路径的问题就称为八数码问题。
例如:实验问题为
从初始状态:
要求编程解决这个问题,给出解决这个问题的搜索树以及从初始节点到目标
到目标状态:
节点的最短路径。
2.实验设备及软件环境
利用计算机编程软件Visual C++ 6.0,用C语言编程解决该问题。
3.实验方法
(1).算法描述:
①.把初始节点S放到OPEN表中,计算()
f S,并把其值与节点S联系起
来。
②.如果OPEN表是个空表,则失败退出,无解。
③.从OPEN表中选择一个f值最小的节点。结果有几个节点合格,当其
中有一个为目标节点时,则选择此目标节点,否则就选择其中任一节点作为节点i。
④.把节点i从OPEN表中移出,并把它放入CLOSED的扩展节点表中。
⑤.如果i是目标节点,则成功退出,求得一个解。
⑥.扩展节点i,生成其全部后继节点。对于i的每一个后继节点j:
a.计算()
f j。
b.如果j既不在OPEN表中,也不在CLOSED表中,则用估价函数f把
它添加入OPEN表。从j加一指向其父辈节点i的指针,以便一旦找到
目标节点时记住一个解答路径。
c.如果j已在OPEN表或CLOSED表上,则比较刚刚对j计算过的f值
和前面计算过的该节点在表中的f值。如果新的f值较小,则
西电计算智能导论课后答案
西电计算智能导论课后答案
1、在机器学习中,机器可以自行通过样本总结规律,不需要人工干预,就可以总结规律的方向以及参数的维度。 [判断题] *
对
错(正确答案)
2、知识图谱已经成为推动人工智能发展的唯一核心驱动力。 [判断题] *
对
错(正确答案)
3. 快递无人车配送主要是根据雷达控制、GPS定位、图像识别、路径规划、道路监控来实现快递车的运行及环境感知。 [判断题] *
对(正确答案)
错
4. 无人机航拍主要利用遥感操控平台。 [判断题] *
对(正确答案)
错
5. 惯性导航系统测量运动载体的线加速度和角速率数据,再对这些数据对距离进行微分运算。 [判断题] *
对
错(正确答案)
6. 全局路径规划的主要规划内容是避免碰撞和保持安全距离。 [判断题] *
对
错(正确答案)
7. 2010年美国颁布了以IEEE802.11P作为底层通信协议和以IEEE1609系列规范作为高层通信协议的V2X网联通通信标准。 [判断题] *
对(正确答案)
错
8. 无人车自主避障的第一阶段是规划合理路线。 [判断题] *
对
错(正确答案)
9. 三维自动目标识别(ATR)是指从三维成像的传感器数据中自动检测并识别目标。 [判断题] *
对(正确答案)
错
10. 无人船分为自主无人船、非自主无人船两种。 [判断题] *
对
错(正确答案)
1、现阶段的机器感知是计算机通过()来辨别周围世界。 *
A. 图像(正确答案)
B. 声音(正确答案)
C. 感觉
D. 信息
2、图像识别经历的阶段有() [单选题] *
A. 文字识别
B. 数字图像处理
C. 识别、物体识别
西安科技大学人工智能题库7(含答案)
人工智能试卷7
一、选择题:(13小题,共13分)
1.人工智能的含义最早由一位科学家于1950年提出,并且同时提出一个机器智能的测试模型,请问这个科学家是(C)。
A. 明斯基
B. 扎德
C. 图灵
D. 冯.诺依曼
2.下列哪个不是人工智能的研究领域(D)
A.机器证明
B.模式识别
C. 人工生命
D. 编译原理
3.神经网络研究属于下列(B)学派
A. 符号主义
B. 连接主义
C. 行为主义
D. 都不是
4.已知初始问题的描述,通过一系列变换把此问题最终变为一个子问题集合;这些子问题的解可以直接得到,从而解决了初始问题。这是知识表示法叫(B)
A. 状态空间法
B. 问题归约法
C. 谓词逻辑法
D. 语义网络法
5.在公式中∀y∃xp(x,y)),存在量词是在全称量词的辖域内,我们允许所存在的x可能依赖于y值。令这种依赖关系明显地由函数所定义,它把每个y值映射到存在的那个x。这种函数叫做(B)
A. 依赖函数
B. Skolem函数
C. 决定函数
D. 多元函数
6.子句~P∨Q和P经过消解以后,得到(B)
A. P
B. Q
C. ~P
D. P∨Q
7,8.A∧(A∨B)⇔A 称为(C),~(A∧B)⇔~A∨~B称为(D)
二、结合律 B.分配律 C.吸收律 D.摩根律
9,10.如果问题存在最优解,则下面几种搜索算法中,(A)必然可以得到该最优解,(D)可以认为在这几种算法中是“智能程度相对比较高”的算法。
A. 广度优先搜索
B. 深度优先搜索
C. 有界深度优先搜索
D. 启发式搜索
11.产生式系统的推理不包括(D)
A. 正向推理
大工20秋《人工智能》大作业
学习中心:
专业:计算机科学与技术年级: 2019年春季学号:
学生:
题目:回归算法
1.谈谈你对本课程学习过程中的心得体会与建议?
通过对人工智能课程的系统学习,让我全面的了解了人工智能的基本概念和发展现状。以及现实生活中越来越广泛的应用。在数据分析,交通管理以及生物医疗等方面人工智能都发挥着极大的作用。人工智能将是未来科技发展的一个新的趋势。人工智能的具体课程,由人工智能的基本概念和发展情况,以及人工智能的搜索策略,机器学习和神经计算以及人工智能的具体应用这几部分组成。在整个学习的过程中老师结合各种生动的实例让我们对于人工智能的概念以及逻辑思维方式处理方式都有一个全面整体的认知,使这些相对枯燥的理论能够变得更加有趣也更方便我们去掌握使用。人工智能未来的发展必然是不可限量的,人工智能课程的学习使我们逐步了解了这个相对陌生的领域,在将来的工作和生活中我们要努力把所学到的东西运用到其中去,必定能事半功倍大大的提高效率。对于这门课程我还是希望课程内容可以与时俱进,结合当下人工智能发展的情况,做到实时的去结合当前人工智能发展和应用的一些成果去丰富课程体系和课程内容,更好的让学生了解人工智能学习人工智能并且合理的运用相关理论和实例。
2.回归算法
1.逻辑回归算法概念:
逻辑回归其实是一种分类算法,将数据拟合到一个logistic函数中,从而完
成对事件发生的概率进行预测。
2.逻辑回归算法核心思想:
逻辑回归Logistic,主要用于两分类问题,即输出只有两种,因此利用Logistic
函数,或者可以称作为Sigmoid函数,函数形式以及函数图像如下所示:
西电智能大作业
班级
学号
智能传感技术大作业
题目显微成像系统
学院电子工程学院
专业智能科学与技术
学生姓名
导师姓名
显微镜成像系统
一、简介
显微镜成像系统以非摄影方式获取微观世界的影像,并可以对获取的图片进行图像分析的系统。通过逐点、逐行、逐面快速扫描成像,并通过数据线连接到计算机上进行图像分析。由显微镜摄像头+图像分析软件组合而成的系统,一般被称为显微影像软件、显微镜照相系统、显微摄像系统等。一般购买显微镜摄像头时都会带有图像分析软件,所以人们很容易和混绕,误以为显微镜成像系统等于显微镜摄像头。
二、系统分类
1.基础图象测量软件
基本的图象捕获,增强及简[1]单的测量工具
2.通用分析图象处理软件
应用于科学/工业的图象分析,可以提出证明实验数据
3.特定功能的图象分析软件
解决相关领域特殊的图象分析要求
三、类别纲目
1、可见光显微镜
1)、按照明技术分
①、明视野显微镜
②、暗视野显微镜
③、荧光显微镜
2)、按像的类型分
①、相差显微镜
②、干涉相差显微镜
③、偏光显微镜
3)、按镜体结构分
①、倒置显微镜
②、实体显微镜
③、比较显微镜
4)、按应用范围分
①、教学显微镜
②、研究显微镜
③、大型万能显微镜
2、不可见光显微镜
1)、紫外光显微镜
2)、红外光显微镜
3)、X射线显微镜
四、显微成像系统的发展历史
公元前一世纪人们就已发现通过球形透明物体去观察微小物体时可以使其放大成像。1590年,荷兰和意大利的眼镜制造者已经造出类似显微镜的放大仪器。1610年前后,意大利的伽利略和德国的开普勒在研究望远镜的同时,改变物镜和目镜之间的距离,得出合理的显微镜光路结构,当时的光学工匠遂纷纷从事显微镜的制造、推广和改进。
科技论文写作(西电人工智能大四作业)
科技论文的结构与承接关系分析
本文通过阅读论文《Wide or Narrow?A Visual Attention Inspired Model for View-Type Classification》来分析科技论文的结构与承接关系。按照文章的结构分别进行阐述:
第一是论文题目:标题以少量的词汇充分描述了论文的内容,清晰的说明了本篇论文的主要工作是提出了一个视觉类型分类模型。
第二是作者姓名和通讯地址:提供作者的相关信息以及两位通讯作者的联系方式。
第三是摘要:摘要部分首先指出所研究问题的原因和挑战性:照片的视觉类型被发现与新的领域有关,因此引发了新的挑战。之后描述了这项科研工作对上述问题的解决方法:作者发现用焦点线索和尺度线索可以代表视觉注意的关键,分别简要概括如何应用这两个线索建模后说明该项工作所使用的方法,最后总结本次工作获得的结果:指出在新建的数据集上进行实验,得到了比现有技术更好的性能。
以上三部分提供了论文内容的大概预览,概括了全文的主要内容。
第四是引言:引言部分是论文的开端,交代了为什么要研究相关的课题,引出作者研究成果的创新点,使读者对本篇文章有一个总体的了解。本文中就提供了足够的背景信息,便于读者理解和评估此项科研成果:多项研究和实验发现,照片的视角(即窄或宽)与人的潜意识,尤其是情感有关,表明了该项科研的重要性。之后指明其中研究的不足之处是忽略了图像中以宽视角或窄视角表达的注意力。明晰本文的研究目标:提出一种有效的计算模型,以解决上述图像分类问题。再进一步阐述以往算法的优点以及待改进的地方。针对上述问题,引出本文提出的方法。之后具体介绍了焦点线索和尺度线索。基于之前的分析,提出具体详细的解决方案:使用离散小波变换和卷积神经网络对焦点和尺度进行建模。然后提到在多个数据集上相比其他经典算法取得了更好的结果。最后总结了一下本文的3点主要贡献,以及介绍了论文其余部分的安排。
西电人工智能大作业八数码问题
人工智能关于八数码问题
摘要:
八数码问题是人工智能中一个很典型的智力问题。本文以状态空间搜索的观点讨论了八数码问题,给出了八数码问题的C++算法与实现的思想,分析了A 算法的可采纳性等及系统的特点。关键词九宫重排,状态空间,启发式搜索,A 算法1引言九宫重排问题是人工智能当中有名的难题之一。问题是在3×3方格盘上,放有八个数码,剩下一个位置为空,每一空格其上下左右的数码可移至空格。问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始状态转化为目标状态。状态转换的规则:空格四周的数移向空格,我们可以看作是空格移动,它最多可以有4个方向的移动,即上、下、左、右。九宫重排问题的求解方法,就是从给定的初始状态出发,不断地空格上下左右的数码移至空格,将一个状态转化成其它状态,直到产生目标状态。
一、问题描述
1.1 待解决问题的解释
八数码游戏(八数码问题)描述为:在3×3组成的九宫格棋盘上,摆有八个将牌,每一个将牌都刻有1-8八个数码中的某一个数码。棋盘中留有一个空格,允许其周围的某一个将牌向空格移动,这样通过移动将牌就可以不断改变将牌的布局。这种游戏求解的问题是:给定一种初始的将牌布局或结构(称初始状态)和一个目标的布局(称目标状态),问如何移动将牌,实现从初始状态到目标状态的转变。
1.2 问题的搜索形式描述(4要素)
初始状态:
8个数字将牌和空格在九宫格棋盘上的所有格局组成了问题的状态空间。其中,状态空间中的任一种状态都可以作为初始状态。
后继函数:
通过移动空格(上、下、左、右)和周围的任一棋子一次,到达新的合法状态。
西电人工智能2-知识表示-作业
⑴ 任何整数或者为正或者为负. 定义谓词:I(x):x是整数。 P(x): x是正数。 N(x): x是负数。 则谓词公式表示为:
(x)( I ( X ) P( x) N ( x))
⑵ 我喜爱音乐和绘画.
定义谓词:LIKE(x,y):x喜欢y。 谓词公式:
LIKE ( I , music) LIKE ( I , pa int ing )
男
女
年老
年轻
与会者有男、有女、有的年老、有的年轻
雪地上 在
脚 印 部分 A
部分 部分
B C 状态 与ห้องสมุดไป่ตู้
部分 D
状态 状态
状态
或
或
大
小
深
浅
雪地上留下一串串脚印,有的大,有的小,有的深,有的浅。
⑶ 所有机器人都是灰色的. 定义谓词: R(x): x是机器人。 G(x): x是灰色的。 谓词公式:
(x)( R( x) G( x))
⑷ 如果该书是何平的,那么它是蓝色的.
定义谓词: BELONG(x, y):x是y的。 BLUE(x):x是蓝色的。 谓词公式:
BELONG(book , He Ping ) BLUE(book )
⑸ 李明打篮球或踢足球。 定义谓词: PLAY(x,y):x做y运动。 谓词公式:
PLAY ( Li M in g , basketball ) PLAY ( Li M in g , football )
西电 人工智能交叉学科拔尖人才培养的探索与实践
西电人工智能交叉学科拔尖人才培养的探索与实践
西安电子科技大学(以下简称西电)是我国较早成立的高校之一,也
是人工智能领域的重要强校之一。多年来,西电致力于培养具备创新
精神和实践能力的人才,并在人工智能交叉学科拔尖人才培养方面进
行了大量的探索和实践。
在拔尖人才培养方面,西电采取了一系列创新的举措。学校设立了人
工智能学院,将人工智能相关学科整合起来,并设立了多个专业方向,如机器学习、计算机视觉和自然语言处理等。这种学院模式的设置有
助于培养跨学科的综合性人才,拓宽了学生的知识边界,培养了多方
面的能力。
西电深入推进了学术研究与实践教学相结合的人才培养模式。学校将
理论课程与实践环节相结合,注重培养学生的实际应用能力。为了提
供实践机会,学校建设了先进的实验室和创新创业基地,为学生提供
了充分的实践平台。在这些平台上,学生可以参与科研项目、参与赛
事竞赛、参与创新创业活动,锻炼自己的创新能力和实践技能。
西电还注重国际化人才培养。学校积极开展与国外高校和科研机构的
合作交流,为学生提供了赴国外交流学习和参与国际科研合作的机会。这种国际化的人才培养模式可以让学生了解全球人工智能领域的最新
动态和发展趋势,拓宽国际视野,提高国际竞争力。
西电在人工智能交叉学科拔尖人才培养方面取得了可观的成就。学校通过设置人工智能学院、推行学术研究与实践教学相结合的模式,以及积极推进国际化合作,为学生提供了广阔的平台和丰富的资源,培养了一大批优秀的人才。对于未来的探索和实践,我认为西电可以继续加强与企业的合作,将人才培养与实际需求更好地结合起来,引导学生参与产学研结合的项目,提高就业竞争力和创新能力。
人工智能大作业-
人工智能课程考查论文
学号
姓名
系别
年级
专业
人工智能大作业
〔1〕什么是人工智能?
人工智能(Artificial Intelligence) ,英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反响的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
人工智能的定义可以分为两局部,即“人工〞和“智能〞。“人工〞比拟好理解,争议性也不大。有时我们会要考虑什么是人力所能及制造的,或者人自身的智能程度有没有高到可以创造人工智能的地步,等等。但总的来说,“人工系统〞就是通常意义下的人工系统。
人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一〔空间技术、能源技术、人工智能〕。也被认为是二十一世纪〔基因工程、纳米科学、人工智能〕三大尖端技术之一。这是因为近三十年来它获得了迅速的开展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。
人工智能〔Artificial Intelligence,AI〕是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,但没有一个统一的定义。
〔2〕简述人工智能的研究内容与研究目标、人工智能的研究途径和方法、人工智能的研究领域。
西电实习报告
西电实习报告
本文将详细介绍我在西安电子科技大学实习的经历和体会。我在大二暑假期间参加了西电电子信息工程学院举办的实习活动,时长为两个月。在这段时间里,我和来自不同专业的同学一起参加了各种实习项目,帮助我更好地了解和掌握学习内容,同时对于未来的职业规划也有了更加明确的目标。
实习的第一周,我们首先进行了一些基础课程的学习,例如编程、电路等基本知识。这些课程内容非常实用,对我日后的学习和工作都有着帮助。除此之外,我们还学习了如何撰写优秀的简历和求职信,这为我以后的个人品牌打造打下了基础。
在学习基础课程的同时,我们还要进行实际项目的实习。我的实习项目是参与了一项大型的人工智能项目。在这个项目中,我们需要对大量的数据进行处理和分析,并进行机器学习算法的优化和调试。虽然这个项目难度较大,但是我们实习中解决问题的速度很快,最后得到了优秀的成果。
当然,实习也有一些挑战。其中最大的问题就是时间紧张,任务繁重。我们需要在两个月内完成许多的学习和研究任务,而且还要处理各种突发事件。但是,这些挑战也让我在压力下学会了更好地管理时间和抗压能力。同时,我也学习了如何更好地与他人协作,处理注重细节的任务。
总的来说,我在这次实习中学到了许多实用的技能和工作经验。这次实习锻炼了我的工作能力,让我更好地了解了自己的兴趣和优势。通过这次实习,我也认识到了职业发展的重要性,学会了如何规划和追逐自己的职业目标。在未来,我会继续努力,成为一名更优秀的职场新人。
西电电院人工智能课程大作业。
西电人工智能大作业
八数码难题
一.实验目的
八数码难题:在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
#include
typedef struct Node {
int num[9]; //棋盘状态
int deepth; //派生的深度 g(n)
int diffnum; //不在位的数目 h(n)
人工智能课程大作业及人工智能例题大纲
作业题目
摘要:机器博弈是人工智能的一个重要研究分支,本文通过设计一个五子棋智能博奕程序,采用传统的博弈树算法,利用剪枝和极大极小树搜索最佳位置,从而实现人机智能博弈。并对现有算法存在的问题进行探究改进,最后给出展示,结果表明效果比较理想。
关键词:人工智能;五子棋;博弈
本组成员:
本人分工:α-β剪枝实现
1 引言
人工智能[1]是一门综合新型的新兴边缘科学,与生物工程、空间技术并列为三大尖端技术,而机器博弈却是其一个重要的研究分支。它研究如何利用计算机去实现那些过去只能靠人的智力去完成的工作,博弈为人工智能提供了一个很好的应用场所。
博弈过程可以采用与或树进行知识表达,这种表达形式称为博弈树。α—β剪枝技术是博弈树搜索中最常采用的策略。
2 算法原理与系统设计
根据五子棋游戏规则,此次五子棋游戏我们采用基于极大极小值分析法的α—β剪枝算法来实现计算机走棋。α—β剪枝技术是博弈树搜索中最常采用的策略,α—β剪枝搜索由极大极小值分析法演变而来[2]。
极大极小分析法其基本思想或算法是:
(1) 设博弈的双方中一方为MAX,另一方为MIN。然后为其中的一方(例如MAX)寻找一个最优行动方案。
(2) 为了找到当前的最优行动方案,需要对各个可能的方案所产生的后果进行比较,具体地说,就是要考虑每一方案实施后对方可能采取的所有行动,并计算可能的得分。
(3) 为计算得分,需要根据问题的特性信息定义一个估价函数,用来估算当前博弈树端节点的得分。此时估算出来的得分称为静态估值。
(4) 当端节点的估值计算出来后,再推算出父节点的得分,推算的方法是:对“或”节点,选其子节点中一个最大的得分作为父节点的得分,这是为了使自己在可供选择的方案中选一个对自己最有利的方案;对“与”节点,选其子节点中一个最小的得分作为父节点的得分,这是为了立足于最坏的情况。这样计算出的父节点的得分称为倒推值。
西电人工智能上机报告人工智能3
人工智能
实验上机报告三
班级:130811
学号:********
姓名:潘**
上机实验(三)
小型专家系统
一.定义题目(包含图)
短跑运动员水平测试系统
刘翔:
史冬鹏:
黄晓明:
系统要根据属性识别运动员特质,例如,皮肤黄色,有胡子,高个子。二.谓词定义
database
xpositive( symbol, symbol) .
xnegative( symbol, symbol) .
predicates
run.
animal- is( symbol) .
it- is( symbol) .
positive( symbol, symbol) .
negative( symbol, symbol) .
clear- facts.
remember( symbol, symbol) .
ask( symbol, symbol) .
三.程序代码
trace
Dababase
Spositive(symbol,symbol)
Snegative(symbol,symbol)
Predicates
Run
Person_is(symbol)
Positive(symbol,symbol)
Negative(symbol,symbol)
Clear_faces
Remember(symbol,symbol,symbol)
Ask(symbol,symbol)
Goal
Run
Clauses
Run:-
Person_is(x),!,
write(“THIS IS ”, X),nl,nl,clear_facts.
Run:-
write (“can not determine this person”), clear_facts.
西电 人工智能 习题
(2)张三是大发电脑公司的经理,他 35 岁,住在飞天胡同 68 号。
答:钱和孙是盗窃犯,赵和李不是。下面给出求解过程。 设用 T(x)表示 x 是盗窃犯,则根据题意可得如下子句集: A:T(赵)∨T(钱) ( 1) B:T(钱)∨T(孙) ( 2) C: T(孙) ∨T(李) (3) D: ¬ T(赵)∨ ¬ T(孙) ( 4) E: ¬ T(钱)∨ ¬ T(李) ( 5) 下面先求谁是盗窃犯。把¬T(x)∨Ansewer(x)并入上述子句集,即多出一个子句: ¬T(x)∨Ansewer(x) (6) (1)和(4)归结得: T(钱)∨ ¬ T(孙) (7) (2)和(7)归结得: T(钱)。 ( 8) (6)和(8)归结得: Answer(钱)。 (9) {钱/x} (3)和(5)归结得: T(孙)∨ ¬ T(钱) (10) (2)和(10)归结得: T(孙)。 (11) (6)和(11)归结得: Answer(孙)。 (12) {孙/x} 因此,钱和孙是盗窃犯,此外无论如何也归结不出 Ansewer(赵)和 Ansewer(李)。 下面证明赵不是盗窃犯,即证明¬T(赵)。子句集如下: A:T(赵)∨T(钱) (1) B:T(钱)∨T(孙) ( 2) C: T(孙) ∨T(李) (3) D: ¬ T(赵)∨ ¬ T(孙) ( 4) E: ¬ T(钱)∨ ¬ T(李) ( 5) 要证明赵不是盗窃犯,即证明¬T(赵)。 对¬T(赵)进行否定,并入上述子句集中,即多出如下子句: ¬(¬T(赵)), 即 T(赵) (6) 应用归结原理对子句集进行归结: (3)和(5)归结得: T(孙)∨ ¬ T(钱) (7)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能大作业
学生:021151**
021151**
时间:2013年12月4号
一.启发式搜索解决八数码问题
1.实验目的
问题描述:现有一个3*3的棋盘,其中有0-8一共9个数字,0表示空格,其他的数字可以和0交换位置(只能上下左右移动)。给定一个初始状态和一个目标状态,找出从初始状态到目标状态的最短路径的问题就称为八数码问题。
例如:实验问题为
到目标状态:
从初始状态:
要求编程解决这个问题,给出解决这个问题的搜索树以及从初始节点到目标节点的最短路径。
2.实验设备及软件环境
利用计算机编程软件Visual C++ 6.0,用C语言编程解决该问题。
3.实验方法
(1).算法描述:
①.把初始节点S放到OPEN表中,计算()
f S,并把其值与节点S联系
起来。
②.如果OPEN表是个空表,则失败退出,无解。
③.从OPEN表中选择一个f值最小的节点。结果有几个节点合格,当其
中有一个为目标节点时,则选择此目标节点,否则就选择其中任一节点作为节点i。
④.把节点i从OPEN表中移出,并把它放入CLOSED的扩展节点表中。
⑤.如果i是目标节点,则成功退出,求得一个解。
⑥.扩展节点i,生成其全部后继节点。对于i的每一个后继节点j:
a.计算()
f j。
b.如果j既不在OPEN表中,也不在CLOSED表中,则用估价函数f
把它添加入OPEN表。从j加一指向其父辈节点i的指针,以便一旦
找到目标节点时记住一个解答路径。
c.如果j已在OPEN表或CLOSED表上,则比较刚刚对j计算过的f
值和前面计算过的该节点在表中的f值。如果新的f值较小,则
I.以此新值取代旧值。
II.从j指向i,而不是指向它的父辈节点。
III.如果节点j在CLOSED表中,则把它移回OPEN表。
⑦转向②,即GO TO ②。
(2).流程图描述:
(3).程序源代码:
#include
#include
struct node{
int number[3][3];//用二维数组存放8数码
int W;//W表示与目标状态相比错放的数码数
int Depth;//记录当前节点的深度
struct node *parent;//指向父节点的指针
struct node *next;//指向链表中下一个节点的指针};
int CounterW(int Number[3][3])
{//函数说明:计算当前状态与目标状态的W值int i,j;
int W=0;
int Desnode[3][3]={1,2,3,8,0,4,7,6,5};
for(i=0; i<3; i++)
for(j=0; j<3; j++)
if(Number[i][j] != Desnode[i][j])
W++;
return W;
}
void PrintNode(node *A)
{
int i,j;
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
printf("%d ",A->number[i][j]);
printf("\n");
}
printf("\n");
}
int CheckNode(node *open, node *close, int a[3][3]) {//检验该节点状态是否出现过的子程序int CheckFlag=0;
int flag1,flag2;
node *p=open;
node *q=close;
while(p != NULL)
{
flag1=0;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
if(a[i][j]==p->number[i][j])
flag1++;
}
if(flag1 == 9)
break;
else
p=p->next;
}
while(q != NULL)
{
flag2=0;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
if(a[i][j] == q->number[i][j])
flag2++;
}
if(flag2 == 9)
break;
else
q=q->next;
}
if((flag1==9) || (flag2==9))
CheckFlag=1;//如果出现过,置标志位为1
return CheckFlag;
}
struct node *FindNextNode(node *Prenode, node *open, node *close)
{ //扩展Prenode指向的节点,并将扩展所得结点组成一条单链表int i,j,m,n; //循环变量
int temp; //临时替换变量
int flag=0;
int a[3][3];//临时存放二维数组
struct node *p, *q, *head;
head=(node *)malloc(sizeof(node));//head指向该链表首结点,并且作为返回值
p=head;
q=head;
head->next=NULL;//初始化
for(i=0;i<3;i++)//找到二维数组中0的位置
{
for(j=0;j<3;j++)
if(Prenode->number[i][j]==0)
{
flag=1;