首页 > 其他分享 >评价决策类——层次分析法(数学建模+举例分析+真题讲解)

评价决策类——层次分析法(数学建模+举例分析+真题讲解)

时间:2024-09-07 22:51:02浏览次数:5  
标签:指标 判断 衣服 真题 矩阵 建模 分析法 一致性 评价

目录

一、前言

二、历年题型分析

 2.1 常用算法归纳

2.1.1 优化类算法

2.1.2 预测类算法

2.1.3 评价决策类

2.1.4 NP-hard类

2.2 评价类模型求解

2.2.1 层次分析法(AHP)

2.2.2 多指标评价法(MCDA)

2.2.3 算法区别

三、层次分析法讲解

3.1 层次分析法的做题步骤

3.2 层次分析模型的解题思路

3.2.1 构造判断矩阵

3.2.2 一致性检验

3.2.3 得分计算

四、2021数学建模比赛C题讲解

4.1 题目分析

4.2 指标选择

4.3 判断矩阵

五、小结

已完结


一、前言

层次分析模型(AHP)是一种系统化的多准则决策分析方法,适用于需要在多个相互冲突或互补的准则下做出决策的情景。它通过构建层次结构来明确决策目标、准则和备选方案,并使用0~9标度法进行两两比较来确定各准则和方案的相对重要性,进而通过一致性检验保证比较的一致性。层次分析模型适用于各种复杂决策问题,如项目选择、资源分配、供应商选择等,特别是在需要整合定性和定量信息,以及涉及多个决策者意见的情况中尤为有效。

二、历年题型分析

上述就是这几年数学建模比赛所考察的算法,以及每个算法求解的模型。下面把这几类算法,给大家归纳出最常用的解决方法,供大家参考。

 2.1 常用算法归纳

2.1.1 优化类算法


线性规划、非线性规划、多目标规划、最短路径、最小生成树、动态规划

2.1.2 预测类算法


灰色预测、时间序列、回归分析、支持向量机、神经网络、马尔科夫模型

2.1.3 评价决策类


层次分析、TOPSIS法、灰色关联分析、模糊综合评价、主成分分析、聚类分析

2.1.4 NP-hard类


蚁群算法、粒子群算法、遗传算法、模拟退火
 

2.2 评价类模型求解

对于这几年数学建模比赛,评价优化类题目出现的频率还是蛮多滴,其中评价优化类题目一个常用解法就是层次分析法 (AHP)多指标评价法(MCDA)。我找了很多资源进行学习,自我感觉层次分析法和多指标评价法的用法和解题思路大差不差,都是将一个评价类问题分成几个指标进行评估,计算最后的得分进行排序,层次分析法将问题分成了三层,目标层、准则层和方案层,主要思想是分而治之,而多指标评价法更多的是针对数据本身特点进行分析,使得评价结果更具有客观性。以下就是我从其他地方copy过来的两者的对比介绍,大家用辩证的思想来看待。

2.2.1 层次分析法(AHP)

  • 特点

    • 基于层次结构,将决策问题分为目标层、准则层和方案层。
    • 使用0~9标度法进行两两比较,确定准则和方案的相对重要性。
    • 强调一致性检验以确保比较的合理性。
    • 适用于定性与定量信息的综合评估。
  • 应用场景

    • 项目选择和优先级排序。
    • 投资决策。
    • 资源分配。
    • 供应商选择等。

2.2.2 多指标评价法(MCDA)

  • 特点

    • 包括多种方法,如TOPSIS、AHP、DEA(Data Envelopment Analysis)、MABAC(Multi-Attribute Border Approximation Area Comparison)等。
    • 涉及多个评价指标,既包括定量也包括定性指标。
    • 可以使用不同的权重确定方法,如专家判断、统计方法等。
    • 目的是寻找最优方案或对备选方案进行排序。
  • 应用场景

    • 产品设计与选择。
    • 环境影响评估。
    • 公共政策制定。
    • 供应链管理等。

