ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

matlab自学算法第一篇:层次分析法

2021-09-20 09:34:39  阅读:339  来源: 互联网

标签:特征值 权重 第一篇 矩阵 检验 分析法 matlab 一致 一致性


记录自己学习过程的一篇博客(根据B站清风老师的课程所学所感。自己水平不高,希望各方大佬指点错误)

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

AHP的主要特点是通过建立递阶层次结构,把人类的判断转化到若干因素两两之间重要度的比较上,从而把难于量化的定性判断转化为可操作的重要度的比较上面。在许多情况下,决策者可以直接使用AHP进行决策,极大地提高了决策的有效性、可靠性和可行性,但其本质是一种思维方式,
将复杂问题分解,又将这些分解后的复杂问题按支配关系分别形成递阶层次结构,通过两两比较的方法确定决策方案相对重要度的总排序。整个过程体现了人类决策思维的基本特征。

优点:将复杂问题分解并进行判断与综合,不仅克服了决策者主观判断的缺点,也大大提高了解决问题的效率。

在matlab中,层次分析法主要解决评价类问题。

解决评价类问题,大家首先要想到以下三个问题:

1、我们为什么要评价它,即我们评价的目标是什么?

2、我们为了达到这个目标有几种可选的方案?

3、我们评价这几个方案的标准是什么?

可以用图示方便理解:

 (这里的准则层与方案层之间不一定是一对多或多对多的关系,按照具体情况具体分析)

这里要注意:准则层不易确定,在确定影响某因素的诸因子在该因素中所占的比重时,遇到的主要困难是这些比重常常不易定量化。此外,当影响某因素的因子较多时,直接考虑各因子对该因素有多大程度的影响时,常常会因考虑不周全、顾此失彼而使决策者提出与他实际认为的重要性程度不相一致的数据,甚至有可能提出一组隐含矛盾的数据。

 

介绍完层次分析法的主要流程后,我们主要解决我们要如何以比较客观的数据来判断哪种方案最优,接着我们要引入一致矩阵的概念:

若矩阵中每个元素且满足,则我们称该矩阵为正互反矩阵。

在层次分析法中,我们构造的判断矩阵均是正互反矩阵。

若正互反矩阵(判断矩阵)满足,则我们称其为一致矩阵
注意:在使用判断矩阵求权重之前,必须对其进行一致性检验。

一致性检验:是指对由不同样本计算的各平均值或方差进行检验,即检验我们构造的判断矩阵和一致矩阵是否有太大的差别

矩阵一致矩阵的充要条件

(注意:A为n阶方阵,且r(A)=1,则A有一个特征值为tr(A),其余特征值均为0.因为一致矩阵的各行成比例且不是零矩阵,所以一致矩阵的秩一定为1. )

一致性检验的步骤:

1、计算一致性指标Cl:

 

2、 查找对应的平均随机一致性指标RI

 (需要注意的是:在实际运用中,n很少超过10,如果指标的个数大于10,则可考虑建立二级指标体系,或使用模糊综合评价模型。) 

3、计算一致性比例CR

 注意:在用matlab软件中计算特征值时,如果特征值中有虚数,则比较的是特征值的模长。

 如果CR<0.1,则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。

但是CR > 0.1 如何修正?只需要往一致矩阵上调整一致矩阵各行成倍数关系

如果得出的一致矩阵检验一致性通过后就可以进行求权重了:

一般求权重有三种方法:1、算术平均法求权重;2、几何平均法求权重;3、特征值法求权重

(大家在进行数学建模比赛中使用特征值法用的比较多,那我在这篇文章里也仅记录特征值法吧,但是大家在进行比赛的时候,论文中最好三种方法都用一下,这样可以吸引老师眼球。)

特征值法求权重:

(假如我们的判断矩阵一致性可以接受,那么我们可以仿照一致矩阵权重的求法。)

1、求出矩阵A的最大特征值以及其对应的特征向量

2、对求出的特征向量进行归一化即可得到我们的权重

需要注意:在实际的论文写作中一致矩阵不需要进行一致性检验,只有非一致矩阵的判断矩阵才需要进行一致性检验,并且应该先进行一致性检验,通过检验后再计算权重。

最后根据权重矩阵计算各个方案层的数值,并进行排序,得到方案优解顺序。

这里要注意一下层次分析法的局限性:评价的决策层不能太多,太多的话n会很大,判断矩阵和一致矩阵差异可能会很大。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:特征值,权重,第一篇,矩阵,检验,分析法,matlab,一致,一致性
来源: https://blog.csdn.net/m0_58267655/article/details/120387600

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有