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

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

目录

1概述 

2算法实现流程

3实例

 4matlab实现层次分析法

5计算结果


1概述 

层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。层次分析法的缺陷在于判断矩阵是主观决定的,无法得到一个客观的评价,且指标的数量不可过多(不可大于15)。本文将展示使用层次分析法实现对旅游城市的选取。

matlab是建模的主流,其次为python,R等,matlab相较于python会更加方便,因为自带了很多函数,而python需要自己下载需要的库。但matlab缺陷在于软件过大,启动速度慢。但众所周知,matlab除了不能生孩子,其他功能他都有,下面让我们一起来看看怎么用matlab实现层次分析法吧。

2算法实现流程

首先需要确定评价体系,分为目标层,准则层,方案层,再根据重要程度(可参考以下表格)确定评判指标及方案的判断矩阵的,分别使用算术平均法、几何平均法、特征值法分别求解指标权重(重要程度)和各个方案的得分。将三种方法计算的权重和得分进行取平均,相较于只使用特征值法求权重和得分使得比赛论文更加完整。

标度 含义
1 同样重要性
3 稍微重要
5 明显重要
7 强烈重要
9 极端重要
2,4,6,8 上述两相邻判断的中值
倒数 A和B相比是5,B与A相比是1/5

3实例

请选择合适的指标,为小明选取一个最适合他的旅游城市。

本题需要我们选取最优的旅游城市,首先上网搜集资料确定我主观认为最重要的几个指标,分别为,花费、景色、交通,选取想去的几个城市,分别为:武汉、厦门、南昌。主观确定判断矩阵并检验一致性,判断该矩阵是不是一致矩阵。使用算数平均法、几何平均法、特征值法求指标权重及各个城市得分。最后,根据指标权重及各个城市在各指标方面的得分进行打分。

Step1:建立指标判断矩阵

根据自己对这几个指标的判断确定x-y的权重,如景色-花费的相对权重(景色的重要程度/花费的要程度)为1/2,则花费-景色的相对权重(花费的重要程度/景色的要程度)为2

花费 景色 交通
花费 1 2 1/3
景色 1/2 1 1/5
交通 3 5 1

根据上表观察到对角位置的两个权重相乘为1,这是由于景色相对花费的重要程度为1/2,而反过来花费相对景色的重要程度就为2

Step2:建立城市判断矩阵

在花费方面建立各个城市的判断矩阵如下:

花费 武汉 厦门 南昌
武汉 1 1/3 4
厦门 3 1 5
南昌 1/4 1/5 1

在景色方面建立各个城市的判断矩阵如下:

景色 武汉 厦门 南昌
武汉 1 1/3 2
厦门 3 1 5
南昌 1/2 1/5 1

在交通方面建立各个城市的判断矩阵如下:

交通 武汉 厦门 南昌
武汉 1 2 5
厦门 1/2 1 3
南昌 1/5 1/3 1

Step3:检验判断矩阵一致性

(1)计算一致性指标

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

【数学建模学习】matlab实现评价模型——层次分析法(AHP)表示判断矩阵最大特征值,n表示矩阵大小,即判断矩阵是n行n列的矩阵 

 (2)计算一致性指标CR

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

 RI为平均随机一致性指标,由以下表规定,根据判断矩阵的大小确定RI的值

n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
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

若CR小于<0.1则认为判断矩阵一致性可以接受,否则需要重新调整判断矩阵。若没有通过一致性检验可以通过一个很简单的方法调整,首先看各行各列两两之间是否成比例,若没有成比例按各行各列之间的比例调整即可

一个一致矩阵的例子如下:

景色 杭州 西安 桂林
杭州 1 2 4
西安 1/2 1 2
桂林 1/4 1/2 1

可以看到上面矩阵的各行各列是成比例的,如第二列的元素是第一列元素的两倍,如果不通过一致性检验需要往各行各列都是成比例的方向区调整

Step4:求指标权重及城市在各个指标上的得分

  1. 算数平均法

第一步:将判断矩阵按行相加得到一个1*n的行向量

第二步:将判断矩阵第一行的所有元素除以上述1*n的行向量对应元素,直至最后一行都完成除以1*n的行向量操作,最后得到一个n*n的矩阵

第三步:将第二步得到的n*n的矩阵按列相加得到一个n*1的矩阵,再将每个元素除以n即可得到算术平均法计算的权重向量。

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

