目录

1.层次分析法原理介绍

2.层次分析法建模步骤

3.案例分析

3.1 题目简述

3.2 确定评价指标,建立层次关系

3.3 构造判断矩阵

3.3.1 标度定义

3.3.2 构造判断矩阵

3.4 一致性检验

3.5 层次总排序

4.代码实现


1.层次分析法原理介绍

关于层次分析法的具体原理即详细的步骤以及有很多人发布,可自行搜索查看,以下链接为个人认为较好的两篇:数学建模方法——层次分析法(AHP)_Learning-Deep-CSDN博客_层次分析法列向量归一化计算0. 层次分析法简介层次分析法(Analytic Hierarchy Process,简称AHP)主要是对于定性的决策问题进行定量化分析的方法。举个例子,在日常生活中,我们经常需要进行感性的判断,比如报高考志愿,感觉清华北大都很好,到底要报哪个;再比如去市场买菜,到底是买青椒做青椒炒鸡蛋,还是买黄瓜做黄瓜炒鸡蛋;再比如想去出游,到底是去公园A还是公园B。上面提到的这些问题,都是决策,也叫做评价类...https://blog.csdn.net/limiyudianzi/article/details/103389880?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164386596716780261988153%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164386596716780261988153&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-103389880.pc_search_insert_es_download&utm_term=AHP&spm=1018.2226.3001.4187

【AHP】层次分析法 | 过程解读 案例实践_Fxtack的博客-CSDN博客_ahp分析法完整案例AHP 层次分析法一. AHP 层次分析法介绍AHP 层次分析法简介AHP,即层次分析法(Analytic Hierarchy Process,AHP)是一种系统化的、层次化的多目标综合评价方法。在评价对象的待评价属性复杂多样,结构各异,难以量化的情况下AHP层次分析法也能发挥作用。AHP 基本思想 [1]AHP 把复杂的问题分解为各个组成因素,又将这些因素按支配关系分组形成地递阶层次结构。通过两两比较的方式确定方式确定层次中诸因素的相对重要性。然后综合有人员的判断,确定备选方案相对重要https://blog.csdn.net/weixin_43095238/article/details/108055579?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164386596716780261988153%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164386596716780261988153&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-108055579.pc_search_insert_es_download&utm_term=AHP&spm=1018.2226.3001.4187

2.层次分析法建模步骤

3.案例分析

3.1 题目简述

假定现需要购置一批冰箱,由于市场上冰箱种类参差不齐,其性能及性价比也存在很大差异,现有一批冰箱待选择,请考虑冰箱的容积、功耗、外观、噪声、寿命、价格、保修时间等因素,建立模型,确定性价比最高的购买方案。

量化后冰箱参数:

以冰箱A为基准,若该项性能优于A则其值加1,且每优一级都加1,反之亦然。

容积 功耗 外观 噪声 寿命 价格 保修时间
A 5 5 5 5 5 5 5
B 6 8 3 8 7 9 7
C 2 4 8 2 8 5 10

3.2 确定评价指标,建立层次关系

3.3 构造判断矩阵

3.3.1 标度定义

标度 含义
1 两个要素相比,重要性相同
3 两要素相比,前者比后者稍微重要或有优势
5 两要素相比,前者比后者比较重要或有优势
7 两要素相比,前者比后者十分重要或有优势
9 两要素相比,前者比后者绝对重要或有优势
2,4,6,8 为上述标度之间的中间值

若要描述后者与前者比较,则用倒数为标度。例如 1/3 描述的是,后者比前者稍微重要。

3.3.2 构造判断矩阵

属性 容积 功耗 外观 噪声 寿命 价格 保修时间
容积

1

3

2

1/2

1/3

1/6

1/2

功耗

1/3

1

5

1

1/3

1/2

1/2

外观

1/2

1/5

1

1/3

1/3

1/4

1/3

噪声

2

1

3

1

1/3

1/3

1/3

寿命

3

3

3

3

1

1/2

1/2

价格

6

2

4

3

1

1

3

保修时间

2

2

3

3

2

1/3

1

3.4 一致性检验

具体的计算方法见推荐阅读的两篇文章。

经过计算得到C.R=0,025<0.1,故一致性检验成功。

得到七种属性的权值如下:

属性 容积 功耗 外观 噪声 寿命 价格 保修时间
权值 0.09 0.10 0.05 0.10 0.18 0.29 0.19

3.5 层次总排序

属性 容积 功耗 外观 噪声 寿命 价格 保修时间 评分
权值 0.09 0.10 0.05 0.10 0.18 0.29 0.19
A 5 5 5 5 5 5 5 5
B 6 8 3 8 7 9 7 7.49
C 2 4 8 2 8 5 10 5.97

