数学建模 评价类问题, 层次分析法(AHP)

十大模型

在这里插入图片描述

评价类问题

任何评价类模型都是有主观性的
在这里插入图片描述在这里插入图片描述在这里插入图片描述

确定评价指标,形成评价体系以选择最佳方案

知网找相关文献 在这里插入图片描述在这里插入图片描述
找不到文献就小组头脑风暴

层析分析法出场

层次分析法提供了一个很好的把定性问题定量化分析的方法,它本质上是一种思维方式,把复杂的问题拆解为多个影响因素的定量分析,克服了决策者主观判断的缺点,利用AHP可以进行更有效,高效和可靠可行的决策。

他的关键是把人类的判断转化为两两之间重要程度的比较上,通过两两比较的方法确定出所有影响因素的相对重要程度的总排序,从而把难于量化的定性判断量化为重要程度。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
层次分析法的判断矩阵(正互反矩阵)

它是一个两两比较矩阵
在这里插入图片描述
在这里插入图片描述
一致矩阵
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在使用判断矩阵求权重之前,必须对其进行一致性检验

在这里插入图片描述
线代中,一致矩阵就是要所有元素大于0,主对角线元素全为1,各行成倍数关系的方阵

显然,rank肯定是1,只有1个非零特征值,因为所有特征值的和等于迹,所以这个非零特征值就是 n, 对应特征值实际上就是一致矩阵的第一列

A = [1,2,4;
    1/2,1,2;
    1/4,1/2,1]
[V,D] = eig(A)  % 求出A的特征值D和特征向量V
A*[1;1/2;1/4] - 3*[1;1/2;1/4]   % 验证[1;1/2;1/4]是否为特征值3对应的特征向量,即上图的最后一行,实际上就是一致矩阵的第一列

输出结果

>> EIG_consistent_matrix

A =

    1.0000    2.0000    4.0000
    0.5000    1.0000    2.0000
    0.2500    0.5000    1.0000


V =

   -0.9631    0.8729         0
    0.2408    0.4364   -0.8944
    0.1204    0.2182    0.4472


D =

   -0.0000         0         0
         0    3.0000         0
         0         0         0


ans =

     0
     0
     0

>> 

在这里插入图片描述在这里插入图片描述

a = [1:1:8]
b = []
for i = 1:size(a,2) % 列数
    A = [1,2,a(i);1/2,1,2;1/a(i),1/2,1]
    b = [b,max(eig(A))]
end
plot(a,b)
>> PPT_1

a =

     1     2     3     4     5     6     7     8


b =

     []


A =

    1.0000    2.0000    1.0000
    0.5000    1.0000    2.0000
    1.0000    0.5000    1.0000


b =

    3.2174


A =

    1.0000    2.0000    2.0000
    0.5000    1.0000    2.0000
    0.5000    0.5000    1.0000


b =

    3.2174    3.0536


A =

    1.0000    2.0000    3.0000
    0.5000    1.0000    2.0000
    0.3333    0.5000    1.0000


b =

    3.2174    3.0536    3.0092


A =

    1.0000    2.0000    4.0000
    0.5000    1.0000    2.0000
    0.2500    0.5000    1.0000


b =

    3.2174    3.0536    3.0092    3.0000


A =

    1.0000    2.0000    5.0000
    0.5000    1.0000    2.0000
    0.2000    0.5000    1.0000


b =

    3.2174    3.0536    3.0092    3.0000    3.0055


A =

    1.0000    2.0000    6.0000
    0.5000    1.0000    2.0000
    0.1667    0.5000    1.0000


b =

    3.2174    3.0536    3.0092    3.0000    3.0055    3.0183


A =

    1.0000    2.0000    7.0000
    0.5000    1.0000    2.0000
    0.1429    0.5000    1.0000


b =

    3.2174    3.0536    3.0092    3.0000    3.0055    3.0183    3.0349


A =

    1.0000    2.0000    8.0000
    0.5000    1.0000    2.0000
    0.1250    0.5000    1.0000


b =

    3.2174    3.0536    3.0092    3.0000    3.0055    3.0183    3.0349    3.0536

>> 

在这里插入图片描述
可以看到A为下面这个矩阵时一致性最好

A =

    1.0000    2.0000    4.0000
    0.5000    1.0000    2.0000
    0.2500    0.5000    1.0000

在这里插入图片描述在这里插入图片描述

然后终于要求解打分的权重求解方法了

评价类问题通过打分的方式求解,打分选定了几个指标,那么每个指标到底占多少权重,不好定量确定,可以通过层次分析法科学地计算权重。

首先把所有指标两两比较,写出判断矩阵,然后检查判断矩阵的一致性,即最大特征值和n的差别程度,定量是用 C R = C I R I CR=\frac{CI}{RI} CR=RICI和0.1比较。

