基于Matlab的层次分析法及其运用浅析

合集下载

基于层次分析法对部门人员选拨的评价与分析

基于层次分析法对部门人员选拨的评价与分析

基于层次分析法对部门人员选拨的评价与分析摘要近年,随着人事改革的深入,如何在人员选拨中达到公正公平,并能切实选拨出企业所需要的人才已经显得日益重要。

问题一:对于部门如何确定教学管理科和试验件学科科室人选最优化人员分配问题,我们首先采用简单模型Ⅰ(只考虑主要因素,忽略其他次要因素,且主要因素所占比例相同),并采用线性加权和法,求出近似最佳方案。

在此基础上,使用经过优化的模型Ⅱ(在第一步的基础上,考虑次要因素,且次要因素所占权重相同)。

最后,综合所有因素采用模型Ⅲ(层次分析法),对近似最佳方案逐步求精,求出最佳人员选拨方案。

对以上三种数学模型,我们使用MATLAB 对其进行求解。

经过三种方案的比较,我们最终选拨结果如下:教学管理科(8人)—A G I J L R Y D ,服务水平指标(即线性加权和)为70.8429;实验教学科(8人)—O K W M V C B E ,服务水平指标(即线性加权和)为68.0296。

问题二:一、 问题的重述学校教学管理科和实验教学科进行人员选拔,负责人从学科成绩、智力水平、动手能力、写作能力、外语水平、协作能力、其他特长等方面进行选拨,并从25名候选者选出16人,各科室8人,试用一个月后,将淘汰16人中的8人(即每科室淘汰4人)。

问题1 确定拟录的16人名单;确定最佳的教学管理科和实验教学科科室人选,使得该科室整体管理、服务水平最高,给出每科室的服务水平指标。

用数值试验说明你的上述结论。

问题 2 根据试用的一个月内,向学生、教师发放问卷以调查服务质量、同科室人员相互评价等措施,淘汰8人,试给出淘汰的人员名单并说明理由,根据暴露的弱点,并给主管部门响应的建议。

二、问题的假设及分析基本假设1:分数能够客观反映应聘者的能力,且不考虑主管部门的主观因素基本假设2:忽略同科室人员相互磨合程度对科室整体服务水平的影响基本假设3:服务水平指标由科室人员的线性加权和进行量化基本假设4:针对教学管理科其主要因素为学科成绩和写作能力,其余为次要因素;针对实验教学科其主要因素为动手能力和智力水平,其余为次要因素问题一模型Ⅰ假设及分析:只考虑主要因素,即针对教学管理科,学科成绩及协作能力所占权重各为0.5,其余为0;针对实验教学科,智力水平及动手能力所占权重各为0.5,其余为0。

层次分析

层次分析

干部选拔模型摘要如今干部选拔问题已经引起了政府和人民的热切关注,怎样才能选择好的干部已经成为当今社会的焦点问题。

每一位干部都应具有干部应有的良好素质,如:健康状况、业务知识、写作水平、口才、政策水平和工作作风等。

许多单位的选拔标准就用这些属性来衡量。

使用层次分析法对甲、乙、丙三人进行综合评价,并选出最合适的人。

使用MATLAB对程序进行运行以便观察结果。

关键字:层次分析法、MATLAB。

一、问题重述某单位希望从三名同志中选择一名作为干部,选拔的标准用6个属性来衡量:健康状况、业务知识、写作水平、口才、政策水平和工作作风等。

组织部门根据选拔的标准对甲、乙、丙每人进行打分,最终从3人中选择最合适的人。

通过建立数学模型运用层次分析法对闻听进行分析。

二、模型假设1、假设选拔甲、乙、丙时,不考虑其他随机因素,对三人按照选拔标准进行客观的打分。

2、假设三人在选拔时都正常发挥,不考虑其他额外因素,且都不受外界的影响,进行公平的竞争。

3、假设组织部门严格按照部门的流程进行选拔,也不考虑外界因素和影响。

三、符号说明p: 选拔干部的标准的第k个属性;kB: 判断矩阵;: 判断矩阵的特征根;W: 判断矩阵的权向量;CI: 一致性指标;RI:随机一致性指标;CR:一致性比率(用于确定判断矩阵的不一致性的容许范围);四、问题分析对于干部选拔的问题,就是综合分析的最优化问题,也是一个多目标的决策问题,使用层次分析法对甲、乙、丙按照选拔标准进行综合分析,并使用MATLAB 对分析的程序进行运行,观察和分析结果,最终有组织部门根据分析结果从三人中选择最合适的人。

五、建立模型使用层次分析法,先建立层次结构模型,模型分为3层:第一层,为解决问题目的的目标层;第二层,为实现总目标而采取的各种措施和方案的准则层;第三层,用于解决问题的各种措施和方案。

层次结构模型如下用123456,,,,,p p p p p p 分别表示:健康状况、业务水平、写作水平、口才、政策水平、工作作风。

matlab计算AHP层次分析法

matlab计算AHP层次分析法

matlab计算AHP层次分析法第一篇:matlab计算AHP层次分析法用matlab解决层次分析法AHP1、求矩阵最大特征值及特征向量用matlab求:输入:A=[1 1/2 2 1/4;2 1 1 1/3;1/2 1 1 1/3;4 3 3 1][x,y]=eig(A)得出:特征向量x=[0.2688 0.3334 0.2373 0.8720]最大特征值λmax=4.19642、一致性检验CI=(λmax-n)/(n-1)=(4.1964-4)/(4-1)=0.0655 CR=CI/RI=0.0655/0.9=0.0727(注:维数为4时,RI=0.9)CR=0.0727<0.1,矩阵一致性通过检验3、对最大特征值进行归一化处理,即可得到各指标权重(归一化:分项/分项之和)W=[0.157 0.195 0.139 0.510]第二篇:AHP层次分析法层次分析法层次分析法(The analytic hierarchy process,简称AHP),也称层级分析法什么是层次分析法层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。

它是一种定性和定量相结合的、系统化、层次化的分析方法。

由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。

它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。

层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。

不妨用假期旅游为例:假如有3个旅游胜地A、B、C供你选择,你会根据诸如景色、费用和居住、饮食、旅途条件等一些准则去反复比较这3个候选地点.首先,你会确定这些准则在你的心目中各占多大比重,如果你经济宽绰、醉心旅游,自然分别看重景色条件,而平素俭朴或手头拮据的人则会优先考虑费用,中老年旅游者还会对居住、饮食等条件寄以较大关注。

使用Matlab程序实现层次分析法(AHP)的简捷算法

使用Matlab程序实现层次分析法(AHP)的简捷算法

