计算机应用
COMPUTER APPLICATIONS
1999年 第19卷 第9期 Vol.19 No.9 1999



实现渔业资源评估专家系统的一种方法
谭宁　陆史忠植
　　摘　要　本文介绍了一种用计算机专家系统实现我国东海渔业资源评估的方法。这一渔业资源评估专家系统是用面向对象的知识处理系统（OKPS）构造而成。OKPS是我们自主开发的一套可视化专家系统工具。本文着重阐述了OKPS系统和该专家系统的原理、模型选择的规则、专家知识库的构造与实现等问题。
　　关键词　专家系统, 知识处理, 面向对象, 渔业资源评估
AN APPROACH TO IMPLEMENT A FISHERY RESOURCE 
ASSESSMENT EXPERT SYSTEM
Tan Ning　Lu Feng　
Graduate School, University of Science and Technology of China, Beijing 100080
Shi Zhongzhi
Institute of Computering Technology,Chinese Academy of Sciences, Beijing 100080
　　Abstract　This article introduces how to implement computer evaluation of fishery resources in Chinese East Sea by using an expert system. This expert system is constructed with Object-oriented Knowledge Processing System (OKPS), which is an expert system tool developed by us. The article focuses on the principles of OKPS and the expert system, rules of model selection, structure of the knowledge base, and so on.
　　Keywords　Expert system, Knowledge processing, Object-oriented, Evaluation of fishery resources
　　本文所讲述的渔业资源评估专家系统，是国家863项目《海洋渔业遥感信息服务系统技术示范试验》（课题号863-818-07）中03子课题的一部分。
　　该863项目的目标任务是建立具有我国自主知识产权的，以东海渔区（25°―34°N，130°E以西海区)为示范海区，以卫星遥感渔业分析技术、海洋渔业服务地理信息系统技术和渔情分析专家系统技术为支撑的海洋渔业遥感信息与资源评估服务系统。并为渔情分析专家系统应用于海洋渔业生产管理领域提供先进实用的集成平台。
1　渔业资源评估专家系统的原理
　　渔业资源评估与动态预测的关键是根据特定目标和特定海区选择最佳的评估和预测模型。
　　渔业资源研究分析过程通常由资料收集、分析计算、专家评估分析、最终应用目标几个部分组成。渔业资源评估专家系统的工作原理是，根据现有的统计资料（产量、渔获量等）、鱼类群体生物学参数、评估的需求和目标，利用专家系统中的专家知识对模型进行选择、拟合和计算，并对模型计算的结果进行判断和提供必要的解释。
　　该专家系统针对不同海区的主要鱼种（带鱼、鲐鱼、马面屯）、主要渔汛或每年的资源量、最大持续产量、可捕量进行评估和预测，结果以报表或图表的形式提供。该系统由专家知识库、推理系统和模型库等部分构成。
　　渔业资源评估专家系统的工作流程见图1，主要分以下几个过程：


