一个经典的层次分析法的结构图如下:

  准则层的每个指标均与措施层的每个指标都具有联系和比重。在措施层的维度较多时,可能出现的情况是

准则层判断矩阵

费用 饮食 旅途
费用 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. 【人类高质量层次分析法教程】1分钟实现AHP+矩阵一致性调整

    [视频教程]1分钟实现AHP+矩阵一致性调整 课程简介 视频教程 指标体系的确定.专家咨询及数据整理实操 AHP分析+矩阵一致性调整 群决策 资源获取 课程简介 首先说明一下我设计本次课程的目的,目前 ...

  2. 基于层次分析法与熵权法的主客观组合赋权模型(原创:小青龙)

    基于层次分析法与熵权法的主客观组合赋权模型 组合赋权大家可以尝试进行改变,一个主观一个客观.(原创:小青龙) 简介 ​ 权重是用来衡量总体中各单位标志值在总体中作用大小的数值, 用来描述单因子在因子集 ...

  3. 数学建模第一讲:层次分析法

    数学建模第一讲:层次分析法 笔记大部分由观看[强烈推荐]清风:数学建模算法.编程和写作培训的视频课程整理出: 视频链接:https://www.bilibili.com/video/BV1DW411s ...

  4. 层次分析法——确定指标权重、解决评价类问题

    "评价类问题可以用打分解决." 譬如我们想对A.B.C三个景点进行评分,若题目没给数据可查阅文献(显得专业)得到关于景点评分的几个指标,显然,不同指标对景点的评价高低影响程度不同, ...

  5. 【数学建模学习】matlab实现评价模型——层次分析法(AHP)

    目录 1概述 2算法实现流程 3实例 4matlab实现层次分析法 5计算结果 1概述 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之 ...

  6. 1 层次分析法(The analytic hierarchy process, AHP)

    1.层次分析法(The analytic hierarchy process, AHP) 1.1 层次分析法模型部分 建模比赛最基础模型之一,主要解决评价类问题(eg.选择哪种方案好.哪位运动员或者员 ...

  7. 数学建模算法总结——04层次分析法

    一.层次分析法的应用 题目分类: 评价类(评价.分类.排序) 特征: 合理地将定性与定量的决策结合起来,按照思维.心理的规律把决策过程层次化.数量化. 层次分析法的三大典型应用 (1)用于最佳方案的选 ...

  8. 【数学建模】清风视频笔记1、层次分析法

    层次分析法 主要用于解决评价类问题. 例子: 小明最关心大学里的四个方面(学习氛围-0.4,就业前景-0.3,男女比例-0.2,校园景色-0.1)括号里面的数值表示小明认为的重要性程度(权重,其和为1 ...

  9. 层次分析法 你真的懂了吗?(完更)

    层次分析法 (The analytic hierarchy process,简称AHP)(hierarchy n. 层级:等级制度) 建模中最基础的方法之一,主要用于解决评价类问题. 评价类问题: 举 ...

最新文章

  1. [react] React怎样引入svg的文件?
  2. mybatis学习(46):二级缓存被刷新的情况
  3. 中国西北大学和北京大学的研究结果是否将终结CAPTCHA验证码时代?
  4. 滑动返回-SwipeBackLayout
  5. 03-NIO通讯模型
  6. eclipse新建tomcat server但是总是报404的解决方法
  7. 2022年 预训练的下一步是什么?
  8. [转]VC工程文件说明
  9. 双本振双输出后接八切一影响其它端口信号
  10. 5gh掌上云计算认证不通过_华为云计算认证考试好考吗?我考华为云计算HCIE的经验分享...
  11. 4刀最多切割一个正方体为多少块
  12. 手机的1G,2G,3G和4G区别识记
  13. COSO内部控制框架
  14. DAYTIME(daytime可数吗)
  15. 06年及以前韩国星际职业联赛及选手资料
  16. linux挂载的硬盘为ro,remount成rw出错问题解决
  17. 请按照以下要求设计一个学生类Student,并进行测试,要求如下:
  18. 如何在手机上阅读caj格式论文
  19. python 从大图中找小图
  20. java闪光的星星_基于JavaScript实现飘落星星特效

热门文章

  1. 韦东山 Linux开发板,从零开始构建bootloader(基于韦东山JZ2440V3开发板)
  2. GVoice错误码20481
  3. split和slice方法
  4. 视频端子的种类及解说
  5. 云服务器的远程,云服务器远程连接登陆
  6. 求指教:报错KeyError: “None of [Index([‘2022/1/1 0:00:00‘, ... ],\n dtype=‘object‘] are in the [index]“
  7. 推荐的Python书籍
  8. javaMail SMTPSendFailedException: 554 DT:SPM 163 smtp4
  9. 联想ERP项目实施案例分析(2):项目定义
  10. java将cst时间格式_CST 时间格式转换成普通的时间格式yyyy-MM-dd HH:mm:ss