建立模糊专家系统实验报告
- 格式:doc
- 大小:214.00 KB
- 文档页数:6
建立模糊专家系统
为了说明如何设计模糊专家系统,下面用一个备件服务中心的例子。
备件服务中心,保存备件并修复损坏的备件。客户拿来一个损坏的零件备件,换走一个相同型号的零件备件,损坏的零件备件被修好后放置在架子上作为零件备件。如果架子上有所需的备件,那么客户从架子上拿走备件并离开服务中心,若没有,客户就须等待,直到拿到需要的备件为止。服务中心的经理应该决定在客户可以接受范围内维持平均延迟时间所需要的配件的数目。所以我们的目标是向零件备件服务中心的经理建议使客户满意的决策方针。
步骤一:指定问题并定义语言变量
在上述问题中,可以确定四个主要的语言变量:平均等待时间(平均延迟)m、服务中心的修理利用因子q、服务员人数s以及初始零件备件数量n。
对于客户平均延迟m,这里仅考虑了三个语言值:V ery Short、Short、Medium,因为其他取值,例如Long和V ery Long是不实际的。服务中心的经理决策不可能容忍客户的等待的时间超过Medium。
接下来确定语言变量的范围。下表是得到的结果,其中m、s、n已标准化,即除以相应的最大量级基本数值,得到的范围[0,1]。
语言变量及范围
步骤二:确定模糊集
模糊集可以有不同的形状。通常三角形或四边形就足以表达专家的知识了,同时也能极大地简化计算的过程。
如下图,显示了问题中用到的语言变量的模糊集。
步骤三:抽取并构造模糊规则
下面要获得模糊规则。要完成这个任务,就需要向专家咨询如何使用前面定义过的模糊语言变量来解决问题。
本例中,使用研究论文( Turksen et al. ,1992)中提供的规则。如下图:
步骤四:对模糊集、模糊规则和过程编码
定义模糊集和模糊规则后,就要对它们编码,建立实际的专家系统。
代码如下:
a=readfis('centre_2.fis');
figure('name','Block diagram of the fuzzy system');
plotfis(a);
pause
figure('name','Mean delay (normalised)');
plotmf(a,'input',1);
pause
figure('name','Number of server (normalised)'); plotmf(a,'input',2); pause
figure('name','Utillisation factor (normalised)'); plotmf(a,'input',3); pause
figure('name','Number of spares(normalised)'); plotmf(a,'output',1); pause
ruleedit(a); pause
figure('name','Three-dimensional surface (a)'); gensurf(a,[1 2],1); view([49 36]); pause
ruleview(a); pause
n=round((evalfis([0.7 0.8 0.6],a))*100) pause
n=round((evalfis([0.35 0.8 0.6],a))*100) disp('End of fuzzy_centre_2.m')
运行结果:
System centre 2: 3 inputs, 1 outputs, 27 rules
f
mean d elay
D e g r e e o f m e m b e r s h i p
number o f s erve
D e g r e e o f m e m b e r s h i p
utilisation f actor
D e g r e e o f m e m b e r s h i p
number o f s pares
D e g r e e o f m e m b e r s h i p
number o f s erve
mean d elay
n u m b e r o f s p a r e
s
utilisation f actor
mean d elay
n u m b e r o f s p a r e s
n =
20
n =
35
End of fuzzy_centre_2.m
实验心得
通过实验,我对模糊专家系统有了进一步的了解,如何建立模糊专家系统的也越发清晰。定义语言变量、确定模糊集、构造模糊规则、编码、调试。
同时在实验中,我也了解了一些MATLAB的环境,命令模式、编程环境等。也掌握了实验中编程需要的一些函数。
总之,通过实验,我收获颇丰。