层次分析法(MATLAB实现)

  • 定义
  • 例题
  • 步骤
  • 细节补充
  • 应用实例

定义

  层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。

通常用于解决数学建模中的评价类问题。

例题

小明想利用寒假时间外出旅游。在查阅了网上的攻略后,他初步选择了杭州、北戴河和桂林三地作为目标景点。
    请你确定评价指标,形成评价体系来帮助小明选择最合适的旅游地点。

步骤

  • 确定评价指标
       我们需要考虑什么指标可以作为评价我们旅游地点的理想与否,这个过程可以通过上网搜索相关文献确定或者小组成员的头脑风暴。
      经过思考后,小明将景色、费用、住宿、饮食和交通作为此次评价的指标。
      如图所示,“旅游”作为我们的目标层,“景色、费用、住宿、饮食和交通”作为我们的决策层,“北戴河、杭州和桂林”则作为我们的方案层。

    #mermaid-svg-028tRDbHw2t9dax3 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-028tRDbHw2t9dax3 .label text{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .node rect,#mermaid-svg-028tRDbHw2t9dax3 .node circle,#mermaid-svg-028tRDbHw2t9dax3 .node ellipse,#mermaid-svg-028tRDbHw2t9dax3 .node polygon,#mermaid-svg-028tRDbHw2t9dax3 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-028tRDbHw2t9dax3 .node .label{text-align:center;fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .node.clickable{cursor:pointer}#mermaid-svg-028tRDbHw2t9dax3 .arrowheadPath{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-028tRDbHw2t9dax3 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-028tRDbHw2t9dax3 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-028tRDbHw2t9dax3 .edgeLabel rect{opacity:0.9}#mermaid-svg-028tRDbHw2t9dax3 .edgeLabel span{color:#333}#mermaid-svg-028tRDbHw2t9dax3 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-028tRDbHw2t9dax3 .cluster text{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-028tRDbHw2t9dax3 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-028tRDbHw2t9dax3 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-028tRDbHw2t9dax3 .actor-line{stroke:grey}#mermaid-svg-028tRDbHw2t9dax3 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-028tRDbHw2t9dax3 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-028tRDbHw2t9dax3 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-028tRDbHw2t9dax3 .sequenceNumber{fill:#fff}#mermaid-svg-028tRDbHw2t9dax3 #sequencenumber{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-028tRDbHw2t9dax3 .messageText{fill:#333;stroke:#333}#mermaid-svg-028tRDbHw2t9dax3 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-028tRDbHw2t9dax3 .labelText,#mermaid-svg-028tRDbHw2t9dax3 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-028tRDbHw2t9dax3 .loopText,#mermaid-svg-028tRDbHw2t9dax3 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-028tRDbHw2t9dax3 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-028tRDbHw2t9dax3 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-028tRDbHw2t9dax3 .noteText,#mermaid-svg-028tRDbHw2t9dax3 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-028tRDbHw2t9dax3 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-028tRDbHw2t9dax3 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-028tRDbHw2t9dax3 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-028tRDbHw2t9dax3 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .section{stroke:none;opacity:0.2}#mermaid-svg-028tRDbHw2t9dax3 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-028tRDbHw2t9dax3 .section2{fill:#fff400}#mermaid-svg-028tRDbHw2t9dax3 .section1,#mermaid-svg-028tRDbHw2t9dax3 .section3{fill:#fff;opacity:0.2}#mermaid-svg-028tRDbHw2t9dax3 .sectionTitle0{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .sectionTitle1{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .sectionTitle2{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .sectionTitle3{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-028tRDbHw2t9dax3 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .grid path{stroke-width:0}#mermaid-svg-028tRDbHw2t9dax3 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-028tRDbHw2t9dax3 .task{stroke-width:2}#mermaid-svg-028tRDbHw2t9dax3 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .taskText:not([font-size]){font-size:11px}#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-028tRDbHw2t9dax3 .task.clickable{cursor:pointer}#mermaid-svg-028tRDbHw2t9dax3 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-028tRDbHw2t9dax3 .taskText0,#mermaid-svg-028tRDbHw2t9dax3 .taskText1,#mermaid-svg-028tRDbHw2t9dax3 .taskText2,#mermaid-svg-028tRDbHw2t9dax3 .taskText3{fill:#fff}#mermaid-svg-028tRDbHw2t9dax3 .task0,#mermaid-svg-028tRDbHw2t9dax3 .task1,#mermaid-svg-028tRDbHw2t9dax3 .task2,#mermaid-svg-028tRDbHw2t9dax3 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutside0,#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutside2{fill:#000}#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutside1,#mermaid-svg-028tRDbHw2t9dax3 .taskTextOutside3{fill:#000}#mermaid-svg-028tRDbHw2t9dax3 .active0,#mermaid-svg-028tRDbHw2t9dax3 .active1,#mermaid-svg-028tRDbHw2t9dax3 .active2,#mermaid-svg-028tRDbHw2t9dax3 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-028tRDbHw2t9dax3 .activeText0,#mermaid-svg-028tRDbHw2t9dax3 .activeText1,#mermaid-svg-028tRDbHw2t9dax3 .activeText2,#mermaid-svg-028tRDbHw2t9dax3 .activeText3{fill:#000 !important}#mermaid-svg-028tRDbHw2t9dax3 .done0,#mermaid-svg-028tRDbHw2t9dax3 .done1,#mermaid-svg-028tRDbHw2t9dax3 .done2,#mermaid-svg-028tRDbHw2t9dax3 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-028tRDbHw2t9dax3 .doneText0,#mermaid-svg-028tRDbHw2t9dax3 .doneText1,#mermaid-svg-028tRDbHw2t9dax3 .doneText2,#mermaid-svg-028tRDbHw2t9dax3 .doneText3{fill:#000 !important}#mermaid-svg-028tRDbHw2t9dax3 .crit0,#mermaid-svg-028tRDbHw2t9dax3 .crit1,#mermaid-svg-028tRDbHw2t9dax3 .crit2,#mermaid-svg-028tRDbHw2t9dax3 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-028tRDbHw2t9dax3 .activeCrit0,#mermaid-svg-028tRDbHw2t9dax3 .activeCrit1,#mermaid-svg-028tRDbHw2t9dax3 .activeCrit2,#mermaid-svg-028tRDbHw2t9dax3 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-028tRDbHw2t9dax3 .doneCrit0,#mermaid-svg-028tRDbHw2t9dax3 .doneCrit1,#mermaid-svg-028tRDbHw2t9dax3 .doneCrit2,#mermaid-svg-028tRDbHw2t9dax3 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-028tRDbHw2t9dax3 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-028tRDbHw2t9dax3 .milestoneText{font-style:italic}#mermaid-svg-028tRDbHw2t9dax3 .doneCritText0,#mermaid-svg-028tRDbHw2t9dax3 .doneCritText1,#mermaid-svg-028tRDbHw2t9dax3 .doneCritText2,#mermaid-svg-028tRDbHw2t9dax3 .doneCritText3{fill:#000 !important}#mermaid-svg-028tRDbHw2t9dax3 .activeCritText0,#mermaid-svg-028tRDbHw2t9dax3 .activeCritText1,#mermaid-svg-028tRDbHw2t9dax3 .activeCritText2,#mermaid-svg-028tRDbHw2t9dax3 .activeCritText3{fill:#000 !important}#mermaid-svg-028tRDbHw2t9dax3 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-028tRDbHw2t9dax3 g.classGroup text .title{font-weight:bolder}#mermaid-svg-028tRDbHw2t9dax3 g.clickable{cursor:pointer}#mermaid-svg-028tRDbHw2t9dax3 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-028tRDbHw2t9dax3 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-028tRDbHw2t9dax3 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-028tRDbHw2t9dax3 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-028tRDbHw2t9dax3 .dashed-line{stroke-dasharray:3}#mermaid-svg-028tRDbHw2t9dax3 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 .commit-id,#mermaid-svg-028tRDbHw2t9dax3 .commit-msg,#mermaid-svg-028tRDbHw2t9dax3 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-028tRDbHw2t9dax3 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-028tRDbHw2t9dax3 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-028tRDbHw2t9dax3 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-028tRDbHw2t9dax3 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-028tRDbHw2t9dax3 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-028tRDbHw2t9dax3 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-028tRDbHw2t9dax3 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-028tRDbHw2t9dax3 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-028tRDbHw2t9dax3 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-028tRDbHw2t9dax3 .edgeLabel text{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-028tRDbHw2t9dax3 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-028tRDbHw2t9dax3 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-028tRDbHw2t9dax3 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-028tRDbHw2t9dax3 .note-edge{stroke-dasharray:5}#mermaid-svg-028tRDbHw2t9dax3 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-028tRDbHw2t9dax3 .error-icon{fill:#522}#mermaid-svg-028tRDbHw2t9dax3 .error-text{fill:#522;stroke:#522}#mermaid-svg-028tRDbHw2t9dax3 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-028tRDbHw2t9dax3 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-028tRDbHw2t9dax3 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-028tRDbHw2t9dax3 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-028tRDbHw2t9dax3 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-028tRDbHw2t9dax3 .marker{fill:#333}#mermaid-svg-028tRDbHw2t9dax3 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-028tRDbHw2t9dax3 {color: rgba(0, 0, 0, 0.75);font: ;}

    旅游
    景色
    北戴河
    杭州
    桂林
    费用
    住宿
    饮食
    交通

  • 构造判断矩阵