使用Matlab程序实现层次分析法(AHP)的简捷算法作者:于晶来源:《科技风》2016年第16期摘要:层次分析法简便易懂,可操作性和实用性强,但是构造判断矩阵往往不容易,计算判断矩阵的特征值特别繁琐且易出错,得到的一致性检验不易调整,这些都给使用层次分析法带来困难,以往使用办公软件电子表格(Excel)的方法计算单层次排序和总层次排序,这种方法使得计算和一致性检验变得容易,文本使用Matlab程序使得计算变得更容易,也使得层次分析法在多个领域得到推广和应用。

关键词:层次分析法;Excel;matlab1 层次分析法(AHP法)的原理和解决思路层次分析法是对定性问题进行定量分析的一种简便、灵活而又实用的多准则决策方法。

它的原理是模拟人的决策过程,具有思路清晰、方法简便、适用面广、系统性强等特点。

是解决多目标、多准则、多层次复杂问题决策或者大型工程风险分析的有力工具。

层次分析法解决问题的思路就是用下一次因素的相对排序求得上一次因素的相对排序。

按照因素之间的相互影响和隶属关系将各层次因素聚类组合,形成一个递进有序的层次结构模型。

2 层次分析法的应用难点2.1合适的判断矩阵构造不易模型确定后,按照模型层次结构和模型的各因素的相对重要性,综合专家群体咨询意见,采用标度法[ 1 ],从数字1/9一9中选取恰当值,构造各层的判断矩阵,并使之尽量符合一致性检验,这一步成为问题的关键。

但实际上系统越复杂,判定矩阵的阶数就会越高,计算就会越困难。

2.2计算量大,步骤繁琐层次分析法首先要求的就是判断矩阵的最大特征值?姿max,及其正规化的特征向量w,向量w的分量wi是相应因素的单层次权值,这部分计算理论上基于线性代数知识,不用计算机也可以将其计算出来。

但实际上,当矩阵的阶数高于4阶时,人工计算就变得相当困难且易出错,如使用计算机计算,就容易得多,常用的方法有Basic语言,电子表格Excel等方法。

但计算量都有待改进。

基于Matlab的层次分析法(提供代码)

基于Matlab的层次分析法(提供代码)

基于Matlab的层次分析法(提供代码)层次分析法是一种常用的决策分析方法,可以用来解决复杂决策问题。

在Matlab中,我们可以使用ahp函数来实现层次分析法,以下是具体实现方法和代码示例。

1. 构建层次结构模型在进行层次分析法之前,首先需要构建层次结构模型。

层次结构模型是由多个因素构成的层次结构,每个因素都对应有多个子因素或者指标,最终目标会在最底层的因素或指标进行判断。

在Matlab中,我们可以使用ahp函数中的输入参数来构建层次结构模型。

2. 对各因素进行比较接着我们需要对各因素进行比较,即两两之间构建比较矩阵。

比较矩阵的大小取值应该为1,3,5,7,9这几个数,分别代表相当于、稍微重要、中等重要、非常重要和绝对重要。

在Matlab中,我们可以使用ahp函数中的输入参数来进行比较矩阵的构建。

3. 计算权重计算权重即为计算每个因素在最终目标中所占的权重大小。

我们可以根据比较矩阵来计算每个因素的权值,这可以通过Matlab的ahp函数中的输出参数进行得到。

以下是一个具体的代码示例:% 定义层次结构模型hierarchy = {'目标' {'因素1' '因素2' '因素3'}};% 构建比较矩阵% 比较矩阵大小代表相当于、稍微重要、中等重要、非常重要和绝对重要% 1代表相等,3代表比较略微重要等等,9代表比较绝对重要cmpMat{1} = [1 3 5;1/3 1 2;1/5 1/2 1];cmpMat{2} = [1 1/5 1/3;5 1 3;3 1/3 1];cmpMat{3} = [1 1/3 2;3 1 4;1/2 1/4 1];% 计算权重,得到结果存储在results变量中 results = ahp(hierarchy, cmpMat);% 层次分析法计算结果的可视化disp('计算结果:');disp(results);。

层次分析法及matlab程序

层次分析法及matlab程序

层次分析法及Matlab程序一、层次分析法简介层次分析法(Analytic Hierarchy Process,简称AHP)是一种用于决策分析的工具,由美国数学家托马斯·L·萨蒂(Thomas L. Saaty)在1970年代创立。

AHP通过将决策问题划分为多个层次和多个因素,将主要因素和次要因素划分归纳,以定量化的方法分析各因素间优先级的关系,从而对决策方案进行综合评价。

AHP的基本原理是通过构造判断矩阵、计算判断矩阵的特征向量、确定权重,最终得到决策方案的优先级,从而找到最终的最优决策方案。

其主要优点是可定量化、简单易行,适用于大部分决策问题。

二、层次分析法的步骤AHP的具体步骤如下:1.确定决策目标;2.确定影响决策的因素,并将它们分成若干类别,即形成层次结构;3.为每个因素构建判断矩阵,评估每个因素的重要程度(用1~9的数字表示);4.将各判断矩阵进行一致性检验,并计算其权重;5.对计算得到的权重进行优先级排序,选出最优决策方案。

三、Matlab程序实现AHP计算在Matlab中,可以通过编写程序实现AHP的计算。

以下是一份简单的Matlab 程序,用于计算AHP的权重:% 输入判断矩阵A = [1 4 5;1/4 1 2;1/5 1/2 1];% 计算特征向量[V, D] = eig(A);[m, idx] = max(max(D));w = V(:,idx)';w = w/sum(w);% 一致性检验RI = [0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45 1.49];CR = (max(D) - 3)/2/RI(length(A));CI = sum(CR)/length(A);if CI < 0.1disp('一致性较好,权重为:');disp(w);elsedisp('一致性差,需重新评估判断矩阵!');end该程序用于计算一个3x3的判断矩阵的权重,并输出一致性检验的结果。

基于MATLAB的系统分析

基于MATLAB的系统分析

