首页 > 其他分享 >层次分析法

层次分析法

时间:2024-07-13 22:18:33浏览次数:14  
标签:特征值 层次 特征向量 矩阵 pos 分析法 一致性 权重

需要评价指标:网络搜索……

问题描述

问题分为三层:目标层,准则层,方案层。

以一个经典的旅游地选取为例,问题得层次结构如下:

Untitled

问题解决步骤

Untitled

正互反矩阵(判断矩阵)

判断矩阵的作用:

对每一层的指标进行打分,得到指标的权重,然后将这些权重用于下一层的指标。

性质 :

\(A_{ij}*A_{ji}=1\)

\(A_{11}=A_{22}=……=1\)

\(A_{ij}>0\)

一致反矩阵:每一行或每一列成比例

引理:n阶一致反矩阵A的特征值\(λ_{max}=n,\)

当且仅当A为正互反矩阵且不一致时,一定满足\(λ_{max}>n.\)

一致性检验步骤:

一致性检验合格的矩阵才能使用,从而获得权重。

1.计算一致性检验指标\(CI=(λ_{max}n)/(n-1).\)

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

3.计算一致性比例\(CR=CI/RI\).(CR<0.1,判断矩阵的一致性可以接受,否则需要修正)

一致矩阵计算权重:

对于每个指标权重的计算有三种方法:

  1. 直接算特征向量(最好)

  2. 算数平均法求权重:

    每列的数据,按列进行归一化。

    算数平均法公式:

    Untitled

  3. 几何平均法求权重:

    有三步:

    第一步:将A的元素按照行相乘得到一个新的列向量

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

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

    几何平均法公式:

    Untitled

对于后两种方法,非一致性矩阵算出的每列的权重可能不同,可以求平均值。

代码

function [w,t] = AHP(A)
%w为准则层特征向量,t为则层最大特征根
%判别矩阵具有完全一致性
[n,n]=size(A); % 得到矩阵的阶数
[V,D]=eig(A); % 求得特征向量和特征值

% 求出最大特征值和它所对应的特征向量
tempNum=D(1,1); % 特征值的初值
pos=1; % 标记的第一个数
for h=1:n
    if D(h,h)>tempNum
        tempNum=D(h,h);
        pos=h; % 最大特征值的位置
    end
end
w=abs(V(:,pos)); % 找最大特征值对应的特征向量
w=w/sum(w); % 归一化处理
t=D(pos,pos); % t指的是最大的特征值
disp('准则层特征向量w=');disp(w);disp('准则层最大特征根t=');disp(t);

% 一致性检验
CI=(t-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 1.60 1.61 1.615 1.62 1.63];
CR=CI/RI(n);
if CR<0.10
    disp('此矩阵的一致性可以接受!');
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
else disp('此矩阵的一致性验证失败,请重新进行评分!');
end

end

标签:特征值,层次,特征向量,矩阵,pos,分析法,一致性,权重
From: https://www.cnblogs.com/cxy1114blog/p/18300837

相关文章

  • 层次分析法
    在MATLAB中计算层次分析法(AnalyticHierarchyProcess,AHP)主要涉及到构建判断矩阵、计算权重向量、进行一致性检验等步骤。以下是一个详细的步骤说明:一、明确问题与构建层次结构明确决策目标:首先,需要明确决策的目标以及相关的因素或准则。构建层次结构:将目标、准则和子准则......
  • 数学建模第一次笔记:层次分析法
    概要最近因为要参加数学建模的比赛,所以用博客来记录自己的数学建模学习过程,也分享出来,希望对大家有用,我的数学建模学习过程如下:1,先有一本数学建模和优秀论文的相关书籍,我的是学校发的。2,接下来便是自学或者跟着网课系统学习(这里推荐后者)3,我是跟着清风学习的数学建模,个人......
  • 【matlab】层次分析算法
    目录一、层次分析算法实现的主要步骤1.1 建立层次结构模型1.2构造成对比较矩阵(判断矩阵)1.3计算权向量并做一致性检验1.4计算组合权向量并做组合一致性检验二、层次分析算法的应用三、MATLAB代码实现        MATLAB中的层次分析算法(AnalyticHierarchyPr......
  • 数学建模——层次分析法 AHP(Python代码)
    层次分析法    层次分析法是由美国运筹学家、匹兹堡大学教授T.L.Saaty于20世纪70年代创立的一种系统分析与决策的综合评价方法,是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。    AHP的主要特点是通过建立递阶层次结......
  • NLP - Softmax与层次Softmax对比
    SoftmaxSoftmax是神经网络中常用的一种激活函数,用于多分类任务。Softmax函数将未归一化的logits转换为概率分布。公式如下:P(y......
  • python 输入文件夹路径,返回所有的层次结构 excel
    importosimportopenpyxlfromopenpyxl.stylesimportFontdefget_folder_structure(root_folder):folder_structure=[]forroot,dirs,filesinos.walk(root_folder):level=root.replace(root_folder,'').count(os.sep)indent=......
  • Python层次密度聚类算法库之HDBSCAN使用详解
      概要HDBSCAN是一种层次密度聚类算法,它通过密度连接性来构建聚类层次结构。与传统的K-Means算法相比,HDBSCAN具有以下几个显著特点:自动确定聚类数量:HDBSCAN能够根据数据自动确定聚类数量,不需要预先指定。适应噪声和异常点:HDBSCAN在聚类过程中能够很好地处理......
  • TCP与UDP详解:层次、区别及应用场景
    TCP和UDP的层次及区别详解所属层次TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议)都属于OSI模型中的传输层(第四层)。在传输层,协议的主要作用是为端到端的通信提供逻辑通信,并确保数据在网络上传输的可靠性和顺序。TCP和UDP的区别......
  • Excel 识别数据层次后转换成表格
    某列数据可分为3层,第1层是字符串,第2层是日期,第3层是时间:A1NAME122024-06-03304:06:12404:09:23508:09:23612:09:23717:02:2382024-06-02904:06:121004:09:231108:09:2312NAME2132024-06-031404:06:121504:09:23162024-06-021712:09:231817:02:23需要正确识别三层数据......
  • 5.3.1_2 二叉树的层次遍历
    ......