层次分析模型(AHP)及其MATLAB实现
今天用将近一天的时间学习了层次分析模型(AHP),主要参考了一份pdf,这个网站,和暨南大学章老师的课件,现写出一些自己总结的要点。
一、层次分析法的基本步骤:
角度一:
实际问题——分解——>多个因素——建立——>层次结构—
—确定——>诸因素的相对重要性——计算——>权向量—
—判断——>综合决策
角度二:
建立层次结构模型——>构造判断矩阵——>层次单排序——>一致性检验——>层次总排序。
二、几个理解的重点
1.正反矩阵
注意:


这里想了下,用最大特征根的特征向量替代A,可能是为了最大限度的保存原始数据(A)的信息量(不确定。。。)
3.一致性检验

一致性检验,具体还要涉及组合一致性检验。
三、MATLAB实现
这里先是搜的资料,看到这段代码,代码写得很清晰,这里直接贴在这里。
clc;
clear;
A=[1 1.2 1.5 1.5;
0.833 1 1.2 1.2;
0.667 0.833 1 1.2;
0.667 0.833 0.833 1];
%因素对比矩阵A,只需要改变矩阵A
[m,n]=size(A); %获取指标个数
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
R=rank(A); %求判断矩阵的秩
[V,D]=eig(A); %求判断矩阵的特征值和特征向量,V特征值,D特征向量;
tz=max(D);
B=max(tz); %最大特征值
[row, col]=find(D==B); %最大特征值所在位置
C=V(:,col); %对应特征向量
CI=(B-n)/(n-1); %计算一致性检验指标CI
CR=CI/RI(1,n);
if CR<0.10
disp('CI=');disp(CI);
disp('CR=');disp(CR);
disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');
Q=zeros(n,1);
for i=1:n
Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
end
Q %输出权重向量
else
disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
end
这里是对AHP的一个初步的认识,之后还要深入学习,到时候再继续总结。
#############2016-10-11补更#######################
今天交流群有人问起AHP的一个问题,不太会,就回来再次复习一下,又学到一点知识。看看之前写的,感觉好乱。。。也不删除了,就当个预备知识和。。娱乐吧。
这里主要写下一些要点和细节。
一、AHP流程

1.建立层次结构模型

2.构建Z-C判断矩阵,设为A。
这里我们要确定准则层C中,各个因素的权重,为此我们要计算判断矩阵A的最大的特征值及其特征向量。
此时,我们要对A进行一致性检验,只有A为一致阵(关于一致阵,前文有说明)或者其不一致程度在一个特定范围内时,才能将其特征根对应的特征向量作为被比较因素的权量。
一般情况下,矩阵A是不一致的,所以我们此时要进行一致性检验(具体在前文也有说明)。
通过一致性检验后,就计算得到A的最大特征值及其对应的特征向量,这个特征向量即为各个准则的权重。

3.构建C-P矩阵,层次单排序。


对应的特征向量矩阵如下:

这个矩阵的每一行代表一个候选人的在健康,知识业务等六个方面的权重大小。
4.构建Z-P矩阵,层次总排序,决策。

总的来说AHP还是那句,先分解再综合。拿上面的例子来说,我要从三人中选一名领导,那么我通过6个不同的角度来为这三人打分,首先确定这6个角度在你心目中的比重大小(Z-C),之后再通过对比看三人分别在这6个角度的得分(C-P)。最后再和对应角度的权重相乘(Z-P),就得到总的分数,排序,作出决策。
层次分析模型(AHP)及其MATLAB实现的更多相关文章
- 2017 年“认证杯”数学中国数学建模网络挑战赛 C题思路讲解
之前有小伙伴私信我叫我说说这次比赛C题的思路,怎么写的,我就写篇博客说说吧,仅供参考! 针对C题,该题目比较综合,是一个成熟的数模赛题,与国赛的相似性较高.一般而言,第一问难度较低,题目要求进行数据挖 ...
- 层次分析法、模糊综合评测法实例分析(涵盖各个过程讲解、原创实例示范、MATLAB源码公布)
目录 一.先定个小目标 二.层次分析法部分 2.1 思路总括 2.2 构造两两比较矩阵 2.3 权重计算方法 2.3.1 算术平均法求权重 2.3.2 几何平均法求权重 2.3.3 特征值法求权重 2 ...
- [matlab] 21.灰色预测、线性回归分析模型与最小二乘回归 (转载)
灰色预测的主要特点是只需要4个数据,就能解决历史数据少,序列的完整性以及可靠性低的问题,能将无规律的原始数据进行生成得到规律性较强的生成序列,易于检验 但缺点是只适合中短期的预测,且只适合指数级增长的 ...
- 层次分析法(Analytic Hierarchy Process,AHP)
昨天晚上室友问我什么是层次分析法?我当时就大概给他介绍了一下,没有细讲. 今天我仔细讲讲这个. 层次分析法是运筹学里面的一种方法,是讲与决策总是有关的元素分解成目标.准则.方案等层次,在此基础上进行定 ...
- ahp层次分析法软件
http://www.jz5u.com/Soft/trade/Other/58808.html 权重计算 归一化 本组当前数 - 本组最小 / 本组最大-本组最小 http://blog.csdn.n ...
- 层次分析法MATLAB
输入成对比较矩阵,输出权重值和一致性检验结果. disp('请输入判断矩阵A(n阶)'); A=input('A='); [n,n]=size(A); x=ones(n,100); y=ones(n, ...
- 数模学习笔记(四)——AHP
1.层次分析法是对复杂.较为模糊的问题作出决策的简易方法. 2.步骤: (i)建立递阶层次结构模型:最高层(目标层),中间层(准则层),最底层(措施层) (ii)构造出各层次中的所有判断矩阵 各准则在 ...
- matlab GUI界面编程总结
去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...
- Matlab绘图函数一览
要查看Matlab所有绘图函数,请从Matlab主界面菜单查看“绘图目录”,或从Matlab帮助文档查看“Types of MATLAB Plots”(在线版本).本文的图和英文解释摘自Matlab帮 ...
随机推荐
- Excel中的表单控件和active控件
EXCEL中有两种控件:表单控件和active控件 表单控件是excel5和excel95开始使用的,从excel97开始,active控件开始出现 关于表单控件和active控件的区别和使用范围,网 ...
- FireFox背景亮度修改
安装stylish 输入:body{filter: brightness(80%);}
- HDUOJ-----(1162)Eddy's picture(最小生成树)
Eddy's picture Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- ajax的data传参的两种方式
ajax的data传参的两种方式 本文为转载. 1.[javascript] view plain copy /** * 订单取消 * @return {Boolean} 处理是否成功 */ func ...
- XX宝面试题——JS部分
1.sessionStorage .localStorage 和 cookie 之间的差别 sessionStorage 和 localStorage 是HTML5 Web Storage API 供 ...
- HDU 4122
Alice's mooncake shop Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- Java多线程-新特征-锁(上)
在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks 包下面,里面有三个重要的接口 ...
- word2013设置页面边框
如图:
- BZOJ3689 异或之
我们需要知道一个事实,trie树上是可以要求第k大的! 我们每个节点记个size值然后像其他数据结构一样维护就可以了 然后我们再搞个priority_queue什么的就好了,注意每个值会出现两次只要记 ...
- linux修改系统时间和linux查看时区、修改时区的方法
一.查看和修改Linux的时区 1. 查看当前时区命令 : "date -R" 2. 修改设置Linux服务器时区方法 A命令 : "tzselect" 方法 ...