图1　渔业资源评估子系统流程
　　. 数据输入。人机对话，对现有的数据的类型、数量、质量作进一步了解和分析，并输入评估的需求和目标。
　　. 系统根据专家知识，选择合适的模型进行拟合和计算。
　　. 输出拟合的模型及其参数，同时输出模型计算结果。
　　. 系统利用统计学原理和专家知识对拟合的模型进行验证，对模型计算结果进行分析判断。
　　. 系统根据专家知识提出资源评估结果（包括资源量、可捕量等），并提出相应的决策建议。
2　系统设计
　　渔业资源评估专家系统，是应用了面向对象知识处理系统（OKPS）工具，自主开发的可视化专家系统。以下作简单介绍。
2.1　面向对象知识处理系统（OKPS）
　　这一专家系统工具由两部分组成：知识获取和管理工具，以及面向对象推理机。知识获取和管理工具是一个可视化的知识库构造和管理程序。用这个工具构造的知识库，可以在面向对象推理机中访问并进行推理。系统的主要功能和特点是：
　　采用面向对象的知识表示方法　知识表示是指用计算机表示知识的可行的、有效的、通用的原则和方法。该系统将框架理论和语义网络相结合，采用面向对象的概念和技术来实现知识表示。一个知识库是由各种对象组成的树型结构。这些对象对应于树中的结点，它们有定义自身外观的属性和定义自身行为的方法。通过设置推理结点的属性和编写实现行为的方法脚本，可以将推理的规则和控制策略与对象有机的结合在一起。
　　可视化的知识获取和管理　知识库的实现建立在技术成熟的数据库系统之上，通过通用接口，知识库可以建立在任何流行的数据库系统之上。通过专家系统工具中的可视化知识获取和管理工具，知识工程师可以方便地添加、删除和修改专家知识，从而高效地建立、扩展和维护专家系统的知识库。
　　推理控制语言ICL　该系统采用知识库系统和推理机制相分离的方式来构造专家系统。这样，构造专家系统时，只需要改变知识库系统中的知识，就可实现不同的专家系统。为了提供功能足够强大的推理机制，并最大限度地保持灵活性和方便性，系统引入了一种专用的高级语言：推理控制语言ICL。用来描述和操作专家知识与规则，以及控制推理过程。
　　ICL脚本语言的元素包括构成ICL脚本的名字、数字、和字符。ICL定义了如下一些符元（Token）：标志、注释、关键字、标识符和常量等。
　　ICL语句控制着脚本执行流程、象其他的编程语言一样，在ICL中有几种语句可以执行循环，选择执行其他语句或是改变控制，这些语句包括：复合语句、do-while语句、表达式语句、for语句、if-else语句、空(null)语句、返回(return)语句、规则(rule)语句和while语句等。
　　用户还可以使用功能强大而丰富的ICL函数。这些函数包括：控制台输入/输出、数值计算、字符串操作、图形/图表展示、黑板存取、文件操作、数据库访问、网络通信、知识库存取、推理控制以及外部调用等等。
　　ICL中的数据共有4种类型：整型（int），浮点型（float），字符型（char），字符串型（string）。
　　面向对象推理机制
　　在面向对象推理机中，知识库中每个对象中的方法将按一定顺序执行。每一个对象可以有三个方法：先序方法，中序方法和后序方法。通过知识获取和管理工具，你可以在这三种方法中编写推理控制语言(ICL)脚本。
　　在面向对象推理机中，推理过程是对知识库树型结构的遍历。在默认控制下，这个过程从根结点开始，树中所有结点都将被访问。
　　默认情况下，推理机按以下方式访问结点：
访问根结点。
　　对正在访问的结点（假设为结点A）：
　　对A执行先序方法；
如果A有孩子结点，访问它的第一个孩子；
如果A的第一个孩子结点有兄弟结点，对每一个兄弟：
执行A的中序方法；
访问兄弟结点。
执行A的后序方法。
　　请看以下例子，树中有10个结点，方法执行序列为：
结点1: 先序方法　结点7　: 先序方法
结点2: 先序方法 结点7 : 后序方法
结点3: 先序方法 结点6 : 中序方法
结点3: 后序方法 结点8 : 先序方法
结点2: 中序方法 结点8 : 后序方法
结点4: 先序方法 结点6 : 后序方法
结点4: 后序方法 结点1 : 中序方法
结点2: 中序方法 结点9 : 先序方法
结点5: 先序方法 结点10: 先序方法
结点5: 后序方法 结点10: 后序方法
结点2: 后序方法 结点9 : 后序方法
结点1: 中序方法 结点1 : 后序方法
结点6: 先序方法

2.2　系统结构
　　该专家系统的总体结构可分为两部分，分别对应于不同层次的使用者所看到的系统，如图2所示。知识工程师通过知识获取工具，对知识库中各项进行操作，包括专家知识的添加、删除和修改。具体的库结构、库中各个表之间的关系对知识工程师是透明的。

a)知识工程师看到的系统

