人工智能小型专家系统的设计与实现解读上课讲义.docx
- 文档编号:30514665
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:16
- 大小:327.34KB
人工智能小型专家系统的设计与实现解读上课讲义.docx
《人工智能小型专家系统的设计与实现解读上课讲义.docx》由会员分享,可在线阅读,更多相关《人工智能小型专家系统的设计与实现解读上课讲义.docx(16页珍藏版)》请在冰豆网上搜索。
人工智能小型专家系统的设计与实现解读上课讲义
人工智能技术基础实验报告
指导老师:
朱力
任课教师:
张勇
实验三小型专家系统设计与实现
一、实验目的
(1)增加学生对人工智能课程的兴趣;
(2)使学生进一步理解并掌握人工智能prolog语言;
(3)使学生加强对专家系统课程内容的理解和掌握,并培养学生综合运用所学知识开发智能系统的初步能力。
二、实验要求
(1)用产生式规则作为知识表示,用产生系统实现该专家系统。
(2)可使用本实验指导书中给出的示例程序,此时只需理解该程序,并增加自己感兴趣的修改即可;也可以参考该程序,然后用PROLOG语言或其他语言另行编写。
(3)程序运行时,应能在屏幕上显示程序运行结果。
三、实验环境
在TurboPROLOG或VisualProlog集成环境下调试运行简单的PROLOG程序。
四、实验内容
建造一个小型专家系统(如分类、诊断、预测等类型),具体应用领域由学生自选,具体系统名称由学生自定。
五、实验步骤
1、专家系统:
1.1建造一个完整的专家系统设计需完成的内容:
1.用户界面:
可采用菜单方式或问答方式。
2.知识库(规则库):
存放产生式规则,库中的规则可以增删。
3.数据库:
用来存放用户回答的问题、已知事实、推理得到的中
间事实。
4.推理机:
如何运用知识库中的规则进行问题的推理控制,建议
用正向推理。
5.知识库中的规则可以随意增减。
1.2推理策略
推理策略包括:
正向(数据驱动),反向(目标驱动),双向
2、动物分类实验规则集
(1)若某动物有奶,则它是哺乳动物。
(2)若某动物有毛发,则它是哺乳动物。
(3)若某动物有羽毛,则它是鸟。
(4)若某动物会飞且生蛋,则它是鸟。
(5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。
(6)若某动物是哺乳动物且吃肉,则它是食肉动物。
(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。
(8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物。
(9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。
(10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是猎豹。
(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。
(12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。
(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。
(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。
(15)若某动物是鸟且善飞且不怕风浪,则它是海燕。
3、实验具体步骤
本实验用正向推理策略来完成,实现推理机的程序与知识库的具体内容无关,对知识库的修改不需要改动推理机。
1、充分理解知识库现有知识,提出待解决问题
2、建立规则库
3、从规则库中获取可用规则集
4、确定搜索控制策略(例如:
估价函数策略)
5、通过搜索控制策略,从规则集中选出最优规则
6、执行最优规则,更新知识库
7、反复多次以上步骤
8、获得解决方案或无解
4、编写程序及调试运行步骤
4.1程序代码
“小型动物分类专家系统”
/*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("\nUnabletodeterminewhat"),
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\nPleasepressthespacebartoExist"),
readchar(_).
/*KnowledgeBase*/
animal_is(cheetah):
-%猎豹
it_is(carnivore),
positive(has,tawny_color),
positive(has,black_spots).
animal_is(tiger):
-%老虎
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(has,feathers).
it_is(bird):
-
positive(does,fly),
positive(does,lay_eggs).
it_is(carnivore):
-%肉食动物
positive(does,eat_meat).
it_is(carnivore):
-
it_is(mammal),
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).
4.2调试步骤
1.在TXT文本中编写规则代码,添加到状态图通用搜索程序中,修改程序。
2.打开Turboprolog2.0文件,启动prolog.exe应用程序,并按空格键(SPACE)进入集成开发环境。
3.选择Setup项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc键退出,选择SaveConfiguration项,保存修改。
4.在相应的路径所在文件件夹中会生成work.Pro文件将其用文本打开,将要运行的程序写入,保存。
5.选择Files项,选择Load项,选择要打开的示例程序
6.编辑之后,可以选择Run项,执行程序,可以在Dialog窗口进行询问,并回答y/n,依次回答问题,即可找到解
7.退出,选择Quit项,可以退出TurboProlog程序。
4.3书籍识别系统
根据所给示例程序,我修改出一个简单的书籍识别系统
4.3.1系统简介
这是一个简单的书籍识别系统,有:
唐诗三百首、鲁迅散文集 、红楼梦 、泰戈尔诗词 、呼啸山庄。
使用我们这个系统,只需根据窗口提供的内容回答y/n,系统将会帮你选择你可能中意的书籍。
该专家系统设计书籍的特性是:
中文,英文,诗集,散文,小说
各种书籍特性如下:
书籍
特性
唐诗三百首
中文
诗词
红楼梦
中文
小说
泰戈尔诗词
英文
诗词
鲁迅散文集
中文
散文
呼啸山庄
英文
小说
4.3.2系统程序
database
xpositive(symbol,symbol)
xnegative(symbol,symbol)
predicates
run
book_is(symbol)
positive(symbol,symbol)
negative(symbol,symbol)
clear_facts
remember(symbol,symbol,symbol)
ask(symbol,symbol)
goal
run.
clauses
run:
-
book_is(X),!
write("\nYourfavoritebookmaybe",X),
nl,nl,clear_facts.
run:
-
write("\nUnabletodeterminewhat"),
write("yourbookis.\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("Question:
-",X,"it",Y,"?
\n"),
readln(Reply),
remember(X,Y,Reply).
remember(X,Y,y):
-asserta(xpositive(Y)).
remember(X,Y,n):
-asserta(xnegative(Y)),fail.
clear_facts:
-retract(xpositive(_,_)),fail.
clear_facts:
-retract(xnegative(_,_)),fail.
clear_facts:
-write("\n\nPleasepressthespacebartoExist"),
readchar(_).
/*KnowledgeBase*/
book_is(tangShiSaibaishou):
-%唐诗三百首
positive(is,chinese),
positive(is,poem).
book_is(luxunwenji):
-%鲁迅文集
positive(is,chinese),
positive(is,prose).
book_is(hongloumeng):
-%红楼梦
positive(is,chinese),
positive(is,novel).
book_is(taigerwenji):
-%泰戈尔文集
positive(is,english),
positive(is,poem).
book_is(huxiaoshanzhaung):
-%呼啸山庄
positive(is,english),
positive(is,novel).
五、实验结果
5.1动物分类实验结果
图1
图2
图3
5.2书籍识别实验结果
图4
图5
图6
六、问题思考
思考:
你所实现的基于产生式的专家系统所采用的推理算法是正向推理还是反向推理?
采用prolog语言编写专家系统有何优点与不足?
解:
(1)正向推理
(2)严格来讲,该专家系统程序中并无显式的推理机,而是利用了PROLOG语言本身的推理机制实现推理的。
这就是说,用PROLOG编写专家系统程序,可以省去推理机部分。
如果用其他语言编程,推理机则是必不可少的。
当然,用PROLOG编写专家系统程序,也可以不用它自身的推理机作为所实现的专家系统的推理机,而用户自己重新编写一个显式的推理机,这可根据问题和需要而定。
如果要重新编写推理机,一般说来,规则就要用PROLOG的事实来实现。
知识库就要用PROLOG的动态数据库来实现。
七、实验中出现的问题及解决方案
实验中由于最开始对于专家系统了解不够深刻,对于理解小动物分类的程序是,遇到了很多问题,后来我仔细看了书,掌握了专家系统的整体架构,对于动态数据库有了一定的了解,加深了我对于程序的理解,同时有咨询老师和同学,理解了程序。
在理解程序之后,我又尝试着自己改编了一段小程序,虽然遇到了一些语句上的小问题,但是翻书之后,问题可以解决,同时程序可以运行出来。
八、实验总结
通过本次实验,加深了我对人工智能课程的兴趣,进一步掌握了prolog语言,加深了我对于专家系统的理解和掌握,理解了专家系统的知识库,推理机,动态数据库。
并且在这最后一次人工智能上机实验中,尝试着自己修改编写一段程序,相对于前两次实验,我对于prolog语言的运用更加熟悉。
读书的好处
1、行万里路,读万卷书。
2、书山有路勤为径,学海无涯苦作舟。
3、读书破万卷,下笔如有神。
4、我所学到的任何有价值的知识都是由自学中得来的。
——达尔文
5、少壮不努力,老大徒悲伤。
6、黑发不知勤学早,白首方悔读书迟。
——颜真卿
7、宝剑锋从磨砺出,梅花香自苦寒来。
8、读书要三到:
心到、眼到、口到
9、玉不琢、不成器,人不学、不知义。
10、一日无书,百事荒废。
——陈寿
11、书是人类进步的阶梯。
12、一日不读口生,一日不写手生。
13、我扑在书上,就像饥饿的人扑在面包上。
——高尔基
14、书到用时方恨少、事非经过不知难。
——陆游
15、读一本好书,就如同和一个高尚的人在交谈——歌德
16、读一切好书,就是和许多高尚的人谈话。
——笛卡儿
17、学习永远不晚。
——高尔基
18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。
——刘向
19、学而不思则惘,思而不学则殆。
——孔子
20、读书给人以快乐、给人以光彩、给人以才干。
——培根
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 小型 专家系统 设计 实现 解读 上课 讲义