数学建模 层次分析法

简介: 数学建模 层次分析法

层次分析法

方法概述

  1. 层次分析法是一种针对多目标、多准则问题的决策方法
  2. 特点:层次化、数量化

    主要应用场景

  3. 选择最佳方案
  4. 评价类
  5. 指标体系的优选

层次分析法相关概念

1. 将问题条理化、层次化,建立层次结构模型

(1)最高层(目标层Objective)--- 只有一个元素:决策目标(选择出最终的目标)。
(2)中间层(准则层Criterion)--- 考虑的因素,决策的准则、子准则(考虑选择的要求,因素)。
(3)最底层(方案层Plan)--- 决策时的备选方案、措施(提供几个可行的方案,进行选择评分)。

2. 层次分析法要解决的问题: 权重

求出最底层对最高层的相对权重,以此对最底层的方案、措施进行排序,选择最优方案。

3.确定每个因素之间的重要性,进行构造判断矩阵

满意度.png
判断矩阵.png

层次分析法操作步骤

框架图

层次分析法2.png
层次分析法3.png
层次分析法4.png
层次分析法5.png

练习

在这里插入图片描述

test2.png
在这里插入图片描述

权重 P1 P2 P2
C1 0.1047 0.2500 0.7500 0
C2 0.6370 0 0.1667 0.8333
C3 0.2583 0.3333 0.6667 0
(C1.C2 C3准则层)
请输入判断矩阵A  
A=[1 1/5 1/3;
5 1 3;
3 1/3 1]
算术平均法求权重的结果为:
    0.1062
    0.6333
    0.2605

几何平均法求权重的结果为:
    0.1047
    0.6370
    0.2583

特征值法求权重的结果为:
    0.1047
    0.6370
    0.2583

一致性指标CI=
    0.0193

一致性比例CR=
    0.0370

因为CR<0.10,所以该判断矩阵A的一致性可以接受!
% % 注意:在论文写作中,应该先对判断矩阵进行一致性检验,然后再计算权重,因为只有判断矩阵通过了一致性检验,其权重才是有意义的。
% % 在下面的代码中,我们先计算了权重,然后再进行了一致性检验,这是为了顺应计算过程,事实上在逻辑上是说不过去的。
% % 因此大家自己写论文中如果用到了层次分析法,一定要先对判断矩阵进行一致性检验。
% % 而且要说明的是,只有非一致矩阵的判断矩阵才需要进行一致性检验。
% % 如果你的判断矩阵本身就是一个一致矩阵,那么就没有必要进行一致性检验。

disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A);

% % % % % % % % % % % % %方法3: 特征值法求权重% % % % % % % % % % % % %
[V,D] = eig(A);
Max_eig = max(max(D));%最大特征值
[r,c]=find(D == Max_eig , 1);
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
% % % % % % % % % % % % %下面是计算一致性比例CR的环节% % % % % % % % % % % % %
CI = (Max_eig - n) / (n-1); %Max_eig最大特征值
RI=[0 0.0001 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];  %注意哦,这里的RI最多支持 n = 15
% 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
    disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
else
    disp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
end
% % % % % % % % % % % % %方法1: 算术平均法求权重% % % % % % % % % % % % %
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A ./ SUM_A;
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)./n)
% % % % % % % % % % % % %方法2: 几何平均法求权重% % % % % % % % % % % % %
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A .^ (1/n);
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
目录
相关文章
|
7月前
|
Java 测试技术 程序员
2024提升计划|优秀程序员的10大共性特征
在设计代码时,很多开发者并没有考虑到"容易测试"这个因素,可测试性不强。如果工程师在开发逻辑的过程中同时考虑如何轻松地进行测试,那么编写出的代码将具备良好的可读性和简单性,并经过精心设计,而不仅仅是"能工作"而已。测试所得到的主要好处发生在考虑测试和编写测试的时候,而不是在运行测试的时候!
|
算法 数据挖掘 数据处理
基于SPSSPRO实现层次分析法(AHP)
层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。
314 0
|
存储 算法
【系统分析】数值算法——动态规划法
【系统分析】数值算法——动态规划法
122 0
数学建模常用模型03:层次分析法
参加2023年美赛的同学注意啦!为帮助大家在2023年美赛中取得优异成绩,开放2023美赛思路资料群,助力大家2023美赛获奖,点击下方链接获取美赛80G资料,全程免费无套路,抓紧上车 点击链接2023美赛数学建模思路:https://jq.qq.com/?_wv=1027&k=YyTS4dd0
数学建模常用模型03:层次分析法
数学建模:层次分析法(AHP)详细步骤
数学建模:层次分析法(AHP)详细步骤
316 0
数学建模:层次分析法(AHP)详细步骤
|
人工智能 开发者
假设检验基本思想 | 学习笔记
快速学习假设检验基本思想
假设检验基本思想 | 学习笔记
|
索引 NoSQL Redis
自下而上学习法
不写,就无法思考
94 0