专家系统原理与设计_图文

专家系统原理与设计

专家系统原理与设计
1.专家系统的概念

2.专家系统的结构
3.专家系统设计与实现

4.专家系统开发工具与环境

1、 专家系统的概念
1 .1什么是专家系统 亦称专家咨询系统,它是一种具有大量专门知识 与经验的智能计算机系统,通常,主要指软件系统。 它把专门领域中人类专家的知识和思考解决问题的方 法、经验和诀窍组织整理且存储在计算机中,不但能 模拟领域专家的思维过程,而且能让计算机宛如人类 专家那样智能地解决实际问题。 狭义地讲,专家系统就是人类专家智慧的拷贝,是人类 专家的某种化身。 广义地讲,专家系统也泛指那些具有“专家级”水平的 知识系统,从总体上达到专家级水平。

1.2专家系统的特点 : 专家系统与人类专家比较具有以下一些特点: 1)专家系统是人类专家智能的模拟、延伸和扩展。 2)专家系统是专家可以信赖和利用的高水平智能助手和有 效工具。 3)专家系统可具有一个或多个专家的知识和经验,具有专 门知识的启发性,能以接近于人类专家的水平在特定领域 工作,注重特定问题的求解。 4)专家系统能高效、准确、迅速地工作。 5)专家系统突破了时间和空间的限制,程序可永久保存并 可复制。 6)专家系统能进行有效推理。 7)具有透明性,能以可理解的方式解释推理过程。 8)具有自学习能力,总结规律,扩充和完善系统自身。

同一般的计算机应用系统(如数值计算、数据处
理系统等)相比,专家系统具有下列特点: (1) 从处理的问题性质看,专家系统善于解决那些 不确定性的、非结构化的、没有算法解或虽有算法解 但在现有的机器上无法实施的困难问题。 (2) 从处理问题的方法看,专家系统则是靠知识和 推理来解决问题(不像传统软件系统使用固定的算法 来解决问题),所以,专家系统是基于知识的智能问

题求解系统。

(3) 从系统的结构来看,专家系统则强调知识与推
理的分离,因而系统具有很好的灵活性和可扩充性。 (4) 专家系统一般还具有解释功能,即在运行过程 中一方面能回答用户提出的问题,另一方面还能对最后 的输出(结论)或处理问题的过程作出解释。 (5) 有些专家系统还具有“自学习”能力,即不断 对自己的知识进行扩充、完善和提炼。这一点是传统系 统所无法比拟的。

(6) 专家系统不像人那样容易疲劳、遗忘,易受环
境、情绪等的影响,它可始终如一地以专家级的高水平 求解问题。

1.3知识的编程和传统的计算机编程的比较
项目 内容 能力 表现 模型 用途 手法 运算 理解 扩充 解释 处理 规则 知识型编程 知识的定义、表示和使用 超过程序员理解水平 与说明型为主 思考模型 对大知识库处理、问题求解 符号处理 推理控制过程 容易 容易 容易做到在运行中解释 高度的集成处理 启发式 传统编程 数据处理步骤的描述和使用 与程序员理解水平相等 与过程型为主 处理模型 对大数据库进行处理 数值处理 重复计算过程 困难 困难 不容易做到在运行中解释 顺序的批处理 算法式

1.4 专家系统的类型
关于专家系统的分类,目前还无定论。仅从几个不 同的侧面对此进行讨论。 1.按用途分类 按用途分类,专家系统可分为:诊断型、解释型、

预测型、决策型、设计型、规划型、控制型、调度型等
几种类型。 2.按输出结果分类 按输出结果分类,专家系统可分为分析型和设计型。

3.按知识表示分类 目前所用的知识表示形式有:产生式规则、一阶谓 词逻辑、框架、语义网等。 4.按知识分类 知识可分为确定性知识和不确定性知识,所以,按

知识分类,专家系统又可分为精确推理型和不精确推理
型(如,模糊专家系统)。 5.按技术分类 按采用的技术分类,专家系统可分为符号推理专家 系统和神经网络专家系统。

6.按规模分类
按规模分类,可分为大型协同式专家系统和微专 家系统。 7.按结构分类 按结构分类可分为集中式和分布式,单机型和网

