function result=fitness(W,D)
a=[1 2 31/2 1 41/3 1/4 1]
W(1)=0.5396
W(2)=0.1634
W(3)=0.2970
for i=1:D
for k=1:3
cif=cif+abs(a(i,k)*W(k)-3*W(i))
end
end
CIF=cif/D
result=CIF
我写了一个程序关于AHP经检验,效果不错,主要正对三层de
如果是四层的话,自己归类
PS:四类的应该能解,但是我没试过
一下是我的程序
function w=l_ahp(num,g)
% w:最后权重 num:层数 g:行向量(各层准则数量)
% 调运方式:w=l_ahp(num,g)
% EXAMPLE:
disp('-----层次分析系统(AHP)-------')
for i=2:num %控制各层
disp(['第',num2cell(i),'层分析'])
trace_w{i-1}(1:g(i),1:g(i-1))=zeros(g(i),g(i-1))
trace_l{i-1}(1,1:g(i-1))=zeros(1,g(i-1))
CI{i-1}(1:g(i-1))=zeros(1,g(i-1))
CR{i-1}(1:g(i-1))=zeros(1,g(i-1))
for j=1:g(i-1)
disp(['第',num2cell(i),'层','第',num2cell(j),'个判断矩阵分析'])
A=input('输入判断矩阵(按你的顺序)')
[w,l]=eig(A)
ll=(max(l))
[ll,index]=max(ll)
w=w(:,index)
w=abs(w)
w=w./sum(w)
trace_w{i-1}(:,j)=w
trace_l{i-1}(1,j)=ll
end
CI{i-1}(:)=(trace_l{i-1}(:)-g(i))./(g(i)-1)
RI=RI_process(g(i))
CR{i-1}(:)=CI{i-1}(:)./RI
c=find(CR{i-1}(:)>=0.1)
zhi=isempty(c)
if zhi==1
disp('一致性检验结果(层内单派层)')
disp(CR{i-1})
disp('各个判断矩阵权向量')
disp(trace_w{i-1})
disp('各个判断矩阵最大特征值')
disp(trace_l{i-1})
else
['请修改第',num2cell(c),'次的比较矩阵']
['以下结果无效']
break
end
end
disp('层次总排序及其一致性检验')
w=trace_w{num-1}(1:end,1:end)*trace_w{1}(1:end,1:end)
w=abs(w)
w=w./sum(w)
CI=sum(trace_w{1}(:).*CI{2}(:))
CR=CI/RI_process(g(num))
if CR<0.1
disp('综合一致性检验结果')
disp(num2cell(CR))
disp('最后权重')
disp([num2cell(w)])
w
else
disp('一致性检验不合格请重新建立判断矩阵')
end
function RI=RI_process(gs)
switch gs
case 1
RI=0
case 2
RI=0
case 3
RI=0.58
case 4
RI=0.90
case 5
RI=1.12
case 6
RI=1.24
case 7
RI=1.32
case 8
RI=1.41
case 9
RI=1.45
case 10
RI=1.49
case 11
RI=1.51
otherwise
disp('超出判断范围')
end
层次分析法(AHP)是美国运筹学家萨蒂于上世纪70年代初,为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。层次分析法是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。该方法将定量分析与定性分析结合起来,用决策者的经验判断各衡量目标之间能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数,利用权数求出各方案的优劣次序,比较有效地应用于那些难以用定量方法解决的课题。
2. 算法基本原理
例子:
在这里插入图片描述
2.1. 解决问题的思路
层次分析法的基本思路是将所要分析的问题层次化;根据问题的性质和所要达成的总目标,将问题分解为不同的组成因素,并按照这些因素的关联影响及其隶属关系,将因素按不同层次凝聚组合,形成一个多层次分析结构模型;最后,对问题进行优劣比较并排列。
2.2. 层次分析法的步骤
1.建立层次结构模型
将决策的目标、考虑的因素(决策准则)和决策对象按照他们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。
最高层: 决策的目的、要解决的问题。
最低层: 决策时的备选方案。
中间层: 考虑的因素、决策的准则。
对相邻的两层,称高层为目标层,低层为因素层。
层次分析法所要解决的问题是关于最低层对最高层的相对权重的问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中做出选择或形成选择方案的原则。
2.构造判断矩阵
层次分析法中构造判断矩阵的方法是一致矩阵法,即:不把所有因素放在一起比较,而是两两相互比较;对此时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。
判断矩阵 a i j a_{ij} a
ij
的标度方法
标度 含义
1 表示两个因素相比,具有同样重要性
3 表示两个因素相比,一个因素比另一个因素稍微重要
5 表示两个因素相比,一个因素比另一个因素明显重要
7 表示两个因素相比,一个因素比另一个因素强烈重要
9 表示两个因素相比,一个因素比另一个因素极端重要
2,4,6,8 上述两相邻判断的中值
倒数 因素 i i i于 j j j比较的判断 a i j a_{ij} a
ij
,则因素 j j j与 i i i比较的判断 a j i = 1 / a i j a_{ji}=1/a_{ij} a
ji
=1/a
ij
3.层次单排序及其一致性检验
对应于判断矩阵最大特征根 λ m a x \lambda max λmax的特征向量,经归一化(使向量中各元素之和为1)后记为 W W W。 W W W的元素为同一层次元素对于上一层因素某因素相对重要性的排序权值,这一过程称为层次单排序。
定义一致性指标 C I = λ − n n − 1 CI=\frac {\lambda-n}{n-1} CI=
n−1
λ−n
:
C I = 0 CI=0 CI=0,有完全的一致性;
C I CI CI接近于0,有满意的一致性;
C I CI CI越大,不一致越严重。
为了衡量 C I CI CI的大小,引入随机一致性指标 R I RI RI
随机一致性指标 RI
n 1 2 3 4 5 6 7 8 9 10 11
RI 0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51
定义一致性比率: C R = C I R I CR=\frac{CI}{RI} CR=
RI
CI
,一般认为一致性比率 C R <0.1 CR<0.1 CR<0.1时,认为A的不一致程度在容许范围之内,有满意的一致性,通过一致性检验。可用其归一化特征向量作为权向量,否则要重新构造成对比较矩阵A,对 a i j a_{ij} a
ij
加以调整。
示例:
在这里插入图片描述在这里插入图片描述
4.层次总排序及其一致性检验
计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。
这一过程是从最高层次到最低层次依次进行的。
在这里插入图片描述
A层 m m m个因素 A 1 , A 2 , ⋅ ⋅ ⋅ , A m , A_{1},A_{2},···,A_{m}, A
1
,A
2
,⋅⋅⋅,A
m
,对总目标Z的排序为 a 1 , a 2 , ⋅ ⋅ ⋅ , a m a_{1},a_{2},···,a_{m} a
1
,a
2
,⋅⋅⋅,a
m
。
B层 n n n个因素对上层A中因素为 A j A_{j} A
j
的层次单排序为 b 1 j , b 2 j , ⋅ ⋅ ⋅ , b n j ( j = 1 , 2 , 3 , ⋅ ⋅ ⋅ , m ) b_{1j},b_{2j},···,b_{nj}(j=1,2,3,···,m) b
1j
,b
2j
,⋅⋅⋅,b
nj
(j=1,2,3,⋅⋅⋅,m)。
B层的层次总排序(即B层第 i i i个因素对总目标的权值为: ∑ j = 1 m a j b i j \sum_{j=1}^{m}a_{j}b_{ij} ∑
j=1
m
a
j
b
ij
)为:
B 1 : a 1 b 11 + a 2 b 12 + ⋅ ⋅ ⋅ + a m b 1 m , B_{1}:a_{1}b_{11}+a_{2}b_{12}+···+a_{m}b_{1m}, B
1
:a
1
b
11
+a
2
b
12
+⋅⋅⋅+a
m
b
1m
,
B 2 : a 1 b 21 + a 2 b 22 + ⋅ ⋅ ⋅ + a m b 2 m , B_{2}:a_{1}b_{21}+a_{2}b_{22}+···+a_{m}b_{2m}, B
2
:a
1
b
21
+a
2
b
22
+⋅⋅⋅+a
m
b
2m
,
⋅ ⋅ ⋅ ··· ⋅⋅⋅
B n : a 1 b n 1 + a 2 b n 2 + ⋅ ⋅ ⋅ + a m b n m , B_{n}:a_{1}b_{n1}+a_{2}b_{n2}+···+a_{m}b_{nm}, B
n
:a
1
b
n1
+a
2
b
n2
+⋅⋅⋅+a
m
b
nm
,
层次总排序的一致性比率为: C R = a 1 C I 1 + a 2 C I 2 + ⋅ ⋅ ⋅ + a m C I m a 1 R I 1 + a 2 R I 2 + ⋅ ⋅ ⋅ + a m R I m CR=\frac{a_{1}CI_{1}+a_{2}CI_{2}+···+a_{m}CI_{m}}{a_{1}RI_{1}+a_{2}RI_{2}+···+a_{m}RI_{m}} CR=
a
1
RI
1
+a
2
RI
2
+⋅⋅⋅+a
m
RI
m
a
1
CI
1
+a
2
CI
2
+⋅⋅⋅+a
m
CI
m
,当 C R <0.1 CR<0.1 CR<0.1时,认为层次总排序通过一致性检验。
例子:
在这里插入图片描述在这里插入图片描述
3.算法总结
应用领域:经济计划个管理,能源政策和分配,人才选拔和评价,生产决策,交通运输,科研选题,产业结构,教育,医疗,环境,军事等。
处理问题类型:决策、评价、分析、预测等。
建立层次分析结构模型是关键一步,要有主要决策层参与。
构造成对比较矩阵是数量依据,应由经验丰富、判断力强的专家给出。
4.参考
层次分析法建模——《百度文库》
展开全文
层次分析法(AHP)基础概念整理+步骤总结
层次分析法是用来根据多种准则,或是说因素从候选方案中选出最优的一种数学方法 递阶层次的建立与特点 一般分为三层,最上面为目标层,最下面为方案层,中间是准则层或指标层。 最顶层是我们的目标,比如说选leader,选工作,选旅游目的地 中间层是判断候选方物或人优劣的因素或标准 选工作时有:发展前途 ,待遇 ,工作环境等 选leader时有:年龄,经验,教育背景,魅力 构造判断矩阵 ...
APP打开
层次分析法(AHP)——matlab代码实现
层次分析法(AHP)的主要思想是根据研究对象的性质将要求达到的目标分解为多个组成因素,并按组成因素间的相互关系,将其层次化,组成一个层次结构模型,然后按层分析,最终获得最高层的重要性权值。层次分析法把一个复杂的无结构问题分解组合成若干部分或若干因素,上一层次对相邻的下一层次的全部或某些元素起支配作用,这样就形成了自上而下的层次结构,通过相关指标之间的两两比较对系统中各指标进...
APP打开
评论(8)
写评论
DLMU_DH218码龄1年
3
想请问一下,最后得到的权重向量怎么用?毕竟每个特征的数据量纲不一样,能结合例2说一下吗,谢谢了5月前
比比吧哔啵码龄1年
回复DLMU_DH218:不是值最大的为最优方案吗
3月前
忘小寒boy码龄2年
2
怎么感觉此文与知乎某篇文章一致4月前
gnv0_码龄1年
请问大神如果不是这样的层次结构怎么设置权重啊4月前
Mr.Bornapart码龄2年
请问大神,大于9个因素的层次分析法你有吗1年前
pyjiango码龄1年
回复Mr.Bornapart:大于9个因素可以聚类吧,分为几个决策层
5月前
Zero xing码龄1年
其中的n取到几是由什么决定的啊?1年前
bk3333码龄4年1
回复Zero xing:矩阵的维度或者因素的个数啊
1年前
数学建模方法——层次分析法(AHP)
0. 层次分析法简介 层次分析法(Analytic Hierarchy Process,简称AHP)主要是对于定性的决策问题进行定量化分析的方法。举个例子,在日常生活中,我们经常需要进行感性的判断,比如报高考志愿,感觉清华北大都很好,到底要报哪个;再比如去市场买菜,到底是买青椒做青椒炒鸡蛋,还是买黄瓜做黄瓜炒鸡蛋;再比如想去出游,到底是去公园A还是公园B。上面提到的这些问题,都是决策,也叫做评价类...
APP打开
层次分析法---python实现
层次分析法(The analytic hierarchy process)简称AHP 在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。...
APP打开
层次分析法(AHP)_玻璃球的博客-CSDN博客
这个过程主观因素占有相当的比重,给用数学方法解决问题带来不便。而层次分析法就是用来有效处理这类问题的实用方法。 层次分析法的基本步骤...
层次分析法(AHP)_Eason的博客-CSDN博客
层次分析法(AHP)问题的提出日常生活中有许多决策问题。决策是指在面临多种方案时需要依据一定的标准选择某一种方案。购物:买钢笔,一般要依据质量、颜色、实用性、...
【1.2】 评价类模型之层次分析法中判断矩阵的填写方法、一致性检验的步骤、以及根据判断矩阵计算权重的方法
层次分析法中判断矩阵的填写方法、一致性检验的步骤、以及根据判断矩阵计算权重的方法
APP打开
层次分析法在matlab上的实现
层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯.塞蒂(T.L.saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和...
APP打开
AHP层次分析法详细教程-算法与数据结构文档类资源
层次分析法(AHP)——matlab代码实现 40449 层次分析法(AHP)的主要思想是根据研究对象的性质将要求达到的目标分解为多个组成因素,并按组成因素间的相互关系,将其层次...
层次分析法的基本原理与步骤-专业指导文档类资源
AHP(层次分析法)原理及案例先结合日常生活中的例子深入浅出的讲解了AHP的原理,随后结合案例给出了层次分析法的具体 *** 作实现过程。 层次分析法(AHP)详细步骤 1280041...
python 安装和使用
最近在学习Python,其实之前在学长的撺掇下,电脑上已经下载了anaconda,只是没怎么研究过,对Python的了解也只是局限于print(“hello world”)。现在从头开始学习,希望每天能分享一些感悟。 安装Python(windows 10系统) 1. 先上官网下载Python安装程序,之后运行它。请务必选择复选框Add Python to PATH(如图),这让你能够更轻...
APP打开
C++:实现socket通信(TCP/IP)实例
首先声明,博主之前从来没有写过通信方面的东西,这次之所以写这个是因为项目需要,因此本文主要介绍一个使用C++语言及Socket来实现TCP/IP通信的实例,希望可以帮助入门者。 一、什么是TCP/IP? TCP提供基于IP环境下的数据可靠性传输,事先需要进行三次握手来确保数据传输的可靠性。详细的博主不再赘述,感兴趣的朋友可以去search一下。 二、什么是soc...
APP打开
层次分析法(AHP)_tianhao_lu的博客-CSDN博客
层次分析法(AHP)问题的提出日常生活中有许多决策问题。决策是指在面临多种方案时需要依据一定的标准选择某一种方案。购物:买钢笔...
数学建模之层次分析法(AHP)_Tatiana's SA-CSDN博客
层次分析法(Analytic Hierarchy Process)AHP是对一些较为复杂的,较为模糊的问题作出决策的简易方法,它特别适用于那些难以完全定量分析的问题。它是美国运筹学家T.L....
深度测试 &模板测试
1. 深度测试 Depth testing 1.1 深度测试函数 Depth test function 1.2 深度值精度 Depth value precision 1.3 深度缓冲的可视化 1.4 深度冲突 1.4.1 防止深度冲突 2. 模板测试 Stencil testing 2.1 模板函数 Stencil function 2.1.1 函数 glStencilFunc...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)