图3-66 二阶系统的单位阶跃响应曲线
基于MATLAB的系统分析
1.2 基于MATLAB的根轨迹分析
使用 rlocus 命令可以得到连续单输入单输出系统的根轨迹图,此命令有两种基本形式: rlocus(num,den) 或 rlocus(num,den,k) 用 MATLAB 绘制根轨迹图时,具有 x,y 坐标轴自动定标功能。如果希望自行设置显示 图形的坐标范围,可以用 axis 命令定义绘制图形的轴线区域。例如, axis([-2.5,1 -3,3]); 表示 x 轴的显示范围是 2.5~1,y 轴的显示范围是 3~3 。
其中,z 为系统的零点;p 为系统的极点;k 为增益;num 为分子多项式降幂排列的系数向
量;den 为分母多项式降幂排列的系数向量。
基于MATLAB的系统分析
1.1 基于MATLAB的时域分析
2. 用MATLAB求取连续系统的输出响应
MATLAB提供了多种求取连续系统输出响应的函数,它们在MATLAB中的调用格 式分别为
1.1 基于MATLAB的时域分析
2. 用MATLAB求取连续系统的输出响应
【例 3-13】
已知典型二阶系统的传递函数为
G(s)
s2
n2 2n s
n2
其中 n 6 ,试绘制系统在 0.1,0.3,0.5,0.7,1.0 时的单位阶跃响应曲线。
【解】 输入以下MATLAB程序,运行结果如图3-66所示 wn=6; num=[wn^2] t=[0:0.1:10]; zeta1=0.1;den1=[1,2*zeta1*wn,wn^2]; zeta2=0.3;den2=[1,2*zeta2*wn,wn^2];
图3-68 连续系统的伯德图
基于MATLAB的系统分析

Matlab求解层次分析法程序代码【求解步骤+代码】

Matlab求解层次分析法程序代码【求解步骤+代码】

层次分析法1)建立层次结构模型:(2)构造判断矩阵判断矩阵()ij A a =应为正互反矩阵,而且ij a 的判断如下(1~9尺度法):(3)单层排序及一致性检验1、单层排序求解判断矩阵A 的最大特征值max λ,再由最大特征值求出对应的特征向量ω()max A ωλω=,并将ω标准化,即为同一层相对于上一层某一因素的权重,根据此权重的大小,便可确定该层因素的排序。

2、一致性检验取一致性指标max 1nCI n λ-=-,(n 为A 的阶数)令CR RI=,若0.1CR <,则认为A 具有一致性。

否则,需要对A 进行调整,直到具有满意的一致性为止。

(4)层次总排序及一致性检验假定准则层12,,,n C C C 排序完成,其权重分别为12,,,n a a a ,方案层P 包含m 个方案:12,,,m P P P 。

其相对于上一层的()1,2,,j C j n =对方案层P 中的m 个方案进行单层排序,其排序权重记为12,,,j j mj b b b ()1,2,,j n =,则方案层P 中第i 个方案Pi 的总排序权重为1nj ijj a b=∑,见下表:从而确定层的排序。

例:纯文本文件txt3.txt 中的数据格式如下:1 1 1 4 1 1/2 1 1 2 4 1 1/2 1 1/2 1 53 1/2 1/4 1/4 1/5 1 1/3 1/3 1 1 1/3 3 1 12 2 23 3 11 1/4 1/24 1 32 1/3 11 1/4 1/54 1 1/25 2 11 3 1/31/3 1 1/73 7 11 1/3 53 1 71/5 1/7 11 1 71 1 71/7 1/7 11 7 91/7 1 11/9 1 1matlab程序:>> fid=fopen('txt3.txt','r');n1=6;n2=3;a=[];for i=1:n1tmp=str2num(fgetl(fid));a=[a;tmp]; %读准则层判断矩阵endfor i=1:n1str1=char(['b',int2str(i),'=[];']);str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); eval(str1);for j=1:n2tmp=str2num(fgetl(fid));eval(str2); %读方案层的判断矩阵endendri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标[x,y]=eig(a);lamda=max(diag(y));num=find(diag(y)==lamda);w0=x(:,num)/sum(x(:,num));cr0=(lamda-n1)/(n1-1)/ri(n1)for i=1:n1[x,y]=eig(eval(char(['b',int2str(i)])));lamda=max(diag(y));num=find(diag(y)==lamda);w1(:,i)=x(:,num)/sum(x(:,num));cr1(i)=(lamda-n2)/(n2-1)/ri(n2);endcr1, ts=w1*w0, cr=cr1*w0层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法实例与步骤结合一个具体例子,说明层次分析法的基本步骤和要点。

基于MATLABAHP(层次分析法)

基于MATLABAHP(层次分析法)

Saaty九级标度法及其含义 定义(比较因素i与j)
因素i与j同样重要
3
因素i与j稍微重要
5
因素i与j较强重要
7
因素i与j强烈重要
9
因素i与j绝对重要
2, 4, 6, 8 上述两相邻判断的中间值
1 ~ 9的倒数 若因素j与因素i比较,得到的判断值为 aji=1/aij ,aii=1
形成判断矩阵
指标间重要程度判断矩阵(表一) 目标 P1 P2 P3 P4 P5
基于MATLAB的AHP(层次分析法)的实现
案例:整治路口交通秩序方案的评估决策
AHP(层次分析法)介绍及步骤
层次分析法是一种定性与定量分析相结合的多因素决 策分析方法。这种方法将决策者的经验判断给于数量 化,在目标因素结构复杂且缺乏必要数据的情况下使 用更为方便,因而在实践中得到广泛应用。
步骤: 1、构造层次结构模型 2、建立判断矩阵 3、检验判断矩阵的一致性 4、计算权重,选择决策
各方案对因素一的权向量为 WB1 (0.082, 0.236, 0.682 )
各方案对因素二的权向量为 WB2 (0.595, 0.276, 0.128) 各方案对因素三的权向量为 WB3 (0.595, 0.276, 0.128) 各方案对因素四的权向量为 WB4 (0.595, 0.276, 0.128) 各方案对因素五的权向量为 WB5 (0.595, 0.276, 0.128)
通过计算,检验成对比较矩阵的一致性,必要时对成对比 较矩阵进行修改,以达到可以接受的一致性;
在符合一致性检验的前提下,计算与成对比较矩阵 最大 特征值相对应的特征向量,确定每一层次的各因素对上 一 层次的同一个因素的权重;
计算各方案对于决策目标的总排序权重并决策。

层次分析法权重计算方法分析及其应用研究

层次分析法权重计算方法分析及其应用研究

层次分析法权重计算方法分析及其应用研究一、本文概述层次分析法(Analytic Hierarchy Process,简称AHP)是一种定性与定量分析相结合的多准则决策方法,由美国运筹学家T.L.Saaty教授于20世纪70年代初期提出。

该方法将复杂问题分解为若干层次和若干因素,在各因素之间进行简单的比较和计算,得出不同方案的权重,为决策者提供科学、量化的决策依据。

本文将对层次分析法的权重计算方法进行深入分析,探讨其在实际应用中的优势与局限,并通过案例研究展示其在不同领域中的应用效果。

