数学建模 层次分析法

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

层次分析法

方法概述

  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))
目录
相关文章
|
6月前
|
安全
数学建模——建立数学模型(2)
数学建模——建立数学模型(2)
|
6月前
|
算法 定位技术 调度
数学建模——建立数学模型(1)
数学建模——建立数学模型(1)
|
6月前
|
机器学习/深度学习 存储 供应链
【软件设计师备考 专题 】运算基本方法:预测与决策、线性规划、网络图、模拟
【软件设计师备考 专题 】运算基本方法:预测与决策、线性规划、网络图、模拟
101 0
|
6月前
|
机器学习/深度学习 人工智能 算法
评价模型:层次分析法
评价模型:层次分析法
106 0
评价模型:层次分析法
|
算法 C语言
【数学模型】层次分析
【数学模型】层次分析
【数学模型】层次分析
|
算法 数据挖掘 数据处理
基于SPSSPRO实现层次分析法(AHP)
层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。
289 0
|
算法
【系统分析】数值算法——贪心法
【系统分析】数值算法——贪心法
98 0
数学建模常用模型03:层次分析法
参加2023年美赛的同学注意啦!为帮助大家在2023年美赛中取得优异成绩,开放2023美赛思路资料群,助力大家2023美赛获奖,点击下方链接获取美赛80G资料,全程免费无套路,抓紧上车 点击链接2023美赛数学建模思路:https://jq.qq.com/?_wv=1027&k=YyTS4dd0
数学建模常用模型03:层次分析法
数学建模:层次分析法(AHP)详细步骤
数学建模:层次分析法(AHP)详细步骤
295 0
数学建模:层次分析法(AHP)详细步骤