层次分析法模型原理以及代码实现

news/2024/6/30 1:16:07/文章来源:https://www.cnblogs.com/dlmuwxw/p/18269891

层次分析法是解决评价类问题的一个常用方法,下面让我们来介绍一下这个方法

目录
  • 提出问题
  • 第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构。
    • 1.层次结构实现方法:
  • 第二步:构造判断矩阵
    • 1.构造各个指标之间的判断矩阵
    • 2.构造每个指标下的各个单位的判断矩阵
  • 第三步:进行一致性检验
    • 1.一致性检验的方法
    • 2.一致性检验的代码实现
    • 3.如何对一致性指数进行修正?
  • 第四步:根据权重矩阵计算得分,并进行排序
    • 1.算数平均法求权重
      • (1)计算原理
      • (2)例题
      • (3)代码实现
    • 2.特征值法求权重
      • (1)计算原理
      • (2)代码实现
  • 第五步:汇总指标权重和对应的单位权重,进行加权求和,得出最后的结果

提出问题

第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构。

1.层次结构实现方法:

可使用ppt自带的smartart或者清风老师分享的“亿图图示”。具体过程请观看教学视频

第二步:构造判断矩阵

1.构造各个指标之间的判断矩阵


图示的判断矩阵为最终成品,但在实际过程中我们无法直接比较五个指标的重要性,而是指标之间两两比较,最后才能得到成品

2.构造每个指标下的各个单位的判断矩阵

第三步:进行一致性检验

1.一致性检验的方法

2.一致性检验的代码实现


利用公式计算出CI的值,再通过与RI进行相除,与0.1进行比较。无论是指标间的判断矩阵还是单位间的判断矩阵,都需要通过一致性检验

3.如何对一致性指数进行修正?

第四步:根据权重矩阵计算得分,并进行排序

这一步我们要分别对指标判断矩阵和单位间的判断矩阵进行求权,一共有三种方法可以达到目标
此处我们只介绍算术平均法特征值法

1.算数平均法求权重

(1)计算原理

(2)例题

先对每一列进行归一化,然后把归一化后的值平均起来

(3)代码实现

第一步归一化:sum(A)对矩阵来说,是对每一列的数进行求和,得到一个行向量,再用repmat(Sum_A,n,1),将这个行向量复制n行,这样就可以让原矩阵和这个sum矩阵点除
这一就完成了归一化的操作

第二步:将归一化的各列相加(按行求和)
此过程其实是一个平均的过程,用代码sum(Stand_A,2)即可实现
第三步:将相加后得到的向量中每个元素除以n即可得到权重向量
此过程其实是一个求平均的过程,上一步是把权重进行求和,这一步则是加权

2.特征值法求权重

(1)计算原理


(2)代码实现

第一步:求出矩阵A的最大特征值以及其对应的特征向量
首先,求出特征值和特征向量,并找出最大特征值

之后,找到D中第一个与最大特征值相等的元素的位置,记录它的行和列。利用其列的索引找出最大特征值对应的特征向量

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

第五步:汇总指标权重和对应的单位权重,进行加权求和,得出最后的结果

此步需要利用excel进行计算(F4锁定单元格)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/731931.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI不同技术方向杂谈

AI不同技术方向杂谈 语言≠思维,大模型学不了推理:一篇Nature让AI社区炸锅了 https://mp.weixin.qq.com/s/BgMNITn5e1RGUOHQLKv7yg 大语言模型(LLM)为什么空间智能不足,GPT-4 为什么用语言以外的数据训练,就能变得更聪明?现在这些问题有 「标准答案」了。 近日,一篇麻省…

园区商业模式创新——做增值资产

大家都知道,产业园区最早的商业模式是“卖产品”,到今天,仅靠这一招恐怕难以生存,更多的企业开始找新路子。根据东滩智库多年的产业地产咨询经验,我们总结了四种主流的商业模式,包括做产品利润、做园区服务、做产业孵化和做增值资产。今天我们先来说一说“做增值资产”。…

全网最适合入门的面向对象编程教程:02 类和对象的Python实现-使用Python创建类

本文主要介绍了串口通信协议的基本概念、串口通信的基本流程、如何使用 Python 语言创建一个类和类内成员中属性和方法的定义。全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类 摘要 本文主要介绍了串口通信协议的基本概念、串口通信的基本流…

[C++ Primer] IO库

IO库 IO类为了支持不同种类的IO处理操作,标准库定义了一些IO类型,分别定义在三个独立的头文件中:iostream定义了用于读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型。IO对象不能拷贝或赋值,常以引用方式传递,读写IO对象会改变…

跟着狂神学JAVA

学习JAVA的第一天 一级标题:前面加#空格,以此类推,最多6级标题 标题 三级标题 四级标题 字体 Hello,World! Hello,World! Hello,World! Hello,World! 引用 大于符号 >选择狂神说java,走向人生巅峰分割线 三个 - 或者三个 *图片 ![]+(),()里填写图片路径超链接 []+() 点击…