具体而言,本文将首先介绍层次分析法的基本原理和步骤,然后重点阐述权重计算的方法与过程,接着分析该方法在实际应用中需要注意的问题和可能遇到的挑战,最后通过实例展示层次分析法在不同领域中的成功应用,以期为读者提供全面、深入的层次分析法理论与实践指导。

二、层次分析法权重计算的基本理论层次分析法(Analytic Hierarchy Process,简称AHP)是一种定性与定量相结合的决策分析方法,由美国运筹学家T.L.Saaty于20世纪70年代初提出。

该方法通过将复杂问题分解为若干层次和若干因素,在各因素之间进行简单的比较和计算,得出不同方案的权重,从而为决策者提供科学、合理的决策依据。

层次分析法的核心在于建立层次结构模型和构造判断矩阵,通过计算判断矩阵的最大特征值及其对应的特征向量,得出各因素的相对权重。

在层次分析法中,权重计算是至关重要的一步。

权重的确定直接影响到决策结果的准确性和科学性。

因此,如何合理、准确地计算权重是层次分析法研究的核心问题之一。

权重计算的基本步骤包括:根据问题的实际情况,建立层次结构模型,将问题分解为不同的层次和因素;构造判断矩阵,通过对各因素之间的相对重要性进行两两比较,形成判断矩阵;然后,计算判断矩阵的最大特征值及其对应的特征向量,得出各因素的相对权重;对计算得到的权重进行一致性检验,确保权重的合理性和准确性。

层次分析法报告

