【数学建模】第一讲-层次分析法
目录
一、简介及前言(层次分析法解决评价类问题)
二、构造判断矩阵(准则层、方案层)
三、一致性检验(CR=CI/RI)
四、计算权重(算数平均、几何平均、特征值)
五、计算得分(Excel)
六、论文写作(SmartArt、画图)
七、代码实现(MATLAB)
一、简介及前言
层次分析法(Analytic Hierarchy Process,简称AHP),是指将与 决策有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。
层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
层次分析法是建模比赛中最常用的模型,主要用于解决评价类问题。评价类问题可用打分解决。
如果直接打分问权重:
关键在于如何确定这些权重
二、构造判断矩阵
采用指标两两比较的方法确定最终权重
aij与列指标相比,行指标的重要程度(行是列的几倍)
满足主对角线全为1,aij*aji=1,则称正互反矩阵,也就是层次分析法中的判断矩阵。
准则层各个指标构造一次得出权重。
方案层针对准则层每个指标构造判断矩阵得出各个权重。
三、一致性检验
列与列成比例,比值为 ajk。 行与行成比例,比值为aij
一致性检验:检验我们构造的判断矩阵与一致矩阵的差距大小
四、计算权重
五、计算得分
六、论文写作
七、代码实现
clear;clc
%第一步:输入判断矩阵
A=input('请输入判断矩阵');
%A = [1,2,4;1/2,1,2;1/4,1/2,1];%第二步:一致性检验(求CI、RI、CR)
E = eig(A);%得到一个所有特征值构成的列向量
lambda_max = max(E);%最大特征值
n = size(A,1);%指标数即行列数
CI = (lambda_max-n)/(n-1);
RI = [0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %注意哦,这里的RI最多支持 n = 15
CR = CI/RI(n);
disp(['一致性比例CR为' num2str(CR)]);
if CR<0.1disp('一致性检验通过。')
elsedisp('一致性检验不通过。')
end%第三步:判断矩阵求权重
[n,n] = size(A);
%--------算数平均法--------%
sum_A = repmat(sum(A),n,1);%按列求和得到行向量,行向量向下复制成r行
average_A = A./sum_A;%按列归一化
average_A1 = sum(average_A,2)./n;%按行求和再除以指标数n
disp('算数平均法得出的权重:');
disp(average_A1);
%--------几何平均法--------%
product_A = prod(A,2).^(1/n);%按行求几何平均值得到列向量(和算数平均有区别!!)
product_A1 = product_A./sum(product_A);%归一化
disp('几何平均法得出的权重:');
disp(product_A1);
%--------特征值法--------%
[V,D] = eig(A);%V:一列列特征向量构成的矩阵D:特征值对角阵
eig_max = max(max(D));%最大特征值
[r,c] = find(D==eig_max,1);%最大特征值所在列find(logic,1)只找第一个不为0的
eig_vetor_max = V(:,c);%最大特征值对应的特征向量
eig_vetor_max1 = eig_vetor_max./sum(eig_vetor_max);%归一化
disp('特征值法得出的权重:');
disp(eig_vetor_max1);
【数学建模】第一讲-层次分析法相关推荐
- 数学建模中的层次分析法
层次分析法,是数学建模在评价类问题中常用的一种评价方法,其主要思想是通过建议一个层级结构,并对各级关系建立判断矩阵,通过对矩阵进行数据标准化归一化等操作,最终得到一个关于各指标的权重矩阵,根据矩阵判断 ...
- 【数学建模】1层次分析法模型部分
目录 1 数学建模的任务分配 2 简介 3 模型介绍 3.1 评价类问题 3.2 拿到建模问题 3.3 推荐搜索网站 3.4 确定好指标 3.5 确定指标权重 (1)采用分而治之的思想 (2)分而治之 ...
- 《数学建模》之层次分析法
1.层次分析法与数学建模 在数学建模中,通常解决的问题是:"影响某一问题的几个因素的权重大小"."产生某一问题的主要的因素分析"."权重的大小分析&q ...
- 数学建模之AHP层次分析法
一.定义 层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之上进行定性和定量分析的决策方法.该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国 ...
- 【数学建模】清风数学建模笔记之——层次分析法
文章目录 前言 一.建模步骤 二.模型实现 1. 分析系统中各因素之间的关系,建立系统的递阶层次结构 2.对于同一层次的个元素关于上一层次中某一准则的重要性两两比较,构造两两比较矩阵(判断矩阵). 在 ...
- 【数学建模入门】层次分析法
层次分析法 适用场景 主要用于解决评价类问题(例如:选择哪种方案最好.哪位运动员或者员工表现最好) 基本知识 例题:假如有三个地方分别是苏杭.北戴河.桂林,我们现在要运用层次分析法选出那个地方最值得去 ...
- 数学建模学习笔记——层次分析法(评价类,专家打分一般不用)
层次分析法 (1)评价类问题--打分解决 问法--确认评价指标.形成评价体系 亿图图示
- MATLAB数学建模必备算法--层次分析法AHP
其主要用于解决评价类问题(例如:选择哪种方案最好.哪位运动员或者员工表现的更优秀) 一个很典型的层次分析法案例: 确定评价目标: 高考完后小明想要去旅游,有三个目的地供他选择: 苏杭 北戴河 桂林 确 ...
- 数学建模常规算法——层次分析法
层次分析法是将定性问题定量化处理的一种有效手段,根据不同的指标进行比对,得出最优解.层次分析法是一种定性和定量相结合的.系统化的.层次化的分析方法. 层次分析法的基本思路: 1)目标层: 2)准则层( ...
- 【数学建模】Day01——层次分析法
文章目录 1. 引出层次分析法 1.1 思考问题 1.2 平台借力 1.3 分而治之的思想 1.4 一致矩阵 1.5 一致性检验 1.6 一致矩阵计算权重 1.7 判断矩阵求权重 2. 层次分析法 2 ...
最新文章
- 13.最为经典的动态规划入门
- mysql innodb 数据复制_五千万的数据 复制到另张表 是先复制数据再加索引还是先建好索引再复制数据 表引擎Innodb...
- iOS 11开发教程(十五)iOS11应用视图的位置和大小
- python 元组使用_Python3
- HDS HDIM背后的小秘密
- centos更换网卡后怎么更新配置_CentOS安装
- c语言中'.'与'-'的区别
- HDOJ 2030-汉字统计
- 完全分布式Hadoop2.3安装与配置
- Python趣味编程3则:李白买酒、猴子吃桃、宝塔上的琉璃灯
- redis延时双删保证和数据库的一致性
- cmake mysql 编译参数_Mysql CMAKE编译参数详解
- 程序员计算器 android6,程序员计算器
- vue实现上传图片识别文字
- 【OpenGL】笔记六、GLM配置
- 1449 后缀表达式
- c语言中 输出操作是由库函数,【判断题】在 C语言中,输入操作是由库函数scanf完成,输出操作是由库函数printf完成 。...
- 智能小车 + 机械臂——华为嵌入式精英挑战赛
- PS进阶篇——如何PS软件钢笔工具抠图(三)
- 计算机的人文素养知识,人文素养知识要点