- 浏览: 324659 次
- 性别:
- 来自: 西宁
文章分类
- 全部博客 (120)
- Java Thought (29)
- Java Pattern (4)
- Data Base (7)
- Algorithm Design (33)
- Linux (0)
- Mysql (2)
- Oracle (0)
- ConstructionDesign-架构 (5)
- Spring Platform (0)
- Tomcat (1)
- JavaScript (7)
- Web System (3)
- MS SQLServer (1)
- 软件哲学 (6)
- View (3)
- Java GUI (4)
- CSSDIV (7)
- CloudComputing (0)
- WebService (0)
- SystemOrProject (2)
- SOA (0)
- 互转共享 (3)
- 偶尔java习题 (0)
- Thinks with does (1)
最新评论
-
sassds:
佩服啊 高手
分享一款js特效 -
bhjackson:
学习啦,能否详细介绍下回溯的过程?O(∩_∩)O谢谢
分享回溯法- 找n个数中r个数的组合 -
zk7019311:
了解了解。。。。。
业务层代码复用的一点建议 -
lijie1819:
看到LZ的设计思想,感觉和抽象工厂模式有点相像。
业务层代码复用的一点建议 -
wjjcml1982:
酷毙了!楼主太强悍了!
分享一款js特效
一. AHP层次分析法介绍
层次分析法(Analytic Hierarchy Process,简称AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,
它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、
灵活而又实用的多准则决策方法。
1 层次分析法的基本原理与步骤
人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的
复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。
运用层次分析法建模,大体上可按下面四个步骤进行:
(i) 建立递阶层次结构模型;
(ii) 构造出各层次中的所有判断矩阵;
(iii) 层次单排序及一致性检验;
(iv) 层次总排序及一致性检验。
2 递阶层次结构的建立与特点
应用AHP分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。
在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属性及关系形成若干层次。
上一层次的元素作为准则对下一层次有关元素起支配作用。这些层次可以分为三类:
(i) 最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
(ii) 中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,
因此也称为准则层。
(iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。
每一层次中各元素所支配的元素一般不要超过9个。这是因为支配的元素过多会给两两比较判断带来困难。
二. Java代码:
层次分析法(Analytic Hierarchy Process,简称AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,
它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、
灵活而又实用的多准则决策方法。
1 层次分析法的基本原理与步骤
人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的
复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。
运用层次分析法建模,大体上可按下面四个步骤进行:
(i) 建立递阶层次结构模型;
(ii) 构造出各层次中的所有判断矩阵;
(iii) 层次单排序及一致性检验;
(iv) 层次总排序及一致性检验。
2 递阶层次结构的建立与特点
应用AHP分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。
在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属性及关系形成若干层次。
上一层次的元素作为准则对下一层次有关元素起支配作用。这些层次可以分为三类:
(i) 最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
(ii) 中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,
因此也称为准则层。
(iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。
每一层次中各元素所支配的元素一般不要超过9个。这是因为支配的元素过多会给两两比较判断带来困难。
二. Java代码:
package boke.ahp; import java.math.BigDecimal; import java.util.Arrays; /** * AHP层次分析法计算权重 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ public class AHPComputeWeight { /** * @param args */ public static void main(String[] args) { /** a为N*N矩阵 */ double[][] a = new double[][] { { 1, 3, 5, 1, 3 }, { 1 / 3.0, 1, 2, 1 / 3.0, 1 / 4.0 }, { 1 / 5.0, 1 / 2.0, 1, 1 / 3.0, 1 / 2.0 }, { 1, 3, 3, 1, 1 }, { 1 / 3.0, 4, 2, 1, 1 } }; int N = a[0].length; double[] weight = new double[N]; AHPComputeWeight instance = AHPComputeWeight.getInstance(); instance.weight(a, weight, N); System.out.println(Arrays.toString(weight)); } // 单例 private static final AHPComputeWeight acw = new AHPComputeWeight(); // 平均随机一致性指针 private double[] RI = { 0.00, 0.00, 0.58, 0.90, 1.12, 1.21, 1.32, 1.41, 1.45, 1.49 }; // 随机一致性比率 private double CR = 0.0; // 最大特征值 private double lamta = 0.0; /** * 私有构造 */ private AHPComputeWeight() { } /** * 返回单例 * * @return */ public static AHPComputeWeight getInstance() { return acw; } /** * 计算权重 * * @param a * @param weight * @param N */ public void weight(double[][] a, double[] weight, int N) { // 初始向量Wk double[] w0 = new double[N]; for (int i = 0; i < N; i++) { w0[i] = 1.0 / N; } // 一般向量W(k+1) double[] w1 = new double[N]; // W(k+1)的归一化向量 double[] w2 = new double[N]; double sum = 1.0; double d = 1.0; // 误差 double delt = 0.00001; while (d > delt) { d = 0.0; sum = 0; // 获取向量 int index = 0; for (int j = 0; j < N; j++) { double t = 0.0; for (int l = 0; l < N; l++) t += a[j][l] * w0[l]; // w1[j] = a[j][0] * w0[0] + a[j][1] * w0[1] + a[j][2] * w0[2]; w1[j] = t; sum += w1[j]; } // 向量归一化 for (int k = 0; k < N; k++) { w2[k] = w1[k] / sum; // 最大差值 d = Math.max(Math.abs(w2[k] - w0[k]), d); // 用于下次迭代使用 w0[k] = w2[k]; } } // 计算矩阵最大特征值lamta,CI,RI lamta = 0.0; for (int k = 0; k < N; k++) { lamta += w1[k] / (N * w0[k]); } double CI = (lamta - N) / (N - 1); if (RI[N - 1] != 0) { CR = CI / RI[N - 1]; } // 四舍五入处理 lamta = round(lamta, 3); CI = round(CI, 3); CR = round(CR, 3); for (int i = 0; i < N; i++) { w0[i] = round(w0[i], 4); w1[i] = round(w1[i], 4); w2[i] = round(w2[i], 4); } // 控制台打印输出 System.out.println("lamta=" + lamta); System.out.println("CI=" + CI); System.out.println("CR=" + CR); // 控制台打印权重 System.out.println("w0[]="); for (int i = 0; i < N; i++) { System.out.print(w0[i] + " "); } System.out.println(""); System.out.println("w1[]="); for (int i = 0; i < N; i++) { System.out.print(w1[i] + " "); } System.out.println(""); System.out.println("w2[]="); for (int i = 0; i < N; i++) { weight[i] = w2[i]; System.out.print(w2[i] + " "); } System.out.println(""); } /** * 四舍五入 * * @param v * @param scale * @return */ public double round(double v, int scale) { if (scale < 0) { throw new IllegalArgumentException( "The scale must be a positive integer or zero"); } BigDecimal b = new BigDecimal(Double.toString(v)); BigDecimal one = new BigDecimal("1"); return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 返回随机一致性比率 * * @return */ public double getCR() { return CR; } }
发表评论
-
开散列的简单模拟(一)
2010-06-28 08:33 18221. 散列 散列有两种 ... -
递归和动态规划构造两个字符序列的最长公共字符子序列
2010-06-28 08:28 4493应je朋友要求,所以翻开以前的算法题目,整理了以下,给 ... -
最大公约数的应用 - 分享
2010-06-25 08:08 18491.先看一家大公司笔试题 数组中有n个数据,要将它们顺 ... -
信息数字化解逻辑题分享
2010-06-21 08:09 12561. 前提条件: 将逻辑题目中的信息用数字化描述。 ... -
递归算法分析-分享
2010-06-19 16:09 15921. 深入认识递归 (1) 递 ... -
非递归算法分析实例分享
2010-06-18 15:47 10541 仅仅依赖于问题规模的时间复杂度 (1) 例1: 交换i和 ... -
NP完全性问题
2010-06-18 14:02 7013在学习算法设计与分析时,经常会提到NP完全性问题,到底 ... -
算法分析精述分享
2010-06-18 12:03 8721. 算法分析的评价体系 评价算法的三条主要标准是: ... -
贪婪策略算法的总结分享
2010-06-11 08:30 60701. 贪婪算法描述 贪婪算法又叫登山法,它的根本思想是 ... -
带权有向图 - 边上权值非负情形的单源最短路径问题
2010-06-07 08:57 26791. 问题描述: 给定 ... -
是否很久没抽象和逻辑了呢? DODO它吧(很基础)四
2010-06-07 08:54 136821. 工作分配问题。 ... -
是否很久没抽象和逻辑了呢? DODO它吧(很基础)三
2010-06-07 08:53 109017. 字符统计问题。 编写一个算法,统计在一个输入 ... -
是否很久没抽象和逻辑了呢? DODO它吧(很基础)二
2010-06-07 08:47 13668. 数字迷问题。 A B C ... -
是否很久没抽象和逻辑了呢? DODO它吧(很基础)一
2010-06-07 08:38 11801. 线程问题。 设计4个线程,其中两个线程每次对j增加 ... -
是否很久没抽象和逻辑了呢? DODO它吧(很基础)
2010-06-07 08:37 18771. 线程问题。 设计 ... -
Java快速排序算法整理(二)
2010-05-31 14:04 1031package boke.sort; /** * 快 ... -
Java快速排序算法整理(一)
2010-05-31 13:39 655package boke.sort; /** * 快 ... -
Java最小堆实现
2010-05-31 08:29 58511.堆结点 package boke.heap1; /* ... -
Java插入排序代码整理
2010-05-28 14:44 1250package boke.sort; /** * 插 ... -
Java选择排序代码整理
2010-05-28 14:37 1505package boke.sort; /** * 选 ...
相关推荐
《AHP层次分析法计算权重、特征值、特征向量》 在数据分析和决策支持领域,层次分析法(Analytic Hierarchy Process,简称AHP)是一种广泛应用的多准则决策分析方法,由萨蒂教授提出。它通过将复杂问题分解为多层次...
Java 中的矩阵特征值和特征向量计算(AHP 层次分析法计算权重) 矩阵特征值和特征向量是线性代数中重要的概念,它们广泛应用于机器学习、数据分析、计算机视觉等领域。Java 是一种广泛使用的编程语言,本文将介绍...
Java矩阵的特征值和特征向量计算(AHP层次分析法计算权重) 本资源是一个Java实现的矩阵特征值和特征向量计算程序,使用AHP层次分析法计算权重。该程序可以计算矩阵的特征值和特征向量,并将结果输出。 知识点: ...
### Java求矩阵的特征值和特征向量:AHP层次分析法计算权重 #### 一、引言 在计算机科学领域,特别是在数据处理与决策支持系统中,特征值与特征向量是线性代数中的核心概念之一。它们在解决各种问题时发挥着重要...
java求矩阵的特征值和特征向量(AHP层次分析法计算权重)(附源代码).pdf
AHP层次分析法,全称为Analytic Hierarchy Process(分析层次过程),是一种在决策科学中广泛应用的多准则决策分析方法。由美国运筹学家萨蒂(T.L.Saaty)于20世纪70年代提出,它通过结构化的方式帮助决策者处理复杂...
ahp层次分析法权重自动计算VBA模板,ahp层次分析法权重自动计算VBA模板,
AHP层次分析法matlab代码
在本项目中,"层次分析法-使用C#开发的AHP层次分析法计算器工具.zip" 提供了一个用C#编程语言实现的AHP计算器工具。 AHP层次分析法的核心步骤包括: 1. **构建层次结构**:首先,我们需要定义决策问题,并构建一个...
层次分析法(Analytic Hierarchy Process,AHP)这是一种定性和定量相结合的、系统的、层次化的分析方法。这种方法的特点就是在对复杂决策问题的本质、影响因素及其内在关系等进行深入研究的基础上,利用较少的定量信息...
**AHP层次分析法计算程序**是用于解决多指标决策问题的一种强大工具,它基于**层次分析法(Analytic Hierarchy Process)**理论。层次分析法由美国运筹学家Thomas L. Saaty提出,是一种定性和定量相结合的决策分析...
AHP层次分析法matlab程序,可应用于模糊数学中利用层次分析法求权重
。。。
《AHP与熵值法求权重,层次分析法与熵值法求权重计算:经典案例实操》 在信息技术领域,权重的确定是数据分析、决策支持等过程中不可或缺的一部分。本资源包聚焦于两种常用的方法——层次分析法(AHP)和熵值法,...
运用VBA代码实现层次分析法权重计算,可以自动计算权重向量,并进行一致性检验,从而减少计算权重向量的重复性工作,使层次分析法可以便于计算
简单的表格确定层次分析法的参数以及对其进行一致性检验
AHP层次分析法(Analytic Hierarchy Process,简称AHP)是一种基于多准则决策分析的方法,由美国运筹学家Thomas L. Saaty于20世纪70年代提出。该方法结合了定量和定性的分析手段,通过结构化的层次模型来处理复杂的...
综上所述,AHP层次分析法是一种强大的决策分析工具,结合VB开发的计算工具,能够有效处理复杂的决策问题,使得决策过程更为科学、准确。通过对层次结构的构建、判断矩阵的建立和一致性检验,我们可以更好地理解和...
AHP层次分析法,全称为Analytic Hierarchy Process(分析层次过程),是由美国运筹学家托马斯·塞蒂在20世纪70年代提出的一种决策分析方法。这种方法结合了定量与定性的分析手段,通过建立多层次的结构模型,帮助...