层次分析法报告
实验内容、操作步骤: 首先理解层次分析法的原理、熟悉其步骤. 然后对 matlab 软件进行学习,掌握基本的 matlab 程序语言的含义并应用。 最后利用 matlab 程序对老师给出的层次分析法案例进行分析。 在进行层次分析时,首先根据各层次的关系构造判断矩阵。然后利用[x,y]
=eig()函数其判断矩阵的特征值,利用 lamda=max(diag(y)) 求矩阵的最 大特征根,并进行一致性检验。在第一个案例当中,判断矩阵 B1、B2、B3、 C1、C2、C3、C4、C 5、C6 均为 2 维方阵,绝对符合一致性检验,所以在程序中 为节省空间,不对其进行一致性检验。最后求出方案层的总权重并输出。
if CR<0.10
disp(’C 矩阵的一致性可以接受!’);
1/3 2 1 1 3 3 5 3 5 5 5 2 4 1/2 1/3 1 4 1/2 1 6 3 3 1 1/3 1/4 1/3 1/4 1 2 1/2 2 2 1/2
1/3 1/2 1/3 1/5 2 1 1 2 1 3 1
1/2 1 1/3 1/5 1 2 1/2 1 2 2 1/2 1/2 1/4 1/6 1/5 1/6 1/2 1 1/2 1 1/2 2 1/2 1/5 1/4 1/5 1/3 1/2 1/3 1/2 2 1 1 1/2 1/5 1/4 1/5 1/3 2 1 2 1/2 1 1 ]; 准则层与方案层: A1=[ 1 5 1/3;1/5 1 1/7;3 7 1 ];A2=[1 1/3 3;3 1 5; 1/3 1/5 1 ]; A3=[1 1/3 3;3 1 5; 1/3 1/5 1 ];A4=[1 1/3 3;3 1 5; 1/3 1/5 1 ]; A5= [1 1/2 3;2 1 5; 1/3 1/5 1];A6= [1 1/3 3;3 1 5;1/3 1/5 1]; A7=[1 1/3 3;3 1 5;1/3 1/5 1]; A8=[1 1/3 3;3 1 5;1/3 1/5 1]; A9=[1 1/2 1/3;2 1 1/2;3 2 1]; A10=[1 2 1/3;1/2 1 1/5;3 5 1]; A11=[1 1/3 3;3 1 5;1/3 1/5 1]; 实现层次分析法的 MATLAB 程序如下: C=[1 4 1/3 1/3 1/2 1 3 2 2 2 2 ; 1/4 1 1/2 1/2 1/4 3 2 1 4 5 5 ;

MATLAB层次分析法

MATLAB层次分析法

C11
C1
0
桥梁 D1
隧道 D2
渡船 D3
(1)过河效益层次结构
例3 横渡江 河、海峡方 案的抉择
经济代价 B1
过河的代价 A
社会代价 B2
环境代价 B3
投 操 冲冲 交 居 汽 对 对
入 作 击击 通 民 车 水 生
资 维 渡生 拥 搬 排 的 态
金 护 船活 挤 迁 放 污 的
C1 C2 业 方 C5 C6 物 染 破






对外 贸易
位 置
供选择的岗位
例3 横渡江 河、海峡方 案的抉择
经济效益 B1
过河的效益 A
社会效益 B2
节 收岸 当 建安 交 自
省 入间 地 筑全 往 豪
时 C2 商 商 就 可 沟 感

业 业 业 靠 通 C8
C1
C3 C4 C5 C6 C7
环境效益 B3
舒进 美
适出 化
C9
方 便
Ci : C j aij
A
(aij )nn , aij
0,
a ji
1 aij
选 择
1 1/ 2 4 3 3
2
1
7
5
5
A~成对比较阵
旅 A 1/ 4 1/ 7
游 地
1/ 3
1/ 5
1/ 3 1/ 5
1 2
1/ 2 1
1/ 3
1
A是正互反阵
3 1 1
要由A确定C1,…, Cn对O的权向量
2
n
min
wi ( i1,,n ) i1
n j1 ln aij
ln wi wj

层次分析法在城市购房决策中的应用

层次分析法在城市购房决策中的应用

层次分析法的应用及MATLAB实现作者:沈小欣指导老师:陈俊前言随着经济的发展,收入水平的提高,消费者对商品房的要求也在增加。

目前多数消费者购房时考虑的因素有居住环境、孩子的教育环境、地理位置和房价等等。

由于涉及金额较大,购房需慎之又慎,以免花钱买后悔。

针对消费者的需求,房地产开发商也在不断地推出新的楼盘。

这些楼盘往往各有各的特点,这使得消费者经常因选房而筋疲力尽,生怕捡了芝麻丢了西瓜。

究其原因,主要是考虑的因素太多,这就使得购房者难以做出孰优孰劣的判断。

但是,所有的购房者都想买到物美价廉的房子,这是总目标,如果我们能够对备选房源“物美价廉”的程度进行量化,就能通过简单的数值比较做出决策,已达到最大的满意度。

在该文中我们运用运筹学中的层次分析法就能轻松解决这一决策难题。

1、层次分析法概述1.1 简介[1]层次分析法(Analytic Hierarchy Process简称AHP)是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代在为美国国防部研究"根据各个工业部门对国家福利的贡献大小而进行电力分配"课题时,应用网络系统理论和多目标综合评价方法,提出的一种实用的定性和定量相结合的多准则决策方法。

它是把复杂的决策按照目标层、准则层、子准则层、方案层的顺序表示为一个有序的递阶层次结构,通过人们的比较判断,计算各种决策方案在不同准则及总目标之下的相对重要性权重,从而把难以量化的各种方案定量化,以得到各种方案的相对优劣的排序值,并据此做出最后的决策。

1.2 层次分析法的基本步骤[2] [3]1.2.1建立层次结构模型根据问题的性质和要求,提出一个总目标。

将目标逐层分解为几个层次,一般分为三层,最上面为目标层,最下面为方案层,中间是准则层或指标层。

1.2.2构造成对比较矩阵设某层有 n 个因素,{}12,,,n X x x x =,要比较它们对上一层某一准则(或目标)的影响程度,确定在该层中相对于某一准则所占的比重。

matlab-层次分析法一致性

matlab-层次分析法一致性

用了两周左右的时间,我编写了网络分析法(The Analytic Network Process,ANP)的Matlab源代码(将在下面给出),主要针对王莲芬老师的《网络分析法(ANP)的理论与算法》中的内部依存的递阶层次结构,而且假设N = 4 的情形,所以如果要使用该程序,需要作修改,如果你不想改,我可以帮忙!ANP是美国匹兹堡大学的T.L.Saaty 教授于1996年提出了一种适应非独立的递阶层次结构的决策方法,它是在网络分析法(AHP)基础上发展而形成的一种新的实用决策方法。

其关键步骤有以下几个:1 确定因素,并建立网络层和控制层模型。

2 创建比较矩阵。

3 按照指标类型针对每列进行规范化。

4 求出每个比较矩阵的最大特征值和对应的特征向量。

5 一致性检验。

如果不满足,则调整相应的比较矩阵中的元素。

6 将各个特征向量单位化(归一化),组成判断矩阵。

7 将控制层的判断矩阵和网络层的判断矩阵相乘,得到加权超矩阵。

8 将加权超矩阵单位化(归一化),求其K次幂收敛时的矩阵。

其中第j列就是网络层中各元素对于元素j的极限排序向量。

% 第一个函数% 矩阵归一化(单位化)% Unitize 函数开始function Matrix_Unitize = Unitize(Matrix)[line,colume] = size(Matrix);for j = 1:1:columefa = 0;for i = 1:1:linefa = fa + Matrix(i,j);endsum(j) = fa;endfor j = 1:1:columefor i = 1:1:lineMatrix_Unitize(i,j) = Matrix(i,j) / sum(j);endend% Unitize 函数结束% 第二个函数% 求一个方阵的最大特征值及其对应的特征向量% MAX_EigenV 函数开始function [Max_Eigenvector,Max_Eigenvalue] = Max_EigenV(Matrix)[line,colume] = size(Matrix);if line ~= columemessage = '矩阵不是方阵,无法求解最大特征值及其对应的特征向量';disp(message);return;end[Eigenvector Eigenvalue] = eigs(Matrix);Max_Eigenvalue = Eigenvalue(1);for i=1:1:lineMax_Eigenvector(i) = Eigenvector(i,1);end% MAX_EigenV 函数结束% 第三个函数(此函数我没有用)% 根据给定的指标类型对矩阵的列进行规范化% Standardize 函数开始function Matrix_Standardize = Standardize(Matrix, IndexType)% a 是需要规范化的矩阵% IndexType 是该矩阵各列的指标类型数组% IndexType(j) = 1 a 的第j 列是效益型指标% IndexType(j) = 0 a 的第j 列是成本型指标[m n] = size(Matrix);MAX = max(Matrix);MIN = min(Matrix);d = MAX - MIN;for j=1:1:nfor i=1:1:mif IndexType(j) == 1 % 效益型指标规范化Matrix_Standardize(i,j) = (Matrix(i,j) - MIN(j)) / d(j);elseif IndexType(j) == 0 % 成本型指标规范化Matrix_Standardize(i,j) = (MAX(j) - Matrix(i,j)) / d(j);endendend% Standardize 函数结束% 第四个函数% 读取一个格式化文件中所有矩阵,连接成归一化的判断矩阵% 计算最大特征值对应的特征向量,进行一致性检验,构造判断矩阵.% version 2.0% 矩阵文件的(*.txt)格式要求(共4条)% 1 空格开头的行,回车行,注释行(见第3条)在读取时都会被忽略.%% 2 每个矩阵要有维数(Dimension)和序号(Sequence),其次序可以颠倒,但是不能缺项,% 且关键字及其取值要各占一行(共4行,中间可以有空格行或空行),但关键字行尾不能有空格.%% 3 竖线"|"是注释标记,要独自占一行,但是不要在有效的矩阵元素行之后加竖线.%% 4 矩阵的元素只能用空格分开,每个元素后都可以跟空格,且空格的数量可以是任意多个. % 但是,需要强调的是,每一行第一个元素的前面不能有空格(参照第1条)!% JudgementMatrix 函数开始function [judge_matrix_unitize,flag] = JudgementMatrix(fid)judge_matrix = 0;judge_matrix_unitize = 0;flag = 0; % 判断矩阵构造成功的标志LineData = IgnoreLine(fid); % 跳到第一行有效的数据Count = 0; % 矩阵计数器Flag1 = 0; % 是否读取矩阵序号的开关Flag2 = 0; % 是否读取矩阵列数的开关Flag3 = 0; % 是否读取矩阵行数的开关Sequence = 0; % 矩阵的序号Dimension = 0; % 矩阵的阶DCount = 0; % 同一文件中每个矩阵的阶数下标LastCount = 0; % 同一文件中上一个矩阵的阶数下标while( feof(fid) == 0 )if strcmp(LineData, 'Sequence')LineData = IgnoreLine(fid);if LineData == -1warning('已经到了文件末尾,无数据可读取!');flag = -1;return;endSequence = str2num(LineData);Flag1 = Flag1 + 1;elseif strcmp(LineData, 'Dimension')LineData = IgnoreLine(fid);if LineData == -1warning('已经到了文件末尾,无数据可读取!');flag = -1;return;endDCount = DCount + 1;Dimension(DCount) = str2num(LineData);LastCount = DCount-1;if LastCount > 0 && Dimension(DCount) ~= Dimension(LastCount) flag = -1;warning('矩阵的维数不等,比较矩阵弄错了吧!');endFlag2 = Flag2 + 1;endif ( Flag1 > 1 || Flag2 > 1 )if Flag1 > 1c = num2str(Sequence);c = strcat('第',c);message = strcat(c, '个矩阵的上一个矩阵没有设置维数关键字"Dimension"!');flag = -1;warning(message);return;elseif Flag2 > 1c = num2str(Sequence);c = strcat('第',c);message = strcat(c, '个矩阵的上一个矩阵没有设置序号关键字"Sequence"!');warning(message);flag = -1;return;endelseif ( Flag1 == 0 && Flag2 ==0 )warning('没有发现矩阵的序号或行数或列数关键字!请参考文件格式要求!');flag = -1;return;elseif ( Flag1 == 1 && Flag2 == 1 )Matrix = 0;% 为了读分数矩阵,逐行读取再变为数值类型for i = 1:1:Dimension(DCount)LineData = IgnoreLine(fid);if LineData == -1warning('已经到了文件末尾,无数据可读取!');flag = -1;judge_matrix_unitize = Unitize(Matrix);return;endDoubleLine = str2num(LineData);[line_DoubleLine,colume_DoubleLine] = size(DoubleLine);if colume_DoubleLine ~= Dimension(DCount)flag = -1;endfor j = 1:1:colume_DoubleLineMatrix(i,j) = DoubleLine(j);endendif flag == -1judge_matrix_unitize = Unitize(Matrix);return;endif isreal(Matrix)Count = Count + 1;if Sequence ~= Countc = num2str(Sequence);c = strcat('文件中编号为',c);message = strcat(c,'的矩阵的序号没有按照顺序排列!');warning(message);end% 最大特征值及其对应的特征向量[vector_lmd_max,lmd_max(Count)] = MaxEV(Matrix);for j = 1:1:Dimension(DCount)judge_matrix(Count,j) = vector_lmd_max(j);end% 一致性检验CI(Count) = 0; % 一致性指标% 当矩阵的阶数n < 3 时,判断矩阵永远具有完全一致性。

Matlab建模教程层次分析法

Matlab建模教程层次分析法

第八章 层次分析法层次分析法(Analytic Hierarchy Process ,简称AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。

它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、灵活而又实用的多准则决策方法。

§1 层次分析法的基本原理与步骤人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。

层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。

运用层次分析法建模,大体上可按下面四个步骤进行:(i )建立递阶层次结构模型;(ii )构造出各层次中的所有判断矩阵;(iii )层次单排序及一致性检验;(iv )层次总排序及一致性检验。

下面分别说明这四个步骤的实现过程。

1.1 递阶层次结构的建立与特点应用AHP 分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。

在这个模型下,复杂问题被分解为元素的组成部分。

这些元素又按其属性及关系形成若干层次。

上一层次的元素作为准则对下一层次有关元素起支配作用。

这些层次可以分为三类:(i )最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。

(ii )中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。

(iii )最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。

递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。

每一层次中各元素所支配的元素一般不要超过9个。

这是因为支配的元素过多会给两两比较判断带来困难。

下面结合一个实例来说明递阶层次结构的建立。

例1 假期旅游有1P 、2P 、3P 3个旅游胜地供你选择,试确定一个最佳地点。

(完整版)层次分析法计算权重在matlab中的实现

(完整版)层次分析法计算权重在matlab中的实现

信息系统分析与设计作业层次分析法确定绩效评价权重在matlab中的实现小组成员:孙高茹、王靖、李春梅、郭荣1 程序简要概述编写程序一步实现评价指标特征值lam、特征向量w以及一致性比率CR的求解。

具体的操作步骤是:首先构造评价指标,用专家评定法对指标两两打分,构建比较矩阵,继而运用编写程序实现层次分析法在MATLAB中的应用。

通过编写MATLAB程序一步实现问题求解,可以简化权重计算方法与步骤,减少工作量,从而提高人力资源管理中绩效考核的科学化电算化。

2 程序在matlab中实现的具体步骤function [w,lam,CR] = ccfx(A)%A为成对比较矩阵,返回值w为近似特征向量% lam为近似最大特征值λmax,CR为一致性比率n=length(A(:,1));a=sum(A);B=A %用B代替A做计算for j=1:n %将A的列向量归一化B(:,j)=B(:,j)./a(j);ends=B(:,1);for j=2:ns=s+B(:,j);endc=sum(s);%计算近似最大特征值λmaxw=s./c;d=A*wlam=1/n*sum((d./w));CI=(lam-n)/(n-1);%一致性指标RI=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51];%RI为随机一致性指标CR=CI/RI(n);%求一致性比率if CR>0.1disp('没有通过一致性检验');else disp('通过一致性检验');endend3 案例应用我们拟构建公司员工绩效评价分析权重,完整操作步骤如下:3.1构建的评价指标体系我们将影响员工绩效评定的指标因素分为:打卡、业绩、创新、态度与品德。

3.2专家打分,构建两两比较矩阵A =1.0000 0.5000 3.0000 4.00002.0000 1.0000 5.00003.00000.3333 0.2000 1.0000 2.00000.2500 0.3333 0.5000 1.00003.3在MATLAB中运用编写好的程序实现直接在MATLAB命令窗口中输入[w,lam,CR]=ccfx(A)继而直接得出d =1.30352.00000.51450.3926w =0.31020.46910.12420.0966lam =4.1687CR =0.0625,通过一致性检验3.4解读程序结果根据程序求解中得出的特征向量,可以得出打卡、业绩、创新以及态度品德在员工绩效评价中所占的权重分别为:0.3102、0.4691、0.1242、0.0966。

matlab数学建模30个案例分析

matlab数学建模30个案例分析

案例4:基于微分方程的最优捕鱼策略
为了保护人类赖以生存的自然环境,可再生资源(如渔业、林业资源)的开发必须适度,一种合理、简化的策略是,在实现可持续收获的前提下,追求最大产量或最佳效益。考虑对某种鱼的最优捕鱼策略:假设这种鱼分4个年龄组:称1龄鱼,…,4龄组,各年龄组每条鱼的平均重量分别为5.07,11.55,17.86,22.99(克)各年龄组鱼的自然死亡率均为0.8(1/年)这种鱼为季节性集中产卵繁殖,平均每条4龄鱼的产卵量为1.109× 个,3龄鱼的产卵量为这个数的一半,2龄鱼和1龄鱼不产卵 产卵和孵化期为每年的最后4个月,卵孵化并成活为1龄鱼,成活率(1龄鱼条数与产卵总量n之比)为1.22 × /1.22× +n)
案例12:基于主成分分析的长江水质的评价和预测模型
运用主成分分析法对长江流域主要城市水质检测报告进行分析,选取主成分,并把主成分得分按方差贡献率加权求和,得出每个地区的污染综合评价指数,进而可以计算每个月长江流域的污染综合评价指数。
第三部分 优化问题
案例13:基于线性规划求解飞行管理模型
第二部分 评价问题
案例7:基于层次分析法的高考志愿选择策略
一年一度的高考结束后,许多考生面临估分后填写志愿的决策过程。这个决策关系重大,请你建立一个数学模型,帮考生考虑到各种决策因素使之能轻松应对这一重大决策。成都丙、重庆丁四所大学。
现有某市直属单位因工作需要,拟向社会公开招聘8名公务员。该单位拟将录用的8名公务员安排到所属的7个部门,并且要求每个部门至少安排一名公务员。这7个部门按工作性质可分为四类:(1)行政管理、 (2)技术管理、(3)行政执法、(4)公共事业。
招聘领导小组在确定录用名单的过程中,本着公平、公开的原则,同时考虑录用人员的合理分配和使用,有利于发挥个人的特长和能力。招聘领导小组将7个用人单位的基本情况(包括福利待遇、工作条件、劳动强度、晋升机会和学习深造机会等)和四类工作对聘用公务员的具体条件的希望达到的要求都向所有应聘人员公布。每一位参加面试人员都可以申报两个自己的工作类别志愿。