络型(即网上专家系统)。

神经网络ES 自动获取模块输入、组织并存储专家提供的学习实例 、选定神经网络的结构、调用神经网络的学习算法,为知 识库实现知识获取。当新的学习实例输入后,知识获取模 块通过对新实例的学习,自动获得新的网络权值分布,从 而更新了知识库。如图所示。
专家 神经网络 用户

学习示例

网络结构 知识获取
知识库

学习算法

解释器

推理机

神经网络ES的基本结构

2、 专家系统的结构
2.1 概念结构 从概念来讲,一个专家系统应具有如图1所示的一般 结构模式。其中知识库和推理机是两个最基本的模块。

1.知识库(KnowledgeBase)
所谓知识库,就是以某种表示形式存储于计算机中 的知识的集合。知识库通常是以一个个文件的形式存放 于外部介质上,专家系统运行时将被调入内存。知识库 中的知识一般包括专家知识、领域知识和元知识。









推 理 机

解释模块

知识库

动态数据库

知识库管理系统
图 1专家系统的概念结构

2.推理机(Inferense Engine)
所谓推理机,就是实现(机器)推理的程序。这 里的推理,是一个广义的概念,它既包括通常的逻辑 推理,也包括基于产生式的操作。例如: A→B

A
B

3.动态数据库
动态数据库也称全局数据库、综合数据库、工作 存储器、黑板等,它是存放初始证据事实、推理结果 和控制信息的场所,或者说它是上述各种数据构成的 集合。 4.人机界面 这里的人机界面指的是最终用户与专家系统的交 互界面。

5.解释模块
解释程序模块专门负责向用户解释专家系统的行 为和结果。

6.知识库管理系统
知识库管理系统是知识库的支撑软件。知识库管 理系统对知识库的作用,类似于数据库管理系统对数 据库的作用,其功能包括知识库的建立、删除、重组; 知识的获取 (主要指录入和编辑)、维护、查询、更 新;以及对知识的检查,包括一致性、冗余性和完整 性检查等等。









推理 机

解释模块

知识库

动态数据库

知识库管理系统

自学习模块

图2 专家系统的理想结构

2.2 实际结构 上面介绍的专家系统结构,是专家系统的概念模 型,或者说是只强调知识和推理这一主要特征的专家 系统结构。但专家系统终究仍是一种计算机应用系统。 所以,它与其它应用系统一样是解决实际问题的。而

实际问题往往是错综复杂的,比如,可能需要多次推
理或多路推理或多层推理才能解决,而知识库也可能 是多块或多层的。





处 理 模 块 1

… …

处 理 模 块 n

专 家 模 块 … 1 …

专 家 模 块 m

图3 专家系统的实际结构示例

多媒 体人机 界面

方法 选择

参数 确定

图件 绘制

图形 评价

I O 接口

动态数据库

方 法 知识库

参 数 知识库

评 价 知识库

自学习 模 块

知 识 库 管 理 系统

图4 地质图件绘制智能辅助系统结构

2.3 网络与分布式结构 在网络环境下,专家系统也可以设计成网络结构,如 “客户机/服务器”(Client/Server)结构(如图5(a)所示), 或浏览器 / 服务器 (Browser/Server) 结构 ( 如图 5(b) 所示 ) 。我 们称后一种结构的专家系统为网上专家系统。

分布式结构则是一种适合于分布式计算环境的专家系
统。例如那些多学科、多专家联合作业,协同解题的大型 专家系统,就可以设计成分布式结构。这类专家系统也就

称为分布式专家系统。

服务器

Web Server

知识库

推理机

知识库

推理机

Internet

人—机界面

人—机界面

客户(机)

Browser

图5 专家系统的客户(机)/服务器结构及浏览器/服务器结构

3、专家系统设计与实现
3.1 ES设计的原则 根据ES的特点,在设计中应遵循下列原则: ⑴ 专门任务。ES设计应面向专家知识和经验行之有效的 场合,面向专业性的专门任务。 ⑵ 原型设计。采用“最小系统观点”进行系统原型设计 ,逐步修改、扩充和完善。 ⑶ 专家合作。领域专家与知识工程师相互合作,是知识 获取成功的关键。 ⑷ 用户参与。用户参与ES的设计和开发,有助于人-机 接口设计及系统的运行和评价。 ⑸ 辅助工具。采用ES开发工具进行辅助设计,借鉴已有 系统经验,提高设计效率。

