好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

人工智能小型专家系统的设计实现分析.pdf

16页
  • 卖家[上传人]:re****.1
  • 文档编号:572645233
  • 上传时间:2024-08-13
  • 文档格式:PDF
  • 文档大小:809.85KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 人工智能技术基础实验报告人工智能技术基础实验报告指导老师:朱力任课教师:勇... .--实验三小型专家系统设计与实现实验三小型专家系统设计与实现一、实验目的一、实验目的(1)增加学生对人工智能课程的兴趣;(2)使学生进一步理解并掌握人工智能 prolog 语言;(3)使学生加强对专家系统课程容的理解和掌握, 并培养学生综合运用所学知识开发智能系统的初步能力二、实验要求二、实验要求(1)用产生式规则作为知识表示,用产生系统实现该专家系统2)可使用本实验指导书中给出的示例程序,此时只需理解该程序,并增加自己感兴趣的修改即可;也可以参考该程序,然后用 PROLOG 语言或其他语言另行编写3)程序运行时,应能在屏幕上显示程序运行结果三、实验环境三、实验环境在 Turbo PROLOG 或 Visual Prolog 集成环境下调试运行简单的 PROLOG程序四、实验容四、实验容建造一个小型专家系统(如分类、诊断、预测等类型) ,具体应用领域由学生自选,具体系统名称由学生自定五、实验步骤五、实验步骤1 1、专家系统:、专家系统:1.1 建造一个完整的专家系统设计需完成的容:1.用户界面:可采用菜单方式或问答方式。

      可修编 .--2.知识库(规则库) :存放产生式规则,库中的规则可以增删3.数据库:用来存放用户回答的问题、已知事实、推理得到的中间事实4.推理机:如何运用知识库中的规则进行问题的推理控制,建议用正向推理5.知识库中的规则可以随意增减1.2 推理策略推理策略包括: 正向(数据驱动) ,反向(目标驱动) ,双向2 2、动物分类实验规则集、动物分类实验规则集(1)若某动物有奶,则它是哺乳动物2)若某动物有毛发,则它是哺乳动物3)若某动物有羽毛,则它是鸟4)若某动物会飞且生蛋,则它是鸟5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物6)若某动物是哺乳动物且吃肉,则它是食肉动物7)若某动物是哺乳动物且有蹄,则它是有蹄动物8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是猎豹11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟可修编 .--(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。

      15)若某动物是鸟且善飞且不怕风浪,则它是海燕3 3、实验具体步骤、实验具体步骤本实验用正向推理策略来完成, 实现推理机的程序与知识库的具体容无关,对知识库的修改不需要改动推理机1、充分理解知识库现有知识,提出待解决问题2、建立规则库3、从规则库中获取可用规则集4、确定搜索控制策略(例如:估价函数策略)5、通过搜索控制策略,从规则集中选出最优规则6、执行最优规则,更新知识库7、反复多次以上步骤8、获得解决方案或无解4 4、编写程序及调试运行步骤、编写程序及调试运行步骤4.1 程序代码“小型动物分类专家系统”/*An Animal Classifying Expert System*/databasexpositive(symbol,symbol)xnegative(symbol,symbol)predicatesrunanimal_is(symbol).可修编 .--it_is(symbol)positive(symbol,symbol)negative(symbol,symbol)clear_factsremember(symbol,symbol,symbol)ask(symbol,symbol)goalrun.clausesrun:-animal_is(X), !,write("\nYour animal may be a(n) ", X),nl, nl, clear_facts.run:-write("\nUnable to determine what"),write("your animal is.\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\nPlease press the space bar to Exist"),readchar(_)./* Knowledge Base*/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. 打开 Turbo prolog2.0 文件, 启动 prolog.exe 应用程序, 并按空格键(SPACE)进入集成开发环境3.选择 Setup 项,打开下拉菜单,选择 Directories 项,进行工作目录修改,按 Esc 键退出,选择 Save Configuration 项,保存修改4.在相应的路径所在文件件夹中会生成 work.Pro 文件将其用文本打开,将要运行的程序写入,保存5.选择 Files 项,选择 Load 项,选择要打开的示例程序.可修编 .--6.编辑之后,可以选择 Run 项,执行程序,可以在 Dialog 窗口进行询问,并回答 y/n,依次回答问题,即可找到解7.退出,选择 Quit 项,可以退出 Turbo Prolog 程序4.3 书籍识别系统根据所给示例程序,我修改出一个简单的书籍识别系统4.3.1 系统简介这是一个简单的书籍识别系统,有: 唐诗三百首、鲁迅散文集 、红楼梦 、泰戈尔诗词、呼啸山庄使用我们这个系统,只需根据窗口提供的容回答 y/n,系统将会帮你选择你可能中意的书籍该专家系统设计书籍的特性是:中文,英文,诗集,散文,小说各种书籍特性如下:书籍唐诗三百首红楼梦泰戈尔诗词鲁迅散文集呼啸山庄4.3.2 系统程序database.可修编特性中文中文英文中文英文诗词小说诗词散文小说 .--xpositive(symbol,symbol)xnegative(symbol,symbol)predicatesrunbook_is(symbol)positive(symbol,symbol)negative(symbol,symbol)clear_factsremember(symbol,symbol,symbol)ask(symbol,symbol)goalrun.clausesrun:-book_is(X), !,write("\nYour favorite book may be", X),nl, nl, clear_facts.run:-write("\nUnable to determine what"),.可修编 .--write("your book is.\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\nPlease press the space bar to Exist"),readchar(_)./* Knowledge Base*/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.可修编 .--图 35.2 书籍识别实验结果图 4.可修编 .--图 5图 6六、问题思考六、问题思考思考:思考:你所实现的基于产生式的专家系统所采用的推理算法是正向推理还是反向推理?采用 prolog 语言编写专家系统有何优点与不足?.可修编 .--解:解: (1)正向推理(2 2))严格来讲,该专家系统程序中并无显式的推理机,而是利用了PROLOG 语言本身的推理机制实现推理的。

      这就是说,用PROLOG 编写专家系统程序,可以省去推理机部分如果用其他语言编程,推理机则是必不可少的当然,用 PROLOG 编写专家系统程序,也可以不用它自身的推理机作为所实现的专家系统的推理机,而用户自己重新编写一个显式的推理机,这可根据问题和需要而定如果要重新编写推理机,一般说来,规则就要用 PROLOG 的事实来实现知识库就要用 PROLOG 的动态数据库来实现七、实验中出现的问题及解决方案七、实验中出现的问题及解决方案实验中由于最开始对于专家系统了解不够深刻,对于理解小动物分类的程序是,遇到了很多问题,后来我仔细看了书,掌握了专家系统的整体架构,对于动态数据库有了一定的了解,加深了我对于程序的理解,同时有咨询老师和同学,理解了程序在理解程序之后,我又尝试着自己改编了一段小程序,虽然遇到了一些语句上的小问题,但是翻书之后,问题可以解决,同时程序可以运行出来八、实验总结八、实验总结通过本次实验,加深了我对人工智能课程的兴趣,进一步掌握了 prolog 语言,加深了我对于专家系统的理解和掌握,理解了专家系统的知识库,推理机,动态数据库并且在这最后一次人工智能上机实验中,尝试着自己修改编写一段程序,相对于前两次实验,我对于 prolog 语言的运用更加熟悉。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.