2.2.3 算法区别

  • 方法论差异

    • AHP特别强调层次结构和两两比较,而MCDA涵盖的方法更多样化。
    • AHP的两两比较方法确保了决策的一致性,而MCDA中的某些方法可能不需要这种一致性检查。
  • 适用场景

    • AHP更适合需要专家判断和两两比较的情景,尤其是当决策者需要直观地理解指标间的关系时。
    • MCDA则适用于更广泛的情况,特别是当需要考虑多种评价方法和技术时。

本次任务我将带大家了解层次分析法,如何构建层次结构,如何挑选准则层的指标,如何使用0~9标度法建立判断矩阵,如何对矩阵进行一致性检验,如何计算最后的得分。最后带大家运用这个方法进行实战。并对2021年数学建模大赛C类第一题进行分析求解。

三、层次分析法讲解

对于一个评价类题目,无非就是对它的一些方案进行评价打分,根据它的得分进行排名,分出个三六九等,选出一个最优秀的方案。这里就引申出了层次分析法的三个构造层,目标层---我今天要干点啥,是去吃饭嘞还是去旅游,准则层---评价每个方案所需要的指标,求出每个指标的重要性,方案层---针对我提出的目标,一些可供挑选的方案,今天该吃点啥呀(馒头,包子,鸡公煲),明天该去哪儿玩(北京、上海、武汉)。

3.1 层次分析法的做题步骤

下面就举出一个具体例子带大家分析。

比如,今天我想买一件衣服,但是我选择恐惧症犯了,目前我看中了几款衣服,为了方便描述,就按照衣服的品牌来指代具体的衣服,第一件是阿迪的衣服,第二件是耐克的衣服,第三件是驴牌衣服。我想挑一件很符合我心意的衣服,因此我提出了几个判断指标,第一看衣服款式是否新颖,第二看价格是否实惠,第三看衣服评价怎样,第四看商家态度咋样。

由以上的分析,我们将问题引入层次分析模型。

3.2 层次分析模型的解题思路

上面已经构建了一个层次分析模型,目前我们要解决的问题是,对于上述几个指标,如何计算他们的权重,对于每一件衣服对应的指标,又该如何打分呢。以下我们引入了一个方法,0~9标度法。大家记住它的作用就是量化指标,比如对于衣服新颖度来说,这是一个抽象的概念,如何将他代入数值进行具体计算呢,这里就用到了一个方法叫两两比较法,也就是0~9标度法的重要思想。

3.2.1 构造判断矩阵

0~9标度法含义

现在就来构造判断矩阵,大家注意因为通过0~9标度法构造的判断矩阵具有一定的主观性,判断准则和打分也因人而异,所以对于判断矩阵的构造,常用的方法就是专家打分,要么就是查阅文献进行打分,大家在写论文时候,就算没有找到专家资料,或者文献啥的,大家可以写通过查阅***文献,或者进行调查问卷,或者国家**统计局数据分析,得到了以下判断指标及判断矩阵,千万千万不要啥也不说就把指标跟判断矩阵列上去,没有一点理论依据的,这里给大家推荐一个查阅指标和数据的宝藏网站:虫部落快搜 - 搜索快人一步,后面博文会给大家讲熵权法和TOPSIS法,那个权重计算会更加客观一点。

下面就是我得到一个判断矩阵,这里因为是给大家讲解模型背后的理论,所以不谈依据,买衣服纯个人感觉。

指标的判断矩阵

衣服新颖度

衣服价格

衣服评价

商家态度

衣服新颖度

1

1/5

1/3

1/3

衣服价格

5

1

1/3

1/5

衣服评价

3

3

1

1/3

商家态度

3

5

3

1

这里大家可以看到,判断矩阵中的主对角线上的元素都是1,因为自己跟自己对比肯定是同等重要的,然后关于主对角线对称的元素都是互为倒数,在上述矩阵中,衣服价格对于衣服新颖度来说,是明显重要的,因为对于我来说,我更想买到一个实惠的衣服,所以判断矩阵对应数值就是5,衣服新颖度对于衣服价格来说,就是明显不重要的,所以对应是1/5。