专家系统设计与实现的一般过程

选题 与明 确任 务

系统 需求 分析

知识 获取 与概 念化

知识 的形 式化 表示

系 统 设 计

编程 与调 试

测试 与评 价

系 统 维 护 与 完 善

再选 题

再分 析

再获 取

再形 成

再设 计

精化

再测 评

专家系统设计与实现的一般过程

知识源

用户接口模块
问题理解模块 结论模块 可信度模块

知识获取 模块

推理机模块

知识库模块
学习模块 规则库 知识库 事实库 知识解释模块

专家系统设计结构图

建立专家系统的一般步骤

由图中可以看出,专家系统的开发有如下特点:
(1)知识获取与知识表示设计是一切工作的起点; (2) 知识表示以及知识描述语言确定后,各项设计 (图中并列的六个设计)可同时进行。 还需说明的是:

(1) 对于一个实际的专家系统,在系统分析阶段就
应该首先弄清楚:系统中哪里需要专家知识,专家知 识的作用是什么?以及系统中各专家模块的输入是什 么?处理是什么?输出又是什么?

(2) 系统投入运行后,一般来说,其知识库还需不
断扩充、更新、完善和优化。所以专家系统的开发更 适合采用快速原型法。

(3) 对系统的评价主要看它解决问题是否达到专家
水平。 (4) 上述的所谓“纯专家系统”就是一个实际专家 系统中的专家模块部分。那么,对于系统其他部分的 分析与设计,原则上讲,与一般计算机应用系统完全

一样,即可按软件工程规范和程序进行。

3.2 知识获取
知识获取是建造专家系统的关键一步,也是较为 困难的一步,被称为建造专家系统的“瓶颈”。知识 获取大体有三种途径。 1.人工获取 人工获取,即计算机人员(或知识工程师)与领 域专家合作,对有关领域知识和专家知识,进行挖掘、 搜集、分析、综合、整理、归纳,然后以某种表示形

式存入知识库。

2.半自动获取
半自动获取,即利用某种专门的知识获取系统, 采取提示、指导或问答的方式,帮助专家提取、归纳 有关知识,并自动记入知识库。 3.自动获取 自动获取又可分为两种形式:一种是系统本身具 有一种机制,使得系统在运行过程中能不断地总结经 验,并修改和扩充自己的知识库;另一种是开发专门

的机器学习系统,让机器自动从实际问题中获取知识,
并填充知识库。

3.3 知识表示与知识描述语言设计
知识表示与知识描述语言设计是根据所获得知识 的特点,选择或设计某种知识表示形式,并为这种表

示形式设计相应的知识描述语言。所谓知识描述语言,
就是知识的具体语法结构形式。所以,知识描述语言 既要面向人、面向用户,又要面向知识表示、面向机 器,还要面向推理、面向知识运用。这就要求知识描 述语言既能为用户提供一种方便、易懂的外部知识表 达形式,又能将这种外部表示转换成容易存储、管理、 运用的内部形式。

3.4 知识库与知识库管理系统设计
知识库是专家系统的核心。知识库的质量直接关 系到整个系统的性能和效率。因此,知识库涉及知识 的组织与管理。知识的组织决定了知识库的结构,知 识的管理包括知识库的建立、删除、重组及维护和知 识的录入、查询、更新、优化等,还有知识的完整性、 一致性、冗余性检查和安全保护等方面的工作。知识 管理由知识库管理系统负责。

1.知识库设计
知识库设计主要是设计知识库的结构,即知识的 组织形式。专家系统(或知识工程)中所涉及的知识 库,一般取层次结构或网状结构模式。这种结构模式 是把知识按某种原则进行分类,然后分块分层组织存 放,如按元知识、专家知识、领域知识等分层组织; 而每一块和每一层还可以再分块分层。这样,整个知 识库就呈树型或网状结构。例如,下图所示的就是一

个医疗诊断知识库的层次结构。

医疗诊断知识库

消化 系统 知识 库

呼吸 系统 知识 库

……

肝病 知识 库

