层次分析法及matlab程序

合集下载

AHP及matlab程序

AHP及matlab程序

层次分析法(AHP)及matlab程序层次分析法是一种新的定性分析与定量分析相结合的系统分析方法,是将人的主观判断用数量形式表达和处理的方法,简称AHP(The Analytic Hierarchy Process)法。

近年来,层次分析法在草地农业生态系统的系统分析、设计与决策中日益受到重视。

1层次分析法的基本方法和步骤层次分析法是把复杂问题分解成各个组成因素,又将这些因素按支配关系分组形成递阶层次结构。

通过两两比较的方式确定各个因素相对重要性,然后综合决策者的判断,确定决策方案相对重要性的总排序。

运用层次分析法进行系统分析、设计、决策时,可分为4个步骤进行;(1)分析系统中各因素之间的关系,建立系统的递阶层次结构;(2)对同一层次的各元素关于上一层中某一准则的重要性进行两两比较,构造两两比较的判断矩阵;(3)由判断矩阵计算被比较元素对于该准则的相对权重;(4)计算各层元素对系统目标的合成权重,并进行排序,2递阶层次结构的建立首先把系统问题条理化、层次化,构造出一个层次分析的结构模型。

在模型中,复杂问题被分解,分解后各组成部分称为元素,这些元素又按属性分成若干组,形成不同层次。

同一层次的元素作为准则对下一层的某些元素起支配作用,同时它又受上面层次元素的支配。

层次可分为三类;(1)最高层:这一层次中只有一个元素,它是问题的预定目标或理想结果,因此也叫目标层;(2)中间层:这一层次包括要实现目标所涉及的中间环节中需要考虑的准则。

该层可由若干层次组成,因而有准则和子准则之分,这一层也叫准则层;(3)最底层:这一层次包括为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。

上层元素对下层元素的支配关系所形成的层次结构被称为递阶层次结构。

当然,上一层元素可以支配下层的所有元素,但也可只支配其中部分元素。

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

每一层次中各元素所支配的元素一般不要超过9个,因为支配的元素过多会给两两比较判断带来困难。

MatLab层次分析法代码

MatLab层次分析法代码
>>A=[12564724;1/21242712;1/51/215151/22;1/61/41/511/331/21/4;1/41/2131512;1/71/71/51/31/511/71/5;1/21221712;1/41/21/241/251/21];
>>d=eig(A)%求全部特征值所组成的向量
e=max(eig(A));%最大特征值
v=null(A-e*eye(length(A)));%e对应特征向量
>>e
>>A=[13365957;1/31134746;1/31134746;1/61/31/311/241/22;1/51/41/421412;1/91/71/71/41/411/31/2;1/51/41/421312;1/71/61/61/21/221/21];
e=max(eig(A));%最大特征值
v=null(A-e*eye(length(A)));%e对应特征向量
>>e
e=
8.4243
>>v
v=
-0.7427
-0.3893
-0.2579
-0.0985
-0.2588
-0.0519
-0.3352
-0.1966
>>A=[13365957;1/31134746;1/31134746;1/61/31/311/241/22;1/51/41/421412;1/91/71/71/41/411/31/2;1/51/41/421312;1/71/61/61/21/221/21];
0.2579-0.0614+0.3195i-0.0614-0.3195i-0.0739-0.0916i-0.0739+0.0916i-0.1506-0.0176i-0.1506+0.0176i

层次分析法AHP法

层次分析法AHP法
成对比较矩阵是表达本层全部原因针对上一层某一种 原因旳相对主要性旳比较。判断矩阵旳元素aij用 Saaty旳1—9标度措施给出。
心理学家以为成对比较旳原因不宜超出9个,即 每层不要超出9个原因。
成对比较阵和权向量
比较尺度aij
Saaty等人提出1~9尺度——aij 取值
1,2,… , 9及其互反数1,1/2, … , 1/9
上述两相邻判断旳中值
原因i与j比较旳判断aij,则原因j与i比较旳判断aji=1/aij
对于 n 个元素 A1, …, An 来说,经过两两比 较,得到成对比较(判断)矩阵 A = (aij)nn:
其中判断矩阵具有如下性质: (1)aij > 0; (2)aij = 1/aji; (3)aii = 1。 我们称 A 为正旳互反矩阵。
3.一种好旳层次构造对于处理问题是极为 主要旳。层次构造建立在决策者对所面临 旳问题具有全方面进一步旳认识基础上, 假如在层次旳划分和拟定层次之间旳支配 关系上举棋不定,最佳重新分析问题,搞 清问题各部分相互之间旳关系,以确保建 立一种合理旳层次构造。
例1. 选择旅游地
目的层
怎样在3个目旳地中按照景色、 费用、居住条件等原因选择.
例2 旅游
假期旅游,是去风光秀丽旳苏州,还是 去凉爽宜人旳北戴河,或者是去山水甲天下 旳桂林?一般会根据景色、费用、食宿条件、 旅途等原因选择去哪个地方。
例3 择业 面临毕业,可能有高校、科研单位、企
业等单位能够去选择,一般根据工作环境、 工资待遇、发展前途、住房条件等原因择业。
例4 科研课题旳选择 因为经费等原因,有时不能同步开展几
因为λ(A旳特征根) 连续旳依赖于aij ,则λ比n 大旳越 多,A 旳不一致性越严重。引起旳判断误差越大。 因而能够用 λ-n 数值旳大小来衡量 A 旳不一致程度。

