数学建模——层次分析法(AHP)

这篇具有很好参考价值的文章主要介绍了数学建模——层次分析法(AHP)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

引言

在人类社会生活的各个领域以及日常生活中,我们经常遇到一些决策问题,例如购物买钢笔,一般要依据质量、颜色、实用性、价格、外形等方面的因素选择某一支钢笔。买饭,则要依据色、香、味、价格等方面的因素选择某种饭菜。过去人们处理这些问题往往是凭经验,靠主观定性的去分析,随意性较大并且缺少应有的科学性,因而常常造成重大的失误。 层次分析法是将定性问题定量化处理的一种有效手段。面临各种各样的方案,要进行比较、判断、评价、最后做出决策,这个过程主观因素占有相当的比重给数学方法解决问题带来不便,而层次分析法却对这种场景有较好的应用。

基本思想

假设一个场景,我们现在去买一支钢笔,有四支钢笔供你选择,在选择这些钢笔的时候你会考虑一些因素,如质量、颜色、价格、外形、实用性,选择过程如下:

1、将质量、颜色、价格、外形、实用性进行排序

2、将每支钢笔的质量、颜色、价格、外形、实用性进行综合排序

3、决定买哪只钢笔

这就是层次分析法的一个基本思想

基本步骤

第一步:首先要建立模型的一个层次结构

目标层 买钢笔
准则层 质量 颜色 价格 外形 实用
方案层 可供选择的3只钢笔

第二步:构造对比矩阵

在做决策的过程中,我们需要考虑的因素一共有五个,我们需要对它进行一个排序,才能知道我们因素对我们做出决策的影响程度。

那么如何去做呢?

假设因素和因素的比值为

那么我们可以列出一个表格:(其中和是相等的)

如何选取呢? 

这里列举一种评价标度

重要性相同 稍微重要 重要 很重要 绝对重要
1 3 5 7 9

在每个等级之间的值也可以取,如2,4,6,8

 第三步:一致性检验

一致性检验需要计算出几个指标(为特征值,为准则层的因素个数)

1、计算一致性指标

2、计算相应的平均随机一致性指标

为了方便,在这里给出随机一致性指标:

1 2 3 4 5 6 7 8 9
0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45

3、计算一致性比例 

 

结论:当时,认为矩阵的不一致性时可以接受的,反之则需要修改矩阵直至通过检验  

 第四步:计算权重向量

求矩阵最大特征值所对应的向量并进行归一化即可作为权重向量

第五步:层次总排序即求各方案的综合得分

前面我们求的都是在一层中各因素的权重,这个过程称为单层次排序。不妨设准则层权向量,而方案层有个方案可供选择,且每个方案的权向量分别为。那么每个方案对最终目标的影响程度就可以通过下面的式子算出来了。

在最后结果李,得分最高的那一项即为最优方案

代码实现(MATLAB) 

%层次分析法AHP
clear all
clc

%构建方案层的比较矩阵
B1 = [1 2 3; 1/2 1 2; 1/5 1/2 1];
B2 = [1 1/3 1/8; 3 1 1/3; 8 3 1];
B3 = [1 1 3; 1 1 3; 1/3 1/3 1];
B4 = [1 3 4; 1/3 1 1; 1/4 1 1];
B5 = [1 1 1/4; 1 1 1/4; 4 4 1];
B = [B1 B2 B3 B4 B5];

%构建准则层的比较矩阵
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];

%方案层一致性判断
W1 = [];%方案层汇总的权值
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];
for i = 1:5
    [m,n] = size(B(1:3,3*(i-1)+1:3*i));
    [V,D] = eig(B(1:3,3*(i-1)+1:3*i));%求得特征向量和特征根
    %求出最大特征值和它所对应的特征向量
    Max = D(1,1);
    pos = 1;
    for j = 1:n
        if D(j,j) > Max
            Max = D(j,j);
            pos = j;%记录最大特征值的位置
        end
    end
    w = abs(V(:,pos));%找出每个因素的权值
    w = w / sum(w);%归一化
    CI = (Max - n) / (n - 1);
    CR = CI / RI(n);
    if CR < 0.10
        X = ['方案层第',num2str(i),'个矩阵一致性可以接受!','   ','CR:',num2str(CR)];
        disp(X)
    else
        X = ['方案层第',num2str(i),'个矩阵一致性验证失败,请重新进行评分!'];
        disp(X)
    end
    W1 = [W1 w];
end

%准则层一致性判断
[m,n] = size(A);
[V,D] = eig(A);
Max = D(1,1);
pos = 1;
for j = 1:n
    if D(j,j) > Max
        Max = D(j,j);
        pos = j;
    end
end
w = abs(V(:,pos));
w = w / sum(w);
W2 = w;
CI = (Max - n) / (n - 1);
CR = CI / RI(n);
if CR < 0.10
    X = ['准则层矩阵一致性可以接受!','   ','CR:',num2str(CR)];
    disp(X)
else
    X = ['准则层矩阵一致性验证失败,请重新进行评分!'];
    disp(X)
end

%计算每个方案对最终目标的权值
disp('每个方案对最终目标的权值:')
answer = W1*W2

