用VBA在EXCEL中实现AHP的判断矩阵计算

2022-03-22 11:16:16 | 浏览次数:

[摘要]层次分析法(Analytic Hierarchy Process,简称AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty教授于上世纪70 年代初期提出的一种简便、灵活而又实用的多准则决策方法。运用层次分析法建模,大体上可按下面四个步骤进行:1、建立递阶层次结构模型;2、构造出各层次中的所有判断矩阵;3、层次单排序及一致性检验;4、层次总排序及一致性检验。在实践运用中,由于要对判断矩阵进行求解最大特征值对应的特征向量,同时对向量进行一致性检验,方法的第2-4步骤计算起来较为繁琐和困难,尤其是遇到一致性检验不通过地情况,需反复计算特征值、特征向量及一致性检验,使得AHP方法运用较为困难。本文利用VBA在EXCEL中编程实现AHP方法的复杂计算,降低AHP方法的使用难度。

[关键词]VBA;层次分析法;EXCEL

一、实现环境

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,主要可以用来扩展Windows应用程序的功能,尤其是对Office系列软件功能的扩展,是一种应用程序视觉化地脚本程序。VBA可以规范用户的操作,控制用户的操作行为,多个手工操作的通过代码迅速实现。本文的VBA开发环境为Microsoft office 2007内置VB6.5版本,使用该版本的EXCEL通用性较好,交互性较强。

二、实现原理及运算步骤

本文充分利用EXCEL的函数计算、单元格快速引用,和VBA的流程控制功能,实现AHP方法的判断矩阵特征值及向量的求解,并对其进行一致性检验,对检验不通过地判断矩阵进行提示修正,达到了快速应用AHP方法的目的。

VBA运算步骤首先构造判断矩阵,其次用和积法计算判断矩阵的特征向量,即可得到层次单排序值,最后计算最大特征值及一致性指标CI,将相关结果存储在EXCEL中,并对一致性检验不合格的值进行标示。

程序的核心是计算判断矩阵特征值、向量及一致性检验值,从数学方面说本文利用和积法计算特征向量及值的近似值;从问题求解方面说本文是利用VBA在EXCEL中求解未知维数矩阵的特征值及特征向量,并进行一致性检验。其算法为:

Step1:获取判断矩阵的维数n;

Step2:选择判断矩阵每列最后一个元素的下一个单元格存储该列的和,形成列和行;

Step3:计算该矩阵的归一化标准矩阵;

Step4:计算归一化矩阵的行和;

Step5:计算行和列的每个元素与矩阵维度的比值,得到近似最大特征向量;

Step6:计算原矩阵与特征向量的积得到变换矩阵1;

Step7:用变换矩阵1的每个元素除以特征矩阵每个元素与矩阵维数的积,得到变换矩阵2;

Step8:计算变换矩阵2的列和,得到近似最大特征值;

Step9:计算进行一致性检验。

程序运行后进入层次输入和各比较元素输入界面,此处以购买摩托车,考察价格、油耗量大小、舒适程度、外观四个因素为例,如图1所示。

输入完毕后点击下一步即可得到特征值、向量及一致性检验值,加粗部分依次为特征向量、特征值、一致性检验值,在判断矩阵外的数值为计算过程值,可作为参考,以便核对,如图2。

三、结语

层次分析法在实际运用的困难之处在于对各层次比较元素数值化之后的矩阵计算出的特征向量是否满足一致性检验值。特征向量的精确计算在实际中往往需要求解高阶方程,计算量非常大,基于层次分析法的特点利用和积法计算特征向量在数学上方法简单,但计算量任然很大,手工计算非常复杂且容易出错,本文利用VBA在EXCEL中进行编程固化了计算过程,使使用者可以方便快捷的得到特征向量及一致性检验值,极大的降低了层次分析法的应用门槛,可以使层次分析法在审计、决策等领域得到推广。

参考文献

[1]张峋.Excel VBA入门与典型实例[M].2013.

[2]百度文库.层次分析法[M].2014.

作者简介

华洲(1983-),男,新疆伊犁人,职称:工程师,学历:硕士,主要研究方向:金融信息化。

推荐访问: 矩阵 判断 计算 VBA EXCEL