层次分析法判断矩阵求权值以及一致性检验程序

层次分析法判断矩阵求权值以及一致性检验程序

function [w,CR]=mycom(A,m,RI)[x,lumda]=eig(A);r=abs(sum(lumda));n=find(r==max(r));max_lumda_A=lumda(n,n);max_x_A=x(:,n);w=A/sum(A);CR=(max_lumda_A-m)/(m-1)/RI;end本matlab程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性检验。

其中A为判断矩阵,不同的标度和评定A将不同。

m为A的维数RI为判断矩阵的平均随机一致性指标:根据m的不同值不同。

当CR<0.1时符合一致性检验,判断矩阵构造合理。

下面是层次分析法的简介,以及判断矩阵构造方法。

一.层次分析法的含义层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。

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

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

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

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

(1)层次分析法的原理层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后得用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。

这里所谓“优先权重”是一种相对的量度,它表明各备择方案在某一特点的评价准则或子目标,标下优越程度的相对量度,以及各子目标对上一层目标而言重要程度的相对量度。

层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。

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程序

层次分析法建模层次分析法(AHP-Analytic Hierachy process)---- 多目标决策方法70 年代由美国运筹学家T·L·Satty提出的,是一种定性与定量分析相结合的多目标决策分析方法论.吸收利用行为科学的特点,是将决策者的经验判断给予量化,对目标(因素)结构复杂而且缺乏必要的数据情况下,採用此方法较为实用,是一种系统科学中,常用的一种系统分析方法,因而成为系统分析的数学工具之一。

传统的常用的研究自然科学和社会科学的方法有:机理分析方法:利用经典的数学工具分析观察的因果关系;统计分析方法:利用大量观测数据寻求统计规律,用随机数学方法描述(自然现象、社会现象)现象的规律。

基本内容:(1)多目标决策问题举例AHP建模方法(2)AHP建模方法基本步骤(3)AHP建模方法基本算法(3)AHP建模方法理论算法应用的若干问题。

参考书:1、姜启源,数学模型(第二版,第9章;第三版,第8章),高等教育出版社2、程理民等, 运筹学模型与方法教程,(第10章),清华大学出版社3、《运筹学》编写组,运筹学(修订版),第11章,第7节,清华大学出版社一、问题举例:A.大学毕业生就业选择问题获得大学毕业学位的毕业生,“双向选择”时,用人单位与毕业生都有各自的选择标准和要求。

就毕业生来说选择单位的标准和要求是多方面的,例如:①能发挥自己的才干为国家作出较好贡献(即工作岗位适合发挥专长);②工作收入较好(待遇好);③生活环境好(大城市、气候等工作条件等);④单位名声好(声誉—Reputation);⑤工作环境好(人际关系和谐等)⑥发展晋升(promote,promotion)机会多(如新单位或单位发展有后劲)等。

问题:现在有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择?——或者说他将用什么方法将可供选择的工作单位排序?工作选择贡献收入发展声誉工作环境生活环境B.假期旅游地点选择暑假有3个旅游胜地可供选择.例如:1P :苏州杭州,2P 北戴河,3P 桂林,到底到哪个地方去旅游最好?要作出决策和选择。

层次分析法及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的AHP实现

基于MATLAB的AHP实现

基于MATLAB的AHP实现层次分析法(Analytic Hierarchy Process,AHP)是一种用于多准则决策问题的定量分析方法,它被广泛应用于各个领域,例如工程、管理、经济等。

基于MATLAB的AHP实现可以帮助决策者更好地进行权重分配和决策。

在MATLAB中,可以通过以下步骤实现AHP:1.构建层次结构:首先,需要明确决策问题的层次结构,包括目标、准则和方案。

