精华内容
下载资源
问答
  • IE七大手法,程序分析法,双手并用法,动作分析法五五法,时间分析法,防呆法
  • 自下而上的分析法——算符优先分析法

    万次阅读 多人点赞 2018-05-13 19:19:42
    算符优先分析法的关键是比较两相继出现的终结符的优先级而决定应采取的动作。  优点:简单,有效,适合表达式的分析。  缺点:只适合于算符优先文法,是一不大的文法类。 名词解释 定义:  短语:设有...

    概述

           算符优先分析法(Operator Precedence Parse)是仿效四则运算的计算过程而构造的一种语法分析方法。算符优先分析法的关键是比较两个相继出现的终结符的优先级而决定应采取的动作。

           优点:简单,有效,适合表达式的分析。

           缺点:只适合于算符优先文法,是一个不大的文法类。

    名词解释

    定义:

        短语:设有文法G,S是开始符号,设abd是G的一个句型,若有SÞabd且AÞb则称b是句型abd关于A的短语

        直接短语:在上面定义中,如果A直接推出b,即AÞb,则称b是句型abd关于A®b的直接短语。

        句柄:一个句型的最左直接短语称为句柄。

        素短语:文法G某句型的一个短语是素短语,当且仅当它至少含有一个终结符,且除它自身之外不再含更小的素短语。

        最左素短语:在具有多个素短语的句型中处于最左边的那个素短语。

    求法:

        短语:从根结点出发一层一层地找出所有非叶子结点的非终结符,每一个非终结符延伸下去的所有叶子结点从左到右排列起来就是一个短语。

        直接短语:找出所有仅有两代的子树,并将它的所有叶子从左到右排列起来就是一个直接短语。

        句柄:从直接短语集合中找出最左边的短语。

        素短语:从短语集合中找出所有含有终结符的短语,然后选出除它自身之外不再含更小的素短语(这个小的概念是集合中没有被包含的元素,如有两个短语aAA和aAAA,aAA含于aAAA,所以aAA比aAAA小)

        最左素短语:从素短语集合中找出最左边的素短语。

    FIRSTVT集和LASTVT集

    FIRSTVT集

    定义:FIRSTVT(P)={a|P=>a…,或P=>Qa…,a属于VT,Q 属于VN}

    求法

        若P→a…或P→Qa…, 则a属于FIRSTVT(P);

        若P→Q…, 则FIRSTVT(Q)含于FIRSTVT(P);

        直至FIRSTVT(P)不再增大。

    LASTVT集

    定义:LASTVT(P)={a|P=>...a,或P=>…aQ,a含于VT,Q 含于VN}

    求法

        若P→...a或P→…aQ, 则a属于LASTVT(P);

        若P→...Q, 则LASTVT(Q)含于LASTVT(P);

        直至LASTVT(P)不再增大。

     

    构造算符优先关系表

    以以下文法为例:

            E→E+T|T

            T→T*F|F

            F→(E)|i

     

    终结符之间的优先关系

    对算符文法G,  a,b属于VT 定义

    (1)a=b:  G中有P→. . .ab. . .或P→. . .aQb. . .

    (2)a<b:  G中有P→. . .aQ. . .且Q=>b…或Q=>Rb...

    (3)a>b:  G中有P→. . .Qb. . . 且Q=>. ..a或Q=>…aR

     

    算符优先关系表的构造

    (1)  在文法中添加E→#E#。

    (2)  求出FIRSTVT和LASTVT集

    (3)  找出所有终结符,并画出关系表的结构

    (4)  从文法中找出形为aQb(终结符+非终结符+终结符)和ab(终结符+终结符)的部分,本例中为(E)和#E#,然后在(和)与#和#相应的表格填=。

    (5)  从文法中找出形为aQ(终结符+非终结符)的部分,a与Q的FIRSTVT集合中每一个元素在表格中的交叉点填小于号。

        i.找出形为aQ的部分

        

        ii.填小于号(终结符为竖排,非终结符中的元素为横排,以横排为基准填符号)

        

    (6)  从文法中找出形为Qa(非终结符+终结符)的部分, Q的LASTVT集合中每一个元素与a在表格中的交叉点填大于号。
        i.找出形如Qa的部分
        

        ii.填大于号(非终结符中的元素为横排,终结符中的元素为竖排,以竖排为基准填符号)

        

    (7)  合并后的结果为

        

     

        从上表可知:

        (1)相同终结符之间的优先关系未必是=

        (2)有a<b,未必有b>a

        (3)a、b之间未必一定有优先关系

     

        故=、<、>不同于关系运算符“等于”、“小于”、“大于”

     

    展开全文
  • 层次分析法(AHP)详细步骤

    万次阅读 多人点赞 2019-01-07 13:01:10
    1. 算法简介 层次分析法(AHP)是美国运筹学家萨蒂于上世纪70年代初,美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重...

    1. 算法简介

    层次分析法(AHP)是美国运筹学家萨蒂于上世纪70年代初,为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。
    层次分析法是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。该方法将定量分析与定性分析结合起来,用决策者的经验判断各衡量目标之间能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数,利用权数求出各方案的优劣次序,比较有效地应用于那些难以用定量方法解决的课题。

    2. 算法基本原理

    例子:
    在这里插入图片描述

    2.1. 解决问题的思路

    层次分析法的基本思路是将所要分析的问题层次化;根据问题的性质和所要达成的总目标,将问题分解为不同的组成因素,并按照这些因素的关联影响及其隶属关系,将因素按不同层次凝聚组合,形成一个多层次分析结构模型;最后,对问题进行优劣比较并排列。

    2.2. 层次分析法的步骤

    1.建立层次结构模型

    • 将决策的目标、考虑的因素(决策准则)和决策对象按照他们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。
    • 最高层: 决策的目的、要解决的问题。
      最低层: 决策时的备选方案。
      中间层: 考虑的因素、决策的准则。
    • 对相邻的两层,称高层为目标层,低层为因素层

    层次分析法所要解决的问题是关于最低层对最高层的相对权重的问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中做出选择或形成选择方案的原则。

    2.构造判断矩阵
    层次分析法中构造判断矩阵的方法是一致矩阵法,即:不把所有因素放在一起比较,而是两两相互比较;对此时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。

    判断矩阵 a i j a_{ij} aij的标度方法

    标度含义
    1表示两个因素相比,具有同样重要性
    3表示两个因素相比,一个因素比另一个因素稍微重要
    5表示两个因素相比,一个因素比另一个因素明显重要
    7表示两个因素相比,一个因素比另一个因素强烈重要
    9表示两个因素相比,一个因素比另一个因素极端重要
    2,4,6,8上述两相邻判断的中值
    倒数因素 i i i j j j比较的判断 a i j a_{ij} aij,则因素 j j j i i i比较的判断 a j i = 1 / a i j a_{ji}=1/a_{ij} aji=1/aij

    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=n1λ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
    n1234567891011
    RI000.580.901.121.241.321.411.451.491.51

    定义一致性比率: C R = C I R I CR=\frac{CI}{RI} CR=RICI,一般认为一致性比率 C R < 0.1 CR<0.1 CR<0.1时,认为A的不一致程度在容许范围之内,有满意的一致性,通过一致性检验。可用其归一化特征向量作为权向量,否则要重新构造成对比较矩阵A,对 a i j a_{ij} aij加以调整。

    示例:
    在这里插入图片描述在这里插入图片描述

    4.层次总排序及其一致性检验

    • 计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。
    • 这一过程是从最高层次到最低层次依次进行的。
      在这里插入图片描述
      A层 m m m个因素 A 1 , A 2 , ⋅ ⋅ ⋅ , A m , A_{1},A_{2},···,A_{m}, A1,A2,,Am,对总目标Z的排序为 a 1 , a 2 , ⋅ ⋅ ⋅ , a m a_{1},a_{2},···,a_{m} a1,a2,,am
      B层 n n n个因素对上层A中因素为 A j A_{j} Aj的层次单排序为 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) b1j,b2j,,bnj(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=1majbij)为:
    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}, B1:a1b11+a2b12++amb1m,
    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}, B2:a1b21+a2b22++amb2m,
    ⋅ ⋅ ⋅ ···
    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}, Bn:a1bn1+a2bn2++ambnm,

    层次总排序的一致性比率为: 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=a1RI1+a2RI2++amRIma1CI1+a2CI2++amCIm,当 C R < 0.1 CR<0.1 CR<0.1时,认为层次总排序通过一致性检验。
    例子:
    在这里插入图片描述在这里插入图片描述

    3.算法总结

    • 应用领域:经济计划个管理,能源政策和分配,人才选拔和评价,生产决策,交通运输,科研选题,产业结构,教育,医疗,环境,军事等。
    • 处理问题类型:决策、评价、分析、预测等。
    • 建立层次分析结构模型是关键一步,要有主要决策层参与。
    • 构造成对比较矩阵是数量依据,应由经验丰富、判断力强的专家给出。

    4.参考

    1. 层次分析法建模——《百度文库》
    展开全文
  • 虽为5个为什么,但使用时不限定只做“5次为什么的探讨”,主要是必须找到根本原因为止,有时可能只要3次,有时也许要10次,如古话所言:打破砂锅问到底。5why的关键所在:鼓励解决问题的人要努力避开主观或自负的...

    所谓5why分析法,又称“5问法”,也就是对一个问题点连续以5个“为什么”来自问,以追究其根本原因。

    虽为5个为什么,但使用时不限定只做“5次为什么的探讨”,主要是必须找到根本原因为止,有时可能只要3次,有时也许要10次,如古话所言:打破砂锅问到底。5why法的关键所在:

    鼓励解决问题的人要努力避开主观或自负的假设和逻辑陷阱,从结果着手,沿着因果关系链条,顺藤摸瓜,直至找出原有问题的根本原因。

     

    介绍

    这种方法最初是由丰田佐吉提出的;后来,丰田汽车公司在发展完善其制造方法学的过程之中也采用了这一方法。作为丰田生产系统(Toyota Production System)的入门课程的组成部分,这种方法成为其中问题求解培训的一项关键内容。

    丰田生产系统的设计师大野耐一曾经将五问法描述为:“……丰田科学方法的基础……重复五次,问题的本质及其解决办法随即显而易见。”

    目前,该方法在丰田之外已经得到了广泛采用,并且现在持续改善法(Kaizen),精益生产法(lean manufacturing)以及六西格玛法之中也得到了采用。

    实施方法

    5WHY从三个层面来实施:

    一、为什么会发生?从“制造”的角度。
    二、为什么没有发现?从“检验”的角度。
    三、为什么没有从系统上预防事故?从“体系”或“流程”的角度。

    每个层面连续5次或N次的询问,得出最终结论。只有以上三个层面的问题都探寻出来,才能发现根本问题,并寻求解决。

    经典案例

    丰田汽车公司前副社长大野耐一曾举了一个例子来找出停机的真正原因

    ★问题一:为什么机器停了?               答案一:因为机器超载,保险丝烧断了。

    ★问题二:为什么机器会超载?            答案二:因为轴承的润滑不足。

    ★问题三:为什么轴承会润滑不足?     答案三:因为润滑泵失灵了。

    ★问题四:为什么润滑泵会失灵?         答案四:因为它的轮轴耗损了。

    ★问题五:为什么润滑泵的轮轴会耗损?答案五:因为杂质跑到里面去了。

    经过连续五次不停地问“为什么”,才找到问题的真正原因和解决的方法,在润滑泵上加装滤网。
    如果员工没有以这种追根究底的精神来发掘问题,他们很可能只是换根保险丝草草了事,真正的问题还是没有解决。

    解决问题步骤

    第一部分:把握现状
    ★步骤1:识别问题。

    在方法的第一步中,你开始了解一个可能大、模糊或复杂的问题。你掌握一些信息,但一定没有掌握详细事实。
    问:我知道什么?

    ★步骤2:澄清问题

    方法中接下来的步骤是澄清问题。为得到更清楚的理解,问:实际发生了什么?应该发生什么?

    ★步骤3:分解问题

    在这一步,如果必要,需要向相关人员调查,将问题分解为小的、独立的元素。
    关于这个问题我还知道什么?还有其他子问题吗?

    ★步骤4:查找原因要点(PoC)

    现在,焦点集中在查找问题原因的实际要点上。你需要追溯来了解第一手的原因要点。问:
    我需要去哪里?我需要看什么?谁可能掌握有关问题的信息?

    ★步骤5:把握问题的倾向

    问:谁?哪个?什么时间?多少频次?多大量?
    在问为什么之前,问这些问题是很重要的。

    第二部分: 原因调查
    ★步骤6:识别并确认异常现象的直接原因。

    如果原因是可见的,验证它。如果原因是不可见的,考虑潜在原因并核实最可能的原因。依据事实确认直接原因。问:
    这个问题为什么发生?我能看见问题的直接原因吗?如果不能,我怀疑什么是潜在原因呢?我怎么核实最可能的潜在原因呢?我怎么确认直接原因?


    ★步骤7:使用“5个为什么”调查方法来建立一个通向根本原因的原因/效果关系链。问:

    处理直接原因会防止再发生吗?如果不能,我能发现下一级原因吗?如果不能,我怀疑什么是下一级原因呢?我怎么才能核实和确认下一级有原因呢?处理这一级原因会防止再发生吗?

    如果不能,继续问“为什么”直到找到根本原因。在必须处理以防止再发生的原因处停止,问:
    我已经找到问题的根本原因了吗?我能通过处理这个原因来防止再发生吗?这个原因能通过以事实为依据的原因/效果关系链与问题联系起来吗?这个链通过了“因此”检验了吗?如果我再问“为什么”会进入另一个问题吗?

    确认你已经使用“5个为什么”调查方法来回答这些问题。
    为什么我们有了这个问题?为什么问题会到达顾客处?为什么我们的系统允许问题发生?

    ★步骤8:采取明确的措施来处理问题

    使用临时措施来去除异常现象直到根本原因能够被处理掉。问:
    临时措施会遏止问题直到永久解决措施能被实施吗?
    实施纠正措施来处理根本原因以防止再发生。问:
    纠正措施会防止问题发生吗?
    跟踪并核实结果。问:
    解决方案有效吗?我如何确认?

    询问回答技巧

    通常情况下,在询问为什么的时候,因为是发散性思维,很难把握询问和回答者的在受控范围内。比如:

    这个工件为什么尺寸不合格?   因为装夹松动;
    为什么装夹松动?    因为操作工没装好;
    为什么操作工没装好?   因为操作工技能不足;
    为什么技能不足?    因为人事没有考评

    类似这样的情况,在5Why分析中,经常发现。所以,我们在利用5Why进行根本原因分析时,一定要把握好一些基本原则:

    1)回答的理由是受控的;
    2)询问和回答是在限定的一定的流程范围内;
    3)从回答的结果中,我们能够找到行动的方向。

    展开全文
  • AHP层次分析法

    万次阅读 多人点赞 2014-02-21 01:07:12
    在比赛中,我们运用了层次分析法(AHPAnalytic Hierarchy Process)进行建模,好不容易理解了这一方法的思想,在自己的博客里记录一下,希望可以帮助初次接触层次分析法的人,更快地理解这一的整体思想,也利于...

    2014年参加数学建模美赛, 其中一道题是选出5大优秀教练,数据来源要求自行寻找。 在比赛中,我们运用了层次分析法(AHPAnalytic Hierarchy Process)进行建模,好不容易理解了这一方法的思想,在自己的博客里记录一下,希望可以帮助初次接触层次分析法的人,更快地理解这一的整体思想,也利于进一步针对细节进行学习。文章内容主要参阅 《matlab数学建模算法实例与分析》,部分图片来源于WIKI

     

     

    文章分为2部分:

    1第一部分以通俗的方式简述一下层次分析法的基本步骤和思想

    2第二部分介绍一下我们队伍数学建模过程中,对层次分析法的应用,中间有些地方做了不严谨的推理,例如关于一致性的检验,如有人发现不正确,希望可以指正

     

    第一部分:

     

    层次分析法(Analytic Hierarchy Process ,简称 AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于上世纪 70 年代初期提出的一种简便、灵活而又实用的多准则决策方法。

    人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 


    运用层次分析法建模,大体上可按下面四个步骤进行: 
    (i )建立递阶层次结构模型; 
    (ii )构造出各层次中的所有判断矩阵; 
    (iii )层次单排序及一致性检验; 
    (iv )层次总排序及一致性检验。 

     

    这四个步骤中,前两个步骤最容易理解,后两个步骤需要一点时间理解

     

    首先从层次结构模型说起

    层次分析法是用来根据多种准则,或是说因素从候选方案中选出最优的一种数学方法

    最顶层是我们的目标,比如说选leader,选工作,选旅游目的地

    中间层是判断候选方物或人优劣的因素或标准

    选工作时有:发展前途  ,待遇 ,工作环境等

    选leader时有:年龄,经验,教育背景,魅力

     

    在分层以后,为了选出最优候选

    给目标层分配值1.000

    然后将这一值作为权重,分配给不同因素,对应因素的权重大小代表该因素在整个选择过程中的重要性程度

    然后对于候选方案,每一个标准再将其权重值分配给所有的候选方案,每一方案获得权重值,来源于不同因素分得的权重值的和

     

    如下图:

                目标层分配值为1, 然后我们给了4个候选方案评估标准 criterion 1 、 criterion 2、criterion 3、criterion 4

                假设我们认为这四个标准同等重要, 于是目标层的值1 就被均分到 4个准则上, 每个准则获得的值为 0.25

                然后我们从评估标准 criterion 1 出发, 考虑在该评估标准下, 3 个候选方案的优劣比如何。 假如我们认为在标准1 的衡量下,   3 个方案完全平等, 方案1 在该标准下的得分就应该是: 0.25 * (1/3) 

               同理, 如果我们假设剩下的 3 个标准下, 3个候选方案都是平分秋色, 那么方案 1 的最终得分就应该是

               0.33 =  0.25 * (1/3)   +   0.25 * (1/3)   +  0.25 * (1/3)  +  0.25 * (1/3) 

               最终获得的各个方案的的权重值的和依然为1

     

    这不就是一个简单的权重打分的过程吗?为什么还要层次分析呢。这里就有两个关键问题:

    1每个准则(因素)权重具体应该分配多少

    2每一个候选方案在每一个因素下又应该获得多少权重

     

    这里便进入层次分析法的第二个步骤,也是层次分析法的一个精华(构造比较矩阵(判断矩阵)comparison matrix):

     

    首先解决第一个问题:每个准则(因素)权重具体应该分配多少?

    如果直接要给各个因素分配权重比较困难,在不同因素之间两两比较其重要程度是相对容易的

     

    现在将不同因素两两作比获得的值aij  填入到矩阵的 i 行 j 列的位置,则构造了所谓的比较矩阵,对角线上都是1, 因为是自己和自己比

    这个矩阵容易获得,我们如何从这一矩阵获得对应的权重分配呢

    这里便出现了一个比较高级的概念,正互反矩阵和一致性矩阵

    首先正互反矩阵的定义是:

     

    我们目前构造出的矩阵很明显就是正互反矩阵

     

    而一致性矩阵的定义是:


    这里我们构造出的矩阵就不一定满足一致性,比如我们做因素1:因素2= 4:1  因素2:因素3=2:1    因素1:因素3=6:1(如果满足一致性就应该是8:1),我们就是因为难以确定各因素比例分配才做两两比较的,如果认为判断中就能保证一致性,就直接给出权重分配了

     

    到了关键部分,一致性矩阵有一个性质可以算出不同因素的比例

     

    这里的w就是我们想要知道的权重,所以通过 求比较矩阵的最大特征值所对应的特征向量,就可以获得不同因素的权重,归一化一下(每个权重除以权重和作为自己的值,最终总和为1)就更便于使用了。(实际上写这篇博客就是因为,重新翻了线代的书才好不容易理解这里的,就想记录下来)

     

    这里补充一点线性代数的知识:

        n阶矩阵有n个特征值,每个特征值对应一个n维特征列向量,特征值和特征向量的计算方法这里就省略了,反正书中的程序是直接用matlab 的eig函数求的

     

    这里不能忘了,我们给出的比较矩阵一般是不满足一致性的,但是我们还是把它当做一致矩阵来处理,也可以获得一组权重,但是这组权重能不能被接受,需要进一步考量

    例如在判断因素1,2,3重要性时,可以存在一些差异,但是不能太大,1比2重要,2比3 重要,1和3比时却成了3比1重要,这显然不能被接受

     

    于是引入了一致性检验:

              一致性的检验是通过计算一致性比例CR 来进行的

              

              当 10 . 0 < CR 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。 

     

    CI的值由判断矩阵计算获得,RI的值查表获得,具体的计算公式这里就略去,重点是理解为什么要做一致性检验

     

     

    接下来解决第二个问题:每一个候选方案在每一个因素下又应该获得多少权重

     

    这里则需要将不同候选方案,在不同因素下分别比较,具体的比较方法,还是使用比较矩阵,只不过之前准则层的比较矩阵比较的对象是因素,这里比较的是某一因素下,候选方案的优劣, n个因素则需构造出来n个比较矩阵

    例如在工作环境的因素下,工作1与工作2相比为 :4:2,工作2与工作3=2:1  工作1:工作3=6:1.,这样构造一个矩阵,再用之前的一致性矩阵的方法就可以求出一个权重,然后相对应因素(这里是工作环境)所拥有的权值就可以按这个权重比例分配给不同候选物或人。

     

    其他因素同理

     

     

    至此两个问题就都得到了解决

    最终将每个候选物、人从不同因素获得的权值求和,就可以得到不同候选对于目标层的权值大小,继而可以根据值的大小,来选出优劣

     

    对于第一部分的总结:

     

    • 通过对层次分析法的基本了解,不难发现层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为科学管理和决策提供了较有说服力的依据。 

     

    • 但很明显的缺点是,整个分析过程似乎都是依赖于人的主观判断思维,一来不够客观,二来两两比较全部人为完成,还是非常耗费精力的,尤其是当候选方案比较多的时候

     

     

     

    文章的第二部分:


    层次分析法的变形应用(也可能本来就是这样用的,只不过参考书上没这样说,外语
    论文没细看)解决最优教练选择问题

     

    目标:选最优教练

     

    准则:  

     

     

    1. 职业生涯所带队伍的胜率      
    2. 职业生涯所带队伍的胜场            
    3. 从教时长(年)          
    4. 职业生涯所带队伍获奖状况(化成分数)

     

      

    候选:  众多教练

     

    准则层比较矩阵获得

     

     

    • 准则层的比较矩阵好构造 ,作6次两两比较,就可以获得4*4的比较矩阵

     

     

    候选层比较矩阵

     

    每一个准则对应下来的 候选层 已经有定量的数据了。 这里其实就不再需要候选层比较矩阵了, 因为有4000个教练的话, 得比4000*3999次,可以直接利用定量的数据计算权重

    • 例如“职业生涯所带队伍的胜场” 这一准则对应到每个教练都有直接相应数据的,例如教练 A, B, C 职业生涯所带队伍胜场数为 100,150, 90. 此时该准则下得到的分数, 就应当按照 10:5:9 的比例来进一步划分。 

     

    类似的,胜率准则 下就根据  “胜率   计算权重分配比例。 从教时长准则下就根据 “从教时间的年数” 计算权重分配比例

     

    这里又有两点可以注意:

     

    1.不同因素下数据的量纲和性质不一样,直接用数据作比来分配,不一定合适,比如胜率越要接近1越难,0.7比胜率0.5  和胜率0.9比0.7  ,后者比值比前者小,这显然不合适。这里可以利用指数函数和对数函数对数据先做一次处理, 再作为权重分配的依据。

     

    2.这里的用定量数据作比获得的矩阵显然满足一致性要求,不需要做一致性检验。以职业生涯所带队伍的胜场数为例,如果教练 A, B, C 职业生涯所带队伍胜场数为 100,150, 90。 那么 A:B :C 无论怎么作比, 都不会违反 10:15:9 的一致性。 

     

    综上就对层次分析法完成了定性定量结合的应用,以及对多个候选方案的比较(其实只是就是用程序控制数据作比,我们水平有限,能成功应用该方法已经不容易了)

     

    很遗憾的是比赛时编写的代码存放的优盘不慎丢失, 没有办法把代码共享出来, 这里只能将书中的代码贴出。比赛建模时, 就是在这个代码基础上进行修改实现。 只要理解了下列代码,编写符合自己需求的程序, 应当是水到渠成的事。

     

     

     

     matlab 代码(对应于文章第一部分选 Leader 的内容):

     

     

    clc,clear
    fid=fopen('txt3.txt','r');
    n1=6;n2=3;
    a=[];
    for i=1:n1
    	tmp=str2num(fgetl(fid));
    	a=[a;tmp]; %读准则层判断矩阵
    end
    for i=1:n1
    	str1=char(['b',int2str(i),'=[];']);
    	str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);
    	eval(str1);
    	for j=1:n2
    		tmp=str2num(fgetl(fid));
    		eval(str2); %读方案层的判断矩阵
    	end
    end
    ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标
    [x,y]=eig(a);  % matlab eig(a) 返回矩阵的特征值和特征向量, 这里的 x 为矩阵 a 的 n 个特征向量, y 为矩阵 a 的 n 个特征值
    lamda=max(diag(y));  %  eig 函数返回的 y 是矩阵形式保存的, dig(y) 提取对角线上的n 个特征值到一个数组中, 求出最大特征值 lamda
    num=find(diag(y)==lamda);  % 返回最大特征的索引
    w0=x(:,num)/sum(x(:,num));  % x( :num) 为最大特征值所对应的那一列特征向量。 w0 中准则层计算出的 包含归一化后的n 个权重值
    cr0=(lamda-n1)/(n1-1)/ri(n1)
    
    for i=1:n1 % 循环 n 个维度, 针对每个维度, 都计算一次方案层的比较矩阵及其权重值
    	[x,y]=eig(eval(char(['b',int2str(i)])));
    	lamda=max(diag(y));
    	num=find(diag(y)==lamda);
    	w1(:,i)=x(:,num)/sum(x(:,num));
    	cr1(i)=(lamda-n2)/(n2-1)/ri(n2);
    end
    cr1, ts=w1*w0, cr=cr1*w0

     

    txt3.txt 中的内容, 前6行为准则层的 6 x 6 比较矩阵, 后 18 行则为 6 个准则下, 各自的 3 x 3 的比较矩阵。 

    1 1 1 4 1 1/2
    1 1 2 4 1 1/2
    1 1/2 1 5 3 1/2
    1/4 1/4 1/5 1 1/3 1/3
    1 1 1/3 3 1 1
    2 2 2 3 3 1
    1 1/4 1/2
    4 1 3
    2 1/3 1
    1 1/4 1/5
    4 1 1/2
    5 2 1
    1 3 1/3
    1/3 1 1/7
    3 7 1
    1 1/3 5
    3 1 7
    1/5 1/7 1
    1 1 7
    1 1 7
    1/7 1/7 1
    1 7 9
    1/7 1 1
    1/9 1 1

     

    再上一段 JAVA 代码, 方便 JAVA 童鞋参考, 这部分仅仅展示了如何用JAVA 代码进行准则层比较矩阵计算 。 

     

    import org.apache.commons.math3.linear.*;
    
    
    public class MatrixTester {
        public static void main(String[] args) {
    
            // Create a real matrix with two rows and three columns, using a factory
            // method that selects the implementation class for us.
            double[][] matrixData = {   {1d,    1d,     1d,     4d,     1d,     1d/2d},
                                        {1d,    1d,     2d,     4d,     1d,     1d/2d},
                                        {1d,    1d/2d,  1d,     5d,     3d,     1d/2d },
                                        {1d/4d, 1d/4d,  1d/5d,  1d,     1d/3d,  1d/3d },
                                        {1d,   1d,     1d/3d,  3d,     1d,     1d },
                                        {2d,    2d,     2d,     3d,     3d,     1d },
                                    };
            RealMatrix m = MatrixUtils.createRealMatrix(matrixData);
    
    
    
            // One more with three rows, two columns, this time instantiating the
            // RealMatrix implementation class directly.
            double[][] matrixData2 = {{1d, 2d}, {2d, 5d}, {1d, 7d}};
            RealMatrix n = new Array2DRowRealMatrix(matrixData2);
    
            // Note: The constructor copies  the input double[][] array in both cases.
            // Now multiply m by n
    //        RealMatrix p = m.multiply(n);
    //        System.out.println(p.getRowDimension());    // 2
    //        System.out.println(p.getColumnDimension()); // 2
    //
    //        // Invert p, using LU decomposition
    //        RealMatrix pInverse = new LUDecomposition(p).getSolver().getInverse();
    
    
            RealMatrix D = new EigenDecomposition(m).getD();
            RealMatrix V = new EigenDecomposition(m).getV();
    
            for(int i=0; i<D.getRowDimension();i++)
            {
                System.out.println(D.getRowMatrix(i));
            }
    
            for(int i=0; i<V.getRowDimension();i++)
            {
                System.out.println(V.getRowMatrix(i));
            }
    
            // 特征值
            double maxLamda;
            int columIndexForMaxLamda=0;
            maxLamda=D.getEntry(0,0);
    
            for(int i =0, j=0; i<D.getRowDimension()&&j<D.getColumnDimension();i++,j=i)
            {
                double lamda = D.getEntry(i,j);
                if(maxLamda<lamda)
                {
                    maxLamda=lamda;
                    columIndexForMaxLamda = j;
                }
                System.out.println(lamda);
            }
    
            // 输出尚未做归一化 w1, w2, w3, w4, w5, w6 , 
            System.out.println(V.getColumnMatrix(columIndexForMaxLamda));
    
        }
    }
    

     

     

    展开全文
  • 5W1H分析法 什么5W1H分析法

    千次阅读 2008-03-05 10:08:00
    5W1H分析法也叫六何分析法,是一种思考方法,也可以说是一种创造技法。是对选定的项目、工序或操作,都要从原因(何因)、对象(何事)、地点(何地)、时间(何时)、人员(何人)、方法(何法)等...为什么要生产这
  • 竞品分析:分析法

    千次阅读 2021-01-12 16:06:04
    调研竞品和市场,找到自己的赛道 一.竞品分析的意义 做产品是一件如履薄冰的事情,需要摸着石头过河 过河:目标 水:不确定性,液态 ...三,产品分析法 战略层:企业愿景,产品定位,需求把控,用户习惯;商业
  • 因子分析法

    千次阅读 2019-08-15 10:58:03
    因子分析法的运用首先是要进行相关性的分组,在不同分组中所包含的变量相关性一致,那么把相关性一致的这一组就称为其中的一公共因子。在实证中实际要研究的就是这一小组中所涵盖的每一变量,公共因子就是多...
  • 主成分分析法

    千次阅读 2015-08-11 12:57:34
    什么是主成分分析法  主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化少数几综合指标。  在统计学中,主成分分析(principal components analysis,PCA)是一种简化数据集的技术。它是一线性...
  • 时域分析法

    千次阅读 2020-02-16 18:03:25
    时域分析法1 定义2 优点3 目的与意义4 适用范围5 分析过程 1 定义 时域分析法是一种对控制系统的分析方式。是指一定输入下,根据控制系统的输出时域表达式,分析系统的性能。 2 优点 由于是在时域进行分析,符合大众...
  • 综合评价分析法:熵权法matlab实现+层次分析法matlab实现 层次分析法matlab实现 clc;clear%层次分析法matlab实现 A=[1 1/9 1/2 1/4 1/6 9 1 6 5 3 2 1/6 1 1/2 1/3 4 1/5 2 1 1/5 6 1/3 3 .....
  • 频域分析法

    千次阅读 2020-02-17 17:59:14
    频域分析法1. 频域分析法定义2. 目的与意义3. 适用范围4. 优缺点4.1优点4.2 缺点5. 分析过程 1. 频域分析法定义 频域分析法是一种研究控制系统的经典方法。是在频域范围内应用图解分析法评价系统性能的一种工程方法...
  • 层次分析法

    万次阅读 2015-06-11 18:11:53
    层次分析法(Analytic Hierarchy Process,简称AHP)是将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初...
  • 研究 软件可靠性分析方法有失效模式影响分析法、严酷度分析法、故障树分析法、事件树分析法、潜在线路分析法
  • 5W1H分析法

    千次阅读 2011-06-28 09:57:00
    5W1H分析法5W1H分析法(Five Ws and one H)也称六何分析法[编辑] 什么5W1H分析法5W1H分析法也称六何分析法,是一种思考方法,也可以说是一种创造技法。是对选定的项目、工序或操作,都要从原因(WHY)、对象...
  • 5W2H分析法

    千次阅读 2018-10-22 11:52:44
     5W2H分析法又叫七何分析法,是二战中美国陆军兵器修理部首创。简单、方便,易于理解、使用,富有启发意义,广泛用于企业管理和技术活动,对于决策和执行性的活动措施也非常有帮助,也有助于弥补考虑问题的疏漏。 ...
  • AHP层次分析法简介

    2010-11-06 15:52:10
    内容包括: 一、层次分析法概述 二、层次分析法的基本思路 三、层次分析法的用途举例 四、层次分析法应用的程序 、应用层次分析法的注意事项 六、层次分析法应用实例
  • 流程分析法

    千次阅读 2019-10-02 20:58:22
    一、流程分析法的定义 主要是针对测试场景类型,针对测试场景的测试项下的测试子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。 在白盒测试中,路径就是指函数代码的某个分支组合,...
  • 因子分析法(Factor Analysis)是什么分析
  • 什么5W1H分析法

    千次阅读 2013-01-03 14:43:07
    5W1H分析法也称六何分析法,是一种思考方法。 What (何事) Who (何人) Where (何处) Why (何故) When (何时) How (如何) 了解了五个W后,再解决一H。
  • MECE分析法

    千次阅读 2019-10-02 16:02:33
    MECE分析法特点相互独立 Mutually exclusive完全穷尽 Collectivelt exhaustive大优势内涵场景 特点 相互独立 Mutually exclusive 不重叠分清 完全穷尽 Collectivelt exhaustive 无遗漏分尽 大优势 条理清晰 ...
  • 5W1H六何分析法

    千次阅读 2020-09-17 14:35:59
    5W1H分析法是由5个W开头的英文和1H开头的英文组成。 5W包含:Who(何人)、When(何时)、Where(何地)、Why(何因)、What(何事),1H是指How(何法)。 5W1H分析法的应用就是将事物从以上六方面考虑,科学...
  • 5Why分析法,它是一种诊断性技术,被用来识别和说明因果关系链,它的根源会引起恰当地定义问题。也被称作:为什么—为什么分析、5个为什么分析。
  • 5W1H 和 鱼骨分析法

    千次阅读 2015-09-24 20:47:34
    1. 5W1H 分析法 解决事件 Who (谁来做) When?(何时做) Where?(何地做) What?... 用利益分析法把这事件的所有参与人员罗列出来 既是这事件对谁有利对谁有害   第二步 用过去现在将来分析法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 475,461
精华内容 190,184
关键字:

五个为什么分析法