最简单的网站建设语音,河南省级住房城乡建设主管部门网站,嘉兴做网站公司哪家好,手机网站 宽度博主联系方式#xff1a; QQ:1540984562 QQ交流群#xff1a;892023501 群里会有往届的smarters和电赛选手#xff0c;群里也会不时分享一些有用的资料#xff0c;有问题可以在群里多问问。 目录层次分析法的思想层次分析法步骤具体案例(市政工程项目建设决策)1.问题提出2.… 博主联系方式 QQ:1540984562 QQ交流群892023501 群里会有往届的smarters和电赛选手群里也会不时分享一些有用的资料有问题可以在群里多问问。 目录层次分析法的思想层次分析法步骤具体案例(市政工程项目建设决策)1.问题提出2.建立递阶层次结构3.构造判断矩阵成对比较阵并赋值4.层次单排序计算权向量与检验一致性检验计算权向量一致性检验5.层次总排序组合权向量与检验一致性检验6.结果分析7.层次分析法的优缺点层次分析法的代码实现(matlab) 层次分析法的思想
层次分析法的思想将所有要分析的问题层次化 根据问题的性质和所要到达的总目标将问题分为不同的组成因素并按照这些因素间的关联影响即其隶属关系将因素按不同层次聚集组合形成一个多层次分析结构模型 最后对问题进行优劣比较排序.
层次分析法步骤 1、找准各因素之间的隶属度关系建立递阶层次结构 2、构造判断矩阵并赋值 3、层次单排序(计算权向量)与检验(一致性检验) 4、层次总排序(组合权向量)与检验(一致性检验) 5、结果分析 具体案例(市政工程项目建设决策)
1.问题提出 市政部门管理人员需要对修建一项市政工程项目进行决策可选择的方案是修建通往旅游区的高速路简称建高速路或修建城区地铁简称建地铁。除了考虑经济效益外还要考虑社会效益、环境效益等因素即是多准则决策问题考虑运用层次分析法解决。 2.建立递阶层次结构
1、明确决策目标“合理建设市政工程使综合效益最高”。
2、为了实现这一目标需要考虑的主要准则有三个即经济效益、社会效益和环境效益。 还必须考虑直接经济效益、间接经济效益、方便日常出行、方便假日出行、减少环境污染、改善城市面貌等因素准则从相互关系上分析这些因素隶属于主要准则因此放在下一层次考虑并且分属于不同准则。
3、解决方案即建高速路或建地铁这两个因素作为措施层元素放在递阶层次结构的最下层。
这样递阶层次就形成了
3.构造判断矩阵成对比较阵并赋值
1、构造判断矩阵的方法 每一个具有向下隶属关系的元素被称作准则作为判断矩阵的第一个元素位于左上角隶属于它的各个元素依次排列在其后的第一行和第一列。 如下图所示 2、如何对判断矩阵进行赋值 向填写人专家反复询问针对判断矩阵的准则其中两个元素两两比较哪个重要重要多少对重要性程度按1-9赋值。 可以类比模糊PID中的隶属程度都是人为设定的也是被人诟病的一个地方 设填写后的判断矩阵为A(aij)n×n判断矩阵具有如下性质 (1) aij0 (2) aji1/ aji (3) aii1 判断矩阵具有对称性因此在填写时通常先填写aii1部分然后再仅需判断及填写上三角形或下三角形的n(n-1)/2个元素就可以了。 在特殊情况下判断矩阵可以具有传递性即满足等式aij*ajkaik . 当上式对判断矩阵所有元素都成立时则称该判断矩阵为一致性矩阵。 对于上述的例子可以构造出下面的判断矩阵
4.层次单排序计算权向量与检验一致性检验
计算权向量
对于专家填写后的判断矩阵利用一定数学方法进行层次排序。 层次单排序是指每一个判断矩阵各因素针对其准则的相对权重所以本质上是计算权向量。 这里简要介绍和法 对于一致性判断矩阵每一列归一化后就是相应的权重。 对于非一致性判断矩阵每一列归一化后近似其相应的权重在对这n个列向量求取算术平均值作为最后的权重。
公式 在层层排序中要对判断矩阵进行一致性检验。判断矩阵可以具有传递性和一致性。一般情况下并不要求判断矩阵严格满足这一性质。 但从人类认识规律看一个正确的判断矩阵重要性排序是有一定逻辑规律的例如若A比B重要B又比C重要则从逻辑上讲A应该比C明显重要若两两比较时出现A比C重要的结果则该判断矩阵违反了一致性准则在逻辑上是不合理的。 因此在实际中要求判断矩阵满足大体上的一致性需进行一致性检验。只有通过检验才能说明判断矩阵在逻辑上是合理的才能继续对结果进行分析。
一致性检验
第一步计算一致性指标CI 第二步查表确定相应的平均随机一致性指标RI 据判断矩阵不同阶数查下表得到平均随机一致性指标RI 第三步计算一致性比例CR并进行判断 当C.R.0.1时认为判断矩阵的一致性是可以接受的C.R.0.1时认为判断矩阵不符合一致性要求需要对该判断矩阵进行重新修正。
图1 图2 可以看出所有单排序的C.R.0.1认为每个判断矩阵的一致性都是可以接受的。
5.层次总排序组合权向量与检验一致性检验
总排序是指每一个判断矩阵各因素针对目标层最上层的相对权重。这一权重的计算采用从上而下的方法逐层合成。 文字性描述公式如下
计算过程如下更好理解过程 P(C1/A) P(C1/B1) * P(B1/A) 0.5 * 0.1429 0.07145 CR(C1/A) CR(C/B) * CR(B/A) 0 * 0 0 P(D1/A) P(D1/C1) * P(C1/B1) * P(B1/A) P(D1/C2) * P(C2/B1) * P(B1/A) P(D1/C3) * P(C3/B2) * P(B2/A) P(D1/C4) * P(C4/B2) * P(B2/A) P(D1/C5) * P(C5/B3) * P(B3/A) P(D1/C6) * P(C6/B3) * P(B3/A) 0.8333 * 0.5 * 0.1429 0.75 * 0.5 * 0.1429 0.1667 * 0.75 * 0.4286 0.8750 * 0.25 * 0.4286 0.1667 * 0.75 * 0.4286 0.8333 * 0.25 * 0.4286 6.结果分析
从方案层总排序的结果看建地铁D2的权重0.6592远远大于建高速路D1的权重0.3408因此最终的决策方案是建地铁。 根据层次排序过程分析决策思路: 1、对于准则层B的3个因子直接经济效益B1的权重最低0.1429社会效益B2和环境效益B3的权重都比较高皆为0.4286说明在决策中比较看重社会效益和环境效益。 2、对于不看重的经济效益其影响的两个因子直接经济效益C1、间接带动效益C2单排序权重都是建高速路远远大于建地铁对于比较看重的社会效益和环境效益其影响的四个因子中有三个因子的单排序权重都是建地铁远远大于建高速路由此可以推出建地铁方案由于社会效益和环境效益较为突出权重也会相对突出。 3、从准则层C总排序结果也可以看出方便日常出行C3、减少环境污染C5是权重值较大的而如果单独考虑这两个因素方案排序都是建地铁远远大于建高速路。 由此我们可以分析出决策思路 即决策比较看重的是社会效益和环境效益不太看重经济效益总结准则层B 因此对于具体因子方便日常出行和减少环境污染成为主要考虑因素对于这两个因素都是建地铁方案更佳总结准则层C由此最终的方案选择建地铁也就顺理成章了。
7.层次分析法的优缺点 优点 1系统性层次分析把研究对象作为一个系统按照分解、比较判断、综合的思维方式进行决策成为继机理分析、统计分析之后发展起来的系统分析的重要工具。 2实用性层次分析把定性和定量方法结合起来能处理许多许多用传统的最优化技术无法着手的实际问题应用范围很广。同时这种方法将决策者和决策分析者相互沟通决策者甚至可以直接应用它这就增加了决策者的了解和掌握。 3简洁性具有中等文化程度的人即可了解层次分析的基本原理和掌握它的基本步骤计算也非常简便并且所得的结果简单明确容易为决策者了解和掌握。 缺点囿旧只能从原有方案中选优不能生成新方案粗略它的比较、判断直到结果都是粗糙的不适于精度要求很高的问题主观从建立层次结构模型到给出成对比较矩阵人的主观因素的作用很大这就使得决策结果可能难以为众人接受。当然采取专家群体判断的办法是克服这个缺点的一种途径。
层次分析法的代码实现(matlab)
disp(请输入判断矩阵A(n阶));
Ainput(A);
[n,n]size(A);
xones(n,100);
yones(n,100);
mzeros(1,100);
m(1)max(x(:,1));
y(:,1)x(:,1);
x(:,2)A*y(:,1);
m(2)max(x(:,2));
y(:,2)x(:,2)/m(2);
p0.0001;i2;kabs(m(2)-m(1));
while kpii1;x(:,i)A*y(:,i-1);m(i)max(x(:,i));y(:,i)x(:,i)/m(i);kabs(m(i)-m(i-1));
end
asum(y(:,i));
wy(:,i)/a;
tm(i);
disp(w);disp(t);%以下是一致性检验
CI(t-n)/(n-1);RI[0 0 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];
CRCI/RI(n);
if CR0.10disp(此矩阵的一致性可以接受!);disp(CI);disp(CI);disp(CR);disp(CR);
end使用示例 将上面代码保存名为test1并在点运行的时候添加到路径 输入的A矩阵是要以向量的形式输入的 之后按下回车即可可以看到和之前的第4步得到的结果是一样的。 通过不断的使用这个式子计算相应矩阵(准则层B到准则层C、准则层C到方案层D)的权向量最后可以得到最终的结果。 简单的修改上面的程序传入参数为矩阵免得每次都要打。
function w test1(A)
% disp(请输入判断矩阵A(n阶));
% Ainput(A);
[n,n]size(A);
xones(n,100);
yones(n,100);
mzeros(1,100);
m(1)max(x(:,1));
y(:,1)x(:,1);
x(:,2)A*y(:,1);
m(2)max(x(:,2));
y(:,2)x(:,2)/m(2);
p0.0001;i2;kabs(m(2)-m(1));
while kpii1;x(:,i)A*y(:,i-1);m(i)max(x(:,i));y(:,i)x(:,i)/m(i);kabs(m(i)-m(i-1));
end
asum(y(:,i));
wy(:,i)/a;
tm(i);
disp(w);disp(t);%以下是一致性检验
CI(t-n)/(n-1);RI[0 0 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];
CRCI/RI(n);
if CR0.10disp(此矩阵的一致性可以接受!);disp(CI);disp(CI);disp(CR);disp(CR);
end输入
Array1[1 1/3 1/3;3 1 1;3 1 1];
Array2[1 1;1 1];
Array3[1 3;1/3 1];
Array4[1 3;1/3 1];
Array5[1 5;1/5 1];
Array6[1 3;1/3 1];
Array7[1 1/5;5 1];
Array8[1 7;1/7 1];
Array9[1 1/5;5 1];
Array10[1 1/3;7 1];Atest1(Array1);
B1test1(Array2);
B2test1(Array3);
B3test1(Array4);
C1test1(Array5);
C2test1(Array6);
C3test1(Array7);
C4test1(Array8);
C5test1(Array9);
C6test1(Array10);得到相应的矩阵