【软考架构】架构风格:针对规则系统体系架构风格,举一个经典案例

基于规则的系统(见图7-16)包括规则集、规则解释器、规则/数据选择器及工作内存

好的,针对你提供的"规则系统体系结构风格"图示,一个最经典和常被引用的案例是专家系统

经典案例:MYCIN 医疗诊断专家系统

MYCIN 是20世纪70年代在斯坦福大学开发的用于诊断细菌感染性疾病(如脑膜炎和菌血症)并推荐抗生素治疗的专家系统。它完美地体现了规则系统架构的核心思想。

工作原理与规则系统架构的对应关系:

  1. 工作内存

    • 存储当前的事实集和推理过程中的临时数据。
    • 在MYCIN中,这包括:
      • 患者数据:年龄、性别、体重、过敏史等。
      • 临床症状:发烧、头痛、白细胞计数等。
      • 实验室观测数据:革兰氏染色结果、培养物来源(如血液、脑脊液)等。
      • 推理过程中产生的中间事实:例如,系统推断出的"可能病原体清单"。
  2. 规则集

    • 包含领域专家的知识,以 "IF-THEN" 规则的形式存储。
    • 在MYCIN中,规则库约有400-500条规则。例如:
      • 规则示例
        IF (1)革兰氏染色是阴性
        AND (2)细菌形态是杆状
        AND (3)细菌需氧性为需氧
        THEN 该细菌属于肠杆菌科(可信度0.8)
  3. 规则解释器(推理引擎)

    • 这是系统的"大脑",负责控制整个推理过程。它持续执行 "匹配-选择-执行"循环
    • 匹配:扫描规则集,找出所有前提条件(IF部分)被工作内存中当前事实满足的规则。这些规则被放入"冲突集"。
    • 选择 :根据某种策略(如优先级、特殊性、最近使用等)从冲突集中选择一条规则来执行。在图示中,这对应着 "被选择的规则"
    • 执行(触发) :执行被选中规则的THEN部分。这个动作会:
      • 更新工作内存:添加新的事实或修改现有事实(例如,将"大肠杆菌"添加到可能病原体列表中)。
      • 可能触发新的规则,因为工作内存的更新改变了规则匹配的条件。

工作流程简述(以MYCIN诊断为例):

  1. 输入 :医生将患者的临床症状和实验室初步结果输入系统,这些数据被存入工作内存(事实集)。
  2. 推理循环开始
    • 规则解释器 扫描规则集,寻找其"IF"部分与工作内存中患者数据相匹配的规则。
    • 选择一条高优先级的规则,例如,一条关于识别细菌类型的规则。
    • 该规则被执行 ,其结论(例如,"病原体可能是大肠杆菌")作为一个新的事实被添加到工作内存中。
  3. 链式反应
    • 这个新事实的加入,使得另一些规则的IF条件得到满足(例如,关于"如何治疗大肠杆菌感染"的规则)。
    • 规则解释器再次进行匹配-选择-执行循环,激活新的规则。
  4. 输出 :这个过程持续进行,直到没有新规则被激活,或者系统得出了最终结论。最终,系统会输出其诊断结果和抗生素用药建议(包括药物名称、剂量和用药依据)。

总结:

MYCIN是规则系统架构的典范。它将专家的知识编码成独立的规则(规则集),通过一个中央推理引擎(规则解释器)对输入的事实(工作内存)进行逻辑推理,最终得出结论。这种架构的优势在于知识表示清晰 (规则易于理解和修改)和推理过程与知识分离,使得系统能够通过增加或修改规则来不断提升性能。

相关推荐
开开心心就好3 小时前
内存清理工具开源免费,自动优化清理项
linux·运维·服务器·python·django·pdf·1024程序员节
张萌杰3 天前
深度学习的基础知识(常见名词解释)
人工智能·深度学习·机器学习·1024程序员节
开开心心就好4 天前
免费无广告卸载工具,轻便安全适配全用户
linux·运维·服务器·网络·安全·启发式算法·1024程序员节
开开心心就好5 天前
图片格式转换工具,右键菜单一键转换简化
linux·运维·服务器·python·django·pdf·1024程序员节
徐子童7 天前
网络协议---TCP协议
网络·网络协议·tcp/ip·面试题·1024程序员节
扫地的小何尚9 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI10 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好10 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少13 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈14 天前
C/C++每日面试题
面试·职场和发展·1024程序员节