我举个例子给大家看:

计算花费的权重使用该公式计算为

分别使用花费与其他各个指标的比值除以其他指标所在列的和得到的权重

使用第一列元素计算权重:

1/(1+1/2+3)

使用第二列元素计算权重:
2/(2+1+5)

使用第三列元素计算权重:
1/3/(1/3+1/5+1)

再将这三个结果取平均值就得到归一化后的结果

(1/(1+1/2+3)+ 2/(2+1+5)+ 1/3/(1/3+1/5+1))/3

(2)几何平均法

第一步:将判断矩阵的元素【数学建模学习】matlab实现评价模型——层次分析法(AHP)按照行相乘得到一个新的列向量

第二步:将新的向量的每个分量开n次方

第三步:对该列向量进行归一化即可得到权重向量

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

 【数学建模学习】matlab实现评价模型——层次分析法(AHP)表示将判断矩阵的元素【数学建模学习】matlab实现评价模型——层次分析法(AHP)按行相乘得到一个新的列向量并开n次方,随后除以新的列向量所有元素之和得到归一化后的权重向量

(3)特征值法

第一步:求出矩阵A的最大特征值以及其对应的特征向量

第二步:对求出的特征向量进行归一化即可得到我们的权重

使用matlab 的eig()函数可以求特征向量矩阵

 4matlab实现层次分析法

注意,当只有两个指标或两个方案需要选择时不可以使用层次分析法。

%输入判断矩阵A
A=[1 1/3 4;
    3 1 5;
    1/4 1/5 1]
%判断判断矩阵A是否通过一致性检验,否则需要修改判断矩阵直到通过一致性检验
[n,n]=size(A)
    [v,d]=eig(A)
    %求最大特征向量
    %v表特征向量,d表示特征值构成的对角矩阵
    max_v=max(max(d))
    %求判断矩阵A是几行几列的矩阵
    %计算一致性指标CI
    CI=(max_v-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]
    %计算一致性比例CR
    disp("一致性比例为")
    CR=CI/RI(n)
    disp(CR)
    if CR<0.10
        disp("因为一致性比例CR<0.1,因此判断矩阵A通过一致性检验")
    else
        disp("因为一致性比例CR>0.1,因此判断矩阵A不通过一致性检验,请重新调整判断矩阵,直至通过一致性检验")
    end
%算数平均法求权重
%将判断矩阵按列求和
%n表示判断矩阵A有n行n列
%[n,n]=size(A)
if CR<0.1
    sum_a=sum(A,1)
    sum_A=repmat(sum_a,n,1)
    %计算未归一化的权重
    weight=A./sum_A
    %计算归一化后的权重
    sum_weight=sum(weight,2)
    weight=sum_weight/n
    disp("算数平均法求的权重或得分为:")
    disp(weight)
    
    %几何平均法求权重
    %判断矩阵按行相乘
    prod_A=prod(A,2)
    %将新的向量开n次方得到未归一化的权重
    prod_A=prod_A.^(1/n)
    %权重归一化
    disp("几何平均法求得权重或得分为:")
    weight_jihe=prod_A./sum(prod_A)
    
    %特征值法求权重
    %v表特征向量,d表示特征值构成的对角矩阵
    %[v,d]=eig(A)
    %max_v=max(max(d))
    %将特征向量归一化
    %find函数用于寻找最大特征值所在的位置
    %max_v表示最大特征值
    [max_r,max_c]=find(max_v,1)
    %v(:,max_c)找到最大特征值对应的列
    e=v(:,max_c)/sum(v(:,max_c))
    disp("特征值法求的权重或得分为:")
    disp(e)
end
%三种方法得出的平均权重
disp("三种方法得出的平均权重或得分为")
disp((e+ weight_jihe+weight)./3)

5计算结果

指标权重及各个城市在各方面的得分为:

指标权重 武汉 厦门 南昌
花费 0.2297 0.2812 0.6424 0.0946
景色 0.1221 0.2297 0.6482 0.1221
交通 0.6482 0.5815 0.3090 0.1095

各个城市的最终得分为:

得分
武汉 0.47
厦门 0.43
南昌 0.11

可以看到武汉得分最高,我主观认为最适合小明去的城市为武汉。