指标权重 杭州 北戴河 桂林
景色
费用
住宿
饮食
交通

将此表格填充完整,所得的数据就是我们想要的判断矩阵,如何填写步骤如下:
    1.两两比较确定矩阵数值

  自主打分完成后,我们可以得到一个 3 ∗ 3 3*3 3∗3的矩阵,记为A,对应元素为 a i j a_{ij} aij​,因为 a i j a_{ij} aij​ > 1 且 >1且 >1且 a i j a_{ij} aij​ ∗ * ∗ a j i a_{ji} aji​ = = = 1 1 1,所以该矩阵也叫作正互反矩阵。
例如得到如下表格:

景色 杭州 北戴河 桂林
杭州 1 2 1
北戴河 1/2 1 2
桂林 1 1/2 1

  我们不难发现,据表所示杭州的风景比北戴河好,和桂林一样好,但是北戴河又比桂林景色好,所以显然这里出现了矛盾。
再对比下面两张表格,

景色 杭州 北戴河 桂林
杭州 1 2 4
北戴河 1/2 1 2
桂林 1/4 1/2 1

景色 杭州 北戴河 桂林
杭州 1 2 5
北戴河 1/2 1 2
桂林 1/5 1/2 1

  很显然,第一张表格数据在逻辑上是完全一致的,于是根据第一张表格所得到的矩阵我们称为一致矩阵,其特点是各行(各列)之间呈倍数关系。但在实际操作中,我们很难做到完全一致(如第二张表格所示),于是我们在计算权重之前,还需要对不一致的矩阵进行一致性检验。

  • 一致性检验
       n阶正互反矩阵A为一致矩阵时当且仅当最大特征值 λ m a x \lambda_{max} λmax​ = n {=n} =n,其余特征值1均为0;且当正互反矩阵A非一致时,一定满足 λ m a x \lambda_{max} λmax​ > n {>n} >n。判断矩阵越不一致,最大特征值与n相差就越大。
    1.计算一致性指标CI
    C I = λ m a x − n n − 1 CI=\frac{\lambda_{max}-n}{n-1} CI=n−1λmax​−n​
    2.查找对应的平均随机一致性指标RI

    3.计算一致性比例
    C R = C I R I CR=\frac{CI}{RI} CR=RICI​  如果 C R < 0.1 CR<0.1 CR<0.1,则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。

  • 计算权重
      一致矩阵计算权重:任意选择一列计算,用上图一致矩阵作例可得,
    ω 1 = 1 1 + 0.5 + 0.25 , ω 2 = 0.5 1 + 0.5 + 0.25 , ω 3 = 0.25 1 + 0.5 + 0.25 \omega_1=\frac{1}{1+0.5+0.25}, \omega_2=\frac{0.5}{1+0.5+0.25}, \omega_3=\frac{0.25}{1+0.5+0.25} ω1​=1+0.5+0.251​,ω2​=1+0.5+0.250.5​,ω3​=1+0.5+0.250.25​
        1.算术平均法
      (1)将判断矩阵按照列进行归一化(每个元素除以其所在列的和)
      (2)将归一化的各列按行求和
      (3)将相加后得到的向量中每个元素除以n可得权重
       由于三列数据并不成比例,所以以归一化后的三个值的平均值作为该地对于景色所占的权重,即若判断矩阵A为
    A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A=\begin{bmatrix} a_{11}&a_{12}&\cdots&a_{1n}\\ a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{n1}&a_{n2}&\cdots&a_{nn}\end{bmatrix} A=⎣⎢⎢⎢⎡​a11​a21​⋮an1​​a12​a22​⋮an2​​⋯⋯⋱⋯​a1n​a2n​⋮ann​​⎦⎥⎥⎥⎤​
    则计算权重公式为,
    ω i = 1 n ∑ j = 1 n a i j ∑ k = 1 n a k j , ( i = 1 , 2 , . . . , n ) \omega_i=\frac{1}{n}\sum_{j=1}^{n} \frac{a_{ij}}{\sum_{k=1}^{n}a_{kj}} ,(i=1,2,...,n) ωi​=n1​j=1∑n​∑k=1n​akj​aij​​,(i=1,2,...,n)