b)最终用户看到的系统
图2　专家系统功能结构
2.3　渔业资源评估模型
　　当前国内外常用的渔业资源评估的经典模型有：实际种群分析模型（VPA）、Berverton-Holt模型、Schaefer和Fox模型、Leslie模型、Delury模型、生态转换模型、生长参数估算模型（VON BERTALANFFY生长方程、根据体长/年龄数据估算生长参数、根据体长频率估算年龄组成）、死亡估算模型（总死亡率估算模型、自然死亡率估算模型）等。
　　我们根据近5年的实践，对各种模型进行检验分析，初步选定了进行绿鳍马面屯、带鱼和鲐鱼资源评估和可捕量预报所需要的模型，如多元回归分析、实际种群分析、体长股分析和剩余产量模型等。
　　再结合国内历年来在渔业资源评估方面的资料，经过适当的提炼，可得到专家系统所需的有关渔业资源评估方面的专家知识。
2.4　模型选择规则
　　根据迄今所总结的专家知识，该专家系统可完成的主要需求为：总许可捕捞量（TAC）或评估最大持续产量（MSY）、评估渔业资源量、可捕量或预报渔获量、控制总捕捞努力量，确定开捕年龄tc、捕捞努力量水平（即捕捞死亡系数F值）等。
　　专家知识除了数据以外，主要以规则的形式存贮在知识库中，在专家系统执行过程中，推理机将根据这些规则，并结合当前具备的数据和模型条件，判断并选择合适的模型进行求解。以下列出了模型选择规则的总体框架，限于篇幅，规则的细节没有列出。
总许可捕捞量（TAC）或评估最大持续产量（MSY）

控制总捕捞努力量
确定开捕年龄 tc、捕捞努力量水平（即捕捞死亡系数）

评估渔业资源量、可捕量或进行产量预报

3　系统实现
3.1　知识库结构
　　根据上面总结的规则，我们可以建立起基本的专家系统知识库，其结构如图3所示。

图3　资源评估专家系统知识库结构
　　知识库的根结点为第一层。第二层有三个结点，分别对应该专家系统所要解决的三部分需求，即求总许可捕捞量（TAC）或评估最大持续产量（MSY），评估渔业资源量、可捕量或进行产量预报，以及控制总捕捞努力量，确定开捕年龄tc、捕捞努力量水平（即捕捞死亡系数）。每个部分又由不同的模型求解组成，他们组成各个部分的第三层结点。
　　知识库中每个结点都含有方法，总结出来的专家规则和控制策略以ICL脚本语言的形式写在这些方法中。它们的作用就是完成各自所在结点的所有处理工作，以及控制推理的执行路径。这些工作总体上包括以下内容：
　　. 进行规则匹配，找到正确的推理路径，从而完成模型选择；
　　. 进行相应模型的调用，并得到模型计算结果；
　　. 输出对各部分需求的求解结果。
3.2　模型调用
　　专家系统对模型的调用如图4所示。由于专家系统提供了对数据库和调用外部程序模块的支持，所以能够很容易地使用模型库中的各种模型来进行计算。该专家系统对模型的调用是通过动态连接库这一标准形式来实现的。

图4　专家系统与模型调用关系
4　结束语
　　本文主要探讨了如何应用面向对象的知识处理系统（OKPS）来构造渔业资源评估专家系统。OKPS是我们自主开发的一套专家系统开发工具。该渔业资源评估专家系统主要在以下几方面做了研究与实践：
　　如何用专家系统工具构造技术成熟、高效而可靠的渔业资源评估专家系统；采用面向对象的方式来描述问题，使用户易于理解；规则和控制策略用专用的ICL脚本语言及其函数库实现，可以灵活定制以适用各种特定的和复杂的问题求解；使专家系统的知识库维护工作符合当前流行的可视化风格，即界面友好，使用方便，所见即所得。
注：国家863项目“海洋渔业遥感信息服务系统技术示范试验”(课题号863-818-07)中03子课题的一部分。
作者简介：谭宁　硕士研究生。主要研究方向：人工智能、专家系统。
陆　硕士研究生。主要研究方向：人工智能。
史忠植　研究员，博士生导师。主要研究方向：人工智能、智能软件、神经计算。
作者单位：谭宁　陆中国科技大学研究生院　北京(100080）
史忠植　中国科学院计算技术研究所　北京(100080）
参考文献
［1］　史忠植.知识工程.北京：清华大学出版社，1988
［2］　陆汝钤.专家系统开发环境.北京：科学出版社，1994
［3］　史忠植.高级人工智能.北京：科学出版社，1997
［4］　吴泉源，刘江宁.人工智能与专家系统.长沙：国防科技大学出版社，1995
［5］　王众托，贺兆明，王　敬，等.计算机决策支持系统.中国石化出版社，1995
［6］-［9］略。
收稿日期:1999-03-15
