免费源码交易网站源码,深圳团购网站设计价格,wordpress前端用什么,WordPress在哪里添加备案1.层次分析法#xff08;AHP#xff09; 在决策理论中#xff0c;层次分析法是一种以数学和心理学为基础#xff0c;组织和分析复杂决策的结构化技术#xff0c;它代表了一种量化决策标准权重的准确方法#xff0c;通过成对比较#xff0c;利用个别专家的经验来估计因素…1.层次分析法AHP 在决策理论中层次分析法是一种以数学和心理学为基础组织和分析复杂决策的结构化技术它代表了一种量化决策标准权重的准确方法通过成对比较利用个别专家的经验来估计因素的相对大小
2.算法用途 在很多情况下我们对事物的评价应该多维度的进行评价。多维度评价之后我们要如何把它们合并成一个指标用于比较事物的好坏这时候需要对各个指标赋权层次分析法就是用来赋权重的这个方法个体主观性较强在数据集比较小实在不好比较的时候可以选择这种方法
3.算法简述
这个算法是一个多指标综合评价算法这种算法一般会有两个用途
指标定权
我们可以在没有数据支撑的情况下可以根据每个人对重视程度不一样而给各个指标指定权重 量化方案选择 我们在旅游的时候可能会面临去哪的难题我们会假设有几套方案例如杭州、三亚、成都而每个地方的都可以综合以上的4个因素给这些方案计算出一个量化得分然后我们就可以根据它们各自的得分得出我们心里的最优选择 4.AHP层次分析过程 在分析一个现象或者问题之前首先将现象或问题根据它们的性质分解成有关因素并根据它们之间的关系分类而形成一个多层次的结构模型然后通过经验或者专家来判断和衡量底层因素对高层因素的相对重要性并根据重要性的程度得出权重排序进而可以量化分析比较。 层次分析法的核心是将影响因素层次化和数据化它把一个抽象的现象或问题由难到易的予以分解易于对复杂问题进行直观的判断并做出决策。层次分析法具有将复杂问题简单化且计算简单等优点应用都十分广泛诸如在人员素质评估、多方案比较、科学成果评比和工作成效评价等多领域多方面都有运用
一般的层次分析法分为三层
目标层分析目的准则层分析因素方案层分析种类 注意一致性检验的含义用于确定构建构建的判断矩阵是否存在逻辑问题 类似于A对于B是3就说明A比B重要A对于C是1/3就说明C比A重要那么如果B对于C是2的话就说明B比C重要但是根据上述的逻辑这样就犯了逻辑性的错误理应是C比B重要 4.1 构建层次评价模型
我们应该在分析前先确认整个决策事件的目标层、准则层、方案层 4.2构造判断矩阵
构造判断矩阵就是通过各要素之间相互两两比较并确定各准则层对目标的权重
标度含义1表示两个元素相比具有同样的重要性3表示两个元素相比前者比后者稍重要5表示两个元素相比前者比后者明显重要7表示两个元素相比前者比后者极其重要9表示两个元素相比前者比后者强烈重要2468表示上述相邻判断的中间值1~9的倒数表示相应两因素交换次序比较的重要性
判断矩阵满足 我们可以对于准则A可以构造一个 我们就可以根据我们对这些因素的一个客观认识去得到这个完整的判断矩阵
4.3 层次单排序与一致性检验
4.3.1层次单排序 所谓的层次排序法就是根据我们构成的判别矩阵求解各个指标的权重
方法一方根法
计算每行乘积得到m次方得到一个m维向量将向量标准即为权重向量即得到权重
方法二和法
先将矩阵的每列进行标准化将标准化后的各元素按行求和将求和结果进行标准化 4.3.2 求解最大特征值与CI值
设 n 阶判断矩阵为 B则可用以下方法求出其最大的特征根 :BWλW其中W 是 B 的特征向量。 在层次分析法中 我们用以下的一致性指标 CI 来检验判断的一致性指标 Consistency Index CI0表示判断矩阵完全一致CI越大判断矩阵的不一致性程度越严重
当得出权重矩阵后我们可以计算最大特征根其公式为 其中n为维度数AW为判断矩阵标准化后的权重然后按行的累加值
4.3.3 根据CI、RI值求解CR值判断其一致性是否通过 情况如下
CR0.1时矩阵A的一致性程度被认为在容许的范围内CR0.1时我们应该考虑对矩阵A进行修正
4.3.4 层次总排序与一致性检验
计算某一层所有因素对于最高层目标层相对重要性的权值称为层次总排序 案例分析 matlab源码
%层次分析法
%P是指标评分 B是判别矩阵
function level(P,A)
%求出判别矩阵的行列数
[n,~]size(A);
%求出该矩阵的特征向量与特征值
[V,D]eig(A)
tzzmax(max(D))%找出最大的特征值
c1D(1,:)tzz%找出最大的特征值的位置
tzxV(:,c1)%最大特征值对应的特征向量
%赋权重
quanzeros(n,1)
%得到权重向量
for i1:nquan(i,1)tzx(i,1)/sum(tzx);
end
Qquan
%--------------------------------一致性检验---------------------------------
%计算一致性指标CI
CI(tzz-n)/(n-1)
%平均随机一致性指标RI
RI[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59];
%判断是否通过一致性
CRCI/RI(1,n)
if CR0.1fprintf(没有通过一致性\n);
elsefprintf(通过一致性检验\n);
end
%显示出所有评分对象的评分值
scoreP*Q;
for i1:length(score)name[object_score,num2str(i)];eval([name,score(i)])
end