2.几何平均法
(1)按行相乘得到一个新的列向量
(2)将新的响亮的每个分量开n次方根
(3)对该列向量进行归一化即可得到权重向量
即若判断矩阵A为
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A=\begin{bmatrix} a_{11}&a_{12}&\cdots&a_{1n}\\ a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{n1}&a_{n2}&\cdots&a_{nn}\end{bmatrix} A=⎣⎢⎢⎢⎡​a11​a21​⋮an1​​a12​a22​⋮an2​​⋯⋯⋱⋯​a1n​a2n​⋮ann​​⎦⎥⎥⎥⎤​
则计算权重公式为,
ω i = ( ∏ j = 1 n a i j ) 1 n ∑ k = 1 n ( ∏ j = 1 n a k j ) 1 n , ( i = 1 , 2 , . . . , n ) \omega_i=\frac{(\displaystyle\prod_{j=1}^{n} a_{ij})^\frac{1}{n}}{\displaystyle\sum_{k=1}^{n}(\displaystyle\prod_{j=1}^{n} a_{kj})^\frac{1}{n}},(i=1,2,...,n) ωi​=k=1∑n​(j=1∏n​akj​)n1​(j=1∏n​aij​)n1​​,(i=1,2,...,n)
    3.特征值法
(1)计算矩阵A的最大特征值以及其所对应的特征向量
(2)对求出的特征向量进行归一化,即可得我们想要的权重