基于Matlab的层次分析法及其运用浅析

基于Matlab的层次分析法及其运用浅析

度 )具体标度 方法如表 1所示。 ,
表 1 T..a t LS ay教授 的 1 9标度方法 -
底层 指 标 相 对 于 准 则 层 的 权 重 系数 , 而 有助 于 选 择 最 优 方案 , 序 从 程 流程如图 1 所示 , 其中的平行 四边形表示输入数据 , 菱形表示判断 , 根据 判 断结 果 的不 同 出现 2个 分 支 。 程 序 中 , 于 生成 判 断矩 阵 的部 分 程 序 如 下 : 用
表 2 平均 随机一致性指标 ,
在当前信息化 、 全球化 的大背景下 , 传统的手工计 算已不能满足 素, 因此在判断矩 阵不能通过一致性检 验时, 需要对 各指标问相互重 人们高效 率、 高准确度 的决策需求。 因此计算机辅助决策当仁不让地 要性程度重新进行赋值 , 直至其通过矩阵一致性检验。 其最大特征值 成为 了管理决策 的新工具、 方法。基于 此, 新 本文在充分发挥计算机 对应 的特征 向量 即为该指标相对于上一级指标的重要性排序。 强大运算功能的基础上 ,选用美国 Mah rs公司的集成数学建 tWok
基于 Malb的层次分析 法及 其运 用浅析 t a
郭 东硕 程 正敏 彭茜 ( 西南大学 经济管理学院)
满足同一层 次中各指标对 所有的下级指标均产生影响 的假定条件下 ,实现 了层次分析法的分析运算。 本程序允许 用户自由设定指标层次结构内的层次数以及各层次 内的指标数 , 通过程序的循环 , 用户只需输入 判断矩 阵的部 分数据 , 程序可依据层 次分析 法的计算流程 进行计算并作 出判断。 本程序可以方便地处理层 次分析法下较 大的运算量 , 解决层次分析法的效率问题 , 提高计算机辅助决策的时效性。 关键词 : t b层 次分析法 判断矩阵 决策 Mal a