由此可见评分:B>C>A。故冰箱B对顾客来说性价比最高。

4.代码实现

package AHP;import java.util.Scanner;public class AHP {public static void main(String[] args) {System.out.println("输入矩阵阶数:");Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.println("按行输入:");double d[][] = new double[n][n];double temp[][] = new double[n][n];for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) {double sToD = SToD(scanner.next());d[i][j] = sToD;temp[i][j] = sToD;}}System.out.println("以下是判断矩阵");// 得到判断矩阵for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {System.out.printf("%.2f\t", d[i][j]);}System.out.println();}// 1.对判断矩阵进行求和System.out.println("列相加结果w1");double w1[] = new double[n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {w1[i] = w1[i] + d[j][i];}System.out.printf("%.2f\t", w1[i]);}// 2.相除System.out.println();for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {d[i][j] = d[i][j] / w1[j];}}System.out.println("和积法第一步求出的结果d(即对列向量归一化):");for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {System.out.printf("%.2f\t", d[i][j]);}System.out.println();}System.out.println("对第一步求出的结果进行 行相加");System.out.println("行相加结果w2:");double w2[] = new double[n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {w2[i] = w2[i] + d[i][j];}System.out.printf("\t%.2f\n", w2[i]);}System.out.println("特征向量求解第一步 : 将上面的行相加的所有结果相加sum:");double sum = 0.0;for (int i = 0; i < n; i++) {sum += w2[i];}System.out.printf("结果为sum = \t%.2f\n", sum);System.out.println("将行结果与 sum 相除 得出结果为w3:  ");double w3[] = new double[n];for (int i = 0; i < n; i++) {w3[i] = w2[i] / sum;System.out.printf("\t%.2f\n", w3[i]);}System.out.println();System.out.println("************************************************");System.out.println("用和积法计算其最大特征向量为(即权重):W = ");// 以下是校验System.out.printf("(");for (int i = 0; i < n; i++) {System.out.printf("%.2f ,", w3[i]);}System.out.printf(")");System.out.print("\nBW(w4) = ");//BW即行相加结果double w4[] = new double[n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {w4[i] = w4[i] + temp[i][j] * w3[j];}System.out.printf("%.5f \t", w4[i]);}System.out.println("\n----------------------------------------");double sum2 = 0.0;for (int i = 0; i < n; i++) {sum2 = sum2 + w4[i];}System.out.printf("得到最大特征值sum2:\t %.2f\n", sum2);System.out.println("************************************************");System.out.println("最大的特征向量为 :  ");double result = 0.0;for (int i = 0; i < n; i++) {result = result + w4[i] / (6 * w3[i]);}System.out.printf(" %.2f \n", result);System.out.println("\n判断矩阵一致性指标C.I.(Consistency Index)");double CI = (result - n) / (n - 1);System.out.printf(" %.2f \n", CI);System.out.println("随机一致性比率C.R.(Consistency Ratio)");/** n  1  2  3    4       5     6   7       8      9    10      11RI  0  0  0.58  0.90  1.12  1.24  1.36  1.41  1.45  1.49  1.51 一般,当一致性比率 <0.1 时的不一致程度在容许范围之内,可用其归一化特征向量作为权向量,否则要重新构造成对比较矩阵,对  加以调整*/double RI = 0.0;switch (n) {case 0:RI=0;break;case 1:RI=0;break;case 2:RI=0;break;case 3:RI=0.58;break;case 4:RI=0.90;break;case 5:RI=1.12;break;case 6:RI=1.24;break;case 7:RI=1.36;break;default:break;}double CR=CI / RI;if(CR<0.1) {System.out.printf("一致性检验成功!  C.R =  %.2f \n", CR);}elseSystem.out.printf("一致性检验失败!  C.R =  %.2f \n", CR);scanner.close();}public static double SToD(String s) {String[] p = s.split("/");if (p.length > 1) {return Double.parseDouble(p[0]) / Double.parseDouble(p[1]);}return Double.parseDouble(s);}
}

