欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Matlab笔记层次分析法.docx

    • 资源ID:12993085       资源大小:131.30KB        全文页数:14页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Matlab笔记层次分析法.docx

    1、Matlab笔记层次分析法、概述层次分析法( Analytic Hierarchy Process, AHD )是将要决策 的问题及其有关因素分解成目标、准则、方案等层次,进而进行定性 和定量分析的决策方法。 它的特征是合理地将定性与定量决策结合起 来,按照思维、心理的规律把决策过程细致化(层次化、数量化) 。层次分析法广泛地应用到处理复杂的决策问题,而决策是基于 该方法计算出的权重,所以也常用来确定指标的权重。层次分析法的基本思路与人们对一个决策问题的思维、判断过 程大体上是一样的。例如,选购一台笔记本电脑,假设有三种不同品 牌款式的笔记本电脑 A B、C供选择。我们一般会根据价格、外观、重

    2、量、用途、功耗、品牌等一些准则去反复比较这个三个候选。 首先, 会确定这些准则在自己心目中各占多大比重, 不同的人这种比重会有 很大差异(喜欢玩游戏的人看重硬件性能和散热、 预算有限的人看重 价格等)。其次,还会就每一个准则将 A B C进行对比,比如A最便宜,B次之;C性能最好,B次之;C的品牌最知名等。最后,将这 两个层次的比较判断进行综合,在 A B C中确定一台作为最符合自己需求的电脑。二、算法步骤1.将问题条理化、层次化,建立层次结构模型1)最高层(目标层)只有一个元素:决策目标;2)中间层(准则层)考虑的因素,决策的准则、子准则;3)最底层(方案层)决策时的备选方案、措施。层次分析

    3、法要解决的问题是,求出最底层对最高层的相对权重,以此对最底层的方案、措施进行排序,选择最优方案。注 1 :为了避免两两比较判断过于复杂,每层次中各元素所支配 的元素一般不要超过 9 个,否则应划分为若干子层;注 2 :层次分析法只考虑相邻两个层次间自上向下的支配作用, 认为同一层次的元素间相互独立, 若考虑进来需要网络分析法 (ANP)。例如前文提到的选购笔记本电脑的决策模型, 可以建立如下的层 次结构:2.构造判断矩阵(成对比较矩阵)构造好层次模型后,针对某一层来讲,在比较第 i 个元素与第 j个元素相对于上一层某个因素的重要性时,使用数量化的相对权重aij 来表示,假设共有 n 个元素参与

    4、比较,则矩阵称为判断矩阵(或成对比较矩阵)Saaty 根据绝大多数人认知事物的心理习惯, 建议用 19 及其倒数作为标度来确定 aij 的值。其中, 2, 4, 6, 8 分别介于 1, 3, 5, 7, 9 对应的重要程度之间。显然,A中的元素满足:i) aij 0; ii) aji = 1/ aij ; iii) aii =1称为正互反矩阵。例如,选购笔记本电脑模型中, 可以根据实际三台电脑的重量得 到电脑对准则层 B3 的判断矩阵( aij 可以取笔记本电脑 j 与 i 的重量 之比,重量越轻越好) :1 1/3 1/5AB3 C3 1 3/55 5/3 13.层次单排序及判断矩阵的一致

    5、性检验通常用特征根法从判断矩阵导出,单一准则下元素相对排序权 重。定义若n阶正互反矩阵(aij )nxn满足aikQj = q (对应aj =w/w,故需要 akakj =(w/w)/( wk/w) = aj ),则称(ajnxn 为一致性矩阵。特征根法的基本思想是,当正互反矩阵(aij)nx n为一致性矩阵时,对应于判断矩阵的最大特征根 入max的特征向量,经归一化后(使向量 中各元素之和等于1)即为排序权向量,记为 w w的元素为同一层次因素对于上一层次某因素相对重要性的排序权值, 这一过程称为层 次单排序。能否进行层次单排序, 就看判断矩阵是否为一致性矩阵, 有如下 定理:定理n阶正互反

    6、矩阵A为一致性矩阵的充要条件是,A的最大特 征值入max = n.在实际操作中,由于客观事物的复杂性以及人们对事物判断比较时的模糊性,很难构造出完全一致的判断矩阵。因此, Satty在构造层次分析法时,提出了一致性检验,所谓一致性检验是指判断矩阵允 许有一定不一致的范围。致性检验步骤如下:1)计算判断矩阵A的最大特征值 入max;2)求出一致性指标(Consistencey Index ):.=0表示完全一致,.越大越不一致;3)用随机模拟取平均的方法,求相应的平均随机一致性指标或者直接用Satty模拟1000次得到的.表:4)计算一致性比率:5)判断,当.,应 考虑修正判断矩阵A.4.计算各

    7、元素对目标层的合成权重(层次总排序)为了实现层次分析法的最终目的,需要从上而下逐层进行各层元 素对目标合成权重的计算。设已计算出第k-1层nk-1个元素相对于目标的合成权重为:(k 1) , k 1 k 1 . k 1、 Tw (W1 ,W2 丄,Wnk1)再设第k层的nk个元素关于第k-1层第j个元素(j=1,nk-1 )的 单一准则排序权重向量为:k (k) (k) (k) Tuj (u1j ,u2j ,L ,unk j)上式对k层的nk个元素是完全的,若某些元素不受k-1层第j个元素w(k) U(k)w(k 1)按递归展开得w(k) U(k)U(k1)L U (3) w(2)写成分量形式

    8、为nk 1(k) (k) (k 1)wi(k) ui(jk)w(jk 1) , i 1,L ,nkj1各层元素对目标层的合成排序权重向量是否可以满意接受, 与单 一准则下的排序问题一样,需要进行综合一致性检验:当.(k) 时,则认为层次结构在第 k层以上的判断具有整体满意的一致性。注:实际应用中,整体一致性检验常不予进行。主要原因是,整 体考虑十分困难; 其次若每个单一准则下的判断矩阵具有满意的一致 性,而整体达不到满意的一致性时,调整起来非常困难。另外,整体致性的背景也不如单一准则下的背景清晰,它的必要性有待进 研究。三、Matlab实现实现层次分析法的Matlab函数:fun ctio n

    9、 W,ah pResult = ahp(C)沁次分析法%(为nx 1的元胞数组,存储整个层次模型结构:第2层对第1层、第3层对第2 层、第n+1层对第n层%假设第k层有m_个元素,从左到右依次编号1,.,m_k%Ck也是元胞数组,k=1,.,n%Ck1,j存储受第j元素支配的第k+1层各元素的判断矩阵(j=1,2,.,m_k%Ck2,j存储第k+1层各元素是否受第k层第j元素支配的(m_k+1 *1的 逻辑数组,1表示支配,0表示不受支配%返回方案层对目标层的最终权重向量%ahpResult为nX 1的元胞数组,存储层次分析过程各层的结果信息, ahpResultk也是元胞数组%ahpResu

    10、ltk1,j 返回第k+1层所有元素相对第k层j元素的权重向量,第k+1层元素不受第k层j元素支配的权重为0返回第k+l层所有元素相对于第k层第j元素的判断矩%ah pResultk2,j阵的最大特征值返回第k+l层所有元素相对于第k层第j元素的判断矩%ah pResultk3,j阵的一致性比率.%平均随机一致性指标%得到C的长度n,于是知道模型总层数为n+1%存储各层结果信息RI=0 0 ;n = len gth(C);ahp Result = cell( n,1);for k = 1:nm_k = size(Ck,2); % k层的元素个数ahp Resultk = cell(m_k,1)

    11、;for kk = 1:m_k%求第k+1层各元素对第k层kk元素的成对比较矩阵的特征值和特征向量V,D = eig(Ck1,kk);maxD,i nd = max(diag(D); %求最大特征值和其位置%为存储第k+1层所有元素相对k层kk元素的权重预留出空间,长度应等于 Ck2,kk的长度ahp Resultk1,kk = zeros(le ngth(Ck2,kk),1);%将相应正互反矩阵属于最大特征值的特征向量归一化后赋给ah pResultk1,kk中相应位置% 这些位置由逻辑数组Ck2,kk决定ahp Resultk1,kk(Ck2,kk) = V(:,i nd)/sum(V(:

    12、,i nd);ahpResultk2,kk = maxD; % Ck1,kk正互反矩阵的最大特征值nn = size(Ck1,kk,1); % Ck1,kk的阶数ahp Resultk3,kk = (maxD-nn)/(nn-1)/RI( nn); % 相应的一致性比 率.endendW = ahp Result11,1;for k = 2:n% cat(2,ahpResultk1,:) 把k+1层所有元素相对k层各个元素的权重向量横向排在一起生成权重矩阵UA(k)W = cat(2,ah pResultk1,:)*W;end用该函数实现层次分析法的关键是,把整个层次结构存入嵌套元 胞数组C中

    13、(见程序注释):Ck存储第k+1层与第k层的结构(k=1,n);设第k层有m个元素,其中第j元素与第k+1层的结构关系存储 到Ck,j中(j=1,,m),需要存储的信息有:受第j元素支配的第k+1层各元素的判断矩阵有三种用途:奖金、集体福利措施、引进技术设备。考察准则也有三 个:是否能调动职工的积极性、是否有利于提高技术水平、考虑改善 职工生活条件。建立如下层次模型:经过工厂决策人员讨论,得到如下判断矩阵:1.第2层对第1层三个元素G, C2, C3都受A支配,判断矩阵C11,1为相应的逻辑数组 C12,1为true truetrue.2.第3层对第2层(1)第3层对第2层第1个元素G受C支配

    14、的只有两个元素R和P2,判断矩阵C21,1相应的逻辑数组 C22,1为true truefalse.第3层对第2层第2个元素G受G支配的只有两个元素 R和P3,判断矩阵C21,2相应的逻辑数组 C22,2为false true true.第3层对第2层第3个元素G受G支配的只有两个元素P1和P2,判断矩阵C21,3相应的逻辑数组 C22,3为true truefalse.3.有了上面的分析,层次模型的元胞数组表示 C已经确定,调用函数即可%第 2层(C层)关于第1层(目C21,2 = 1 1/5;5 1;C22,2 = false true true;C21,3 = 1 2;1/2 1;C22

    15、,3 = true truefalse;3层(P层)关于第2层第2元素C2的判断矩阵 应的逻辑数组3层(P层)关于第2层第3元素C3的判断矩阵 应的逻辑数组W,ah pResult=ah p(C); %调用 ahp 求解W %俞出总排序的权重向量运行结果:W就是方案层各个方案所占的比重, 可见引进技术设备所占比重最大,改善员工福利次之。体现在奖金分配上,即用全部留成利润的%引进技术设备,9改善员工福利,发奖金。例2假设某人在制定食谱时有三类食品可选:肉、面包、蔬菜。这三类食品所含营养成分及单价如下表所示:假设该人体重为55kg,每天对各类营养的最小需求为维生素A 7500IU热量Q问题是:应如

    16、何制定食谱使得在保证营养的前提下支出最小?单纯考虑问题条件,容易建立如下的线性规划模型:设选择肉Xl,面包X2,蔬菜X3,则有用Matlab求解线性规划问题的函数linprog, 可以求出最优解:运行结果:fval=求解出的结果是,每天不吃肉,吃面包,蔬菜,最低支出为元。但实 际考虑的话,这个方案是难以让人接受的,只考虑了营养够、价格低, 没有考虑到营养均衡(需要吃一定量的肉)。为此,我们先用层次分析法确定每天需要肉、 面包、蔬菜的比重, 再重新线性规划。建立如下的层次模型:注意:由于第2层支出因素D直接支配第4层,需要在第3层补 上一个因素“补项B”(仍当作“支出”看待),它只受D支配,并且

    17、 支配D的每个支配因素(第4层的肉Me,面包Br,蔬菜Ve)。有了上面的层次结构,再根据偏好建立判断矩阵(当然偏好因人 而异):1.第2层对第1层判断矩阵:逻辑数组:C12,1=true true.2.第3层对第2层(1) 第 3 层对第 2 层第 1元素 D1判断矩阵:111/ 21C 2 1,1 11/ 2逻辑数组: C22,1=true truetrue false.(2)第 3 层对第 2 层第 2元素 D2判断矩阵: C21,2=1逻辑数组: C22,2=false falsefalseture.3.第 4 层对第 3 层(1) 第 4 层对第 3 层第 1元素 A判断矩阵(用数据直

    18、接做比得到) :逻辑数组: C32,1=true true true.(2) 第 4 层对第 3 层第 2元素 B2判断矩阵(用数据直接做比得到) :逻辑数组: C32,2=true true true.(3)第 4 层对第 3 层第 3元素 Q判断矩阵(用数据直接做比得到) :逻辑数组:C32,3=true true true.第4层对第3层第4元素B逻辑数组:C32,4=true true true.用函数即可C = cell(3,1);C11,1 = 1 1/3;3 1;C12,1 = true(2,1);C21,1 = 1 1 2;1 1 2; 1/2 1/2 1;C22,1=true

    19、 truetrue false; C21,2=1;C22,2 = false,false,false,true;C31,1 = 1,25;,1,25;25/,25/,1 ;C3 2,1=true(3,1);C3 1,2 = 1,;,1,;,1 ;C3 2,2=true(3,1);C31,3 = 1,;,1,;,1 ;C3 2,3=true(3,1);C3 1,4 = 1,;,1,;,1 ;C3 2,4=true(3,1);W,ah pResult=ah p(C);W运行结果:该结果表明,按这个人的情况,肉、面包、蔬菜的比例取 ,比较合适。引入参变量k,令xi= X2=, x3=,将其代入前文的

    20、线性规划模型,得到min f 0.0116ks.t. 13.4116k 7500用linprog 求解:f =;A =-;b = -7500;W = = optimset( LargeScale , off , Simplex ,on);k,fval,flag = linp rog(f,A,b,0, in f,o ptio ns)X = k*W运行结果:k = +03 fval =flag = 1故k=, X1=, X2=, X3=. 每天食品支出元。注:对于不同的人可以有不同的判断矩阵 C11,1, 即营养与 支出的相对重要程度,例如,修改为1 1/3; 3 1,可以得到X1=, X2=,X3=.每天食品支出元。主要参考文献:吴鹏,Matlab高效编程技巧与应用:25个案例分析 第 11 章。


    注意事项

    本文(Matlab笔记层次分析法.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开