胃病 知识 库

……

医疗诊断知识库层次结构

2.知识库管理系统设计 知识库管理系统应包括知识一级和知识库一级的 各种管理功能。 1)知识操作功能设计 知识操作功能包括知识的添加、删除、修改、查

询和统计等。这些功能可采用两种方法来实现。一种
方法就是利用屏幕窗口,通过人机对话方式实现知识 的增、删、改、 查等;另一种方法就是用全屏幕编辑 方式,让用户直接用键盘按知识描述语言的语法格式 编辑知识。

2)知识检查功能设计
知识检查包括知识的一致性、完整性、冗余性等 检查。 所谓知识的一致性,就是知识库中的知识必须是 相容的,即无矛盾。例如,下面的两条规则

r1:if P then Q
r2:if P then Q 就是矛盾的。那么,像这样的规则就不能同时存 在于一个知识库中。

所谓完整性,是指知识中的约束条件,称为完整 性约束。例如,小王的身高 x 米,则必须满足: x<3 米; 又如,弟弟今年x岁,哥哥今年y岁,则必须满足x<y。 否则就破坏了知识的完整性。 所谓冗余性,就是重复、多余等。冗余性检查就

是检查知识库中的知识是否存在冗余。也就是要求不
能存在冗余。冗余的表现有重复、包含、环路等现象。 例如,下面的三条规则:

r1:if P then Q
r2:if Q then R r3:if P then R

3) 知识库操作设计 知识库操作包括知识库(文件)的建立、删除、分 解、合并等。这里着重要说明的是知识库的分解与合 并。这两种功能类似于关系数据库的投影、选择和连接 操作,它们实现的是知识库的重组。我们说,知识库的

重组也是可能甚至是必要的。因为随着系统的运行,可
能会发现原先的知识组合不合理,因此就需要重新组合, 这时就需要使用知识库的分解与合并功能。

3.5 推理机与解释功能设计
1.从哪里着手 ; 推理机是与知识库对应的专家系统的另一重要部 件。推理机的推理是基于知识库中的知识进行的。所 以,推理机就必须与知识库及其知识相适应、相配套。

具体来讲,就是推理机必须与知识库的结构、层次以
及其中知识的具体表示形式等相协调、相匹配。否则, 推理机与知识库将无法接轨。因此,设计推理机时,

首先得对知识库有所了解。

2. 还应考虑些什么
对推理机本身而言,还要考虑推理的方式、方法 和控制策略等。例如,对于推理方式,是正向推理, 还是反向推理或双向推理?是精确推理,还是不精确 推理?是串行推理,还是并行推理?是单调推理,还 是非单调推理?又如,对于推理方法,是用归结法, 还是用自然演绎法?对于不精确推理采用什么样的推 理模型?还有,对于搜索控制,是采用深度优先还是

广度优先,对于冲突消解是依据优先数,还是可信度
或程度(即隶属度)等等。

3. 算法设计与程序设计
做了上述的分析以后,就可着手设计推理机的算 法了。对于一个基于规则的系统来说,其推理机也就 相当于产生式系统中的执行控制部件,所以其运行过 程也就是产生系统的运行过程,因此,产生式系统所 采用的算法,或者图搜索中所用的算法也就是这里的 推理机所用的算法。算法确定后,就可进行程序设计。 至于推理机用何种程序语言实现,这个并无什么限制, 如可以用传统的 LISP 或 PROLOG 语言,也用当前流行 的C或C++语言。

4. 解释机制如何实现
另外,在推理机的设计中还得考虑解释机制。因 为专家系统一般要求要有解释功能。即在推理中要能 回答用户“为什么”的问题,在推理结束后,要能回 答“怎么样(得到结果)”的问题。从系统的结构上 讲,一般是把解释作为一个独立的模块,但实际上解 释功能也是与推理机密切相关的。因为要解释就必须 对推理进行实时跟踪。

3.6 系统结构设计
系统构成技术被称为人工智能的三大技术之一。 所以,对一个专家系统来说,其体系结构就显得非常 重要。 虽然从原理来讲,专家系统由知识库、推理机等

部分组成,但由于受问题领域、系统规模、知识表示
方法、知识库结构以及其他特殊性等诸多因素的影响, 故专家系统的体系结构难以形成固定的模式。一般来

