基于逻辑的专家系统.ppt_第1页
基于逻辑的专家系统.ppt_第2页
基于逻辑的专家系统.ppt_第3页
基于逻辑的专家系统.ppt_第4页
基于逻辑的专家系统.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于逻辑的专家系统 在基于逻辑的专家系统中 知识库是由说明事实的谓词逻辑的子句构成 这些子句合起来组成TurboProlog的数据库 这些规则既可以描述数据 又可以控制TurboProlog的内部合一过程 和基于规则的系统一样 基于逻辑的系统也有一个可以由输入数据流激活的规则集 该系统有一个解释程序 它可以选择和激活在该系统操作中用到的模块 这种模式下 解释程序在系统中的作用是 1 系统有启发搜索和模式匹配的知识库子句 解释程序将这些子句与数据库中的数据元素匹配 2 如果同时激活的规则多于1个 则系统使用TurboProlog的冲突消解功能 因此 用户 程序员不必担心这些可能产生的冲突 3 系统可以自动地得到一个处理结果 结果可以直接送到希望的输出设备 基于逻辑系统的优点和功效在于它反映了TurboProlog本身的结构 这在操作中是很有效的 在任何基于逻辑的系统中 最重要的是知识库设计 即知识库子句及其结构的设计 知识库必须有一个清晰的逻辑组织 冗余数据最少 在基于逻辑的系统中 用子句为小猎兔狗和丹麦大狗构造的知识库呈如下的形式 rule 1 dog Beagle 1 2 3 4 rule 2 dog GreatDane 1 5 3 4 6 cond 1 short haired cond 2 heightunder22inches cond 3 longears cond 4 goodnaturedpersonality cond 5 low settail cond 6 weightover100lb 其中rule子句中的第一个对象代表规则的序号 第二个对象代表对象类型 第三个对象代表狗的品种 第四个对象整数表 它给出了cond子句中所代表的各种条件编号 oond子句中给出了关于知识库中给出了关于各种狗的所有特性 这些条件编号是程序员为跟踪规则子句的选择编写的 解释程序用这些条件编号进行适当的选择建造专家系统需要考虑结构并注意有关细节 这些与建造的专家系统的规模和复杂程度有关 如果要建立的专家系统最终包含几百乃至上千条规则 那麽 加入其它规则后的影响是很难预料的 在TurboProlog中 产生式规则是放在程序中的 因此程序的规模将会随着规则的增加而增长 最终可用存储区的大小将限制规则数 在这种情况下 基于规则的系统是有问题的 由于基于逻辑的专家系统把知识库存放在磁盘文件中 无需考虑知识库大小的限制 因此选择基于逻辑的专家系统更合适 如果要建立的专家系统最终不超过几百条规则 那麽使用基于规则的专家系统更合适 因为产生式规则彼此几乎独立 因而专家系统的建立和测试比较方便 也易于改变规则以观察其不同的影响 在基于逻辑的专家系统中 改变知识库中的参数必须加倍小心 因为这种修改很不明显 并能产生难以修复的破坏性影响 当决定了建立基于规则的专家系统还是基于逻辑的专家系统 并仔细检查了用来构成知识库的数据 就可动手设计带有所需的或者指定特性和功能的知识库 下一步是为专家系统设计数据流图和结构图 通过这些工具可以构筑专家系统的逐模块 然后根据数据流图和结构图来编写代码 当程序运行之后 应当始终由参加项目设计的领域专家来证实结果 下面我们用开发设计狗分类的程序来说明基于规则的和基于逻辑的专家系统的结构 通过这个例子 我们可以对同样数据的不同处理作一比较 下面给出基于逻辑的狗分类专家系统的程序清单 目的在于让读者对于相同数据的不同处理方式作一比较 Purpose Toshowtheworkingofanexpertsystem Itisalogic basedsystem Thisisadogidentificationexpert domansCONDITIONS BNO HISTORY BNO RND BND FND INTEGERCATEGORY SYMBOLdatabase DatabasePredictes rule RNO CATEGORY CATEGORY CONDITIONS cond BNO STRING yes BNO no BNO topic string predicates UserInterfacePredicates do expert jobshow menudo consultingprocess integer info CATEGORY goes CATEGORY listopterase eval reply char InfrenceEnginePredicates go HISTORY CATEGORY check RNO HIATORY CONDITIONS notest BNO inpq HISTORY RNO BNO STRING do answer HISTORY RNO STRING BNO INTEGER goaldo expert jobclauses TheKnowledgeBase topic dog topic short haireddog topic long haireddog rule 1 dog short haireddog 1 rule 2 dog long haireddog 2 rule 3 short haireddog EnglishBulldog 3 5 7 rule 4 short haireddog Beagle 3 6 7 rule 5 short haireddog GreatDane 5 6 7 8 rule 6 short haireddog AmericanFoxhaund 4 6 7 rule 7 long haireddog CockerSpaniel 3 5 6 7 rule 8 long haireddog lrishSeter 4 6 rule 9 long haireddog Collie 4 5 7 rule 10 long haireddog StBernard 5 7 8 cond 1 short haired cond 2 long haired cond 3 heightunder22inches cond 4 heightunder30inches cond 5 low settail cond 6 longerears cond 7 goodnaturedpersonality cond 8 weightover100lb UserInterfaceSystem do expert job makewindow 1 7 7 DogExpertSystem 0 0 25 80 show menu nl write Pressspacebar readchar exit show menu write nl write nl write nl write DogExpert nl write nl write 1 Consultation nl write nl write 2 ExittheSystem nl write nl write nl write Pleaseenteryourchoice 1or2 nl readint Choice process Choice Process 1 do consulting Process 2 removewindow exit do consulting goes Mygoal go Mygoal do consulting nl write Sorry Ican thelpyou clear do consulting goes MyGoal clear clearwindow nl nl write WELCOMETOTHEDOGEXPERTSYSTEM nl write nl write Thisisadogidentificationsystem nl write Tobegintheprocessofchoosinga nl write dog pleasetypein dog Ifyou nl write wishtoseethedogtypes please nl write typeinaquestionmark nl write nl readln Mygoal info Mygoal info clearwindow write Replyfromthe KBS nl listopt nl write Pressanykey readchar clearwindow exit info X X 不等于 listopt write Thedogtpyesare nl nl topic Dog write Dog nl fail listopt Inpq HISTORY RNO BNO TEXT write Question TEXT makewindow 2 7 7 Response 10 54 7 20 write Type1for yes nl write Type2for no nl readint RESPONSE clearwindow shiftwindow 1 do answer HISTORY RNO TEXT BNO RESPONSE eval reply y write Ihopeyouhavefoundthishelpful eval reply n write IamsorryIcan thelpyou go MYGOAL not rule Mygoal nl write Thedogyouhaveindicatedisa n Mygoal nl write Isthisadogyouwouldliketohave y n nl readchar R eval reply R Theinferenceengine INE go HISTORY Mygoal rule RNO Mygoal NY COND check RNO HISTORY COND go RNO HISTORY NY check RNO HISTORY BNO REST yes BNO check RNO HISTORY REST check BNO no BNO fail check RNO HISTORY BNO REST cond BNO NCOND frontchar COND COND cond BNO1 COND Notest BNO1 fronttoken NCOND not COND check RNO HISTORY REST 从字符串中抽取词法符号谓词 frontchar COND COND 把一个字符加到一个字符串的开始 cond BNO1 COND notest BNO1 check RNO HISRORY REST check BNO1 cond BNO NCOND fronttoken NCOND not COND frontchar COND COND cond BNO1 COND yes BNO1 fail check RNO HISTORY BNO REST cond BNO TEXT inpq HISTORY RNO BNO TEXT check RNO HISTORY REST check notest BNO no BNO notest BNO not yes BNO do answer 0 exit do answer BNO 1 assert yes BNO thiftwindow 1 write yes nl do answer BNO 2 assert no BNO write no nl fail erase retract fail erase clear retract yes retract no 删除数据库谓词 fail clear 清除窗口 endoftheprogram 基于规则的专家系统的设计与实现 一旦设计了知识库 就可写出相应的TurboProlog程序 为了简洁起见 我们把讨论的重点集中在专家系统咨询的有关处理上 这些处理包括用户的数据流 从知识库推导信息 显示咨询结果等 这些任务的知识库树形图 数据流图和结构图分别如图1 图2和图3所示 图1狗分类专家系统的知识库树形图 dog Short haird Long haird Englishbulldog beagle Greatdane Americanfoxhound Cokerspaniel Irishsetter collie Saintbernard 英国斗牛狗 小猎兔狗 丹麦大狗 美国猎狐狗 西班牙猎狗 爱尔兰蹲伏猎狗 柯利牧羊狗 圣贝尔纳狗 即狗品种可按长毛和短毛分类 短毛品种有 英国斗牛狗 小猎兔狗 丹麦大狗和美国猎狐狗 长毛品种有 西班牙猎狗 爱尔兰蹲伏猎狗 柯利牧羊狗和圣贝尔纳狗 可用属性表在各类中识别某一品种的狗 特性的数目将决定分类的程度 用于所有对象的属性可能在数据集中是无用的 本系统中用到的特性是 1 短毛5 尾巴低垂2 长毛6 长耳朵3 高度不到22英寸7 性情好4 高度不到30英寸8 重量超过100磅每个特性应用到每种狗都有一个肯定或否定的回答 即每个品种的狗具有或不具有某一特性 各品种狗的特性如下 品种特性Englishbulldog1 3 5 7Beagle1 3 6 7GreatDane1 5 6 7 8AmericanFoxhound1 4 6 7CockerSpaniel2 3 5 6 7IrishSetter2 4 6Collie2 4 5 7St Bernard2 5 7 8 图2基于规则的狗分类专家数据流图 1 2 3 4 5 6 7 8 9 11 12 10 13 14 15 16 显示器 知识库 键盘 图中使用符号注释 数据流 控制流 1 clearfacts11 xpositive2 xpositive12 notnegative3 retractxnegative13 ask4 do expert job14 member5 do consuliting15 asserta6 setup windows16 assertz7 dog is8 it is9 negative10 positive 根据数据流图 就可以设计确定程序模块和规则组织的结构图 图3基于规则的狗分类专家系统结构图 do expert job Setup window Do consulting Dog is Clear facts It is positive Retract xpositive Retract xnegative Xpositive not negative ask x y Remember x y reply asserta xpositive x y Asserta xnegative x y 从结构图中可以看出 主模块 目标 是do expert job 子模块dog is和it is从知识库中存取数据 子模块ask X Y Reply 管理用户的输入数据流 其他模块更新工作数据并显示咨询结果 使用这些工具开发基于规则的专家系统 首先要建立数据库说明 数据库将保存用户对问题的回答 该数据是yes或no两个答案 然后 必须说明用来完成推理的谓词 推理机 和与用户通信的谓词 用户接口 这些谓词说明如下 databasexpositive symbol symbol xnegative symbol symbol predicatesdo expert jobdo consultingask symbol symbol dog is symbol it is symbol positive symbol symbol negative symbol symbol remember symbol symbol symbol clear facts 数据库谓词xpositive和xnegative用于保存用户的yes或no回答 前面四个谓词用于和用户交互 后六个谓词用于推理机 需要写8条产生式规则 一条规则与一种狗对应 每条规则必须判别狗是属于长毛狗还是短毛 子规则it is进行这种判断 然后 positive识别每种情况的狗种特性 It is和positive都由推理机使用 下面是识别西班牙猎狗的一条产生式规则 dog is CockerSpaniel it is long haireddog positive has heightunder22inches positive has low settail positive has longears positive has goodnaturedpersonality 推理机必须有管理用户的输入规则 并用产生式规则与其匹配 记录yes no的回答 规则positive和negative用于将用户输入数据与产生式规则中相应部分匹配 规则remember根据yes或no的回答生成断言 供匹配用 最后 clear facts规则在识别 动作循环末端除去知识库项 完整的推理机如下 positive X Y xpositive X Y positive X Y not negative X Y ask X Y negative X Y xnegative X Y remember X Y yes asserta xpositive X Y remember X Y no asserta xnegative X Y fail Clear facts retract xpositive fail Clear facts retract xnegative fail 用户接口的作用是连接用户和推理系统 主模块do expert和子模块do consulting完成这种连接 模块ask X Y 要求用户输入数据并把回答存到知识库中 完整的用户接口如下 do expert job setup window do consulting write Pressspacebar nl readchar removewindow exit setup window makewindow 1 7 7 ANEXPERTSYSTEM 1 16 22 58 nl write nl write ADogExpert nl write Thisisadogidentificationsystem nl write Pleaseanswerthequestionaboutthe nl write dogyouwounldlikebytypin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论