目标是决策的最终目标,准则是评估和比较方案的标准,方案是待选的决策方案。

2.构建判断矩阵:决策者需要对层次结构中的准则和方案进行两两比较,得到一个判断矩阵。

判断矩阵的元素代表了准则或方案之间的重要程度比较,通常使用1-9的尺度进行比较。

3.计算权重向量:根据判断矩阵,可以计算出准则和方案的权重向量。

计算准则的权重时,需要对判断矩阵进行特征向量分解,得到最大特征值和对应的特征向量,再进行归一化处理。

计算方案的权重时,需要使用准则的权重向量和方案与准则之间的判断矩阵进行加权求和。

4. 一致性检验:在计算权重向量之前,需要进行一致性检验,以确保判断矩阵的一致性。

一致性检验使用一致性指标CR(Consistency Ratio),计算公式为CR = CI/RI,其中CI为一致性指标,RI为随机一致性指标。

如果CR小于0.1,则认为判断矩阵是一致的。

5.决策结果:根据准则和方案的权重向量,可以得到决策结果。

可以通过计算方案的加权得分,或者进行灵敏度分析,评估方案对权重变化的敏感程度。

MATLAB提供了一些函数和工具箱,可以帮助实现AHP。

例如,可以使用eig函数进行特征向量分解,使用sum函数进行加权求和,使用eigs 函数计算随机一致性指标等。

在实际应用中,基于MATLAB的AHP实现可以帮助决策者更好地进行权重分配和决策。

通过对准则和方案进行比较和评估,可以得到准确的权重向量,并且可以进行灵敏度分析,帮助决策者了解方案对权重变化的敏感程度。

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

层次分析法判断矩阵求权值以及一致性检验程序

层次分析法判断矩阵求权值以及一致性检验程序

function [w,CR]=mycom(A,m,RI)[x,lumda]=eig(A);r=abs(sum(lumda));n=find(r==max(r));max_lumda_A=lumda(n,n);max_x_A=x(:,n);w=A/sum(A);CR=(max_lumda_A-m)/(m-1)/RI;end本matlab程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性检验。

其中A为判断矩阵,不同的标度和评定A将不同。

m为A的维数RI为判断矩阵的平均随机一致性指标:根据m的不同值不同。

当CR<0.1时符合一致性检验,判断矩阵构造合理。

下面是层次分析法的简介,以及判断矩阵构造方法。

一.层次分析法的含义层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。

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

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

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

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

(1)层次分析法的原理层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后得用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。

这里所谓“优先权重”是一种相对的量度,它表明各备择方案在某一特点的评价准则或子目标,标下优越程度的相对量度,以及各子目标对上一层目标而言重要程度的相对量度。

层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。

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个旅游胜地供你选择,试确定一个最佳地点。

第六章 层次分析法

第六章 层次分析法
disp('CI=');disp(CI); disp('CR=');disp(CR); end
五、层次分析法应用举例
例 1 某单位拟从三名干部中提拔一人担任领导工作,干部的优劣(由上级人事部门提出),
用六个属性来衡量:健康状况、业务知识、写作水平、口才、政策水平、工作作风,分别用
p1、p2、p3、p4、p5、p6 来表示。
p4 1/4 1/4 1/5 1 1/3 1/3
p5
1
1 1/3 3
1
1
p6
2
2
2
3
1
1
利用MATLAB计算可得:
W = (w1 ,⋯,wn )T = (0.1584,0.1892,0.198,0.0483,0.1502,0.2558)T , λmax = 6.42 ,
CI = 0.0841, CR = 0.0667 < 1。
m
∑ bi = bij a j , i = 1,⋯, n 。
j =1
层次 A
A1
A2
层次 B
a1
a2
B1
b11
b12
总层次排序权值表
……..
Am
……..
am
……..
b1m
……..
B2
b21
b22
b2m



……..

B 层总排序权值
n
∑a jb1j
j=1
n
∑ajb2 j
j=1

……..
Bn
bn1
bn2
对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。 上述构造成对比较判断矩阵的办法虽能减少其它因素的干扰,较客观地反映出一对因子

(完整版)层次分析法计算权重在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。

