基于云模型效能评估的Matlab实现
2012-08-15王旭辉
王旭辉,杨 华,陈 远
(重庆通信学院,重庆400035)
对于一些复杂的系统,由于其不确定性即模糊性和随机性,很难准确地对其进行有效的效能评估。因此需要一种评估方法,能够充分考虑到评估过程中出现的模型,同时能够有效而简便地实现定性与定量相互转换[1]。云模型是由李德毅院士提出的一种定性定量互换模型,可将模糊性和随机性结合在一起,充分实现精确数值与定性语言之间的转换,可以有效地实现系统效能评估。而Matlab既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了可靠的数学运算和高级图形绘制工具[2]。
本文描述了单因素条件下基于云模型效能评估的方法、步骤,并通过Matlab语言予以实现。
1 云模型简介
1.1 云的基本概念
云[3]是用自然语言值表示的某个定性概念与定量表示之间的不确定性转换模型,具有直观性和普遍性。它主要反映概念上的不确定性,即模糊性(边界上的亦此亦彼性)和随机性(发生的概率)。云的数字特征用3个参数来描述,即期望值 Ex(Expected Value)、熵 En(Entropy)和超熵He(Hyper Entropy),3个数字特征整体表征一个概念,记做 CG(Ex,En,He)。其中期望值 Ex为概念上的原型值(中心值、标准值),最能代表这个定性概念的数值;熵En为概念不确定程度的度量,熵越大,概念相对越模糊;超熵 He为熵的不确定程度的度量,即熵的熵,反映了云的离散程度。
1.2 云发生器
云发生器CG(Cloud Generator)指被固化了的云模型生成算法,主要有正向云发生器和逆向云发生器两种。
正向云发生器实现定性语言值到定量数值的转换,在已知3个数字特征的情况下用来生成所需数量的云滴,如图1所示。
正向云发生器 CG(Ex,En,He)的算法描述如下:
(1)生成以En为期望值,He2为方差的正态随机数En′;
(2)生成以Ex为期望值,En′2为方差的正态随机数x;
(4)使(x,y)成为论域中的一个云滴;
(5)重复步骤(1)~(4)直至要求数目的云滴产生。
逆向云发生器实现定量数值到其定性语言值的转换,即从给定的云滴样本中求出正向云发生器的3个特征数字,从而实现对样本数据的定性评价。
图1 正向云发生器
由于在大多数的系统效能评估中,通过采样往往只能得到表示某个概念的一组数据值,这种单因素逆向云算法是根据云的统计特性,仅仅利用云滴xi的定量数值来还原出云的3个参数,如图2所示。
逆 向 云 发 生 器 CG-1(Ex,En,He)的 算 法[4]:
图2 逆向云发生器
(2)Ex=X;
可以得到,云滴样本为xi时,得到云的描述为(Ex,En,He)。
2 基于云模型的系统效能评估步骤
基于云模型的系统效能评估方法,就是选取系统中的关键性指标,再将定性指标用正态云表述出来,根据系统指标分层结构,在不确定的情况下较为客观地对系统进行综合效能评估。该方法有3个关键因素:指标集U、权重因子集W和评价集V,其中W和V的元素是隶属云,并不全是精确值。
而评价指标根据需要划分为多级层次结构,每一层都有隶属本层的子指标集、权重因子集和评价集,只有在同一层次间的指标才能进行操作和比较,结果从低层向高层传递,最终实现系统整体效能的评估。大致流程如图3所示。
图3 评估流程
2.1 确定指标集
根据评估需求,先将目标对象分解成多个功能模块,每个功能模块称为一个元素,然后将这些功能模块分为多个分组,每个分组中的元素为该功能模块能力的体现。以同一层次的功能模块作为准则,对下一层元素起支配作用,同时受到上一层元素的支配,这样形成一个指标体系。
指标体系是否合理将直接影响最终的评价结果的可信性,元素选取有很多原则,评价指标的选取必须遵循最简性、科学性、可测性、客观性、完备性以及独立性原则,能够真实、综合、全面地反映系统的性能。同时在构建指标体系时必须适当控制层次数,层次数应该由评估的复杂度和分析的深度决定,但一般不少于3层。
2.2 建立指标的权重因子集
采用专家咨询的方法为各层指标建立权重因子,这些权重因子全部用定性语言表述,如 “重要”、“比较重要”、“不重要”等。再将其转化为正态云来表述,用不同的正态云图表示其不同的重要程度。不失一般性,可以将权重因子集描述为 W={W1,W2,…,Wn}。通常权重因子集的等级不低于3级,不高于9级。
例如,可以参照标度值对指标集中两两指标间的相对重要性进行打分,并得到专家打分矩阵:
其中aij表示第i个指标与第j个指标相比的重要性标度。
计算专家打分矩阵各行元素乘积的凡次方根Wi:
对Wi进行归一化处理:
则可求得 w=(w1,w2,…,wn)T为所求权重向量。具体Matlab代码实现如下:
2.3 构建各指标的评价集
评价集的确定也就是在论域中如何划分定性概念的问题,通常可以先通过用户直接给出相应语言值的云模型,再通过算法得到相应的数字特征值。
指标评价集一般取奇数个云,如3个或5个,评语总是“好,一般,差”之类的模糊概念。例如,在[0,1]之间,可以将论域分为 5个评估等级:“很好”、“好”、“一般”、“差”、“很差”,并分别对应其云模型。存在双边约束[Cmin,Cmax]的评语,可利用下式计算云的数字特征:
其中,k为常数,可根据评语本身的模糊程度来具体调整。对于只有单边约束Cmin或Cmax的评语,可以先确定缺省期望值,再按照式(2)计算云参数,用半升半降云来描述。
2.4 确定各指标的云模型
构建了各指标的评价集之后,再依据专家讨论的结果确定各指标的权重及评价结果,得到下面的指标评价矩阵:
该矩阵中,每行为某一个专家对各指标的评价结果,每列为同一项指标不同的专家评价的结果。使用逆向云发生器相应算法,可以计算得到每项指标云模型的数字特征值。
具体Matlab代码实现如下:
2.5 确定目标层评价集
在得到底层指标云模型的数字特征值之后,再结合该层指标项的各项权重值,就可以得到其上层指标项的评价结果,公式如下:
式(4)具体Matlab代码实现如下:
通过上述步骤从下而上逐步计算,得到最终目标层的结果。通过正向云发生器,生成系统的综合评估云图,得到评估结果。
具体绘制云图的Matlab代码实现如下:
云是用自然语言值表示的某个定性概念与其定量表示之间的不确定性的转换模型,具有直观性和普遍性,因此被广泛应用于人工智能的各个方面。本文就云模型的效能评估过程进行了简要描述,用Matlab代码实现了部分算法,并完成了评估云图的绘制,由此可以得到相应的评估结果。本文中的代码经测试均可正确运行,这对云模型的研究和实现有一定的推广价值和研究意义。
[1]张幸,胡建旺,樊世友.基于云模型的防空 C3I系统效能分析研究[J].现代电子技术,2010,33(21):46-50.
[2]孙祥,徐流美,吴清.Matlab7.0基础教程[M].北京:清华大学出版社,2005.
[3]李德毅.不确定性人工智能[M].北京:国防工业出版社,2005.
[4]刘常昱,冯芒,戴晓军.基于云X信息的逆向云新算法[J].系统仿真学报,2004,16(11):2417-2420.