讲,有诸如独立式(一个“纯”专家模块)、混合式
(还有其他处理模块)、集中式、分布式、层次式以 及“黑板模型”等。

3.7 人机界面设计
人机界面对于一个实用专家系统( 特别是咨询型知 识系统)来说至关重要。一个专家系统一般有两个人机 界面:一个是面向系统开发和维护者的;一个是面向 最终使用者的。前一个界面由开发工具提供;后一个 则是专家系统自身的一部分。由于图形用户界面(GUI) 的广泛使用,所以目前专家系统的开发界面已达到相 当高的水平。而专家系统的使用界面相对还比较落后。

这是因为,使用界面往往要涉及“人机对话”,如人
对系统的询问、系统对人的回答,特别是系统对用户 的解释。

4 专家系统开发工具与环境
4.1 专家系统开发工具 专家系统(ES)工具有时也叫做ES外壳和ES环境,主要是 研制样机的工具,通过抽调某个ES的知识库,就可从 特殊的ES中抽出外壳来而成为ES工具。 ES工具支持的功能包括:推理过程、数据存取、自然语 言对话的界面(接口)、过程的界面、解释功能。

ES开发工具和环境可分为五种主要类型:程序设计语言、 知识工程语言、辅助型工具、支持工具及开发环境, 如图所示。 专家系统建造方法可以分成以下三种: ① 利用计算机高级语言编写建造ES; ② 利用计算机程序设计环境编写建造ES; ③ 用计算机程序设计工具建造ES。
专家系统工具和环境
程序设计语言 知识工程语言 辅助型工具 面向 问题 的语 言 符号 处理 语言 骨 架 型 通 用 型 知 识 获 取 系统 设计 助手 支持工具 程序 设计 辅助 解 释 设 施 开发环境

专家系统工具和环境的组成

4.2专家系统语言型工具
4.2.1程序设计语言 程序设计语言包括面向问题的语言和符号处理语言 。面向问题的语言是为特定的问题类型而设计的,其主 要代表有C、PASCAL、ADA等,它们在处理代数运算 方面有很方便的特征;符号处理语言是为人工智能应用 而设计的,它的主要代表有以LISP为代表的函数型语言 ,以Prolog为代表的逻辑型语言,以及C++、Java等为代 表的面向对象语言。这些语言典型的特点是具有很强的 递归功能

4.2.2 知识工程语言
骨架型知识工程语言

骨架型知识工程语言也称为专家系统外壳,它是由一些已经 成熟的具体专家系统演变来的。其演变方法是,抽去这些专家系 统中的具体知识,保留它们的体系结构和推理机功能,再把领域 专用的界面改为通用界面,这样,就可得到相应的专家系统外壳 。 当用它来建造专家系统时,只须把相应领域的专家知识用外 壳规定的知识表示模式装入知识库,就可以快速地产生一个新的 专家系统。ES外壳的典型代表有EMYCIN、KAS及EXPERT等
通用型知识工程语言

通用型ES开发工具,是专门用于构造和调试ES的通用程序设 计语言。它是完全重新设计的一类ES开发工具,不依赖于任何已

有ES,不针对任何具体领域,能够处理不同问题领域和不同问题
类型。它比骨架系统提供了更多的对数据存取和查找的控制,具 有更大的灵活性和通用性,但比较难于使用。

表 通用型知识工程语言
名称 OPS5 UNITS RLL ROSIE ROSS MRS LOOPS SRL+ S1 M.1 KEE ART CLIPS 特征 基于规则表示、正向链 框架 框架 规则、面向过程表示、正向链、类英语语法 面向对象、规则 规则、逻辑 面向对象、规则、正向过程、面向访问 框架、逻辑、规则、面向对象 框架、规则、面向过程、反向链、黑板控制 规则、 反向链、 类英语语法, 是 S1 在 PC 上的子集 规则、框架、面向过程、对象,正、反、双向链 规则、框架、面向过程、正、反和双向链 规则、面向过程、正向链 实现语言 FRANZ ,LISP InterLisp InterLisp InterLisp C FRANZ ,LISP LISP InterLisp LISP InterLisp Prolog InterLisp LISP、C C 研制者 CarnegieMellon Stanford Stanford Rand Rand Stanford Xerox Carnegie 集团公司 Tekowledge 公司 Tekowledge 公司 Intellicorp 公司 Inference 公司 NASA 首版时间 1977 1979 1980 1981 1982 1982 1983 1983 1983 1984 1984 1984 1985

