层次分析法 方案层判断矩阵阶数不同解决方案
一个经典的层次分析法的结构图如下:
准则层的每个指标均与措施层的每个指标都具有联系和比重。在措施层的维度较多时,可能出现的情况是
准则层判断矩阵
费用 | 饮食 | 旅途 | |
---|---|---|---|
费用 | 1 | 3 | 5 |
饮食 | 1/3 | 1 | 1 |
旅途 | 1/5 | 1 | 1 |
方案层判断矩阵分别为
P1 | P2 | P3 | |
---|---|---|---|
P1 | 1 | 1/3 | 1/3 |
P2 | 3 | 1 | 1 |
P3 | 3 | 1 | 1 |
P4 | P5 | |
---|---|---|
P4 | 1 | 1/5 |
P5 | 5 | 1 |
P6 | P7 | P8 | |
---|---|---|---|
P6 | 1 | 3 | 1 |
P7 | 1/3 | 1 | 1 |
P8 | 1 | 1 | 1 |
上面的情况是最极端的情况(措施层的指标仅与决策层的一个指标相关),而本文针对任何形式的方案层判断矩阵阶数不同。
经典的层次分析法的代码假定方案层判断矩阵阶数相同,所以需要进行一定的修正。在了解代码的运算方式后发现,各个矩阵的计算是独立的,所以对其中一个矩阵进行加阶数(多余的位置全部加1),这样的处理并不影响其他矩阵的运算结果。
使用的文档temp.txt的数据是
1 3 5
1/3 1 1
1/5 1 1
1 1/3 1/3
3 1 1
3 1 1
1 5 1
1/5 1 1
1 1 1
1 3 1
1/3 1 1
1 1 1
MATLAB代码块
clc,clear
fid=fopen('temp.txt','r');
n1=3;n2=3;
a=[];
for i=1:n1
tmp=str2num(fgetl(fid));
a=[a;tmp]; %读准则层判断矩阵
end
for i=1:n1
str1=char(['b',int2str(i),'=[];']);
str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);
eval(str1);
for j=1:n2
tmp=str2num(fgetl(fid));
eval(str2); %读方案层的判断矩阵
end
end
ri=[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);
end
cr1, ts=w1*w0, cr=cr1*w0
对于之前略过的二阶矩阵,可以最后单独求解。
使用的文档temp_2.txt的数据是
1 5
1/5 1
MATLAB代码
clc,clear
fid=fopen('temp_2.txt','r');
n1=2;n2=3;
a=[];
for i=1:n1
tmp=str2num(fgetl(fid));
a=[a;tmp]; %读准则层判断矩阵
end
ri=[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)
cr0
简而言之,删改后的代码块可以仅计算一个矩阵对应的CR值、权重。
层次分析法 方案层判断矩阵阶数不同解决方案相关推荐
- 【人类高质量层次分析法教程】1分钟实现AHP+矩阵一致性调整
[视频教程]1分钟实现AHP+矩阵一致性调整 课程简介 视频教程 指标体系的确定.专家咨询及数据整理实操 AHP分析+矩阵一致性调整 群决策 资源获取 课程简介 首先说明一下我设计本次课程的目的,目前 ...
- 基于层次分析法与熵权法的主客观组合赋权模型(原创:小青龙)
基于层次分析法与熵权法的主客观组合赋权模型 组合赋权大家可以尝试进行改变,一个主观一个客观.(原创:小青龙) 简介 权重是用来衡量总体中各单位标志值在总体中作用大小的数值, 用来描述单因子在因子集 ...
- 数学建模第一讲:层次分析法
数学建模第一讲:层次分析法 笔记大部分由观看[强烈推荐]清风:数学建模算法.编程和写作培训的视频课程整理出: 视频链接:https://www.bilibili.com/video/BV1DW411s ...
- 层次分析法——确定指标权重、解决评价类问题
"评价类问题可以用打分解决." 譬如我们想对A.B.C三个景点进行评分,若题目没给数据可查阅文献(显得专业)得到关于景点评分的几个指标,显然,不同指标对景点的评价高低影响程度不同, ...
- 【数学建模学习】matlab实现评价模型——层次分析法(AHP)
目录 1概述 2算法实现流程 3实例 4matlab实现层次分析法 5计算结果 1概述 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之 ...
- 1 层次分析法(The analytic hierarchy process, AHP)
1.层次分析法(The analytic hierarchy process, AHP) 1.1 层次分析法模型部分 建模比赛最基础模型之一,主要解决评价类问题(eg.选择哪种方案好.哪位运动员或者员 ...
- 数学建模算法总结——04层次分析法
一.层次分析法的应用 题目分类: 评价类(评价.分类.排序) 特征: 合理地将定性与定量的决策结合起来,按照思维.心理的规律把决策过程层次化.数量化. 层次分析法的三大典型应用 (1)用于最佳方案的选 ...
- 【数学建模】清风视频笔记1、层次分析法
层次分析法 主要用于解决评价类问题. 例子: 小明最关心大学里的四个方面(学习氛围-0.4,就业前景-0.3,男女比例-0.2,校园景色-0.1)括号里面的数值表示小明认为的重要性程度(权重,其和为1 ...
- 层次分析法 你真的懂了吗?(完更)
层次分析法 (The analytic hierarchy process,简称AHP)(hierarchy n. 层级:等级制度) 建模中最基础的方法之一,主要用于解决评价类问题. 评价类问题: 举 ...
最新文章
- [react] React怎样引入svg的文件?
- mybatis学习(46):二级缓存被刷新的情况
- 中国西北大学和北京大学的研究结果是否将终结CAPTCHA验证码时代?
- 滑动返回-SwipeBackLayout
- 03-NIO通讯模型
- eclipse新建tomcat server但是总是报404的解决方法
- 2022年 预训练的下一步是什么?
- [转]VC工程文件说明
- 双本振双输出后接八切一影响其它端口信号
- 5gh掌上云计算认证不通过_华为云计算认证考试好考吗?我考华为云计算HCIE的经验分享...
- 4刀最多切割一个正方体为多少块
- 手机的1G,2G,3G和4G区别识记
- COSO内部控制框架
- DAYTIME(daytime可数吗)
- 06年及以前韩国星际职业联赛及选手资料
- linux挂载的硬盘为ro,remount成rw出错问题解决
- 请按照以下要求设计一个学生类Student,并进行测试,要求如下:
- 如何在手机上阅读caj格式论文
- python 从大图中找小图
- java闪光的星星_基于JavaScript实现飘落星星特效
热门文章
- 韦东山 Linux开发板,从零开始构建bootloader(基于韦东山JZ2440V3开发板)
- GVoice错误码20481
- split和slice方法
- 视频端子的种类及解说
- 云服务器的远程,云服务器远程连接登陆
- 求指教:报错KeyError: “None of [Index([‘2022/1/1 0:00:00‘, ... ],\n dtype=‘object‘] are in the [index]“
- 推荐的Python书籍
- javaMail SMTPSendFailedException: 554 DT:SPM 163 smtp4
- 联想ERP项目实施案例分析(2):项目定义
- java将cst时间格式_CST 时间格式转换成普通的时间格式yyyy-MM-dd HH:mm:ss