首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >数学建模学习笔记(四)层次分析法(AHP)

数学建模学习笔记(四)层次分析法(AHP)

作者头像
zstar
发布2022-06-14 09:37:28
发布2022-06-14 09:37:28
1.9K0
举报
文章被收录于专栏:往期博文往期博文

应用场景: 1、最佳方案选取 2、评价类问题 3、指标体系的优选

步骤: 1、建立层次结构模型; 2、构造判断(成对比较)矩阵; 3、层次单排序及其一致性检验; 4、层次总排序及其一致性检验;

建立层次结构模型:

最高层(目标层):决策的目的、要解决的问题; 中间层(准则层或指标层):考虑的因素、决策的准则; 最低层(方案层):决策时的备选方案

构造判断矩阵

注:采用两两比较,采用1-9标度方法

很显然,这是对称矩阵

层次单排序及一致性检验:

为什么要一致性检验? 例如:第一行可以看出A=2B,A=4C,那么可以推导出B=2C,那么如果第二行的第三列不是2,就不一致,所以要一致性检验。 一致阵的性质:(转自知乎) 1、对称矩阵,主对角线都为1; 2、其转置也是一致阵; 3、各行成比例,则矩阵秩为1; 4、A的最大特征根(值)为 n,其余的n-1个特征根均等于0; 5、A的任一列(行)都是对应于特征根n的特征向量,AW=nW; (这一块比较难懂,但不影响使用)

例子说明:

层次总排序及其一致性检验:

具体案例:

使用方法: 1、有大牛将整个计算过程浓缩成软件 AHP软件 2、matlab实现

代码语言:javascript
复制
使用方法
(1)构造判断矩阵A
(2)将下文代码复制粘贴到Matlab中即可
例如:A=[1 3 5;0.33 1 3;0.2 0.33,1]

disp('请输入准则层判断矩阵A(n阶)');
A=input('A=');
[n,n]=size(A);
[V,D]=eig(A);%求得特征向量和特征值
            %求出最大特征值和它所对应的特征向量
tempNum=D(1,1);
pos=1;
for h=1:n
    if D(h,h)>tempNum
        tempNum=D(h,h);
        pos=h;
    end
end    
w=abs(V(:,pos));
w=w/sum(w);
t=D(pos,pos);
disp('准则层特征向量w=');disp(w);disp('准则层最大特征根t=');disp(t);
%以下是一致性检验
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59 1.60 1.61 1.615 1.62 1.63];
CR=CI/RI(n);
if CR<0.10
    disp('此矩阵的一致性可以接受!');
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
else disp('此矩阵的一致性验证失败,请重新进行评分!');
end

使用体验待日后补充~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 建立层次结构模型:
  • 构造判断矩阵
  • 层次单排序及一致性检验:
  • 层次总排序及其一致性检验:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档