算术平均法 几何平均法 特征值法
杭州 0.5949 0.5954 0.5954
北戴河 0.2766 0.2764 0.2764
桂林 0.1285 0.1283 0.1283

  比较三种方法所得权重发现,三种方法所得结果差距很小,但是在数模比赛中可以三种方法都使用后再求均值得到最终权重,以增强可靠性严谨性。
  最终,可将所得数据填入表如下图所示,

指标权重 杭州 北戴河 桂林
景色 0.5954 0.2764 0.1283
费用
住宿
饮食
交通

  重复上述步骤可将该表格的二三四列填充完整,第一列数据的判断矩阵由下表构造,

景色 费用 住宿 饮食 交通
景色
费用
住宿
饮食
交通
  • 计算方案得分
    完成数据计算后表格如下所示,
指标权重 杭州 北戴河 桂林
景色 0.2636 0.5954 0.2764 0.1283
费用 0.4758 0.0819 0.2764 0.1283
住宿 0.0538 0.4286 0.2764 0.6817
饮食 0.0981 0.6337 0.1919 0.1429
交通 0.1087 0.1667 0.1667 0.6667

  计算杭州最终得分为两三两列数据对应相乘,
= 0.2636 ∗ 0.5954 + 0.4758 ∗ 0.0819 + 0.0538 ∗ 0.4286 + 0.0981 ∗ 0.6337 + 0.1087 ∗ 0.1667 = 0.299 =0.2636*0.5954+0.4758*0.0819+0.0538*0.4286+0.0981*0.6337+0.1087*0.1667=0.299 =0.2636∗0.5954+0.4758∗0.0819+0.0538∗0.4286+0.0981∗0.6337+0.1087∗0.1667=0.299
  依次计算出北戴河和桂林的得分分别为0.245和0.455,最终小明选择桂林作为他的旅游地。

细节补充

1、一致矩阵不需要做一致性检验。
2、如果 C R > 0.1 CR>0.1 CR>0.1如何修正?
  因为一致矩阵的特点是各行\各列数据成比例,所以…懂吧?
3、层次分析法也有局限性,比如说:评价的决策层越多,即n越大,判断矩阵和一致矩阵差异可能会很大;判断矩阵由自己填入,主观性很大。
4、小技巧:在Excel中,F4可以锁定单元格,为计算带来便利。

应用实例

该篇为学习完清风老师B站层次分析法课程后所记。


  1. 特征值为虚数时,应比较其模长 ↩︎