非常感谢各位小伙伴看到这里,有不对的地方欢迎各位小伙伴指正。我写到这里老辛苦了,可怜一下我给我个赞吧,谢谢各位大漂亮大帅逼~文章来源地址https://www.toymoban.com/news/detail-443820.html

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

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

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

相关文章

  • 数学建模综合评价模型与决策方法

    评价方法主要分为两类,其主要区别在确定权重的方法上 一类是主观赋权法,多次采取综合资讯评分确定权重,如综合指数法,模糊综合评判法,层次评判法,功效系数法等 另一类是客观赋权法,根据各指标间的相关关系或各指标变异程度来确定权数,如主成分分析法,因

    2024年04月23日
    浏览(26)
  • 数学建模常用模型(七) :模糊综合评价法

    模糊综合评价法(Fuzzy Comprehensive Evaluation Method)是一种基于模糊数学理论的评价方法,用于处理模糊、不确定或多指标的决策问题。该方法将模糊集合理论与数学模型相结合,通过量化和综合各种评价指标的模糊信息,得出最终的评价结果。 模糊综合评价法在许多领域中应

    2024年01月21日
    浏览(34)
  • 数学建模—评价模型—灰色关联度分析Vs灰色综合评价

            黑色系统:只明确系统和环境的关系,内部未知         白色系统:内部结构、元素、组成、实现机理已知         灰色系统:部分明确系统与环境见关系、系统结构、实现过程。 灰色系统实例:(1)社会经济系统(企业收入、相关因素) 灰色系统理论

    2024年02月04日
    浏览(34)
  • 2023年数学建模:种群竞争模型及其MATLAB实现

    目录 种群竞争模型 MATLAB实现 实战案例:两种昆虫的竞争

    2024年02月11日
    浏览(22)
  • 【数学建模】常用微分方程模型 + 详细手写公式推导 + Matlab代码实现

    微分方程基本概念 微分方程在数学建模中的应用 微分方程常用模型(人口增长模型、传染病模型) 2022.06.19 微分方程,是指含有未知函数及其导数的关系式。解微分方程就是找出未知函数。 微分方程是伴随着微积分学一起发展起来的。微积分学的奠基人Newton和Leibniz的著作中

    2024年02月09日
    浏览(49)
  • 数学建模--Topsis评价方法的Python实现

    目录 1.算法流程简介 2.算法核心代码 3.算法效果展示  

    2024年02月09日
    浏览(25)
  • 数学建模学习(3):综合评价类问题整体解析及分析步骤

    对物体进行评价,用具体的分值评价它们的优劣 选这两人其中之一当男朋友,你会选谁? 不同维度的权重会产生不同的结果 所以找到 每个维度的权重是最核心的问题 0.25 供应商 ID 可靠性 指标 2 指标 3 指标 4 指标 5 1 1 4 100 56 1000 2 2 6 105 55 2000 正向指标处理:即越大越好的指标

    2024年02月16日
    浏览(31)
  • 【数学建模】基于SIR模型实现新冠病毒COVID-19估计附matlab代码

    COVID-19是由严重急性呼吸综合症冠状病毒2型引发的传染病,它最初病毒携带者是一些动物,传染源主要是COVID-19患者,无症状患者。传播方式主要是呼吸道飞沫近距离传播,接触传播,还有一些其他的传播方式待后续科研工作进一步证实。2019年12月,目前尚不知来源的新型冠

    2024年02月10日
    浏览(32)
  • Mathorcup数学建模竞赛第六届-【妈妈杯】B题:车位分布的优化设计与评价(附一等奖获奖论文和matlab代码)

    随着现代社会经济的快速发展,房地产成为国家经济发展中重要的经济增长点之一。而小区内汽车停车位的分布对于小区居民的上下班出行影响很大。请建立数学模型,解决下列问题: 问题1 :分析评判小区汽车停车位分布是否合理的几个关键指标,建立评判车位分布合理的

    2024年02月10日
    浏览(29)
  • 2015年亚太杯APMCM数学建模大赛B题城市公共交通服务水平动态评价模型求解全过程文档及程序

    原题再现    城市公共交通服务评价是城市公共交通系统建设和提高公共交通运营效率的重要组成部分。对于公交企业,管理和规划部门,传统公交车站、线路和换乘枢纽的规划数据只是基于主管部门收集的统计数据和人工盘点。    在自动采集技术日益发展的今天,如果

    2024年02月07日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包