然后分别列出每个指标对应的方案的判断矩阵,将方案的判断值量化分析。这里需要列出衣服新颖度----三种衣服的判断矩阵,衣服价格---对应三种衣服的判断矩阵,衣服评价---对应三种衣服的判断矩阵,商家态度---对应三种衣服的判断矩阵。下面就列举一个样例,大家做题的时候需要把所有的判断矩阵列举出来。

3.2.2 一致性检验

将所有的判断矩阵计算出来后,紧接着就要对每个矩阵进行一致性检验了,一致性检验是因为我们对每个指标进行评价打分,当指标多的时候,可能存在相互矛盾的地方,我们要将这种矛盾控制在一个合理的范围之内。比如说在一个判断矩阵中,我认为A比B重要,B又比C重要,结果又出现了C比A重要。

我会带着大家了解计算过程,具体的理论分析大家可以参考东北大学张震教授写的一篇论文----层次分析法一致性检验

第一步:计算一致性指标CI

CI=\frac{\lambda max - n}{n - 1}

\lambda max表示判断矩阵的最大特征根,n表示指标个数

第二步:根据n值查找平均随机一致性指标RI

平均随机一致性指标
n1234567891011121314
RI000.580.901.121.241.321.441.451.491.521.541.561.59

第三步:计算一致性比例CR

CR = \frac{CI}{RI}

对于最后的计算结果,如果CR < 0.1,表示所构造的判断矩阵可以使用,否则判断矩阵需要继续修改。

对于\lambda max的计算过程,张教授文章里面都有提到,具体计算过程不深究。判断矩阵进行一致性检验的前需要归一化处理,计算过程就是每一个值除以所在列的和,为了方便大家计算,代码中都有处理,大家只需要添加原始数据即可。下面给大家安排上求解代码,大家只需要改写参数就好了,可以直接使用。

import numpy as np

# 判断矩阵
'''
judgment_matrix = np.array([
        [1,1/5,1/3,1/5],
        [5,1,3,3],
        [3,1/3,1,1/3],
        [5,1/3,3,1]
])
这里需要大家将自己的判断矩阵输入进去,变量名为judgment_matrix
'''

# 归一化判断矩阵
normalized_matrix = judgment_matrix / judgment_matrix.sum(axis=0)

# 计算特征向量(即各因素的权重)
weights = normalized_matrix.mean(axis=1)

# 输出权重
print("各因素的权重:", weights)

# 计算一致性指标 CI
lambda_max = np.linalg.eigvals(judgment_matrix).max().real
CI = (lambda_max - len(weights)) / (len(weights) - 1)

# 计算一致性比率 CR(假设 n=3, RI=0.58)
RI = 0.89   # 这里根据大家的n值,找出表格中对应的系数,修改为大家所需要的值即可
CR = CI / RI

print("一致性比率 CR:", CR)

# 一致性检验
if CR < 0.1:
    print("判断矩阵的一致性通过")
else:
    print("判断矩阵的一致性不通过,需要调整")

代码中大家将判断矩阵改为自己的判断矩阵,命名为:judgment_matrix,还需要修改RI值,根据自己指标个数对照RI表就可以知道具体数值了。

运行结果如下:

这些计算过程都可以体现在论文里面,比如判断矩阵最后权重的计算,一致性比率CR。

3.2.3 得分计算

通过以上计算,我们可以得到一个权重汇总表格,包含各个指标对应的权重,以及每个指标下方案的得分。

以上数据就是所有判断矩阵汇总的结果了,包括每个指标对应的权重以及每个方案在该指标下的得分,关于权重的计算代码中已经处理过了,在归一化的判断矩阵中,每行的平均数就代表该指标的权重。

a1+a2+a3=1

.......

d1+d2+d3=1

w1+w2+w3+w4=1

有了这些权重后,就可以计算最后的得分了。

Score(nike)=w1*a1+w2*b1+w3*c1+w4*d1

Score(adidas)=w1*a2+w2*b2+w3*c2+w4*d2

Score(lv)=w1*a3+w2*b3+w3*c3+w4*d3

根据这个最终得分排名就可以判断哪一件是我心中最理想的衣服了。 

四、2021数学建模比赛C题讲解

4.1 题目分析

