欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    专家系统实例.docx

    • 资源ID:3069824       资源大小:39.54KB        全文页数:9页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    专家系统实例.docx

    专家系统实例一个专家系统的例子 一、建立动物识别专家系统的规则库,并用与/或图来描述这个规则库。 规则库由15条规则组成,规则名分别是;rule1,rule2,rule15,规则库的符号名为ruleS。编写一段程序,把15条规则组成一个表直接赋值给规则库ruleS。 ( rules (rule1 (if (animal has hair) 若动物有毛发(F1) (then (animal is mammal) 则动物是哺乳动物(M1) (rule2 (if (animal gives milk) (then (animal is mammal) (rule3 (if (animal has feathers) (then (animal is bird) (rule4 (if (animal flies) (animal lays eggs) (then (animal is bird) (rule5 (if (animal eats meat) (then (animal is carnivore) (rule6 (if (animal Raspointed teeth) (animal has claws) (animal has forword eyes) (then (animal is carnivore) (rule7 (if (animal has mammal) (animal has hoofs) (then (animal is ungulate) (rule8 (if (animal has mammal) (animal chews cud) (then (animal is ungulate) (rule9 (if (animal is mammal) (animal is carnivore) (animal has tawny color) (animal has dark sports) (then (animal is cheetah) (rule10 (if (animal is mammal) (animal is carnivore) 若动物有奶(F2) 则动物是哺乳动物(M1) 若动物有羽毛(F9) 则动物是鸟(M4) 若动物会飞(F10) 且生蛋(F11) 则动物是鸟(M4) 若动物吃肉类(F3) 则动物是食肉动物(M2) 若动物有犀利牙齿(F4) 且有爪(F5) 且眼向前方(F6) 则动物是食肉动物(M2) 若动物是哺乳动物(M1) 且有蹄(F7) 则动物是有蹄类动物(M3) 若动物是哺乳动物(M1) 且反刍(F8) 则动物是有蹄类动物(M3) 若动物是哺乳动物(M1) 且是食肉动物(M2) 且有黄褐色(F12) 且有暗斑点(F13) 则动物是豹(H1) 若动物是哺乳动物(M1) 且是食肉动物(M2) (animal has tawny color) 且有黄褐色(F12) (animal has black stripes) 且有黑色条纹(F15) (then (animal is tiger) 则动物是虎(H2) (rule11 (if (animal is ungulate) 若动物是有蹄类动物(M3) (animal has long neck) 且有长脖子(F16) (animal has long legs) 且有长腿(F14) (animal has dark sports) 且有暗斑点(F13) (then (animal is giraffe) 则动物是长颈鹿(H3) (rule12 (if (animal is ungulate) 若动物是有蹄类动物(M3) (animal has black stripes) 且有黑色条纹(F15) (then (animal is zebra) 则动物是斑马(H4) (rule13 (if (animal is bird) 若动物是鸟(M4) (animal does not fly) 且不会飞(F17) (animal has long neck) 且有长脖子(F16) (animal has long legs) 且有长腿(F14) (animal black and white) 且有黑白二色(F18) (then (animal is ostrich) 则动物是驼鸟(H5) (rule14 (if (animal is bird) 若动物是鸟(M4) (animal does not fly) 且不会飞(F17) (animal swims) 且会游泳(F19) (animal black and white) 且有黑白二色(F18) (then (animal is penguin) 则动物是企鹅(H6) (rule15 (if (animal is bird) 若动物是鸟(M4) (animal flies well) 且善飞(F20) (then (animal is albatross) 则动物是信天翁(H6) 在上述规则的说明中,用F1-F20标记的是初始事实或证据,用M1-M4标记的是中间结论,用H1-H7标记的是最终结论。用标记表示15条规则如下: R1: F1M1 R2: F2M1 R3: F9M4 R4: F10F11M4 R5: F3M2 R6: F4F5F6M2 R7: F7M1M3 R8: F8M1M3 R9: F12F13M1M2H1 R10: F12F15M1M2H2 R11: F13F14F16M3H3 R12: F15M3H4 R13: F14F16F17F18M4H5 R14: F17F18F19M4H6 R15: F20M4H7 用VC+编写一个函数,把一个表赋给变量rules,这个表有15个顶层元素,每一个顶层元素是一条规则,每条规则都是有4个元素的一个表。 If 前件 rule1 Rule2 Rule3 Rule4 Rule5 Rule6 F1 F2 F9 F10F11 Then M1 后件 可信度 激活标志 M1 M4 M4 M2 M2 M3 M3 H1 H2 F3 F4Rule7 Rule8 Rule9 F7F8M1 F12rule10 F12 F5F6 M1 F13M1M2 F15M1M2 二、推理机及其实现 1、正向推理过程: 根据在综合数据库中给出的已知事实,正向使用规则,即把规则的前件同当前数据库的内容进行匹配来选取可用规则,若有多条规则可用,则采用先选优先的策略,将执行规则的结论添加到综合数据库中,并将用过的规则置上激活标志,直到问题求解或没有可用规则为止. 2、正向推理过程程序实现 Procedure respond 将规则库中规则的前件同当前数据库的内容进行匹配,若匹配成功,则将这条规则送入可用规则集S;否则,取下一条规则进行匹配。 while S非空且问题未求解除 do begin 调用 select-rule(S),从S中选择一条规则,将该规则的结论添加到综合数据库中。 调用respond end 由上可见正向推理过程respond是递归的。 3、举例说明正向推理机推理过程 若已知的初始事实是F13(有暗斑点)、F12(黄褐色)、F3(若动物吃肉类)及F1(动物有毛发), 使用steq函数把已知的初始事实赋值给事实表facts: (steq facts (animal has dark spots) (animal has tawny color) ( animal eats meat) ( animal has hair) 即:facts=(F13 F12 F3 F1) facts是一个可编辑的表,即可以添加。steq函数的功能就是对facts进行编辑。 使用在前面建立的rules规则库,叙述正向推理过程如下: 1)、在rules中查找规则前件的全部条件在当前facts=(F13 F12 F3 F1)中的可用规则,首先找到规则R1,则把R1后件中不在facts中的结论M1添加到facts中,扩充facts为facts=(F13 F12 F3 F1 M1)。 实际上,对facts=(F13 F12 F3 F1)还有一条可用规则R5,因为R5的前件F3也在当前facts中。但是,由前面提到的冲突消解策略,若有多条可用规则,则按可用规则在规则库表rules中的顺序选择第一条可用规则。 2)、对当前facts在rules中查找可用规则,仍然找到规则R1,但R1的后件结论M1已在facts中,因此不会执行规则R1。继续查找可用规则,找到规则R5,因为R5的后件结论M2不在当前的facts中,故执行R5,把R5不在facts中的结论M2添加到facts中,扩充facts为facts=(F13 F12 F3 F1 M1 M2)。 3)、对当前facts在rules中继续查找可用规则,规则R9的前件在facts中,因此R9是可用规则。而R9的后件结论H1不在当前的facts中,执行R9,把R9的结论H1扩充到facts中,使得facts=(F13 F12 F3 F1 M1 M2 H1)。 4)、对当前facts,在rules中找不到规则的前件所包含的全部条件在facts中且后件有不在facts中的结论的任何规则,至此,正向推理结束. 为了实现上述推理过程,需编写以下7个函数: A、正向推理机函数deduce 函数表达式;(deduce facts) 功能:连续不断的从规则库rules中选择可用规则, 每选择到一条可用规则,就把该规则的后件 中不在facts中的所有结论添加到facts中, B、调用函数step-forward实现 对facts进行扩充,再通过扩充了的facts 函数表达式: 选择下一条可用规则,对facts再扩充,直到 (step-forward rules) 没有可用规则为止。每找到一条可用规则对 函数功能: facts进行一次扩充, deduce返回t;否则 逐次扫描规则库rules中的规则, 返回nil。 若发现rules中有一条可用规则, 即该规则的前件所包含的全部事实在表facts中,则把该规则的后件中不在facts中的所有结论添加到facts中,且step-forward返回t;若rules中没有一条可用规则,返回 nil。 C、调用函数try-rule实现 函数表达式:( try-rule rule) 函数功能:判断规则变量rule中的一条规则的前件 包含的全部事实是否在表facts中,若全部事实都在表 facts中,且规则后件有不在facts中的结论,则把不在 facts中的结论逐一添加到表facts中,此时try-rule 返回t;否则,返回nil。 调用函数use-then实现 调用函数remember或者 函数recall实现 D、函数use-then 函数表达式:(use-then rule) 函数功能:判断变量rule中的一条规则的后件所包含的全部结论是否在表facts中,若全部结论都在facts中,则use-then返回nil;否则,将不在facts中的结论逐一添加到表facts中,且use-then返回t。 ( 调用函数steq实现) E、函数remember 函数表达式: (remember new) 函数功能: 判断变量new中的一个事实是否在表facts中,存在, 返回nil;否则,将new中的事实添加到表facts的表头,且返回new中的事实。 F、函数recall 函数表达式:(recall fact) 函数功能:判断变量fact中的一个事实是否在表facts中,存在, recall返回值是fact中的事实;否则, 返回nil。 关于E、F的区别 E用于向事实表facts中添加新的事实。 F用于跟踪推理过程。 G、函数test-if 函数表达式:(test-if rule) 函数功能:判断变量rule中的一条规则的前件所包含的全部事实是否在表facts中,若在, test-if返回t;否则, 返回nil。

    注意事项

    本文(专家系统实例.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开