层次分析模型(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帮 ...
随机推荐
- Could not load file or assembly 'System.Web.Mvc' or one of its dependencies. The located assembly's manifest definition does not
因为用了MVC,在本地是没有问题的,但是部署在服务器就出现了这个问题. 出错界面如下图 原因分析:上面的出错提示最后一句话翻译过来.找到的程序集清单定义与程序集引用不匹配.也就是程序引用的程序集版本和 ...
- python中数据的变量和字符串的常用使用方法
1.查看变量类型: a=2 print(a,type(a)) print的用法:在print后面跟多个输出,可以用逗号分隔. 回收变量名,如把a存储不同的数据,你不需要删除原有变量就可以直接赋值 2. ...
- struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)
课时22 基于XML配置方式实现对action的所有方法进行校验 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类 ...
- GFS: Evolution on Fast-forward
GFS: Evolution on Fast-forward by Marshall Kirk McKusick, Sean Quinlan | August 7, 2009 A discussion ...
- [Jquery]焦点图轮播效果
$(function(){ var $next=$(".right"); var $prev=$(".left"); var $list_nu ...
- POJ 2771 二分图(最大独立集)
Guardian of Decency Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 5244 Accepted: 21 ...
- 反质数(Antiprimes)
转载http://www.cnblogs.com/tiankonguse/archive/2012/07/29/2613877.html 问题描述: 对于任何正整数x,起约数的个数记做g(x).例如g ...
- 一模 (2) day2
第一题: 题目大意:给出n种物品和每种物品的件数,求拿k件的方案数.N<=30 解题过程: 1.一开始总想着是组合数学的模型,结果怎么都想不出来..然后写了个爆搜,数据很弱,只有1个点超时. 2 ...
- KING小组
KING——学习小组 小组成员及github地址&博客地址: 张静 https://github.com/loiskris/test.git http://www.cnblogs.com/l ...
- 【转】linux /centos 中OpenSSL升级方法详解
相关软件下载地址 Apache:http://httpd.apache.org/ Nginx:http://nginx.org/en/download.html OpenSSL:http://www. ...