第一篇:专家系统读后感
专家系统读后感:
一.专家系统的原理与设计
1.专家系统的概念:
专家系统(Expert System, ES)指专家咨询系统,它是一种具有大量专门知识与经验的智能计算机系统,通常,主要指计算机软件系统。它把专门领域中人类专家的知识和思考解决问题的方法,经验和诀窍组织整理且存储在计算机中,不但能模拟领域专家的思维过程,而且能让计算机宛如人类专家那样智能地解决实际问题。概括地说,ES是一个应用于某专门领域,拥有专家级知识,能模拟专家思维,能达到专家级水平的系统。
2.专家系统的特点:
ES与人类专家相比,具有如下一些特点:
ES是人类专家智能的模拟,延伸和扩展,具有一定的复杂性和难度;ES 是专家可以信赖和利用的高水平智能助手和 有效工具;ES可具有一个或多个专家的知识和经验,能接近人类专家的水平在特定领域工作;ES能高效,准确,迅速地工作,不会产生疲劳,遗忘,不受环境,情绪等的影响;ES 突破了时间和空间的控制,程序可永久保存,并可复制,还可在网上传递;ES能进行有效推理,包括各种精确行推理和非精确性推理。
3.相对于一般计算机软件系统来说
ES 不同于一般的计算机软件系统,其特点在于:
从处理问题的性质来看,ES善于解决不确定性,非结构化,没有算法或虽然有算法但是在现有的机器上无法实施的困难问题,主要用于知识信息处理,而不是数值信息处理; 从处理问题的方法看,ES 则主要依靠知识表达技术,知识推理,知识收集和编码,知识存储和编排,建立知识库及其管理系统,利用专家的知识和经验,求解专门问题,而不是数学描述的方法来解决问题,它是基于知识的只能问题求解系统;从系统的结构来看,ES 则是强调知识与推理的分离,因而灵活性和可扩充性更好;从知识的推理能力来看,ES 的工作是在环境模式驱动下的知识推理过程,而不是在固定程序控制下的指令执行过程。
二.专家系统的开发工具与环境
1.专家系统的设计工具
建造ES 的计算机程序设计工具称作ES 工具或者ES 外壳,ES 工具和ES 外壳实质上是一个知识库管理系统,只要建立了知识库,就能够得到该知识库领域的ES。
ES辅助工具是ES开发工具中支撑环境的一部分,主要用于帮助建造高级的知识库和调试ES,包括一些用来帮助获取知识,表达知识的程序,以及帮助知识工程师设计ES的程序。按其功能和特性划分,ES 辅助型工具可分为知识获取辅助型工具和系统设计助手两种。
ES支持工具也称为ES支持环境或支持工具集。它们用来执行与ES建造工具的连接,帮助用户与ES对话,辅助程序的调试或作为它的一部分。ES支持工具有程序设计辅助(辅助调试,知识库编辑器,输入/输出界面)和解释设施两部分组成。
2.专家系统的开发环境
ES 开发环境是以一种或多种工具和方法为核心,由若干计算机子程序或者模块组成的,为高效率开发ES 而设计和实现的大型智能计算机软件系统,加上与之配套的各种辅助工具和界面环境的完整的集成,形成一种集成化ES 开发工具包,用于解决特殊范围或层次问题。一个好的ES 开发环境应想用户提供多方面的支持,包括从系统分析,知识获取,程序设计到系统调试与维护的一条龙服务。
三.不精确推理与模糊专家系统
六.总结:
首先通过初步的学习对专家系统的概念和原理有个大致的了解。所谓专家系统,就是ES是一个应用于某专门领域,拥有专家级知识,能模拟专家思维,能达到专家级水平的系统。由于ES是基于知识的系统,那么,构建ES就涉及知识涉取(从人类专家那里或从实际问题那里搜集,整理,归纳专家级知识),知识的组织与管理,知识库建立于维护,知识的利用等。
ES开发工具与环境是一种为高效率开发ES而设计的高级程序系统或高级程序设计语言环境。从目前的现状来看,ES开发工具和环境可以分为5个主要类型:程序设计语言,知识工程语言,辅助型工具,支持工具以及开发环境。专家系统作为计算机软件,其构造方法可以分为以下3种:利用计算机高级语言编写建造ES ;利用计算机程序设计环境编写建造ES ;利用计算机程序设计工具编写建造ES。
在实际工作中,人们通常用不准确,不完整的资料来描述工作关系的不确定。造成
第二篇:人工智能专家系统实验
河南城建学院
《 人工智能 》实验报告
实验名称:__实验四 名称实现一个基于产生式系统的小型专家系统(动物识别)成绩: 专业班级: 0814112 学号: 081411202 姓名: xxxxxxxxxxxx 实 验 日 期 : 2014 年 5 月 20 日
实验器材:VC6.0软件,多媒体计算机。
一、实验目的
掌握产生式系统的运行机制和基于规则推理的基本方法。通过一个实例了解小型专家系统的结构、设计和实现过程,初步掌握专家系统的设计和实现方法。
二、实验要求
设计并实现一个某领域的小型专家系统(动物识别),该系统能对输入的询问回答分类或预测的结果,并根据推理过程回答“为什么”或“怎样得出该结论”的问题。
三、实验步骤
(1)定义变量,包括变量名和变量的值。(2)建立规则库,其方法是:(a)输入规则的条件:每条规则至少有一个条件和一个结论,选择变量名,输入条件(符号);选择变量值,按确定按钮就完成了一条条件的输入。重复操作,可输入多条条件;
(b)输入规则的结论:输入完规则的条件后,就可以输入规则的结论了,每条规则必须也只能有一个结论。选择变量名,输入条件(符号),选择变量值,按确定按钮就完成了一个结论的输入。重复以上两步,完成整个规则库的建立。
(3)建立事实库(总数据库):建立过程同步骤2。重复操作,可输入多条事实。
该动物识别专家系统由15条规则组成,可以识别七种动物,在15条规则中,共出现 30个概念(也称作事实),共30个事实,每个事实给一个编号,从编 号从1到30,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:
char *feature[]={“有毛”,“产奶”,“有羽毛”,“会飞”,“会下蛋”,“吃肉”,“有犬齿”,“有爪”,“眼睛盯前方”,“有蹄”,“反刍”,“黄褐色”,“有斑点”,“有黑色条纹”,“长脖”,“长腿”,“不会飞”,“会游泳”,“黑白两色”,“善飞”,“哺乳类”,“鸟类”,“肉食类”,“蹄类”,“企鹅”,“海燕”,“鸵鸟”,“斑马”,“长颈鹿”,“虎”,“金钱豹”};存放规则的结构体: typedef struct
{ int relation[5];
int name;}Rule;存放产生式规则推理过程的数组: Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27},//如果动物是蹄类(23),且有黑色条纹(13),则该动物对应事实数组的第27个“斑马”
{{21,14,15,16,-1},26}, {{21,19,-1},25},//如果动物是鸟类(21),且是肉食类(19),则该动物对应事实数组的第25个“海燕”。
{{21,17,18,16,-1},24} };程序用编号序列的方式表达了产生式规则,如资料中规则14,如果动物是鸟,且是肉食类,则该动物对应事实数组的第二十五个“海燕”。如资料中规则12,如果动物是蹄类,且有黑色条纹,则该动物对应事实数组的第二十七个“斑马”。
(4)按“开始”或“单步”按钮即可。
此外,利用实例演示,可以运行系统默认的产生式系统,并且可以进行正反向推理。其他的可参见其帮助文件。
三、源代码
#include
“有黑色条纹”,“长脖”,“长腿”,“不会飞”,“会游泳”,“黑白两色”,“善飞”,“哺乳类”,“鸟类”,“肉食类”,“蹄类”,//13
“企鹅”,“海燕”,“鸵鸟”,“斑马”,“长颈鹿”,“虎”,“金钱豹”};
//24
typedef struct //存放规则的结构体 { int relation[5];
int name;}Rule;Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27}, {{21,14,15,16,-1},26}, {{21,19,-1},25}, {{21,17,18,16,-1},24}};int flag[23]={0};//标记各个特征是否选择 int IsAnimal(int a);int inference();void input();void menu();void menu(){ int i=0;
for(i=0;i<24;i++){
if(i%4==0&&i!=0)
{
cout< } printf(“%-3d.%-15s”,i,feature[i]); } } void input(){ int ti=0;for(int i=0;i<24;i++){ flag[i]=0;} while(ti!=-1){ cout<<“n输入选择(-1结束):”; cin>> ti; if(ti>=0&&ti<=23) flag[ti]=1; else if(ti!=-1) { cout<<“输入错误!请输入0~23//notanimal=25 cin.clear();//清除流错误错误标 cin.sync();////////////清空输入缓冲区 } } } int IsAnimal(int a){ if(a>=24&&a<=30) return 1; else return 0;} int inference()//正向推理 { int ti; int i,j; int tres; cout< for(i=0;i<15;i++) { j=0; 之间的数字!”<< endl; ti=rule[i].relation[j]; while(ti!=-1)//-1作为结束 { if(flag[ti]==0) break; j++; ti=rule[i].relation[j]; } if(ti==-1)//ti==-1代表规则满足 { tres=rule[i].name; flag[tres]=1; printf(“运用了规则%d : ”,i); j=0; while(rule[i].relation[j]!=-1) { cout< j++; } cout<<“====> ”< if(IsAnimal(tres)) { return 1; } } } if(i==15) { cout<<“没有这种动物”; } return-1;} void main(){ char q; while(q!='n') { menu(); input(); inference(); cout<<“n继续?(Y/N)”< cin>>q; system(“cls”); } } 四、结果分析 1、若已知:动物是蹄类(23),且有黑色条纹(13),则结果:该动物对应事实数组的第27个“斑马”。使用了推理规则12,即:{{23,13,-1},27},使用规则运行结果如图1所示: 图1 2、若已知:动物是鸟类(21),且是肉食类(19),则结果该动物对应事实数组的第25个“海燕”。使用了推理规则14,即:{{21,19,-1},25},使用规则运行结果如图2所示: 图2 五、心得体会 本实验环境主要提供一个能够实现模拟产生式专家系统的验证、设计和开发的可视化操作平台。使用户既能用本系统提供的范例进行演示或验证性实验,也能够用它来设计并调试自己的实验模型。 通过这次实验,我对产生式系统有了更深刻的认识。产生式系统是由一组规则组成的、能够协同作用的推理系统。其模型是设计各种智能专家系统的基础.产生式系统主要由规则库、综合数据库和推理机三大部分组成。产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。专家系统的规则是由专家定的,在该实验中,是由本人制定的。 教师评语: 教师签名: 姓名:万伟 学号:1120100924 人工智能与专家系统感想 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 人工智能技术导论这门课的学习,让我知道了人工智能从诞生发展到今天经历了一条漫长的路,许多科研人员为此而不懈努力。人工智能的开始可以追溯到电子学出现以前。象布尔和其他一些哲学家和数学家 建立的理论原则后来成为人工智能逻辑学的基础。而人工智能真正引起 研究者的兴趣则是1943年计算机发明以后的事。技术的发展最终使得人们可以仿真 人类的智能行为,至少看起来不太遥远。接下来的四十年里,尽管碰到许多阻碍,人工智能仍然从最初只有十几个研究者成长到现在数以千计的工程师和专家在研究; 从一开始只有一些下棋的小程序到现在的用于疾病诊断的专家系统,人工智能的发展有目共睹。 人工智能经过几十年的发展,其应用在不少领域得到发展,在我们的日常生活和学习当中也有许多地方得到应用。我通过网络查找,知道了以下领域的人工智能的发展。 专家系统是一种模拟人类专家解决领域问题的计算机程序系统。专家系统内部含有大量的某个领域的专家水平的知识与经验,能够运用人类专家的知识和解决 问题的方法进行推理和判断,模拟人类专家的决策过程,来解决该领域的复杂问题。专家系统是人工智能应用研究最活跃和最广泛的应用领域之一,涉及到社会各个 方面,各种专家系统已遍布各个专业领域,取得很大的成功。根据专家系统处理的问题的类型,把专家系统分为解释型、诊断型、调试型、维修型、教育型、预测 型、规划型、设计型和控制型等10种类型。具体应用就很多了,例如血液凝结疾病诊断系统、电话电缆维护专家系统、花布图案设计和花布印染专家系统等等。为了实现专家系统,必须要存储有该专门领域中经过事先总结、分析并按某种模式表示的专家知识(组成知识库),以及拥有类似于领域专家解决实际问题的 推理机制(构成推理机)。系统能对输入信息进行处理,并运用知识进行推理,做出决策和判断,其解决问题的水平达到或接近专家的水平,因此能起到专家或专家 助手的作用。 开发专家系统的关键是表示和运用专家知识,即来自领域专家的己被证明对解决有关领域内的典型问题有用的事实和过程。目前,专家系统主要采用基于规则 的知识表示和推理技术。由于领域的知识更多是不精确或不确定的,因此,不确定的知识表示与知识推理是专家系统开发与研究的重要课题。此外,专家系统开发工 具的研制发展也很迅速,这对扩大专家系统的应用范围,加快专家系统的开发过程,将起到积极地促进作用。随着计算机科学技术整体水平的提高,分布式专家系 统、协同式专家系统等新一代专家系统的研究也发展很快。在新一代专家系统中,不但采用基于规则的推理方法,而且采用了诸如人工神经网络的方法与技术。 一、人工智能与专家系统应用领域 1在管理系统中的应用 人工智能应用于企业管理的意义主要不在于提高效率,而是用计算机实现人们非常需要做,但工业工程信息技术是靠人工却做不了或是很难做到的事情。智能教学系统(ITS)是人工智能与教育结合的主要形式,也是今后教学系统的发展方向。信息技术的飞速发展以及新的教学系统开发模式的提出和不断完善,推动人们综合运用超媒体技术、网络基础和人工智能技术区开发新的教学系统,计算机智能教学系统就是其中的典型代表。它包含学生模块、教师模块,体现了教学系统开发的全部内容,拥有着不可比拟的优势和极大的吸引力。2在工程领域的应用 医学专家系统是人工智能和专家系统理论和技术在医学领域的重要应用,具有极大的科研和应用价值,它可以帮助医生解决复杂的医学问题,作为医生诊断、治疗的辅助工具。目前,医学智能系统已通过其在医学影像方面的重要作用,从而应用于内科、骨科等多个医学领域中,并在不断发展完善中。 3在技术研究中的应用 人工智能在电子技术领域的应用可谓由来已久。随着网络的迅速发展,网络技术的安全是我们关心的重点,因此我们必须在传统技术的基础上进行网络安全技术的改进和变更,大力发展数据挖掘技术、人工免疫技术等高效的AI技术,开发更高级AI通用和专用语言,和应用环境以及开发专用机器,而与人工智能技术则为我们提供了可能性。4人工智能在现实中的应用。 AI系统是设计出的一种计算机程序,这种程序具有某些像人和动物智能一样的功能。在过去的30多年中,已经建立了一些具有一定“智能”的AI系统,例如下棋程序、定理证明系统、集成电路设计与分析系统、自然语言翻译系统、智能信息检索系统、疾病诊断系统等 在一年一度AT&T实验室举行的机器人足球赛中,每支球队的“球员”都装备上了AI软件和许多感应器,它们都很清楚自己该踢什么位置,同时也明白有些情况下不能死守岗位。尽管现在的AI技术只能使它们大部分时间处于个人盘带的状态,但它们传接配合的能力正在以很快的速度改进。5.机器翻译 机器翻译是利用计算机把一种自然语言转变成另一种自然语言的过程,用以完成这一过程的软件系统叫做机器翻译系统。几十年来,国内外许多专家、学者为 机器翻译的研究付出了大量的心血和汗水。虽然至今还没有一个实用、全面、高质量的自动翻译系统出现,不过也取得了很大的进展,特别是作为人们的辅助翻译工 具,机器翻译已经得到大多数人的认可。目前,国内的机器翻译软件不下百种,根据这些软件的翻译特点,大致可以分为三大类:词典翻译类、汉化翻译类和专业翻 译类。词典类翻译软件代表是“金山词霸”了,堪称是多快好省的电子词典,它可以迅速查询英文单词或词组的词义,并提供单词的发音,为用户了解单词或词组含 义提供了极大的便利。汉化翻译软件的典型代表是“东方快车2000”,它首先提出了“智能汉化”的概念,使翻译软件的辅助翻译作用更加明显。以“译星”、“雅信译霸”为代表的专业翻译系统,是面对专业或行业用户的翻译软件,但其专业翻译的质量与人们的实用性还有不少差距,有人评价说“满篇英文难不住,满篇 中文看不懂”,该说法虽然比较极端,但机译译文的质量确实却一直是个老大难问题。这里,我们不妨对现有的机译和人译过程作一比较,从中可以看出一些原因。 机器翻译: 1.一句一句处理,上下文缺乏联系; 2.对源语言的分析只是求解句法关系,完全不是意义上的理解; 3.缺乏领域知识,从计算机到医学,从化工到法律都通用,就换专业词典; 4.译文转换是基于源语言的句法结构的,受源语言的句法结构的束缚; 5.翻译只是句法结构的和词汇的机械对应。 人工翻译: 1.一般会先通读全文,会前后照应; 2.对源语言是求得意义上的理解; 3.只有专业翻译人员,而没有万能翻译人员; 4.译文是基于他对源语言的理解,不受源语言的句法结构的束缚; 5.翻译是一个再创造的过程。 在目前的情况下,计算机辅助翻译应该是一个比较好的实际选择。事实上,在很多领域中,计算机辅助人类工作的方式已经得到了广泛的应用,例如CAD软 件。如果计算机辅助技术用于语言的翻译研究,应该同样可以起到很大的辅助作用,这就是所谓的“计算机辅助翻译”。它集机器记忆式翻译、语法分析式翻译和人 际交互式翻译为一体,把翻译过程中机械、重复、琐碎的工作交给计算机来完成。这样,翻译者只需将精力集中在创造性的思考上,有利于工作效率的提高。 机器翻译研究归根结底是一个知识处理问题,它涉及到有关语言内的知识、语言间的知识、以及语言外的世界知识,其中包括常识和相关领域的专门知识。随 着因特网的普及与发展,机器翻译的应用前景十分广阔。作为人类探索自己智能和操作知识的机制的窗口,机器翻译的研究与应用将更加诱人。国际上有关专家分析 认为机器翻译要想达到类似人工翻译一样的流畅程度,至少还要经历15年时间的持续研究,但在人类对语言研究还没有清楚“人脑是如何进行语言的模糊识别和判 断”的情况下,机器翻译要想达到100%的准确率是不可能的。 二、人工智能与专家系统的发展前景 1 人工智能的研究新课题 人工智能的长远目标是要理解人类智能的机器,用机器模拟人类的智能。这是一个十分漫长的过程,人工智能研究者奖通过多种途径、从不同的研究课题入手进行探索。 在近期,有几方面的研究课题可供选择:更完善更新的人工智能理论框架;自动或半自动的知识获取工具;能实现海量高速存储并具有学习功能的联想知识库;新型推理机制和推理机;分布式人工智能与协同式专家系统;智能控制与智能管理;智能机器人;人工智能机;新一代的脑模型。 2人机融合 人机融合是一个相当长的发展过程,它将伴随技术进步,逐级逐步地向前发展。首先实现的是低级和局部的融合,近几年人工智能科授的进步不断证实了这种趋势。如最近美国科学家就明确宣布,他们研制的“神经芯片”首先就是用于改善人的中枢神经功能,“使截瘫患者丢掉手杖”。随着人机融合的升级,最终将在地球上产生一种人机高度融合、高智慧、能自行繁殖(复制)的“新智体”(或曰“新人类”)。因此,文明人类的演化由于技术的影响将经历自然进化——人工促进人智能的进化——人机融合体(新智体)的自行进化的辩证发展过程。在人机融合时代,出于物理目标的不同,将存在多种多样、多层次的智能机(体),但具有怨茁级智能的应是人机融合体。当今人工智能科技和其他高科技的种种发展动向表明,在人类进入“信息社会”之后,将有一场规模巨大的“智能革命”,智能革命的环境是人工智能对人、对社会的广泛而深入的影响,就像今天的微电子技术对信息革命的影响一样。人工智能科技将渗透到社会各个领域,人类将对人工智能科技进行大规模的研究、开发和应用。 当今人工智能科技和其他高科技的种种发展动向表明,在人类进入“信息社会”之后,将有一场规模巨大的“智能革命”,智能革命的环境是人工智能对人、对社会的广泛而深入的影响,就像今天的微电子技术对信息革命的影响一样。人工智能科技将渗透到社会各个领域,人类将对人工智能科技进行大规模的研究、开发和应用。 总之,人工智能的应用前景一片的好,当然,挑战也很多,只有科学不断发展突破进步,我们才能真正的享受智能化带给我们的乐趣„ 农业专家系统应用实例分析 摘要:专家系统是人工智能领域中较为成熟的一个分支。本文阐述了专家系统的基本概念及基本要素,介绍了专家系统在我国农业中的应用和我国农业专家系统的发展趋势。 关键词:人工智能;专家系统;农业专家系统;应用 农业专家系统也可叫农业智能系统,是一个具有大量农业专门知识与经验的计算机系统。它应用人工智能技术,依据一个或多个农业专家提供的特殊领域知识、经验进行推理和判断,模拟农业专家就某一复杂农业问题进行决策。典型的农业专家系统主要由知识库、数据库、模型库、推理机、知识库管理系统、解释器、用户界面7个部分组成。其中,知识库和推理机是农业专家系统最核心部分,这是任何一个农业专家系统都不可缺少的组成部分。知识库的质量直接影响到农业专家系统质量及可信度;推理机是农业专家系统的运行动力。而知识库管理系统则是对知识库中的知识进行检查和检索,还可以把推理过程中使用知识的实际情况显示出来,这是数据库管理系统中所没有的。知识获取是农业专家系统开发过程中的瓶颈,其主要任务是完成领域知识的收集与整理.解释器是用来向用户,特别是专用户,解释推理的结果和在推理过程中所发生的一切。 专家系统有四个特点,即:启发性,能运用专家的知识和经验进行推理和判断;透明性,能解决本身的推理过程,能回答用户提出的问题;灵活性,能不断地增长知识,修改原有的知识。综合性,能解答种子、土肥、植保、农经等多专业问题,克服了单个农业专家的专业局限。研发农业专家系统的主要目的是使计算机在农业领域中起农业专家的作用,对那些需要专家知识才能解决的难题提供相关专业权威专家水平的解答。 专家系统在世界农业领域中的应用始于20世纪70年代末,经过20余年发展,应用已遍及作物栽培管理、设施园艺管理、畜禽管理、水产养殖、植物保护、育种以及经济决策等各方面。专家系统在灌溉、施肥、栽培、病虫害的诊断与防治、作物育种、作物产量预测、畜禽饲养管理和水产养殖管理等方面,展示了广阔的应用前景。 一.农业专家系统在作物病虫害综合治理中的应用 根据以往的研究和病虫害综合治理的过程,专家系统的研究主要集中在6个方面: 1.1病虫害诊断 在病虫害诊断中,如果人工开具病虫处方,工作人员必须有牢固的植物保护基础知识和丰富的实践经验,需要查询大量资料,无法及时满足农户的需要。专家系统把这些资料编制成简单的程序,达到迅速确定目标的目的,从而得到最佳防治时期和方案。 1.2预测预报 病虫预测预报需要的基本信息是:病虫害的生物学参数(如发生虫态、分布范围、空间分布状况等)、发生环境状况(如经纬度、作物品种等)和气象条件资料。这些数据的获得需要通过繁琐的计算,人工操作费时费工,易出错。专家系统可根据输人的原始资料自动选择模拟和计算方法来预测或预报目标信息,快速得出预测预报模型,以掌握其防治时期。 1.3管理决策 管理决策型专家系统为病虫害综合管理提供了一种有力的工具。由于影响病虫害发生的各种因素之间的关系复杂,不确定因素很多,同 时在治理中既要保护作物的正常生长,又要使防治措施不危害环境,需要进行全面的考虑。专家系统采用模块化方式解决了这一难题。 1.4专家咨询 专家系统可帮助用户分析和解决具体问题,提供计算机专家咨询服务。系统内容涵盖十分全面,根据用户不同的要求,分别由相应的条件触发相应的动作,实现模拟专家咨询的过程。 1.5方案设计 设计型专家系统就是按照给定的要求,为待确定的问题构造模式。组建病虫害模拟模型的专家系统,也就是将组建模拟模型的一般过程用专家系统的形式表达出来,其目的是为那些缺乏建模经验的测报或研究人员提供方便。 1.6人员培训大多数专家系统能够解释“为什么?”和“怎么样?”之类的问题,也可以很好地充当培训工具。人员培训专家系统有良好的推理机制,它能够根据用户提出的不同问题分别予以解答。2 存在的问题 2.1解决问题的能力不完备由于病虫害管理本身的复杂性、动态性、模糊性导致专家对其经验描述的困难和缺乏各种现代化技术的运用,许多专家系统并不具备完备、详尽、动态的知识库和数据库,只能向用户提供一些基本的或常识性的解释、判断,无法详尽、准确地解决用户提出的问题。 2.2应用与开发脱节我国农业专家系统已受到了一定程度的重视,但至今仍未深人到农村。有些系统要求使用者具有一定的计算机水平,很难在农业基层普及,另一方面与领域知识结合不够,停留于科普性知识介绍,先进性和实用性不够。2.3信息获取困难、存储方式落后我国农业信息网络和数据库的建设严重滞后,缺乏有序管理,使专家系统的知识来源比较单一。信息大多以纸为存储介质,不但精度和数量受限,更新也不方便,影响其时效性。二. 我国农业专家系统存在的问题和对策 2.1 应用中存在的问题和对策 2.1.1 农业专家系统的应用与开发脱节 我国的一些农业专家系统只强调应用,缺乏进行二次开发所需的专家系统开发工具,使用者无法根据当地实际情况创建知识库和模型库,限制了专家系统的进一步应用。有些农业专家系统虽提供了开发工具,但缺少通用的模板和模型,要求使用者具有一定的计算机基础技术,缩小了专家系统的应用范围。因此,农业专家系统应该同时注重开发与应用两个方面。农业专家系统适用对象狭窄。一些农业专家系统追求所谓先进性,要求高档次的硬软件,也要求使用者有一定的计算机技术基础,很难在农业基层普及;一些农业专家系统与领域知识结合不够,停留于科普性知识介绍,其先进性和实用性不高。2.1.2 人工智能技术还不成熟 至今为止,在农业专家系统等人工智能技术中,由专家整理出来的知识大多属于这个领域的浅层知识,形式上也主要是条件规则型知识。因为知识种类、数量可能很多,难于详细检验,待到专家系统具体使用这些知识时,机械死板的计算机程序就有可能推导出一些错误的结论。另外,目前各种专家系统在收集、整理专家知识时并没有把专家是如何学习、获得这些知识的知识整理出来,这样开发的专家系统并不具有真正的学习能力,结果导致系统的表现只能处理人类专家见过的各种情况,不能“随机应变”,人工智能面临严峻的考验.因此,研究和开发面向基础科技人员、基层农技人员和广大农民群众三个层次的农业专家系统是十分必要的。农业专家系统多是静态的系统。农业专家系统要解决的是农业生产中的问题,这些问题大多具有四维特性,这就要求系统的知识库、数据库、模型库必须是动态的,能随着时间的推移不断更新。而我国目前的农业专家系统多是静态的,时效性差,实用性不高,因此,在农业专家系统的建设过程中必须注意其动态性。农业专家系统源于人工智能技术,近年来与数据库技术相结合,并取得成功。但农业生产要求系统要不断有新技术的支持,以适应农业生产的发展,新技术包括“3S”技术、多媒体技术、计算机技术、网络技术等。2.2 发展中存在的问题和对策 2.2.1 知识获取困难、存储方式落后 我国是农业大国,农业信息资源极其丰富,但农业信息网络和数据库的建设严重滞后,缺乏有序管理,使专家系统的知识来源比较单一。另外,我国已完成了农业普查、土地利用现状调查等基础性工作,取得了大量的属性数据图和形数据,这是农业专家系统的基础数据。但这些数据大多以纸为存储介质,不但信息的精度和数量受到限制,信息的更新也不方便,影响其时效性。以软盘、光盘和CCT磁带为存储介质的数据仓库技术,在“GPS”等技术支持下,不但能存储属性数据,还能通过数字化存储图形数据,通过地理编码实现属性数据和图形数据的对应连接。农业专家系统应采用这些存储手段。2.2.2 没有通用的知识表示方法 在我国专家系统的构建过程中,对精确性知识多采用产生式规则方法,但每一种知识表示方法只能适用于表示某种或某些类型的知识,至今还没有通用的知识表示方法。农业领域知识的复杂性,要求多样性的知识表示方法,例如基于面向对象的知识表示、人工神经元网络等。2.2.3 推理策略比较单一 我国农业专家系统的推理策略比较单一,三种推理方式基本上是针对规则型知识的,而实际生产中的许多事实、概念并不能精确描述,不能使用精确推理规则,而需借助于概率论、证据理论、模糊理论等数学方法。2.2.4 开发工具不完善 我国农业专家系统的开发工具在应用国外较成熟的开发工具,如PC、SHELL、EX2PORT等的同时,也自主研制了一些开发工具。但目前国内开发的农业专家系统生成工具大都在处理文字描述的定性知识方面功能较强,而在处理用数学模型描述的定量知识方面很少涉及。多功能、高效的专家系统开发工具壳(Expert System Shells)的研制开发,是信息技术发展的必然趋势。三.发展前景 根据我国农业的现有水平、农业生产的实际状况以及农业专家系统的应用特点,其未来发展趋势应该有以下几个方面。 3.1注重多种技术的综合运用根据我国国情,强调农业专家系统的应用推广,逐步将通信网络技术、“3S”技术、人工神经网络、数据库、信息网络、优化模拟、多媒体等众多高新技术应用到系统的开发、建模等方面,是农作物病虫害类专家系统发展的必然趋势。 3.2实现网络化、数据共享作为信息技术的良好载体—网络技术的迅速发展为信息和专家系统的传播提供了很好的通道。未来社会需要的是网络化的专家系统,能够成功地在网上运行、成功实现数据共享的系统才真正具有强大的生命力和实用性。 3.3普及化现阶段我国直接从事农业生产与田间管理的人员主要是农民。随着社会的发展、微机的普及、软件产品价格的下调、农民综合素质的提高,农民将成为未来专家系统的主要用户之一。 3.4注重市场国际化我国已加人WTO,农业专家系统的建造不应忽视国际市场的需求,开发既适宜我国需要也适宜国际需要的农业专家系统是有必要的。四.结束语 农业专家系统在我国方兴未艾。它是农业决策的重要手段。通过建立甜菜专家系统,可以对传统的育种技术改善和综合栽培技术推广发挥巨大作用。由于它能把定性分析和定量分析、符号处理和数值处理有效地结合起来,因而展示出广阔的发展前景和应用前景。参考文献 [1]张国权.计算机在农业中的应用.北京:中国农业出版社,2007.[2] 赵春江,杨 刚.农业专家系统现状与未来[J].计算机农业应用,1992,(2):1~81 [3] 刘晓燕.回顾与展望————专家系统在我国农业上应用情况概述[J].计算机与农业,1997,(1):1~31 [4]吴信东.专家系统技术.电子工业出版社,1988.[5]熊范伦,等.农业专家系统及开发工具[M].北京:清华大学出版社,1999. [6]王金宝.农业专家系统应用技术展望[J].计算机与农业,2002,(5):3~7. [7]马文杰,等.专家系统在我国农业中的应用进展[J].山地农业生物学报,2005,4.[8]马玉祥,武波.专家系统.成都:电子科技大学出版社,1994. 目录 1.设计任务 1.1 设计题目 1.2设计要求 1.3设计任务 2.方案设计 2.1原理 2.2 具体设计方法 3.系统实施 3.1 系统开发环境 3.2系统主要功能介绍 3.3处理流程图 3.4 核心源程序 3.5系统运行结果 4.开发心得 4.1设计存在的问题 4.2进一步改进提高的设想 4.3经验和体会 5.参考文献 1.设计任务 1.1 设计题目 在一个3*3的方棋盘上放置着1,2,3,4,5,6,7,8八个数码,每个数码占一格,且有一个空格。这些数码可以在棋盘上移动,该问题称八数码难题或者重排九宫问题。 1.2 设计要求 其移动规则是:与空格相邻的数码方格可以移入空格。现在的问题是:对于指定的初始棋局和目标棋局,给出数码的移动序列。 1.3 设计任务 利用人工智能的图搜索技术进行搜索,解决八数码问题来提高在推理中的水平,同时进行新方法的探讨。 2.方案设计 2.1 原理 八数码问题是个典型的状态图搜索问题。搜索方式有两种基本的方式,即树式搜索和线式搜索。搜索策略大体有盲目搜索和启发式搜索两大类。盲目搜索就是无“向导”的搜索,启发式搜索就是有“向导”的搜索。 2.2 具体设计方法 启发式搜索 由于时间和空间资源的限制,穷举法只能解决一些状态空间很小的简单问题,而对于那些大状态空间的问题,穷举法就不能胜任,往往会导致“组合爆炸”。所以引入启发式搜索策略。启发式搜索就是利用启发性信息进行制导的搜索。它有利于快速找到问题的解。由八数码问题的部分状态图可以看出,从初始节点开始,在通向目标节点的路径上,各节点的数码格局同目标节点相比较,其数码不同的位置个数在逐渐减少,最后为零。所以,这个数码不同的位置个数便是标志一个节点到目标节点距离远近的一个启发性信息,利用这个信息就可以指导搜索。即可以利用启发信息来扩展节点的选择,减少搜索范围,提高搜索速度。 启发函数设定。对于八数码问题,可以利用棋局差距作为一个度量。搜索过程中,差距会逐渐减少,最终为零,为零即搜索完成,得到目标棋局。 3.系统实施 3.1 系统开发环境 Windows操作系统、SQL Server 200X 3.2 系统主要功能介绍 该搜索为一个搜索树。为了简化问题,搜索树节点设计如下: struct Chess//棋盘 3.4 核心源程序 #include “stdio.h” #include “stdlib.h” #include “time.h” #include “string.h” #include const int N=3;//3*3棋盘 const int Max_Step=30;//最大搜索深度 enum Direction{None,Up,Down,Left,Right};//方向 struct Chess//棋盘 { int cell[N][N];//数码数组 int Value;//评估值 Direction BelockDirec;//所屏蔽方向 struct Chess * Parent;//父节点 }; //打印棋盘 void PrintChess(struct Chess *TheChess){ printf(“----------n”);for(int i=0;i printf(“t”); for(int j=0;j { printf(“%dt”,TheChess->cell[i][j]); } printf(“n”);} printf(“tttt差距:%dn”,TheChess->Value);} break;case Left: t_j++; if(t_j>=N) AbleMove=false; break;case Right: t_j--; if(t_j<0) AbleMove=false; break;};if(!AbleMove)//不可以移动则返回原节点 { return TheChess;} if(CreateNewChess){ NewChess=new Chess(); for(int x=0;x { for(int y=0;y NewChess->cell[x][y]=TheChess->cell[x][y]; } } else NewChess=TheChess;NewChess->cell[i][j]=NewChess->cell[t_i][t_j];NewChess->cell[t_i][t_j]=0; return NewChess;} //初始化一个初始棋盘 struct Chess * RandomChess(const struct Chess * TheChess) p=NULL;queue do{ p1=(struct Chess *)Queue1.front(); Queue1.pop(); for(int i=1;i<=4;i++)//分别从四个方向推导出新子节点 { Direction Direct=(Direction)i; if(Direct==p1->BelockDirec)//跳过屏蔽方向 continue; p2=MoveChess(p1,Direct,true);//移动数码 if(p2!=p1)//数码是否可以移动 { Appraisal(p2,Target);//对新节点估价 if(p2->Value<=p1->Value)//是否为优越节点 { p2->Parent=p1; switch(Direct)//设置屏蔽方向,防止往回推 { case Up:p2->BelockDirec=Down;break; case Down:p2->BelockDirec=Up;break; case Left:p2->BelockDirec=Right;break; case Right:p2->BelockDirec=Left;break; } Queue1.push(p2);//存储节点到待处理队列 if(p2->Value==0)//为0则,搜索完成{ p=p2; i=5; } } else { //打印 if(T){ /*把路径倒序*/ Chess *p=T; stack while(p->Parent!=NULL) { Stack1.push(p); p=p->Parent; } printf(“搜索结果:n”); while(!Stack1.empty()) { PrintChess(Stack1.top()); Stack1.pop(); } printf(“n完成!”);}else printf(“搜索不到结果.深度为%dn”,Max_Step); scanf(“%d”,T);} 3.5 系统运行结果 4.开发心得 4.1 设计存在的问题 完全能解决简单的八数码问题,但对于复杂的八数码问题还是无能为力。4.2 进一步改进提高的设想 可以改变数码规模(N),来扩展成N*N的棋盘,即扩展为N数码问题的求解过程。 2、内存泄漏。由于采用倒链表的搜索树结 05.参考文献 [1]王汝传.计算机图形学[M].北京:人民邮电出版社,1999:123-130.[2]刘榴娣,刘明奇,党长民.实用数字图像处理[M].北京:北京理工大学出版,2000:12-25..[3]丁兆海.Delphi基础教程[M].北京:电子工业出版社,1999.[4]王小华.Delphi 5程序设计与控件参考[M].北京:电子工业出版社,1999:70-120.[5]赵子江.多媒体技术基础[M].北京:机械工业出版社,2001:118-130.[6]段来盛,郑城荣,曹恒.Delphi实战演练[M].北京:人民邮政出版社,2002:80-95. 读书的好处 1、行万里路,读万卷书。 2、书山有路勤为径,学海无涯苦作舟。 3、读书破万卷,下笔如有神。 4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文 5、少壮不努力,老大徒悲伤。 6、黑发不知勤学早,白首方悔读书迟。——颜真卿 7、宝剑锋从磨砺出,梅花香自苦寒来。 8、读书要三到:心到、眼到、口到 9、玉不琢、不成器,人不学、不知义。 10、一日无书,百事荒废。——陈寿 11、书是人类进步的阶梯。 12、一日不读口生,一日不写手生。 13、我扑在书上,就像饥饿的人扑在面包上。——高尔基 14、书到用时方恨少、事非经过不知难。——陆游 15、读一本好书,就如同和一个高尚的人在交谈——歌德 16、读一切好书,就是和许多高尚的人谈话。——笛卡儿 17、学习永远不晚。——高尔基 18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向 19、学而不思则惘,思而不学则殆。——孔子 20、读书给人以快乐、给人以光彩、给人以才干。——培根第三篇:人工智能与专家系统感想
第四篇:农业专家系统应用实例分析
第五篇:人工智能与专家系统课程设计解读