2021大学生数学建模比赛赛题

 

 我简单讲一下这个题目,方便大家读题。这个题提供了企业对n个供应商每周原材料的需求量,以及n个供应商每周对这个企业的供货量,根据这个数据判断出最重要的供货商。

大家可能不太清除什么叫做量化分析,这里简单讲一下,量化就是将非数值形式的信息转化为数值形式,上面举例提到的使用判断矩阵将每个方案对于某个指标的得分求出归一化结果,这个就是一个量化过程,大家可以根据这个数据求出总供货值,周平均供货值,供货波动性,将这些指标数值化,然后分析这些指标表现了什么特征,这个就是量化分析的步骤。

大家使用表格数据的时候也需要提前做一下预处理,比如处理缺失值,异常值等,或者根据题目要求筛选出一些不需要的数据,比如这个题目中是挑选最重要的供货商,大家就可以对于那些多次供货未达标或者缺失量较大的供货商进行剔除操作,后续操作就不考虑这些数据了。

大家很容易想到这是一个评价决策类题目,不就是对于n个供应商进行评价打分吗,然后选出前五十个得分最高的供货商。但是,这个题目没有具体说出企业挑选供应商的准则,也就是我们层次分析模型的准则层需要我们自己确认,如何确定判断准则呢?

4.2 指标选择

大家需要注意,指标选择不是随便选的。第一,要求选择的指标对我们最后的决策有决定性影响,就像之前给大家介绍的例子一样,我们找出了四个指标--价格,款式,态度,评价,都是对我们最后选择衣服有决定性作用的,比如说平台,商家姓名啥的对我们最后决策没有一点作用,我们肯定就不会考虑这些指标了;第二,选择的指标要有理论支撑,要体现客观性,对于我们选衣服,全凭个人喜好,主观挑选没啥问题,但是对于论文来说,一定要有理有据。我们的理论依据可以是什么呢,文献支撑,找相关文献,某某文章对于***的评判用到了以下指标,或者查阅资料,专家分析该问题的时候提到了以下指标,大家搜索的时候可以使用我上面提到的网站--虫部落,因为是真的好用。

对于这个题,我当时也是在那个网站中搜索了“判断供应商重要性的指标”,找到了一个较为合理的评价指标,目前业内广泛认可的指标有:质量、成本、交货、服务、技术、资产、员工与流程,合称QCDSTAP。结合本题所给的数据,最终选择了成本、交货、资产作为本题量化的供货特征,其他几个指标数据中无法体现。

然后对我们选择的指标进行量化分析。关于成本指标,可以利用供应商所供应的原材料采购单价来衡量;关于交货指标,在本题中,它主要反应了供应商是否按订货量交货,可以利用企业订货量与对应的供应商供货量之间差距来衡量,差额越小,说明该供应商的交货越符合规范;关于资产指标,它主要反应了供应商的经济规模,可以用供应商5年间的供货量之和来衡量。

现在可以构建层次分析模型了。

4.3 判断矩阵

构建成本,交货,资产的判断矩阵,还是使用0~9标度法,进行两两对比,得到最后三者的权重,构建好了之后将数据归一化处理,然后进行一致性检验,这里上面都有提到就不再赘述了。跟上述我提到的例子有一点不同就是,这里只要写出三个指标的判断矩阵就可以了,因为上述例子中针对每个指标中方案的具体得分没有计算数据,所以使用判断矩阵计算具体得分,现在这里提供了的数据中,单价,交货量,交货差这里通过表格的数据都可以直接计算的,将最后结果归一化处理就行,最后将每个方案对于每个指标的得分与对应权重相乘累加求和即可算出每个方案的最后得分。最后对表格数据进行排序操作,选取前五十名商家。

五、小结

这里给大家讲了一下层次分析模型的运用,还有使用0~9标度法进行权重计算,后续还会带大家了解TOPSIS法,熵权法等知识。

因为比赛将近,很多模型不能带大家一起过一遍,我这里有各种模型的代码,已经调试过,可以直接使用,大家如果需要,可以私信我,希望可以帮到大家。

