0 前言

最近在做一个集群的项目,涉及到负载均衡问题,其中节点的综合负载评价部分采用经典的层次分析法,项目需要用C++复现。鉴于Python成熟、方便的矩阵操作,先用Python简单复现一下该算法。

1 理论基础

关于AHP层次分析法的材料很多,可以自行查阅,推荐参考文献《高可用集群系统关键技术的研究与实现》第4.2和4.3节关于层次分析法的理论介绍和实例说明。
概括来说,AHP层次分析法主要分为三大步骤:

  1. 求判断矩阵的特征值和特征向量;
  2. 证明判断矩阵的一致性;
  3. 将判断矩阵的特征向量归一化,得到各指标权重。

2 代码实现

基于上述三个步骤,我使用python做了简单实现。

def AHP(A):n = len(A)# 矩阵的行数--待标记的指标个数### 1 求特征值和特征向量λs, ws = np.linalg.eig(A)# 最大特征值λ_max = round(max(λs),4)# 记录λ_max对应的index,然后根据index找到λ_max对应的特征向量wλ_max_idx = np.argmax(λs)# 最大特征值对应的特征向量w_max = ws[λ_max_idx]### 2 一致性判断# n与RI的对应表RI_dict = {1: 0, 2: 0, 3: 0.58, 4: 0.90, 5: 1.12, 6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45}# 计算一致性指标CICI = (λ_max - n) / (n - 1)# 计算随机平均一致性指标RIRI = RI_dict[n]# 计算一致性比率CRCR = CI / RI# 得出一致性判断结论tag = Falseif CR < 0.10:tag = Trueprint("判断矩阵A为一致性矩阵")### 3 特征向量归一化# 归一化的特征向量w_max_ = w_max / w_max.sum()return w_max_

3 参考材料

  1. https://www.cnblogs.com/yhll/p/9967726.html
  2. https://blog.csdn.net/ipip2005/article/details/39546425#

项目实战系列——使用python实现AHP层次分析法相关推荐

  1. 【AHP层次分析法python部分实现】

    提示:仅用到AHP层次分析法的部分功能因此只完成了python的部分实现 目录 前言 一.AHP是什么? 层次分析法的特点: 层次分析法的原理: 二.使用步骤 参考视频 前言 提示:这里可以添加本文要 ...

  2. AHP层次分析法与python代码讲解(处理论文、建模)

    目录 AHP是啥 题目  ①构建阶梯层次结构 ②构建判断矩阵 ④综合算术平均法 .几何平均法.特征值法求权重  方法1:算术平均法求权重 一般步骤  表达式解释 代码实现 方法2:几何平均法求权重 一 ...

  3. AHP层次分析法(Analytic Hierarchy Process)——个人学习笔记

    目录 一.相关知识与例子 二.代码实现 一.相关知识与例子 层次分析法是数学建模过程中最基础的模型之一,主要应用于评价问题.层次分析法是对一些较为复杂.较为模糊的问题作出决策的简易方法,其适用于那些难 ...

  4. AHP层次分析法在水利中的实践技术应用

    原文:AHP层次分析法在水利中的实践技术应用 内容简述: 1.认识 AHP,掌握 AHP 的基本原理,优缺点及建模的步骤.以手算案例的方式,熟 悉层次分析法的计算过程,为后期学习软件夯实理论基础. 2 ...

  5. Matlab基于SEIRD模型,NSIR预测模型,AHP层次分析法新冠肺炎预测与评估分析

    全文链接:http://tecdat.cn/?p=32175 分析师:Jiahui Zhao 新型冠状病毒肺炎COVID-19 给中国乃至全世界都带来了深重的灾难,对世界经济也造成了不可逆的影响(点击 ...

  6. 用AHP层次分析法挑选最佳结婚对象

    为了使文章读起来比较有趣,假设屏幕前的你现在中了彩票头奖,奖金5亿RMB.于是你彻底解放不用再写代码啦,天天开辆法拉利到处玩,来给你介绍对象的媒人踏破家门.经过初赛.复赛.泳装.晚装.才艺展示之后,仍 ...

  7. MATLAB AHP AHP层次分析法code 自写代码 完美运行。 权重设计

    MATLAB AHP AHP层次分析法code 自写代码 完美运行. 权重设计 ID:5150612144581085YouthOG

  8. AHP层次分析法分析流程

    AHP层次分析法分析流程: 一.案例背景 当前有一项研究,想要构建公司绩效评价指标体系,将一级指标分为4个,分别是:服务质量.管理水平.运行成本.安全生产,现在想要确定4个指标的权重. AHP层次分析 ...

  9. 数学建模之AHP层次分析法

    一.定义 层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之上进行定性和定量分析的决策方法.该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国 ...

  10. AHP层次分析法matlab实现

    AHP层次分析法的步骤和matlab实现方法 AHP (Analytic Hierarchy Process)层次分析法是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案 ...

最新文章

  1. ORACLE EXP命令
  2. App 运营的指标具体都有哪些?(二)
  3. 二十万字C/C++、嵌入式软开面试题全集宝典一
  4. Android之自定义View的实现
  5. Windows消息机制详解-5
  6. 【bzoj1565】[NOI2009]植物大战僵尸 【网络流】【最大权闭合子图】
  7. 【linux】——环境变量
  8. iOS 不通过改变url 与web JS 交互
  9. Ubuntu下安装NetBeans步骤和相关问题的解决方法
  10. tensorflow画损失函数的代码_使用TensorFlow编写您的第一个神经网络
  11. 使用节点或Express返回JSON的正确方法
  12. 制作linux镜像时哪些文件时必须打包的,如何将linux系统制作成iso镜像文件?通过Mondo Rescue工具将linux系统制作成ISO镜像...
  13. MATLAB 常用语法、函数
  14. 【学习笔记】Java工程师成神之路-基础篇
  15. w ndows安装程序无法将,windows安装程序无法将windows配置在硬件上运行
  16. 解决谷歌浏览器被篡改主页问题
  17. c++::举例_举例说明:网络
  18. 对于gabor变换和gabor小波变换理解与总结
  19. 云计算 基础服务 iscsi 实现
  20. python setDaemon

热门文章

  1. 使用win10远程控制ubuntu14.04
  2. SpringBoot大数据分析后台管理系统平台
  3. 使用VC++6.0创建.cpp文件工程
  4. java/php/net/python毕业生就业管理系统
  5. 烟雾检测模块ADPD188BI介绍与应用(一)
  6. 微信小程序顶部tab切换
  7. python中返回上一步操作的代码_pycharm最常用的快捷键总结
  8. 跨境电商倍受青睐缘由为何,木瓜移动带你一探究竟
  9. java培训靠谱吗?java培训机构哪个好?
  10. 光纤资料大全之光纤分类