人工智能技术实验指导书.docx
- 文档编号:30776319
- 上传时间:2023-08-23
- 格式:DOCX
- 页数:14
- 大小:23.60KB
人工智能技术实验指导书.docx
《人工智能技术实验指导书.docx》由会员分享,可在线阅读,更多相关《人工智能技术实验指导书.docx(14页珍藏版)》请在冰豆网上搜索。
人工智能技术实验指导书
《人工智能技术》
实验指导书
(电气工程及其自动化专业)
樊强 编写
西北农林科技大学水利与建筑工程学院
2011年12月
目 录
第一章PROLOG语言编程练习1
1.1实验目的1
1.2实验环境1
1.3预习要求1
1.4实验内容1
1.5实验方法和步骤1
1.6示例程序1
1.7实验报告要求2
第二章图搜索问题求解3
2.1实验目的3
2.2实验环境3
2.3预习要求3
2.4实验内容3
2.5实验方法和步骤3
2.6示例程序3
2.7实验报告要求5
第三章小型专家系统(原型)设计6
3.1实验目的6
3.2实验环境6
3.3预习要求6
3.4实验原理6
3.5实验内容6
3.6示例程序6
3.7实验报告要求8
参考文献9
第一章PROLOG语言编程练习
1.1实验目的
加深学生对逻辑程序运行机理的理解,使学生掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。
(1)熟悉PROLOG语言编程环境的使用;
(2)了解PROLOG语言中常量、变量的表示方法;
(3)了解利用PROLOG进行事实库、规则库的编写方法;
1.2实验环境
计算机,TurboPROLOG教学软件。
1.3预习要求
实验前应阅读实验指导书,了解实验目的、预习PROLOG语言的相关知识。
1.4实验内容
(1)学习使用TurboPROLOG,包括进入PROLOG主程序、编辑源程序、修改环境目录、退出等基本操作。
(2)在Turboprolog集成环境下调试运行简单的TurboPROLOG程序,如描述亲属关系的PROLOG程序或其他小型演绎数据库程序等。
1.5实验方法和步骤
(1)启动WindowsXP操作环境。
(2)打开文件目录,执行prolog应用程序,启动Turboprolog,并按空格键(SPACE)进入集成开发环境。
(3)选择Setup项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc键退出,选择SaveConfiguration项,保存修改。
(4)选择Files项,打开下拉菜单,选择Newfile项,进入源程序输入和编辑,或选择Load项,选择要打开的示例程序,再选择Edit项,可以进行编辑源程序。
(5)编辑之后,可以选择Run项,执行程序,可以在Dialog窗口进行询问,即外部目标的执行,查看程序运行结果,分析程序之功能。
(6)仿前例,可以选择其他程序并运行,分析程序功能。
(7)退出,选择Quit项,可以退出TurboProlog程序,返回到WindowsXP环境。
1.6示例程序
逻辑电路模拟程序。
该程序以逻辑运算“与”、“或”、“非”的定义为基本事实,然后在此基础上定义了“异或”运算。
那么,利用这些运算就可以对“与”、“或”、“非”和“异或”等逻辑电路进行模拟。
事实上,在此基础上也可以对其他任一逻辑门电路进行模拟。
domains
d=integer
predicates
not_(d,d)
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,Input2,Output):
-
not_(Input1,N1),
not_(Input2,N2),
and_(Input1,N2,N3),
and_(Input2,N1,N4),
or_(N3,N4,Output).
1.7实验报告要求
实验报告应简单明了,语言通顺,结果正确,程序规范。
实验报告的重点是实验结果的正确性与分析。
包括:
实验题目、要求、实验环境、实验内容与实验结果(要求附上运行的源程序)、实验中出现的问题、对问题的解决方案、实验总结等。
第二章图搜索问题求解
2.1实验目的
加深学生对图搜索技术的理解,使学生掌握图搜索基本编程方法,并能利用图搜索技术解决一些应用问题。
(1)掌握Turboprolog软件编程方法;
(2)熟悉状态图搜索的基本算法;
(3)掌握图搜索问题求解中的问题表示、节点表示、close表和open表的构造。
2.2实验环境
计算机,TurboPROLOG教学软件。
2.3预习要求
(1)预习教材第四章有关状态图问题求解的内容,熟悉状态图求解的过程和方法;
(2)了解TurboPROLOG程序设计的基本知识。
2.4实验内容
走迷宫是人们熟悉的一种游戏,如图2-1就是一个迷宫。
如果我们把该迷宫的每一个格子以及入口和出口都作为节点,把通道作为边,则该迷宫可以由一个有向图表示。
那么,走迷宫其实就是从该有向图的初始节点(入口)出发,寻找目标节点(出口)的问题,或者是寻找通向目标节点(出口)的路径的问题。
用状态图搜索或与或图搜索方法,求出迷宫图中路径。
图中S0为入口,Sg为出口。
图2-1迷宫图
2.5实验方法和步骤
(1)启动prolog编辑环境;
(2)用状态图搜索思想编辑路径求解问题的源程序;
(3)运行程序,分析结果;
(4)用与或图搜索思想编辑路径求解问题的源程序;
(5)运行程序,分析结果。
2.6示例程序
下面是一个通用的状态图搜索程序。
对于求解的具体问题,只需将其状态图的程序表示并入该程序即可。
/*状态图搜索通用程序*/
DOMAINS
state=symbol
DATABASE-mydatabase
open(state,integer)
closed(integer,state,integer)
res(state)
open1(state,integer)
min(state,integer)
mark(state)
fail_
PREDICATES
solve
road(state,state)
search(state,state)
result
searching
step4(integer,state)
step56(integer,state)
equal(state,state)
repeat
resulting(integer)
rule(state,state)
GOAL
solve.
CLAUSES
solve:
-search(s0,sg),result.
search(Begin,End):
-
retractall(_,mydatabase),
assert(closed(0,Begin,0)),
assert(open(Begin,0)),
assert(mark(End)),
repeat,
searching,!
.
result:
-
not(fail_),
retract(closed(0,_,0)),
closed(M,_,_),
resulting(M),!
.
result:
-beep,write("sorrydon'tfindaroad!
").
searching:
-
open(State,Pointer),
retract(open(State,Pointer)),
closed(No,_,_),No2=No+1,
asserta(closed(No2,State,Pointer)),!
step4(No2,State).
searching:
-assert(fail_).
step4(_,State):
-mark(End),equal(State,End).
step4(No,State):
-step56(No,State),!
fail.
step56(No,StateX):
-
rule(StateX,StateY),
not(open(StateY,_)),
not(closed(_,StateY,_)),
assertz(open(StateY,No)),
fail.
step56(_,_):
-!
.
equal(X,X).
repeat.
repeat:
-repeat.
resulting(N):
-closed(N,X,M),asserta(res(X)),resulting(M).
resulting(_):
-res(X),write(X),nl,fail.
resulting(_):
-!
.
rule(X,Y):
-road(X,Y).
road(s0,s4).road(s4,s1).road(s1,s4).road(s1,s2).road(s2,s1).road(s2,s3).
road(s3,s2).road(s4,s7).road(s7,s4).road(s4,s5).road(s5,s4).
road(s5,s6).road(s6,s5).
road(s5,s8).road(s8,s5).road(s8,s9).road(s9,s8).road(s2,s5).road(s5,s2).
road(s9,sg).
2.7实验报告要求
(1)实验报告应简单明了,语言通顺,结果正确,程序规范。
实验报告的重点是实验结果的正确性与分析。
包括:
实验题目、要求、实验环境、实验内容与实验结果(要求附上运行的源程序)、实验中出现的问题、对问题的解决方案、实验总结等;
(2)路径问题求解的搜索结果及分析;
(3)比较状态图搜索和与或图搜索的特点。
第三章小型专家系统(原型)设计
3.1实验目的
加深学生对专家系统原理的理解,使学生初步掌握专家系统的设计和实现方法。
3.2实验环境
计算机,TurboPROLOG教学软件或VC++等
3.3预习要求
(1)了解专家系统设计与实现的一般方法;
(2)熟悉和掌握产生式系统的运行机制、产生式规则的程序语言实现。
3.4实验原理
产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。
在产生式系统中,论域的知识分为两部分:
用事实表示静态知识;用产生式规则表示推理过程和行为。
3.5实验内容
综合利用人工智能的产生式系统、图搜索算法以及专家系统的框架,建造一个小型动物分类专家系统,要求系统具有知识库、推理机和动态数据库三部分。
编程语言不限。
3.6示例程序
考虑到本实验有一定难度,下面给出一个示例程序,以供参考。
例小型动物分类专家系统
/*AnAnimalClassifyingExpertSystem*/
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,symbol)
ask(symbol,symbol)
goal
run.
clauses
run:
-
animal_is(X),!
write("\nYouranimalmaybea(n)",X),nl,nl,clear_facts.
run:
-
write("\Unabletodeterminewhat"),
write("youranimalis.\n\n"),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(xpositive(X,Y)),ask(X,Y).
ask(X,Y):
-
write(X,"it",Y,"\n"),
readln(Reply),
remember(X,Y,Reply).
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("\n\nPleasepressthespacebartoExit"),readchar(_).
animal_is(cheetah):
-
it_is(mammal),
it_is(carnivore),
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_is(ungulate),
positive(has,black_stripes).
animal_is(ostrich):
-
it_is(bird),
negative(does,fly),
positive(has,long_neck),
positive(has,long_legs),
positive(has,black_and_white_color).
animal_is(penguin):
-
it_is(bird),
negative(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(does,fly),
positive(does,lay_eggs).
it_is(bird):
-
positive(has,feathers).
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).
3.7实验报告要求
实验报告应简单明了,语言通顺,结果正确,程序规范。
实验报告的重点是实验结果的正确性与分析。
包括:
实验题目、要求、实验环境、实验内容与实验结果(要求附上运行的源程序)、实验中出现的问题、对问题的解决方案、实验总结等。
参考文献
[1]王永庆.人工智能原理与方法[M].第1版.西安:
西安交通大学出版社,1998.
[2]何华灿.人工智能导论[M].第1版.西安:
西北工业大学出版社,1988.
[3]蔡自兴,徐光佑.人工智能及其应用[M].第2版.北京:
清华大学出版社,1996.
[4]廉师友.人工智能技术导论[M].第3版.西安:
西安电子科技大学出版社,2007.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 技术 实验 指导书