最后制作不易,希望大家能够点赞关注,多多支持

已完结

标签:指标,判断,衣服,真题,矩阵,建模,分析法,一致性,评价
From: https://blog.csdn.net/2301_80637569/article/details/141761672

相关文章

  • 【全网最全】2024年数学建模国赛D题39页成品论文+matlab代码+结果等(后续会更新)
    您的点赞收藏是我继续更新的最大动力!一定要点击如下的卡片,那是获取资料的入口!【全网最全】2024年数学建模国赛D题39页成品论文+matlab代码+结果等(后续会更新)「首先来看看目前已有的资料,还会不断更新哦~一次购买,后续不会再被收费哦,保证是全网最全资源,随着后续内容更新,价格会上......
  • 【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可
    您的点赞收藏是我继续更新的最大动力!一定要点击如下的卡片,那是获取资料的入口!【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可视化图表等(后续会更新)「首先来看看目前已有的资料,还会不断更新哦~一次购买,后续不会再被收费哦,保证是全网最全资......
  • Python数学建模算法与应用例题
    2.21.aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg2.cggaggacaaacgggatggcggtattggaggtggcggactgttcgggga3.gggacggatacggattctggccacggacggaaaggaggacacggcggacataca4.atggataacggaaacaaaccagacaaacttcggtagaaatacagaagctta5.cggctggcggacaacggactggcggatt......
  • 2024年全国大学生数学建模比赛思路、题目、代码
    竞赛时间及参赛建议竞赛开始时间:北京时间2024年9月5日18:00竞赛结束时间:北京时间2024年9月8日20:00关于今年每道题的思路,可以关注我gzh回复”国赛A/B/C/D/E题“获取需要帮助的可以关注公众号,在功能栏点击联系我们!一、解题思路结合往年竞赛的特点和常见题型,我整理了一些......
  • 【2024高教社杯国赛B题】数学建模国赛建模过程+完整代码论文全解全析
    你是否在寻找数学建模比赛的突破点?数学建模进阶思路!作为经验丰富的数学建模团队,我们将为你带来2024国赛数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,帮助你全面理解并掌握如何解决类似问题。完整内容在文章末尾阅读全文获取!......
  • 【2024高教社杯国赛C题】数学建模国赛建模过程+完整代码论文全解全析
    你是否在寻找数学建模比赛的突破点?数学建模进阶思路!作为经验丰富的数学建模团队,我们将为你带来2024国赛数学建模竞赛(C题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,帮助你全面理解并掌握如何解决类似问题。完整内容在文章末尾阅读全文获取!C......
  • 2022真题
    数字放大题目描述给定一个整数序列以及放大倍数x,将序列中每个整数放大x倍后输出。输入格式包含三行:第一行为N,表示整数序列的长度(N≤100);第二行为N个整数(不超过整型范围),整数之间以一个空格分开;第三行包含一个整数(不超过整型范围),为指定的整数x。输出格式N个整数,为......
  • 【C题已出】2024全国大学生数学建模C题完整论文+每小问解题代码+可视化结果图+最终结
                           2024国赛C题2024数学建模国赛C题word版成品论文【附带完整解题代码+可视化图表】https://www.jdmm.cc/file/2711227/一 、 摘要本文针对一个复杂的农业种植规划问题,建立了一系列优化模型并提出了相......
  • GESP C++三级真题 (2023年3月):春游,密码合规检测
    春游题目描述老师带领同学们春游。已知班上有N位同学,每位同学有从0到N-1的唯一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们报出自己的编号。到达的同学都会报出的编号,不会报出别人的编号,但有的同学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到......
  • 2024年全国大学生数学建模-A 题 “板凳龙” 闹元宵-解题思路参考
    “板凳龙”,又称“盘龙”,是浙闽地区的传统地方民俗文化活动。人们将少则几十条,多则上百条的板凳首尾相连,形成蜿蜒曲折的板凳龙。盘龙时,龙头在前领头,龙身和龙尾相随盘旋,整体呈圆盘状。一般来说,在舞龙队能够自如地盘入和盘出的前提下,盘龙所需要的面积越小、行进......