经过检验,如果判断矩阵就是一致矩阵(最大特征值就等于n),那么每个指标在所有方案的权重直接使用第一列的归一化数据就可以,因为每一列归一化计算结果是一样的!!这是一致矩阵本身特性决定的。在这里插入图片描述

如果判断矩阵不是一致矩阵但是一致性检验通过了(CI<0.1),则有下面三种方法求权重:

如何调整判断矩阵使之满足一致性检验

如果没通过一致性检验,则需要调整判断矩阵
在这里插入图片描述

1. 算术平均法

这时候每一列归一化结果就不一样了
在这里插入图片描述在这里插入图片描述
抽象一点总结
在这里插入图片描述

2. 几何平均法

在这里插入图片描述

3. 特征值法

他的思想就是模仿一致性矩阵,非常好理解
在这里插入图片描述

每一个指标关于所有方案的最后的判断矩阵:

在这里插入图片描述
每一个指标关于所有方案的最后的计算结果
在这里插入图片描述
所有指标的判断矩阵
在这里插入图片描述

disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A);
% % % % % % % % % % % % %方法1: 算术平均法求权重% % % % % % % % % % % % %
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A ./ SUM_A;
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))
% % % % % % % % % % % % %方法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);
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

输出

请输入判断矩阵A
A=[1 1/2 4 3 3;2 1 7 5 5;1/4 1/7 1 1/2 1/3;1/3 1/5 2 1 1;1/3 1/5 3 1 1]
算术平均法求权重的结果为:
    0.2623
    0.4744
    0.0545
    0.0985
    0.1103

几何平均法求权重的结果为:
    0.2636
    0.4773
    0.0531
    0.0988
    0.1072

特征值法求权重的结果为:
    0.2636
    0.4758
    0.0538
    0.0981
    0.1087

一致性指标CI=
    0.0180

一致性比例CR=
    0.0161

因为CR<0.10,所以该判断矩阵A的一致性可以接受!

在这里插入图片描述

最终的权重矩阵
在这里插入图片描述
计算各个方案的得分
在这里插入图片描述在这里插入图片描述
这里最好用excel计算,简单的多
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

AHP的一些应用

在这里插入图片描述在这里插入图片描述

AHP的局限性

使用AHP方法,则不能使用太多评价指标,过多会导致判断矩阵很难满足一致性检验,导致无法计算权重
在这里插入图片描述

练习题目

在这里插入图片描述

总结
离建模国赛只有7天了,今天花了三个小时把层次分析法学习了,清风老师的资料确实非常有效,钱花的很值得,非常感谢他,代码和理论都特别好,明天继续学习其他模型,加深对建模的理解,希望能拿个好成绩

ps: 最后遗憾拿了国三,D题工矿曲线,告诫大家不要过于沉迷在写代码和解题上,论文是唯一呈现载体(附件的源代码和图片等不一定有人看),方案的创新和高大上,以及讲故事写问文章的能力是一样重要的。本人离提交作品还剩半小时还在颤抖着双手攻坚最后一点代码,结果我们队的方案不够高级,论文不够优美,品尝了遗憾的滋味······

  • 22
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
层次分析法(Analytic Hierarchy Process,AHP)是一种系统性的层次结构分析方法,可以用于处理多目标决策问题。下面是使用AHP进行画图及比较矩阵的步骤: 1.建立层次结构:将问题分解为若干层次,确定层次之间的关系,形成一个层次结构。 2.构造比较矩阵:对于同一层次的各个因素进行两两比较,得到一个比较矩阵。比较矩阵的元素为两个因素之间的相对重要性,通常采用1-9的尺度进行评价,其中1表示两个因素同等重要,9表示一个因素比另一个因素重要程度是另一个因素的9倍。 3.计算权重:通过计算比较矩阵的特征向量,可以得到每个因素的权重,即其在整个层次结构中的重要程度。特别地,对于AHP来说,特征向量需要进行归一化处理,使其元素和为1。 4.一致性检验:检验比较矩阵的一致性,即比较矩阵是否符合一定的数学规律。如果比较矩阵的一致性不好,需要进行调整,直到比较矩阵的一致性得到满意的结果。 5.绘制层次结构图:根据层次结构及各因素的权重,绘制出层次结构图。 6.进行灵敏度分析:对于各因素的权重进行不同的假设,分析结果的变化情况,以得到对于不同假设情况下的最优决策。 需要注意的是,AHP方法在实际应用中需要进行多次比较矩阵的构造,每次构造的比较矩阵都需要进行一致性检验。此外,选择合适的尺度和正确的比较是比较矩阵构造的关键。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值