%最后计算结果为:
方案层第1个矩阵一致性可以接受!   CR:-0.14068
方案层第2个矩阵一致性可以接受!   CR:0.0014823
方案层第3个矩阵一致性可以接受!   CR:-2.135e-15
方案层第4个矩阵一致性可以接受!   CR:0.0088488
方案层第5个矩阵一致性可以接受!   CR:-8.5402e-16
准则层矩阵一致性可以接受!   CR:0.01609
每个方案对最终目标的权值:

answer =

    0.2888
    0.2522
    0.4590

模型缺点

(1)它智能从现有的方案中选择出较优的一个,并不能提供出一个新的或者是更好的方案

(2)该方法中的比较,判断以及结果都是比较粗略的,并不适合精确计算

(3)建立层次结构及构成对比矩阵,人的主观因素起很大作用,这是一个无法克服的缺点

以上就是层次分析法的原理及其实践,希望对你有所帮助,感谢观看! 文章来源地址https://www.toymoban.com/news/detail-445609.html

到了这里,关于数学建模——层次分析法(AHP)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    目录 1概述  2算法实现流程 3实例  4matlab实现层次分析法 5计算结果 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。层次分析法的缺陷在于判断矩阵是主观决定的,

    2024年02月04日
    浏览(41)
  • 数学建模学习笔记(1):层次分析法(AHP)(附有详细使用步骤)

    层次分析法是由美国运筹学家T.L.Saaty于20世纪七十年代创立的一种系统分析与决策的综合评价方法,是在充分研究了人类思维过程的基础上提出的较为合理的解决定性问题定量化的处理过程。 层次分析法的主要特点是通过建立递阶层次结构,把人类的判断转化到若干因素两两

    2024年02月07日
    浏览(31)
  • 数学建模——层次分析法

    正互反矩阵:若矩阵中每个元素a(ij)0且满足a(ij)*a(ji)=1。 层次分析法中,我们构造的判断矩阵均是正互反矩阵。 一致矩阵:若正互反矩阵满足a(ij)*a(jk)=a(ik)。 一致矩阵的秩为1。 一致矩阵有一个特征值为n,其余特征值均为0。 判断矩阵越不一致时,最大特征值与n相差越大。 一

    2024年02月16日
    浏览(26)
  • 数学建模:层次分析法

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 将问题条理化,层次化,构建出一个有层次的结构模型。层次分为三类: 目标层,准则(指标)层,方案层 。 比较指标层中不同指标之间的相对重要程度,并且构建一个 成对比较矩阵 。 自行判断两个不同指标的相对重要程

    2024年02月10日
    浏览(29)
  • 五、数学建模之层次分析法

    1.概念 2.例题    层次分析法 (Analytic Hierarchy Process,AHP)是一种多 标准决策分析方法 ,用于帮助人们在面对复杂的决策问题时 进行定量和定性的比较和评估 。它最初由美国运筹学家和管理学家托马斯·萨蒙(Thomas L. Saaty)于20世纪70年代提出,并在后来得到广泛应用。层

    2024年02月07日
    浏览(39)
  • 数学建模学习笔记||层次分析法

    解决评价类问题首先需要想到一下三个问题 我们评价的目标是什么 我们为了达到这个目标有哪几种可行方案 评价的准则或者说指标是什么 对于以上三个问题,我们可以根据题目中的背景材料,常识以及网上收集到的参考资料进行结合,从而筛选出最合适的指标 优先选择知

    2024年01月23日
    浏览(40)
  • 清风老师数学建模笔记——层次分析法

    1.层次分析法的概念;层次分析法(The Analytic Hierarchy Process即 AHP)是由美国运筹学家、匹兹堡大学教授T . L. Saaty于20世纪70年代创立的一种系统分析与决策的综合评价方法,是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。 2.层次

    2024年02月02日
    浏览(32)
  • 数学建模常用模型(三):层次分析法

    层次分析法(Analytic Hierarchy Process,AHP)是一种用于多准则决策分析的方法,由美国运筹学家托马斯·L·赛蒂(Thomas L. Saaty)于1970年提出。它通过对决策问题进行层次化,将复杂的问题拆分为多个层次和准则,并使用定量化的方法进行比较和权重分配,最终得出综合评价和决

    2024年02月13日
    浏览(30)
  • 清风数学建模学习笔记(一)层次分析法

    目录 一、基本介绍 二、利用层次分析法解决评价类问题 2.1判断矩阵 2.2判断矩阵一致性检验  2.3计算权重  2.4算数平均法求权重  2.5几何平均法求权重  2.6特征值求权重 三、总结  层次分析法是评价类模型中的一种常见算法,它是用来根据多种准则,或是说因素从候选方案

    2024年02月16日
    浏览(32)
  • 数学建模(层次分析法 python代码 案例)

    目录 介绍:  模板: 例题:从景色、花费、饮食,男女比例四个方面去选取目的地  准则重要性矩阵:  每个准则的方案矩阵:​  一致性检验:  特征值法求权值: 完整代码: 运行结果:

    2024年04月29日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包