当前位置: 首页 > news >正文

层次分析法

一.介绍

一种系统性的,多准则的分析方法,将复杂的问题分解为不同的层次结构,通过两两比较和判断,来确定各要素的相对重要性,并为最终决策提供定量依据

二.步骤

1.建立层次结构模型

将问题分解为目标层、准则层和方案层

  • 目标层:只有一个元素,是决策要解决的问题
  • 准则层:实现总目标所涉及的中间环节,可以是多个层级(子准则)。这些是衡量方案优劣的指标或标准
  • 方案层:为实现目标而可供选择的各种措施和方案

示例:选择最佳的旅游地

  • 目标层:选择最佳目的地
  • 准则层:景色、费用、饮食、住宿、交通
  • 方案层:目的地A、目的地B、目的地C

2.构建判断矩阵

从层次结构模型的第二层开始,对于从属于上一层每个因素的同一层诸因素,采用两两比较的方法,使用1-9标度法来构造判断矩阵。

1-9标度法中数值越高表示该因素比另外一个因素更重要(具体上网找)

对于准则层,比较各准则对于目标的重要性(比如最佳目的地,比较景色和费用等的相对重要性)

构造的判断矩阵可能如下:

景色费用饮食住宿交通
景色15342
费用1/511/21/21/3
饮食1/32121/2
住宿1/421/211/2
交通1/23221

同理,需要为每个准则下的方案层构建判断矩阵

比如:

风景目的地A目的地B

目的地C

目的地A152
目的地B1/511/7
目的地C1/271

注意判断矩阵一般都是行比列的,例如上表格中第2行第3列为5,表示在风景这个准则下,目的地A比目的地B的重要性为5,说明认为目的地A的风景比目的地B的风景更重要(在1-9标度法中为明显重要)

写到这里,笔者就干脆把1-9标度法也写出来了(哈哈哈)

1-9标度法
标度含义
1两个元素相比,具有同样的重要性
3两个因素相比,一个因素比另一个因素稍重要
5两个因素相比,一个因素比另一个因素明显重要
7两个因素相比,一个因素比另一个强烈重要
9两个因素相比,一个因素比另一个因素极端重要
2、4、6、8上述相邻判断的中间值,表示重要性介于周围两个奇数中间

3.层次单排序一级一致性检验

这一步的目的是计算每一个判断矩阵的权重向量,并检验判断的逻辑一致性

1.计算权重向量

方法有几何平均法、算术平均法、特征向量法

  • 几何平均法:计算判断矩阵每一行元素的几何平均数M_{i} = \sqrt[n]{\prod_{j=1}^{n}a_{ij}},其中a_{ij}为判断矩阵的第i行第j列的值。然后对几何平均数向量M = (M_{1},M_{2},...,M_{n})^{T}进行归一化处理得到权重W_{i} = \frac{M_{i}}{\sum_{j=1}^{n}M_{j}},得到W =( W_{1},W_{2},...,W_{n})^{T}即为该矩阵的权重向量
2.一致性检验

由于判断矩阵是人为构造的,可能存在逻辑错误,比如A比B重要,B比C重要,C比A重要,但是按照逻辑应该是A比C重要

第一步计算该判断矩阵的最大特征值\lambda _{max}

第二步计算一致性指标CI = \frac{\lambda _{max} - n}{n-1}  ,其中n为判断矩阵的行数

第三步查询平均一致性指标RI,该值通过大量实验得到,是一个定值

第四步计算一致性比率CR = \frac{CI}{RI}  ,当CR<0.1时认为判断矩阵的一致性是可以接受的。反之说明判断矩阵的一致性偏差太大,要重新调整该判断矩阵中的标度值,直到满足一致性检验为止

4.层次总排序及其一致性检验

计算各层元素对系统总目标的合成权重,并进行排序

  • 层次总排序: 从上到下逐层进行。

    • 假设准则层C包含m个因素 C₁, C₂, ..., C_m,其对于总目标A的权重分别为 a₁, a₂, ..., a_m

    • 方案层P包含n个方案 P₁, P₂, ..., P_n,它们对于准则C<sub>j</sub>的权重分别为 b_{1j}, b_{2j}, ..., b_{nj} (j=1,2,...,m)。

    • 则每个方案P<sub>i</sub>对总目标A的最终权重为:
      W_{P_i} = a₁ * b_{i1} + a₂ * b_{i2} + ... + a_m * b_{im}

    • 最终,权重最高的方案即为最优方案

  • 总排序一致性检验(通常可省略):
    这一般是学术上的严格要求。在实际应用中,如果每个单排序的一致性都已通过(CR<0.1),通常认为总排序也具有满意的一致性

http://www.dtcms.com/a/360497.html

相关文章:

  • Redis实现短信登录
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘SQLModel’问题
  • 37. 解数独
  • 解锁Tensor Core性能:深入探索CUDA Warp矩阵操作
  • Dify构建AI应用
  • FART 主动调用组件深度解析:破解 ART 下函数抽取壳的终极武器
  • #Datawhale 组队学习#8月-工作流自动化n8n入门-3
  • 第七章 使用角色和Asible内容集合简化Playbook
  • 4.4 光照(4) - 高光反射
  • 硬件工程师成长之路:从入门到精通的技术旅程
  • [Plecs基础知识系列]建立自定义模块/子系统(Subsystem)
  • C++ 面试高频考点 力扣 69. x 的平方根 二分查找 题解 每日一题
  • Linux网络socket套接字(中)
  • 切片语法[::-1]及其可用的类型
  • 基于单片机智能鞋柜/智能鞋橱/智能鞋盒
  • Linux - #操作系统概念 #权限
  • 获取某天的零点日期
  • Java 异常处理全解析:从基础到实践
  • Rust 登堂 之 枚举和整数(八)
  • OpenCL C++ 平台与设备
  • 集合-单列集合(Collection)
  • DrissionPage 实战:动态 IP 代理与百度翻译 API 数据抓取
  • LeetCode算法日记 - Day 27: 计算右侧小于当前元素的个数、翻转对
  • Linux wlan 之网络问题定位分析 实例一
  • 如何确定虚拟机的IP
  • Qt QML连接数据库如何解决重复创建连接问题
  • 【嵌入式】【电机控制】基础知识列表
  • K8s调度核心:从Pod分配到节点优化
  • MATLAB R2010b系统环境(四)MATLAB帮助系统
  • LeetCode 每日一题 2025/8/25-2025/8/31