层次分析模型(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帮 ...
随机推荐
- HTML5自学笔记[ 2 ]新增表单控件和表单属性
新增<input>属性type="email",自动验证,若输入不为邮箱,则不能提交. 新增<input>属性type="tel",在移 ...
- CentOS 6.x安装配置
简述 VMware可以创建多个虚拟机,每个虚拟机上都可以安装各种类型的操作系统.安装方法也有很多种.下面,主要以ISO镜像安装为例,介绍CentOS 6.x的安装过程及相关的参数设置. 简述 创建虚拟 ...
- Hadoop运维操作
1. 处理hadoop的namenode宕机 处理措施: 进入hadoop的bin目录,重启namenode服务 操作命令: cd path/to/hadoop/bin ./hadoop-d ...
- cookie、 sessionStorage 、localStorage之间的区别和使用
1.cookie:存储在用户本地终端上的数据.有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密.一般应用最典型的案列就是判断注册用户是否 ...
- FileUpload上传与下载
后台代码: public string connstr = "server=128.1.3.113;database=test;uid=sa;pwd=pass"; protecte ...
- JAVA-数据库连接【转】
SqlServer.Oracle.MySQL的连接,除了地址和驱动包不同,其他都一样的. 1 public String urlString="jdbc:sqlserver://localh ...
- [整]C#获得程序路径
// 获取程序的基目录.System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径.System.Diagnostics.Process.Get ...
- 统计查询-sql
select --总注册人数(select COUNT(*) from [YYD_Users_RegInfo]) as TotalCount,--pc端注册人数(select COUNT(*) fro ...
- [转]AndroidTolls国内镜像
AndroidDevTools简介 Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具. ...
- 常用三方,Reachability 检测网络连接
常用三方 Reachability 检 测网络连接 用来检查网络连接是否可用:包括WIFI和 WWAN(3G/EDGE/CDMA等)两种工作模式. 可以从Apple网站下载到: http://deve ...