学习笔记----层次分析法相关推荐

  1. 数学建模学习笔记——层次分析法(评价类,专家打分一般不用)

    层次分析法 (1)评价类问题--打分解决 问法--确认评价指标.形成评价体系         亿图图示  

  2. 数模学习笔记-层次分析法(AHP)

    作用:解决评价类问题(即哪种方案最好,哪个人的表现最好.....) 解决评价类问题:首先要想到以下三个问题: ① 我们评价的目标是什么? ② 我们为了达到这个目标有哪几种可选的方案? ③ 评价的准则或 ...

  3. 数学建模模型学习(1)--层次分析法

    前面我已经写了两篇博客,是关于matlab基础的,如果没有matlab基础,对于后面这些文章的代码来计算会比较吃力. (一)matlab常用基本语法和函数总结 (二)用matlab求得矩阵的最大特征值 ...

  4. 数学建模算法总结——04层次分析法

    一.层次分析法的应用 题目分类: 评价类(评价.分类.排序) 特征: 合理地将定性与定量的决策结合起来,按照思维.心理的规律把决策过程层次化.数量化. 层次分析法的三大典型应用 (1)用于最佳方案的选 ...

  5. AHP层次分析法(Analytic Hierarchy Process)——个人学习笔记

    目录 一.相关知识与例子 二.代码实现 一.相关知识与例子 层次分析法是数学建模过程中最基础的模型之一,主要应用于评价问题.层次分析法是对一些较为复杂.较为模糊的问题作出决策的简易方法,其适用于那些难 ...

  6. 层次分析法(AHP)的初步理解(清风建模学习笔记)

    层次分析法简介及适用题型: 是建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:哪种方法最好,哪位运动员参赛,哪位员工表现优秀): 一.模型介绍         一般分为三层,最上面为目标层 ...

  7. [清风数学建模]层次分析法(AHP)笔记及代码实现

    本文章是学习清风老师数学建模视频后所做的笔记,其中一些图片及代码实现来源于清风老师的B站视频: [强烈推荐]清风:数学建模算法.编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilib ...

  8. 【数学建模】清风视频笔记1、层次分析法

    层次分析法 主要用于解决评价类问题. 例子: 小明最关心大学里的四个方面(学习氛围-0.4,就业前景-0.3,男女比例-0.2,校园景色-0.1)括号里面的数值表示小明认为的重要性程度(权重,其和为1 ...

  9. 【数学建模学习】matlab实现评价模型——层次分析法(AHP)

    目录 1概述 2算法实现流程 3实例 4matlab实现层次分析法 5计算结果 1概述 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之 ...

最新文章

  1. 微积分学习笔记四:空间向量基础
  2. Linux常用测试命令
  3. 如果刘华强是个码农...
  4. Vue creatElement
  5. python自动登录校园网 密码_python实现校园网自动登录的示例讲解
  6. activity中fragment 返回键不退出_优雅地处理加载中(loading),重试(retry)和无数据(empty)等...
  7. (学)新版动态表单研发,阶段成果----1
  8. 计算机英语翻译的典故,中国成语典故英语翻译大全
  9. 量子计算机算象棋,量子计算机,只需要几个量子,就足以解决国际象棋中n皇后问题!...
  10. python socket tcp远控_Python3实现ICMP远控后门(中)之“嗅探”黑科技
  11. java中无法推断类型参数_Java 10中的本地类型推断,或者如果它像鸭子一样嘎嘎叫...
  12. kl散度的理解_以曲率的视角理解自然梯度优化
  13. Centos7安装Postgresql 13 详细步骤(远程连接)
  14. c# webservice的简单示例
  15. JavaScript强化教程——数组的基本处理函数
  16. IDEA 使用generator逆向工程生成pojo,mapper
  17. 博格和他的先锋集团创业史(3): 共同基金的先驱者
  18. i2c驱动之调用ioctl函数进行读写at24c08
  19. Redis入门到精通(2021版本)视频教程
  20. 教你唱千千阙歌,粤语版的

热门文章

  1. 文件操作之特殊文件操作
  2. linux版的百度云怎么样,有些人用Linux版百度网盘不限速,有些则速度很慢
  3. airsim:体验在虚幻世界中“自由飞行”
  4. Vue响应式原理(defineProperty)
  5. 网站变灰,6行代码,通通变灰
  6. EMC电磁兼容测试服务包括
  7. 云计算发展前景好不好 学了后能胜任哪些岗位
  8. 马尔可夫决策模型(转)
  9. linux ibus 快捷键,Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置
  10. python三级考什么_什么是计算机三级考试?计算机三级考什么?