4.3专家系统设计工具 4.3.1辅助型工具

ES辅助工具是ES开发工具中支撑环境的一部分, 主要用于帮助建造高质量的知识库和调试ES,包括一 些用来帮助获取知识、表达知识的程序,以及帮助知 识工程师设计ES的程序。
1. 知识获取辅助工具 如美国斯坦福大学开发的 TEIRESIAS 编辑器, 能获得有效的良结构的专家领域知识,并加工、编辑 到知识库中。

2.系统设计助手 ES的设计助手有以下三种类型: ⑴ 设计辅助工具。它用来实现ES的辅助设计。例如,美 国斯坦福大学用INTERLISP语言开发的AGE就是一例 。它包括以下4个子系统: ① 设计子系统:指导用户使用组合规则的预组合模型。 ② 编辑子系统:辅助用户选用预制构件模块,装入领域 知识和控制信息,建造知识库。 ③ 解释子系统:执行用户的程序,进行知识推理以求解 问题,并提供查错手段,建造推理机。 ④ 跟踪子系统:进行全面的跟踪和测试的子系统。 ⑵ 归纳工具。它用来帮助开发者从大量的初始实例出发 ,归纳产生出规则或决策树。 ⑶ 辅助建造工具。它用来辅助建造ES。

4.3.2支持工具 ES支持工具也称为ES支持环境或支持工具集。它 们用来执行与ES建造工具的连接,帮助用户与ES对话 ,辅助程序的调试或作为它的一部分。 ⑴ 辅助调试工具。该工具提供相应的跟踪辅助功能、自 动测试模块及中断设施等。跟踪辅助使用户能跟踪或 显示系统的操作。自动测试模块用于测试知识库,指 出知识库的薄弱部分,选择修改对象。中断程序包使 用户能预先告知程序在什么位置停止。 ⑵ 知识库编辑器。这是基于文本编辑的知识编辑工具。 ⑶ 输入/输出界面。此界面提供实时知识获取工具和多种 不同输入/输出方式。有些工具提供运行时实现知识获 取功能,此时工具机制本身使用户能够与运行的系统 对话。 ⑷ 解释设施。这是用来向用户解释系统是如何得到某个 特定结果的。

4.4 专家系统开发环境
1.定义: ES开发环境是以一种或多种工具和方法为核心, 由若干计算机子程序或者模块组成的,为高效率开发 ES而设计和实现的大型智能计算机软件系统,加上与 之配套的各种辅助工具和界面环境的完整的集成,形 成一种集成化ES开发工具包,用于解决特殊范围或层 次的问题。 2.功能: ⑴ 多种知识表示:至少提供两、三种以上知识表示。 ⑵ 多种不精确推理模型,最好还留有用户自定义接口。 ⑶ 多种知识获取手段:除了必需的知识编辑工具外,还 应有自动知识获取即机器学习功能,以及知识求精手 段。

⑷ 多样的辅助工具:包括数据库访问、电子表格、作图 等工具。 ⑸ 多样的友好用户界面:包括开发界面和ES产品的用户 界面,应该是多媒体的,并且有自然语言接口。 ⑹ 广泛的适应性:能满足多种应用领域的特殊需求,具 有很好的通用性。

谢 谢!


相关文档

第8章 专家系统的原理与设计
专家系统理论与设计原理
专家系统的基本原理和基于CLIPS的专家系统设计与实现
工智能及专家系统敖志刚第8章专家系统的原理与设计-PPT精品文档
工智能及专家系统(敖志刚)第8章 专家系统的原理与设计
工智能及专家系统敖志刚第8章专家系统的原理与设计
【精选】工智能及专家系统敖志刚第8章 专家系统的原理与设计
工智能及专家系统敖志刚第8章专家系统的原理与设计-文档资料
平面交叉口信号相位设计专家系统理论框架研究
8.2汽车变速器设计专家系统理论
电脑版