关于层次分析法的例题与解

关于层次分析法的例题与解

关于层次分析法的例题与解旅游发展水平评价摘要为了研究和比较两个旅游城市的旅游发展水平,建立了层次分析法[数学模型,对两个旅游城市的旅游发展水平进行了评价.首先,通过对本课题中图1和表1的分析和讨论,按照层次分析法,建立了四个层次:目标层a、准则层b、子准则层c和方案层d,通过比较同一层目标之间的重要度,得到判断矩阵,每个判断矩阵用MATLAB[1]编程求解。

其次,利用MATLAB软件计算决策组合向量,然后比较决策组合向量的大小。

以“最大决策组合向量”为目标,Y市的决策组合向量为0.4325,Q市的决策组合向量为0.5675。

最后,通过比较q市和y市旅游发展水平的决策组合向量,得出q市旅游发展水平较高的结论。

层次分析法MATLAB旅游发展水平;决策组合向量11.问题重述本文要求对Y和Q两个旅游城市的旅游发展水平进行分析,并对两个城市的各种因素进行比较,如城市规模和密度、经济条件、交通条件、生态环境条件、宣传监督、旅游规格、空气质量、城市规模、人口密度、人均国内生产总值、人均住房面积、第三产业增加值占国内生产总值的比重、税收国内生产总值、对外贸易依存度、城市内外交通、人均绿地等。

污水集中处理率、环境噪声、国内外游客数量、索赔金额、立案数量、甲级景区数量、旅行社数量、星级酒店数量。

建立数学模型来解决这个问题。

2.问题分析本文要求对Y、Q旅游城市的旅游业发展水平进行分析。

在对Y和Q 旅游城市的分析中,发现有许多因素需要考虑。

首先,城市规模和密度,包括城市规模和人口密度。

第二,经济条件,包括对外贸易依存度,人均国内生产总值,人均住房面积,第三产业增加值占国内生产总值的比重,税收占国内生产总值的比重。

第三,运输条件,包括内部运输和外部运输。

第四,生态环境条件包括空气质量、人均绿地面积、污水处理能力和环境噪声。

第五,宣传和监督,包括国内外游客人数,以及游客投诉的数量。

第六,旅游指标,包括甲类景区的数量、旅行社的数量、星级酒店的数量,用层次分析法来估计各指标的权重,并对最优方案进行评价。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Matlab的层次分析法及其运用浅析
本文通过使用Matlab软件进行编程,在满足同一层次中各指标对所有的下级指标均产生影响的假定条件下,实现了层次分析法的分析运算。

本程序允许用户自由设定指标层次结构内的层次数以及各层次内的指标数,通过程序的循环,用户只需输入判断矩阵的部分数据,程序可依据层次分析法的计算流程进行计算并作出判断。

本程序可以方便地处理层次分析法下较大的运算量,解决层次分析法的效率问题,提高计算机辅助决策的时效性。

标签:Matlab层次分析法判断矩阵决策
在当前信息化、全球化的大背景下,传统的手工计算已不能满足人们高效率、高准确度的决策需求。

因此计算机辅助决策当仁不让地成为了管理决策的新工具、新方法。

基于此,本文在充分发挥计算机强大运算功能的基础上,选用美国MathWorks公司的集成数学建模環境Matlab R2009a作为开发平台,使用M语言进行编程,对计算机辅助决策在层次分析法中的运用进行讨论。

试图通过程序实现层次分析法在计算机系统上的运用,为管理决策探索出新的道路。

1 层次分析法的计算流程
根据层次分析法的相关理论,层次分析法的基本思想是将复杂的决策问题进行分解,得到若干个下层指标,再对下层指标进行分解,得到若干个再下层指标,如此建立层次结构模型,然后根据结构模型构造判断矩阵,进行单排序,最后,求出各指标对应的权重系数,进行层次总排序。

1.1 构造层次结构模型在进行层次分析法的分析时,最主要的步骤是建立指标的层次结构模型,根据结构模型构造判断矩阵,只有判断矩阵通过了一致性检验后,方可进行分析和计算。

其中,结构模型可以设计成三个层次,最高层为目标层,是决策的目的和要解决的问题,中间层为决策需考虑的因素,是决策的准则,最低层则是决策时的备选方案。

一般来讲,准则层中各个指标的下级指标数没有限制,但在本文中设计的程序尚且只能在各指标具有相同数量的下级指标的假定下,完成层次分析法的分析,故本文后文选取的案例也满足这一假定。

1.2 建立判断矩阵判断矩阵是表示本层所有因素针对上一层某一个因素的相对重要性的比较给判断矩阵的要素赋值时,常采用九级标度法(即用数字1到9及其倒数表示指标间的相对重要程度),具体标度方法如表1所示。

1.3 检验判断矩阵的一致性由于多阶判断的复杂性,往往使得判断矩阵中某些数值具有前后矛盾的可能性,即各判断矩阵并不能保证完全协调一致。

当判断矩阵不能保证具有完全一致性时,相应判断矩阵的特征根也将发生变化,于是就可以用判断矩阵特征根的变化来检验判断的一致性程度。

在层次分析法中,令判断矩阵最大的特征值为λmax,阶数为n,则判断矩阵的一致性检验的指标记为:

CI的值越大,判断矩阵的一致性越差。

当阶数大于2时,判断矩阵的一致性指标CI与同阶平均随机一致性指标RI之比称为随机一致性比率,其中RI的值由表2确定,CR的计算公式为:

当CR<0.1时,即可认为判断矩阵具有满意的一致性。

然而由于在为各指标间相互重要性程度大小的判定过程中存在人为主观因素,因此在判断矩阵不能通过一致性检验时,需要对各指标间相互重要性程度重新进行赋值,直至其通过矩阵一致性检验。

其最大特征值对应的特征向量即为该指标相对于上一级指标的重要性排序。

1.4 进行层次总排序在通过层次单排序得出各指标相对上一级指标的重要性排序向量后,沿递阶层次结构逐级依次由下往上进行矩阵计算,则可得到各底层指标对最高层的相对重要性权重,从而可对各底层指标的优先次序进行排序,找出重点指标并予以特别关注。

2 Matlab层次分析法程序设计思路
Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

Matlab可以进行矩阵运算、绘制函数和数据图像、设计算法、创建用户界面、连接用其他编程语言编写的程序等。

Matlab以矩阵为计算单位,采用M语言作为程序语言,与C语言有诸多相似之处,并可方便地与C/C++、Microsoft Excel等工具和软件进行结合并进行代码共享和数据交换,可以方便地进行数值分析、图像处理等功能,配合功能强大的统计和金融工具箱,Matlab已经可以在概率统计、经济管理等方面发挥强大的作用。

笔者所编程序即是运用Matlab丰富的函数、矩阵运算和程序控制功能,探索其在层次分析法分析中的运用。

程序通过三层循环结构,按照表1所示的方法和规则,实现多个层次上各个判断矩阵的输入和生成,并可以通过计算它们的特征值,按照上述公式⑴、公式⑵和表2所示的方法进行矩阵的一致性检验。

当所有的判断矩阵一致性检验均通过后,程序将对各层次从下往上依次计算,最终得出各底层指标相对于准则层的权重系数,从而有助于选择最优方案,程序流程如图1所示,其中的平行四边形表示输入数据,菱形表示判断,根据判断结果的不同出现2个分支。

程序中,用于生成判断矩阵的部分程序如下:
for a=1:mp
for b=1:mp
A(b,b)=1;
if a<b
fprintf(‘Line %i, Row %i\n’,[a;b]);
A(a,b)=input(‘Please input the value: ‘);
A(b,a)=1/A(a,b);
end
end
生成层次总排序权重矩阵的部分程序如下:
for r=p-1:1
v=[‘vect=vect*vector’ int2str(r)];
evalc(v)
end
fprintf(‘The final judging vector is:’)
fprintf(‘\n%.4f’,vect)
[m,maxpl]=max(vect);
fprintf(‘\n\nThe Scheme %i is the best solution.\n\n’,maxpl)
其中,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所示矩阵后,程序输出结果经整理如下表:
接着,程序对各矩阵计算所得的最大特征值对应的特征向量按下式进行标准化:
再给出各指标的特征向量组成的矩阵:
进而得出三套方案相对于目标的权重向量为:
程序经比较,发现方案1权重系数最大,进而得出最终结论:方案1(地下通道)占优。

4 总结及分析
本程序在运行开始时,会要求用户输入指标的层数和第一层的指标数,在每一个层次的矩阵元素输入完成后,程序会要求用户输入下一个层次中的指标数,因此本程序可进行无限个层次的迭代运算。

当然,程序只能替代层次分析法的运算部分,由于对判断矩阵赋值具有主观性,常常需要通过其他的方法进行确定,如Delphi 方法等。

在把设定好的判断矩阵输入程序进行运算时,程序可以保证矩阵运算的精度和效率,在对代码进行优化和扩展后,还可以将过程与结果数据导出到Excel 和Eviews,以方便进行后续的数据整理和计量分析。

另外,如前所述,本程序存在一个局限,即需要在满足同一层次内各指标对所有下一层次指标均产生影响的假定时才能正确运行。

笔者将在今后对程序进行进一步的完善,提升其功能和易用性,使其能满足不同类型、不同条件下的层次分析法分析,在日常生活的计算机辅助决策领域发挥更大的作用。

参考文献:
[1]凌泽华.层次分析法在企业核心员工界定中的运用[J].经营管理者, 2010,(2).
[2]刘文琦,熊惠珍.层次分析法在财务指标分析中的应用[J].审计与理财,2010,(1).
[3]王翼,王歆明.MATLAB基础及在经济学与管理科学中的应用[M].北京:机械工业出版社,2009,7.。

相关文档
最新文档