权重计算方法一:层次分析法(AHP)相关推荐

  1. MATLAB实现层次分析法AHP及案例分析

    层次分析法(Analytic Hierarchy Process, AHP) 1 模型背景 美国运筹学家匹兹堡大学教授Saaty在20世纪70年代初提出的一种层次权重决策分析方法. 层次分析法(Ana ...

  2. 层次分析法 AHP

    层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂.较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题.它是美国运筹学家 T. L. ...

  3. 熵权法EW与层次分析法AHP之数学原理及实例

    1.概述 对于多指标或多目标决策问题,由于涉及到多个指标或属性,在对实测数据进行评价时,需要确定这些指标之间的相互权重,各指标权重的客观性与合理性也会大大影响到最终的评价结果.目前对于指标权重确定的方 ...

  4. R语言应用实战-基于R语言的综合评价(层次分析法AHP为例)

    一.综合评价的基本概念 对一个事物的评价往往会涉及多个因素或者多个指标,评价是在多个因素相互作用下的一个综合判断.多指标综合评价方法具有以下的特点:包含若干个指标,分别说明被评价对象的不同方面,评价方 ...

  5. 层次分析法AHP - 代码注释多 - ( 数据建模 Python代码)

    实际生活中,往往有一些很复杂的系统,我们没办法直观草率的确定权重,比如甲.乙.丙三人竞选总统,严谨的说,需要从三人的社交能力.管理能力.经济能力等方面来考虑,在每个方面,三位候选人的得分也不同,那么到 ...

  6. 2010年高教社杯全国大学生数学建模竞赛题目B题解析及层次分析法AHP在其中的应用

    2010年高教社杯全国大学生数学建模竞赛题目 B题 2010年上海世博会影响力的定量评估 2010年上海世博会是首次在中国举办的世界博览会.从1851年伦敦的"万国工业博览会"开始 ...

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

    层次分析法(Analytic Hierarchy Process,AHP)这是一种定性和定量相结合的.系统的.层次化的分析方法.这种方法的特点就是在对复杂决策问题的本质.影响因素及其内在关系等进行深入 ...

  8. 数学建模 --- 层次分析法(AHP模型)

    层次分析法 评价类问题 该问题思路 选出相关指标,求各个指标之间的权重 和 对某个指标而言各个选择权重(分而治之思想) 计算每个方案的得分 层次分析法 层次分析法第一步 --- 层次结构图 层次分析法 ...

  9. 层次分析法AHP原理、例题

    1 基本介绍 层次分析法(analytic hierarchy process,简称AHP)是解决多因素综合评价问题的常用方法,该方法是美国运筹学家,匹茨堡大学教授T.L. Saaty于20世纪70年 ...

  10. 【数学建模】层次分析法(AHP)-Python实现

    1 前言 本文主要讲解层次分析法(AHP)的python实现,后续会跟进实例分析 2 代码实现 导入包 import numpy as np 2.1 构造判断矩阵 判断矩阵一般采用专家意见法,也就是德 ...

最新文章

  1. 转:Jquery AJAX POST与GET之间的区别
  2. mysql 视图树查询_TreeView (树视图)遍历数据库的方法
  3. LeetCode MySQL 1667. 修复表中的名字
  4. java 顺序存储键值对_java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)...
  5. 如何显示Magento的最新产品
  6. linux jboss 多实例,在单个JBoss实例上设置多个端口?
  7. 北斗导航 | RAIM算法流程图
  8. 畅捷通T+任意文件上传(CNVD-2022-60632 )漏洞复现
  9. 笔记本装机软件+网站大合集+磁盘管理
  10. 三角函数公式和图像大全
  11. 共享打印机提示服务器没有运行,提示无法共享打印机: “无法显示该属性,后台打印程序服务未运行”...
  12. 将hustoj 数据从Ubuntu 14.04 成功迁移到 ubuntu 16.04
  13. 什么是OsmocomBB
  14. CSR101x BLE芯片 简简单单实现一个 温湿度BLE 传感器结点
  15. Python PyCharm Django 搭建web开发环境
  16. hexo下next主题的优化
  17. DELL笔记本电源检测功率匹配、充不进电
  18. 爬虫-----爬虫的爬,爬虫的虫
  19. 分布式管理控制系统Git与项目托管平台Github相关概念、工作流程与操作方法
  20. django-CBVS (转载知乎彧神)

热门文章

  1. android APK加密、签名
  2. R和Rstudio安装教程
  3. [C#] TestHttpPost:测试Http的POST方法的小工具
  4. 优化算法|布谷鸟算法原理及实现
  5. 剖析《Linux 平均负载:解开谜团》
  6. cdrx8如何批量导出jpg_Coreldraw/CDR X8 存低版本打开问题 – 数码打印破图 – Coreldraw/CDR软件崩溃 – 渐变导位图角度变了...
  7. 同济大学高等数学下册第八章向量代数与空间解析几何以及每日一题
  8. 免费Cron表达式生成器源码
  9. Linux安装cURL
  10. RFID EPC Class1 Gen2电子标签笔记