Linux 提权-LXD 容器

本文通过 Google 翻译 LXD Container – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。0 前言 1 什么是 LXD 和 LXC ? 2 查找 LXD 组权限2.1 手动搜索 LXD 组用户 2.2 LXD 权限提升的提示 2.3 工具枚举 LXD …

Electron使用electron-builder打包时下载electron失败或慢的解决方案

问题 在初次运行打包命令electron-builder的时候,会下载一些依赖,依赖不大,但问题是会一直卡着解决办法 1.下载electron-v31.1.0-win32-x64文件失败 解决办法:直接在淘宝的文件库下载对应版本和打包平台的文件 下载完成后放在C:\Users\Administrator\AppData\Local\electro…

同花顺数据爬取

请求获取数据 import requestsurl = https://q.10jqka.com.cn/index/index/board/all/field/zdf/order/desc/page/2/ajax/1/headers = {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 }respon…

第三次博客作业

前言 这次作业是在后面新的大作业上进行了两次迭代。 1.第七次大作业 这次大作业是模拟家居电路。设备总共分为两个大类:控制设备和受控设备。控制设备有开关,分档调速器,连续调速器,还有这次迭代增加的互斥开关。这些控制设备除了为了保护电路的互斥开关有电阻外,其余均无…

2024年图灵出品的150页《大模型应用开发极简入门:基于GPT-4和ChatGPT》高清PDF下载,小白必备实战指南

本书为大模型应用开发极简入门手册,为初学者提供了一份清晰、全面的“可用知识”,带领大家快速了解GPT-4和ChatGPT的工作原理及优势,并在此基础上使用流行的Python编程语言构建大模型应用。通过本书,你不仅可以学会如何构建文本生成、问答和内容摘要等初阶大模型应用,还能…

MoveIt 三大核心功能

1. 运动学求解,如KDL,Trac-IK, IK-Fast 2. 路径规划:OMPL, CHOMP,SBPL 3. 碰撞检测:FCL, PCD...

LLM大模型: 基于langchain+AutoGPT+向量数据库的Agent实现

钢铁侠都看过吧,男猪脚 tony 只需要语音说话给出指令,AI助手会完成所有的指令,期间完全不需要人干预了,全程自动化,看着是不是很科幻?很过瘾?现阶段,市面上所有的大模型核心功能还是问答,能准确回答用户的提问已经很不错了,那么问题来了:怎么根据用户的指令去干具体…

Deepspeed ZeRO系列算法原理+通信开销详解

原文: https://sumanthrh.com/post/distributed-and-efficient-finetuning/#zero-powered-data-parallelism

win或Liunx查询端口占用语句

查询端口占用语句win在cmd命令行输入命令:netstat -ano | findstr <端口号>Linux输入命令语句:使用netstat netsta -tulpn | grep <端口号>使用lsof lsof -i :<端口号>

点云分割网络---Point Transformer V1

PDF: 《Point Transformer》 CODE: https://github.heygears.com/POSTECH-CVLab/point-transformer 一、大体内容 Point Transformer基于自注意力网络实现网络模型的构建。通过设计针对点云的自注意力层,结合位置编码构建Transformer block,利用自注意力机制,实现包括语义分…

selenium使用记录(一)

一 前言 环境: window 10 python3.10 selenium 4.21 随便记录一些容易犯错或理解错误或比较有意思的一些点 二 内容 1 关于驱动webdiver的下载使用 以前通常是,根据浏览器的版本下载好合适的浏览器驱动到本地电脑,然后使用的时候配置好驱动路径 如下: chromedriver_path…

Google X开源抓取机械臂,无需人工标注就能一眼找到目标零件

机械臂常见,但你见过这么聪明的吗? 从工作台上一眼找到合适的螺母、稳稳拿住。 再送到目标螺杆上,整个动作一气呵成: 即使是相似度极高的两个部件,也能准确区分并“揪”出正确的那个: 要知道,平时我们自己做实验、或是拼装没见过的机械零件时,面对各个相似的零件都可…

生物力学考前补天 (╥_╥)

简答题 能量货币 (1) 细胞中的“能量货币”有哪几种主要形式?最常见的“能量货币”是什么?磷酸根所携带的能量(类似的有鸟苷三磷酸GTP等)。 NADH(或其类似物NADPH):可转移的高能电子形式携带的还原电位(“氧化自己,还原别人”;转移两个电子来还原被氧化的有机化合物;失去…

cython 笔记

数据类型# bool 类型 // bool_type_ptactice.pyx cdef bint a = 123 # 非0 为 真 , 0 为假 cdef bint b = -123 cdef bint c = 0 py_a = a # cdef 定义的内容没法直接在python中直接引用 py_b = b py_c = c// main.py import pyximport pyximport.install(language_level=3…