《2022年《人工智能导论》实验指导书 .pdf》由会员分享,可在线阅读,更多相关《2022年《人工智能导论》实验指导书 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 目 录实验一 PROLOG 语言编程练习 2 实验二图搜索问题求解 4 实验三小型专家系统 (原型) 设计 7 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 2 实验一 PROLOG 语言编程练习一、实验目的加深学生对逻辑程序运行机理的理解,使学生掌握PROLOG 语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。1、熟悉 PROLOG 语言编程环境的使用;2、了解 PROLOG 语言中常量、变量的表示方法
2、;3、了解利用PROLOG 进行事实库、规则库的编写方法;二、实验环境计算机, Turbo PROLOG教学软件。三、预习要求实验前应阅读实验指导书,了解实验目的、预习PROLOG 语言的相关知识。四、实验内容1、学习使用Turbo PROLOG ,包括进入PROLOG 主程序、编辑源程序、修改环境目录、退出等基本操作。2、在 Turbo prolog集成环境下调试运行简单的Turbo PROLOG程序,如描述亲属关系的PROLOG 程序或其他小型演绎数据库程序等。五、实验方法和步骤1、启动 Windows XP 操作环境。2、打开文件目录,执行prolog应用程序,启动Turbo prolo
3、g ,并按空格键 (SPACE)进入集成开发环境。3、选择 Setup 项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc 键退出,选择Save Configuration项,保存修改。4、选择Files项,打开下拉菜单,选择New file项,进入源程序输入和编辑,或选择Load 项,选择要打开的示例程序,再选择Edit项,可以进行编辑源程序。5、编辑之后,可以选择Run 项,执行程序,可以在Dialog窗口进行询问,即外部目标的执行,查看程序运行结果,分析程序之功能。6、仿前例,可以选择其他程序并运行,分析程序功能。7、退出,选择Quit 项,可以退出Turbo P
4、rolog程序,返回到Windows XP环境。六、示例程序逻辑电路模拟程序。该程序以逻辑运算“与”、 “或”、 “非”的定义为基本事实,然后在此基础上定义了“异或”运算。那么,利用这些运算就可以对“与”、 “或”、 “非”和“异或”等逻辑电路进行模拟。事实上,在此基础上也可以对其他任一逻辑门电路进行模拟。domains d=integer predicates not_(d,d) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - -
5、 3 and_(d,d,d) or_(d,d,d) xor_(d,d,d) clauses not_(1,0) not_(0,1) and_(0,0,0) and_(0,1,0) and_(1,0,0) and_(1,1,1) or_(0,0,0) or_(0,1,1) or_(1,0,1) or_(1,1,1) xor_(Input1, Input1, Output):- not_(Input1,N1), not_(Input2,N2), and_(Input1,N2,N3), and_(Input2,N1,N4), or_(N3,N4,Output). 七、实验报告要求实验报告应简单明了,
6、语言通顺,结果正确,程序规范。实验报告的重点是实验结果的正确性与分析。包括:实验题目、要求、实验环境、实验内容与实验结果(要求附上运行的源程序) 、实验中出现的问题、对问题的解决方案、实验总结等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 4 实验二图搜索问题求解一、实验目的加深学生对图搜索技术的理解,使学生掌握图搜索基本编程方法,并能利用图搜索技术解决一些应用问题。1. 掌握 Turbo prolog软件编程方法;2. 熟
7、悉状态图搜索的基本算法;3掌握图搜索问题求解中的问题表示、节点表示、close 表和 open 表的构造。二、实验环境计算机, Turbo PROLOG教学软件三、预习要求1.预习教材第四章有关状态图问题求解的内容,熟悉状态图求解的过程和方法;2.了解 Turbo PROLOG程序设计的基本知识。四、实验内容走迷宫是人们熟悉的一种游戏, 如图 1 就是一个迷宫。 如果我们把该迷宫的每一个格子以及入口和出口都作为节点, 把通道作为边 , 则该迷宫可以由一个有向图表示。那么 , 走迷宫其实就是从该有向图的初始节点(入口)出发, 寻找目标节点(出口)的问题, 或者是寻找通向目标节点(出口)的路径的问
8、题。用状态图搜索或与或图搜索方法,求出迷宫图中路径。图中S0为入口, Sg 为出口。图 1 迷宫图五、实验方法和步骤1. 启动 prolog编辑环境;2. 用状态图搜索思想编辑路径求解问题的源程序;3. 运行程序,分析结果;4. 用与或图搜索思想编辑路径求解问题的源程序;5运行程序,分析结果。六、示例程序下面是一个通用的状态图搜索程序。对于求解的具体问题,只需将其状态图的程序表示并入该程序即可。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - -
9、 - - - 5 /*状态图搜索通用程序*/ DOMAINS state= %例如 :state=symbol DATABASE-mydatabase open(state,integer) %用动态数据库实现OPEN 表closed(integer,state,integer) %和 CLOSED 表res(state) open1(state,integer) min(state,integer) mark(state) failPREDICATESsolvesearch(state,state)resultsearchingstep4(integer,state)step56(integ
10、er,state)equal(state,state)repeatresulting(integer)rule(state,state) GOALsolve.CLAUSESsolve: -search(,),result. /* 例如solve: -search(st(0,1,2,3,4,5,6,7,8),st(0,2,8,3,4,5,6,7,1),result.*/search(Begin,End): - % retractall(_,mydatabase),assert(closed(0,Begin,0), assert(open(Begin,0), %步 1 将初始节点放入OPENass
11、ert(mark(End),repeat,searching,!. result: - % not(fail_),retract(closed(0,_,0),closed(M,_,_),resulting(M),!.result: - beep,write( sorry dont find a road! ).searching: - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 6 open(State,Pointer),
12、%步 2 若 OPEN 表空, 则失败 ,retract(open(State,Pointer), %步 3 取出 OPEN 表中第一个节点,closed(No, _, _),No2=No+1, % 编号asserta(closed(No2,State,Pointer), %放入 CLOSED 表!,step4(No2,State). searching: -assert(fail_). %步 4 若当前节点为目标节点, 则成功step4(_,State): -mark(End),equal(State,End). %转步 2step4(No,State): -step56(No,State)
13、,!,fail. step56(No,StateX): - %步 5 若当前节点不可扩展, 转步 2 rule(StateX,StateY), %步 6 扩展当前节点X 得 Ynot(open(StateY,_), %考察 Y 是否已在OPENnot(closed(_,StateY,_), %考察 Y 是否已在CLOSEDassertz(open(StateY ,No), %fail.step56(_,_): -!. equal(X,X). repeat.repeat: -repeat. resulting(N): -closed(N,X,M),asserta(res(X),resulting
14、(M).resulting(_): -res(X),write(X),nl,fail.resulting(_): -!.rule(X,Y): -. % 例如 : rule(X,Y): -road(X,Y). 七、实验报告要求1. 实验报告应简单明了,语言通顺,结果正确,程序规范。实验报告的重点是实验结果的正确性与分析。包括:实验题目、要求、实验环境、实验内容与实验结果(要求附上运行的源程序)、实验中出现的问题、对问题的解决方案、实验总结等;2. 路径问题求解的搜索结果及分析;3比较状态图搜索和与或图搜索的特点名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
15、- - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 7 实验三小型专家系统 ( 原型 ) 设计一、实验目的加深学生对专家系统原理的理解,使学生初步掌握专家系统的设计和实现方法。二、实验环境计算机, Turbo PROLOG教学软件或VC+ 等三、预习要求1. 了解专家系统设计与实现的一般方法;2. 熟悉和掌握产生式系统的运行机制、产生式规则的程序语言实现;四、实验原理产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表
16、示静态知识;用产生式规则表示推理过程和行为。五、实验内容综合利用人工智能的产生式系统、图搜索算法以及专家系统的框架,建造一个小型的医疗诊断专家系统,要求系统具有知识库、推理机和动态数据库三部分。编程语言不限。六、示例程序考虑到本实验有一定难度,下面给出一个示例程序,以供参考。例 小型动物分类专家系统 /* An Animal Classifying Expert System */ database xpositive(symbol,symbol) xnegative(symbol,symbol) predicates run animal_is(symbol) it_is(symbol) p
17、ositive(symbol,symbol) negative(symbol,symbol) clear_facts remember(symbol,symbol,symbol) ask(symbol,symbol) goal run. clauses run:- animal_is(X),! 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 8 write(nYour animal may be a(n),X),n1,n1,cl
18、ear_facts. run:- write(Unbale to determine what), write(your animal is. nn),clear_facts. positive(X,Y):-xpositive(X,Y),!. positive(X,Y):-not(xnegative(X,Y),ask(X,Y). negative(X,Y):-xnegative(X,Y),!. negative(X,Y):-not(xnegative(X,Y),ask(X,Y). ask(X,Y):- write(X,it,Y,n), readln(Reply), remember(X,Y,R
19、eply). remember(X,Y,y):-asserta(xpositive(X,Y). remember(X,Y,n):-asserta(xnegative(X,Y),fail. clear_facts:-retract(xpositive(_,_),fail. clear_facts:-retract(xnegative(_,_),fail. clear_facts:-write(nnPlease press the space bar to Exit),readchar(_). animal_is(cheetah):- it_is(mammal), it_is(carnivore)
20、, positive(has,tawny_color), positive(has,black_spots). animal_is(tiger):- it_is(mammal), it_is(carnivore), positive(has,tawny_color), positive(has,black_stripes). animal_is(giraffe):- it_is(ungulate), positive(has,long_neck), positive(has,long_legs), positive(has,dark_spots). animal_is(zebra):- it_
21、is(ungulate), positive(has,black_stripes). animal_is(ostrich):- it_is(bird), negtive(does,fly), positive(has,long_neck), positive(has,long_legs), positive(has,black_and_white_color). animal_is(penguin):- it_is(bird), 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页
22、,共 9 页 - - - - - - - - - 9 negtive(does,fly), positive(does,swim), positive(has,black_and_white_color). animal_is(albatross):- it_is(bird), positive(does,fly_well). it_is(mammal):- positive(has,hair). it_is(mammal):- positive(does,give_milk). it_is(bird):- positive(has,feathers). it_is(bird):- posit
23、ive(does,fly), positive(does,lay_eggs). it_is(carnivore):- positive(does,eat_meat). it_is(carnivore):- positive(has,pointed_teeth), positive(has,claws), positive(has,forward_eyes). it_is(ungulate):- it_is(mammal), positive(has,hooves). it_is(ungulate):- it_is(mammal), positive(does,chew_cud). 七、实验报告要求实验报告应简单明了,语言通顺,结果正确,程序规范。实验报告的重点是实验结果的正确性与分析。包括:实验题目、要求、实验环境、实验内容与实验结果(要求附上运行的源程序) 、实验中出现的问题、对问题的解决方案、实验总结等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -
限制150内