五层次分析法(AHP法汇总

五层次分析法(AHP法汇总

判断矩阵元素aij的标度方法
标度 1 3 含义 表示两个因素相比,具有同样重要性 表示两个因素相比,一个因素比另一个因素稍微重要
5 7
9 2, 4, 6, 8
表示两个因素相比,一个因素比另一个因素明显重要 表示两个因素相比,一个因素比另一个因素强烈重要
表示两个因素相比,一个因素比另一个因素极端重要 上述两相邻判断的中值
例 2
旅游
假期旅游,是去风光秀丽的苏州,还是
去凉爽宜人的北戴河,或者是去山水甲天下
的桂林?通常会依据景色、费用、食宿条件、 旅途等因素选择去哪个地方。
例 3
择业
面临毕业,可能有高校、科研单位、企
业等单位可以去选择,一般依据工作环境、
工资待遇、发展前途、住房条件等因素择业。
例 4
科研课题的选择
例1. 选择旅游地
目标层
如何在3个目的地中按照景色、 费用、居住条件等因素选择.
O(选择旅游地)
准则层
C1 景色
C2 费用
C3 居住
C4 饮食
C5 旅途
方案层
P1 桂林
P2 黄山
P3 北戴河
例2
大学毕业生就业选择问题 获得大学毕业学位的毕业生,在“双向选择” 时,用人单位与毕业生都有各自的选择标准和要求。 就毕业生来说选择单位的标准和要求是多方面的, 例如: ①能发挥自己才干作出较好贡献(即工作岗位适 合发挥自己的专长); ②工作收入较好(待遇好); ③生活环境好(大城市、气候等工作条件等); ④单位名声好(声誉等); ⑤工作环境好(人际关系和谐等) ⑥发展晋升机会多(如新单位或前景好)等。
比较同一层次中每个因素关于上一层次 的同一个因素的相对重要性
在确定各层次各因素之间的权重时,如果只是 定性的结果,则常常不容易被别人接受,因而 Saaty等人提出构造:成对比较矩阵A = (aij)nn,即: 1. 不把所有因素放在一起比较,而是两两相互比 较。 2. 对此时采用相对尺度,以尽可能减少性质不同 的诸因素相互比较的困难,以提高准确度。 成对比较矩阵是表示本层所有因素针对上一层某一个 因素的相对重要性的比较。判断矩阵的元素aij用 Saaty的1—9标度方法给出。

基于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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B、假期旅游地点选择
暑假有3个旅游胜地可供选择。例如: :苏州杭州, 北戴河, 桂林,到底到哪个地方去旅游最好?要作出决策与选择。为此,要把三个旅游地的特点,例如:①景色;②费用;③居住;④环境;⑤旅途条件等作一些比较——建立一个决策的准则,最后综合评判确定出一个可选择的最优方案。
目标层
准则层
方案层
参考书:1、姜启源,数学模型(第二版,第9章;第三版,第8章),高等教育出版社
2、程理民等,运筹学模型与方法教程,(第10章),清华大学出版社
3、《运筹学》编写组,运筹学(修订版),第11章,第7节,清华大学出版社
一、问题举例
A.大学毕业生就业选择问题
获得大学毕业学位的毕业生,“双向选择”时,用人单位与毕业生都有各自的选择标准与要求。就毕业生来说选择单位的标准与要求就是多方面的,例如:
既然:
所以应该有:
而不应为矩阵 中的
②成对比较矩阵比较的次数要求太,因: 个元素比较次数为: 次,
因此,问题就是:如何改造成对比较矩阵,使由其能确定诸因素 对上层因素O的权重?
对此Saoty提出了:在成对比较出现不一致情况下,计算各因素 对因素(上层因素)O的权重方法,并确定了这种不一致的容许误差范围。
就是一致矩阵A的特征向量,则可以把向量W归一化后的向量 ,瞧成就是诸元素W1,W2,W3 ,…Wn
目标的权向量,因此,可以用求A的特征根与特征向量的办法,求出元素W1,W2,W3 ,…Wn相对于目标O的劝向量。
解释
一致矩阵即: 件物体 ,它们重量分别为 ,将她们两两比较重量,其比值构成一致矩阵,若用重量向量 右乘 ,则
为此,先瞧成对比较矩阵的完全一致性——成对比较完全一致性

Def:设有正互反成对比较矩阵:
(4)
除满足:(i)正互反性:即
而且还满足:(ii)一致性:即
//有点点错误
则称满足上述条件的正互反对称矩阵A为一致性矩阵,简称一致阵。
一致性矩阵
性质1: 的秩Rank(A)=1//显然
的唯一非0的特征根为n
性质2: 的任一列(行)向量都就是对应特征根 的特征向量:
并用直线连接各层次。
(S2)互相比较各准则对目标的权重,各方案对每一个准则的权重。这些权限重在人的思维过程中常就是定性的。
例如:经济好,身体好的人:会将景色好作为第一选择;
中老年人:会将居住、饮食好作为第一选择;
经济不好的人:会把费用低作为第一选择。
而层次分析方法则应给出确定权重的定量分析方法。
(S3)将方案后对准则层的权重,及准则后对目标层的权重进行综合。
C.资源开发的综合判断
7种金属可供开发,开发后对国家贡献可以通过两两比较得到,决定对哪种资源先开发,效用最用。
二、问题分析
例如旅游地选择问题:一般说来,此决策问题可按如下步骤进行:
(S1)将决策解分解为三个层次,即:
目标层:(选择旅游地)
准则层:(景色、费用、居住、饮食、旅途等5个准则)
方案层:(有 , , 三个选择地点)
即有(特征向量、特征值):
,则向量
满足:
即:
我的理解:通过A(变换A与W中的元素有关)变换将一致W矩阵变成权向量W(特征向量),如果正互反矩阵W’接近一致矩阵,同样的道理变换A可以将W’变成权向量(这里的权向量与W’稍有不同)
启发与思考:既然一致矩阵有以上性质,即n个元素W1,W2,W3 ,…Wn构成的向量
(S4)最终得出方案层对目标层的权重,从而作出决策。
以上步骤与方法即就是AHP的决策分析方法。
三、确定各层次互相比较的方法——成对比较矩阵与权向量
在确定各层次各因素之间的权重时,如果只就是定性的结果,则常常不容易被别人接受,因而Santy等人提出:一致矩阵法
即:1、不把所有因素放在一起比较,而就是两两相互比较
2、对此时採用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,提高准确度。
因素比较方法——成对比较矩阵法:
目的就是,要比较某一层 个因素 对上一层因素O的影响(例如:旅游决策解中,比较景色等5个准则在选择旅游地这个目标中的重要性)。
採用的方法就是:每次取两个因素 与 比较其对目标因素O的影响,并用 表示,全部比较的结果用成对比较矩阵表示,即:
传统的常用的研究自然科学与社会科学的方法有:
机理分析方法:利用经典的数学工具分析观察的因果关系;
统计分析方法:利用大量观测数据寻求统计规律,用随机数学方法描述(自然现象、社会现象)现象的规律。
基本内容:(1)多目标决策问题举例AHP建模方法
(2)AHP建模方法基本步骤
(3)AHP建模方法基本算法
(3)AHP建模方法理论算法应用的若干问题。
:
分析
若重量向量 未知时,则可由决策者对物体 之间两两相比关系,主观作出比值的判断,或用Delphi(调查法)来确定这些比值,使 矩阵(不一定有一致性)为已知的,并记此主观判断作出的矩阵为(主观)判断矩阵 ,并且此 (不一致)在不一致的容许范围内,再依据: 的特征根或与特征向量 连续地依赖于矩阵的元素 ,即当 离一致性的要求不太远时, 的特征根 与特征值(向量) 与一致矩阵 的特征根 与特征向量 也相差不大的道理:由特征向量 求权向量 的方法即为特征向量法,并由此引出一致性检查的方法。
层次分析法建模
层次分析法(AHP-Analytic Hierachy process)----多目标决策方法
70年代由美国运筹学家T·L·Satty提出的,就是一种定性与定量分析相结合的多目标决策分析方法论。吸收利用行为科学的特点,就是将决策者的经验判断给予量化,对目标(因素)结构复杂而且缺乏必要的数据情况下,採用此方法较为实用,就是一种系统科学中,常用的一种系统分析方法,因而成为系统分析的数学工具之一。
1能发挥自己的才干为国家作出较好贡献(即工作岗位适合发挥专长);
2工作收入较好(待遇好);
3生活环境好(大城市、气候等工作条件等);
4单位名声好(声誉-Reputation);
5工作环境好(人际关系与谐等)
6发展晋升(promote, promotion)机会多(如新单位或单位发展有后劲)等。
问题:现在有多个用人单位可供她选择,因此,她面临多种选择与决策,问题就是她将如何作出决策与选择?——或者说她将用什么方法将可供选择的工作单位排序?
(1)
由于上述成对比较矩阵有特点:
故可称 为正互反矩阵:显然,由 ,即: ,故有:
例如:在旅游决策问题中:
= ቤተ መጻሕፍቲ ባይዱ示:
故:
= 表示:
即:景色为4,居住为1。
= 表示:
即:费用重要性为7,居住重要性为1。
因此有成对比较矩阵:
??问题:稍加分析就发现上述成对比较矩阵的问题:
1即存在有各元素的不一致性,例如:
相关文档
最新文档