层次分析法(AHP)
       美国运筹学家A.L.Saaty于本世纪70年代提出的层次分析法(Analytical Hierar-chy Process,简称AHP方法),是一种定性与定量相结合的决策分析方法。它是一种将决策者对复杂系统的决策思维过程模型化、数量化的过程。

具体的方法介绍在这个ppt上有详细的解释。

PPT:http://files.cnblogs.com/files/mansiisnam/AHP%28%E5%B1%82%E6%AC%A1%E5%88%86%E6%9E%90%E6%B3%95%29%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B.ppt

本例的影响因素有6个,属单层分析。

特征编码为0,1,2,3,4,5。代码:

package crawlerTest;
public class Ahq_test {/*** *@author LJ*2016-3-30*/public static void main(String[] args) {// TODO Auto-generated method stubDouble[][] matrix=new Double[6][6];for(int i=0;i<6;i++){matrix[i][i]=1.0;}//数组0,1 位置存放的是影响因素0相对于影响因素1的重要程度 。//0.25代表 影响因素0的重要程度为影响因素1的重要程度的4分之1。matrix[0][1]=0.25;            matrix[0][2]=0.5;matrix[0][3]=1.0;matrix[0][4]=1.0;matrix[0][5]=0.5;matrix[1][2]=0.5;matrix[1][3]=1.0;matrix[1][4]=2.0;matrix[1][5]=1.0;matrix[2][3]=1.0;matrix[2][4]=0.5;matrix[2][5]=0.5;matrix[3][4]=2.0;matrix[3][5]=1.0;matrix[4][5]=0.5;//根据输入值填写矩阵剩余项for(int i=5;i>=0;i--){for(int j=5;j>=0;j--){matrix[i][j]=1/matrix[j][i];}}Double[] column=new Double[6];for(int j=0;j<6;j++){for(int i=0;i<6;i++){if(column[j]!=null){column[j]=column[j]+matrix[i][j];}else{column[j]=matrix[i][j];}}}//矩阵归一化Double[][] matrixColumn= new Double[6][6];for(int j=0;j<6;j++){for(int i=0;i<6;i++){matrixColumn[i][j]=matrix[i][j]/column[j];}}//获得行数组Double[] line=new Double[6];for(int i=0;i<6;i++){for(int j=0;j<6;j++){if(line[i]!=null){line[i]=line[i]+matrixColumn[i][j];}else{line[i]=matrixColumn[i][j];}}}//行归一化获得特征向量Double[] w=new Double[6];Double sum=0.0;for(int i=0;i<6;i++){sum=sum+line[i];}for(int i=0;i<6;i++){w[i]=line[i]/sum;                    //特征向量
        }Double[] bw=new Double[6];for(int i=0;i<6;i++){for(int j=0;j<6;j++){if(bw[i]!=null){bw[i]=bw[i]+matrix[i][j]*w[j];}else{bw[i]=matrix[i][j]*w[j];}    }}Double sumR=0.0;                        //最大特征跟Rfor(int i=0;i<6;i++){sumR=sumR+bw[i]/(6*w[i]);}Double ci=(sumR-6)/(6-1);                //矩阵一致性指标System.out.println("计算出的矩阵一致性指标"+ci+"\n");Double cr=ci/1.24;                        //随机一致性比率 1.24为6阶矩阵的平均一致性指标if(cr>=0.1){System.out.println("权重设置不合理");}else{//输出特征向量for(int i=0;i<6;i++){System.out.println("特征"+i+"的权重:"+w[i]);}}}}

运行结果:

转载于:https://www.cnblogs.com/mansiisnam/p/5336677.html

AHP层次分析法java实现相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. AHP层次分析法matlab实现

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

最新文章

  1. VLC 关键模块结构分析
  2. 又见yx — 说说IT公司的团队头儿
  3. Matlab R2016a中如何完美运行“mex-setup”
  4. IE提示console未定义问题解决
  5. python 归一化 标准化
  6. c语言图片合并 代码,帮个忙,合并代码
  7. 聊聊spring cloud gateway的SecureHeadersGatewayFilter
  8. JS 正则表达式(数字、正则)
  9. 数学--数论--HDU1222 狼和兔子(最大公约数)
  10. python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()...
  11. NET Core微服务之路:让我们对上一个Demo通讯进行修改,完成RPC通讯
  12. mac版crt8.0.2打开无响应怎么办_Mac电脑程序无响应怎么办?教你强制退出无响应程序...
  13. 空间服务器有问题是系统问题吗,服务器空间租用两个主要问题要留意
  14. Zygo读取保存dat文件(光学领域知道Zygo的一定要看)
  15. ORB-SLAM2双目开源框架 (1)
  16. 剥丝抽茧|阿里面试题解读:MQ消费端遇到瓶颈该怎么办?
  17. tplink虚拟服务器 tcp,关于TP-Link路由器端口映射详解
  18. 中岛美嘉 ,经我也想过一了百
  19. MySQL基础篇 | 连接查询、子查询(嵌套)
  20. codeforces 616F Expensive Strings

热门文章

  1. node -v 不是内部或外部命令 也不是可运行的程序 或批处理文件。
  2. 守护进程(Daemon process)
  3. 侯捷c++系统工程师:全方位提升技能素养 侯捷C++视频全系列合集
  4. 联想服务器做完raid找不到硬盘,如何配置磁盘阵列(RAID)
  5. EDMA 和QDMA
  6. 最优控制的四种目标函数(二次型最优控制算法等)
  7. c语言计算2的n次方代码,计算2的N次方........有什么错吗?
  8. 数学分析教程史济怀练习9.3
  9. 【第24天】MYSQL进阶-查询优化- performance_schema系列实战一:利用等待事件排查MySQL性能问题(SQL 小虚竹)
  10. 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录