基于Matlab的层次分析法与运用(2)
2013-10-06 01:12
导读:其中,mp为该层内的指标数,p为指标的层数,均在程序开始时由用户指定;vect初始被赋值为空矩阵,经循环后生成第一指标层的判断向量;m为vect向量的最大值,m
其中,mp为该层内的指标数,p为指标的层数,均在程序开始时由用户指定;vect初始被赋值为空矩阵,经循环后生成第一指标层的判断向量;m为vect向量的最大值,maxpl记录该最大值所处的位置。
由于本程序结构上的限制,本程序尚且只能在同一层次各个指标均对所有下一层次指标产生影响时处理层次分析法的问题,故本文举例亦遵照该假定进行。
3 应用举例
某市一十字路口常常因行人过街拥挤,存在安全隐患,市政部门欲对该路口进行改造,现提出了3套改造方案:
方案1(S1):建地下通道;
方案2(S2):建人行天桥;
方案3(S3):拆除周围的旧建筑,拓宽街面。
市政部门认为,该改造工程需考虑如下几个方面的指标:
指标1(P1):通车能力的大小;
指标2(P2):交通安全系数的高低;
指标3(P3):建筑费用的高低;
指标4(P4):群众出行方便度的大小;
指标5(P5):市容整洁程度的高低。
现在需要就以上问题进行决策,需决定在三套方案(S1~S3)中选用最优方案。其主要步骤及操作如下所示。
第1步:根据题目建立层次结构模型
由于题目要求对3套方案均需考虑5个指标,故可画出如图2所示的指标体系结构图。
第2步:形成判断矩阵
形成判断矩阵,需要对各指标相互的重要性进行标度,矩阵的上三角部分与下三角部分以对角线为分界,对称呈倒数排列,对角线上元素均为1,因为各指标与自身的重要性为“同等重要”,不同的指标A1对A2的重要性与A2对A1的重要性互为倒数。根据经验对图2中各指标相互的重要性进行标度后,可得如下几个矩阵:
第3步:将以上各矩阵输入程序,进行计算
在Matlab的命令窗口依次按提示输入表 3~表 8所示矩阵后,程序输出结果经整理如下表:
(科教范文网 fw.nseac.com编辑发布)
接着,程序对各矩阵计算所得的最大特征值对应的特征向量按下式进行标准化:
再给出各指标的特征向量组成的矩阵:
进而得出三套方案相对于目标的权重向量为:
程序经比较,发现方案1权重系数最大,进而得出最终结论:方案1(地下通道)占优。
4 总结及分析
本程序在运行开始时,会要求用户输入指标的层数和第一层的指标数,在每一个层次的矩阵元素输入完成后,程序会要求用户输入下一个层次中的指标数,因此本程序可进行无限个层次的迭代运算。当然,程序只能替代层次分析法的运算部分,由于对判断矩阵赋值具有主观性,常常需要通过其他的方法进行确定,如Delphi方法等。在把设定好的判断矩阵输入程序进行运算时,程序可以保证矩阵运算的精度和效率,在对代码进行优化和扩展后,还可以将过程与结果数据导出到Excel和Eviews,以方便进行后续的数据整理和计量分析。
另外,如前所述,本程序存在一个局限,即需要在满足同一层次内各指标对所有下一层次指标均产生影响的假定时才能正确运行。笔者将在今后对程序进行进一步的完善,提升其功能和易用性,使其能满足不同类型、不同条件下的层次分析法分析,在日常生活的计算机辅助决策领域发挥更大的作用。
参考文献:
[1]凌泽华.层次分析法在企业核心员工界定中的运用[J].经营管理者, 2010,(2).
[2]刘文琦,熊惠珍.层次分析法在财务指标分析中的应用[J].审计与理财,2010,(1).
[3]王翼,王歆明.MATLAB基础及在经济学与管理科学中的应用[M].北京:机械工业出版社,2009,7.