【MATLAB源码】数学建模基础教程(2)--层次分析法(评价类算法)

news2024/9/28 9:23:46

系列文章目录在最后面,各位同仁感兴趣可以看看!

层次分析法

  • 引言
  • 一、层次分析法的特点
  • 二、模型的建立求解过程
    • (1)问题的提出:实际问题的转化
    • (2)建立层次结构模型
    • (3)构造判断(成对比较)矩阵
    • (4)一致性检验:
  • 三、层次分析法的优点与局限
    • 代码开源
  • 最后:总结
  • 系列文章目录


引言

层次分析法(AHP)是由美国运筹学家、匹茨堡大学教授托马斯·L·萨蒂(T.L. Saaty)在20世纪70年代初提出的一种层次权重决策分析方法。萨蒂教授当时为美国国防部研究一个课题,即根据各个工业部门对国家福利的贡献大小来进行电力分配。他应用了网络系统理论和多目标综合评价方法,提出了这一方法。层次分析法通过将复杂的决策问题分解为多个层次和子问题,逐层分析,并利用专家判断和数学计算确定各因素的相对重要性,最终为决策提供科学的依据。

一、层次分析法的特点

(1) 这种方法的特点是在深入分析复杂决策问题的本质、影响因素及其内在关系的基础上,利用较少的定量信息,将决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的解决方案。它是一种适用于难以完全定量的复杂系统进行决策的模型和方法。
(2)层次分析法在经济、科技、文化、军事、环境乃至社会发展等方面的管理决策中都有广泛的应用。它常用于解决诸如综合评价、选择决策方案、估计和预测、以及投入量的分配等问题。通过这种方法,决策者能够更有效地分析和处理复杂的决策问题,确保决策过程更加科学和合理。

二、模型的建立求解过程

(1)问题的提出:实际问题的转化

在我们日常生活中,其实有许多决策问题。决策是指在面临多种方案时,根据一定的标准选择某一种方案。例如拿典型的旅游例子来讲:假期旅游,是去风光秀丽的苏州,还是去凉爽宜人的北戴河,或者是去山水甲
天下的桂林?通常会依据景色、费用、食宿条件、旅途等因素选择去哪个地方
.其中这些景色、费用、食宿条件、旅途等就是决策的目标,就是我们最终比较得出的最优化结果,如下图是基本的原理过程;

在这里插入图片描述


运用层次分析法构造系统模型时,大体可以分为以下四个步骤:
1.建立层次结构模型
2.构造判断(成对比较)矩阵
3.层次单排序及其一致性检验
4.层次总排序及其一致性检验

(2)建立层次结构模型

层次分析法通过将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最低层,绘制出层次结构图。具体如下:

  1. 最高层(目标层):决策的目的、要解决的问题。
  2. 中间层(准测层):考虑的因素、决策的准则,影响选择的因素。
  3. 最低层(方案层):决策时的备选方案,就是有几种方案可选。
    我们可以用一个简单明了的图,给大家直观的表达:如下图所示

    在这里插入图片描述


    几点注意
    1.处于最上面的的层次通常只有一个元素,一般是分析问题的预定目标或理想结果。中间层次一般是准则、子准则。最低一层包括决策的方案。层次之间元素的支配关系不一定是完全的,即可以存在这样的元素,它并不支配下一层次的所有元素。
    2.层次数与问题的复杂程度和所需要分析的详尽 程度有关。每一层次中的元素一般不超过9个,因一层中包含数目过多的元素会给两两比较判断带来困难。
    3.一个好的层次结构对于解决问题是极为重要的。 层次结构建立在决策者对所面临的问题具有全面 深入的认识基础上,如果在层次的划分和确定层 次之间的支配关系上举棋不定,最好重新分析问 题,弄清问题各部分相互之间的关系,以确保建 立一个合理的层次结构。
    还是以上面的旅游举例来说,可以进行划分的层次结构如下图所示:直观明了的把问题转化为层次逻辑

    在这里插入图片描述


    层次分析法所要解决的问题是关于最低层对最高层的相对权重问题。通过确定这些相对权重,可以对最低层中的各种方案和措施进行排序,从而在不同的方案中作出选择或形成选择方案的原则。具体而言,最高层代表决策的目的和要解决的问题,中间层则包含考虑的因素和决策准则,而最低层则是备选方案。

(3)构造判断(成对比较)矩阵

在建立递阶层次结构后,上下层次之间元素的隶属关系得以确定。假设上一层次的元素 ( Ck ) 作为准则,对下一层次的元素 ( A1, A2, …, An ) 存在支配关系,我们的目的是在准则 ( Ck ) 之下,根据它们的相对重要性为 ( A1, A2, …, An ) 赋予相应的权重。为此,需要比较同一层次中每个因素相对于上一层次同一因素的相对重要性。这种比较通常通过对每个因素进行成对比较,以确定它们对决策目标的贡献,从而最终形成相应的权重矩阵,并计算出每个方案的权重值。

在确定各层次因素之间的权重时,如果仅依靠定性的结果,常常难以被他人接受。因此,萨蒂等人提出了构造成对比较矩阵 A = aij 的方法。具体而言,该方法有以下特点:
1.不将所有因素放在一起进行比较,而是进行两两相互比较。
2. 在比较时采用相对尺度,以尽可能减少不同性质因素之间比较的困难,从而提高准确度。
成对比较矩阵用于表示本层所有因素相对于上一层某一因素的相对重要性。判断矩阵的元素 ( aij ) 是使用萨蒂的1-9标度方法给出的。心理学家认为,成对比较的因素不宜超过9个,因此每层因素最好不要超过9个。这种方法有效地简化了比较过程,使得决策者能够更清晰地理解各因素的重要性,并为权重的计算提供了可靠的基础。那么判断矩阵aij的标度方法表如下所示:

在这里插入图片描述


对于 n 个元素来说, 通过A1, A2, …, An两两比较, 得到成对比较 (判断)矩阵 A=(aij) n*n:其中判断矩阵具有如下性质:
(1)aij>0;
(2)aij=1/aji;
(3)aii=1。
我们称 A为正的互反矩阵根据性质(2)和(3),事实上,对于n 阶判断矩阵仅需对其上(下)三角元素共n(n-1)/2个给出判断即可。对应于判断矩阵最大特征根λmax的特征向量,经归一化(使向量中各元素之和等于1)后记为W。
通过调查部分人的想法程度,得到以旅游为例子的矩阵。

在这里插入图片描述

(4)一致性检验:

对矩阵归一化处理之后,由aikakj=aij,i,j=1,2,…,n。在正互反矩阵A中,若aikakj=aij(A的元素具有传递性)则称A为一致矩阵。定理:n阶正互反阵A的最大特征根λmax>=n,当且仅λ=n时A为一致阵。一般地,我们并不要求判断具有这种传递性和一致性,这是由客观事物的复杂性与人的认识的多样性所决定的.但在构造两两判断矩阵时,要求判断大体上的一致是应该的.出现甲比乙极端重要,乙比丙极端重要,而丙又比甲极端重要的判断般是违反常识的.一个混乱的经不起推敲的判断矩阵有可能导致决策的失误,而且当判断矩阵过于偏离一致性时,用上述各种方法计算的排序权重作为决策依据,其可靠程度也值得怀疑.因而必须对判断矩阵的一致性进行检验.

由于λ(A的特征根)连续的依赖于aij,则λ比n大的越多,A的不一致性越严重。引起的判断误差越大。因而可以用λ-n数值的大小来衡量A的不
一致程度。
定义一致性指标 CI=(λmax-n)/(n-1)
其中:CI=0 ,有完全的一致性
CI接近于0,有满意的一致性
CI越大,不一致越严重

定义一致性比率:CR=CI/RI ,一般的,当一致性比率CR=CI/RI<0.1.时,认为的不一致程度在容许范围之内,有满意的一致性,通过一致性检验.否则要重新构造成对比较矩阵A,对aij加以调整.
注意:一致性检验:利用一致性指标和一致性比率<0。1及随机致性指标的数值表,对A进行检验的过程

断矩阵一致性检验的步骤如下:
(1)计算一致性指标 CI: CI=(λmax-n)/(n-1) 其中n为判断矩阵的阶数;
(2)查找平均随机致性指标RI.平均随机一致性指标是多次(500次以上)重复进行随机判断矩阵特征根计算之后取算术平均得到的.一般用于查表得到RI:如下表

阶数123456789101112131415
RI000.520.891.121.261.361.411.461.491.521.541.561.581.59

(3)计算一致性比例CR:**CR=CI/RI,**当C.R.<0.1时,一般认为判断矩阵的一致
性是可以接受的.否则应对判断矩阵作适当的修正.
根据上面例子最后求得结果如下:

在这里插入图片描述

三、层次分析法的优点与局限

1.优点:
(1)系统性:层次分析法通过将研究对象视为一个整体系统,运用系统思维进行全面的决策分析,因而成为继机理分析和统计分析之后,发展起来的重要系统分析工具。
(2)实用性:该方法成功结合了定性与定量分析,能够高效地解决许多传统优化技术难以应对的复杂实际问题。此外,层次分析法还促进了决策者与分析者之间的有效沟通,使得决策者可以在一定程度上直接应用该方法,从而显著提高决策的有效性和可靠性。
(3)简洁性:层次分析法的基本原理和步骤易于理解,具备中等文化水平的人士都能够快速掌握。该方法的计算过程非常简便,所得结果直观明了,决策者可以轻松理解和应用。
2.缺点:
(1)局限性:层次分析法的一个主要局限在于,它只能在现有方案中选择出最佳选项,而无法提出全新的解决方案,限制了其创新性。
(2)粗糙性:在比较、判断和计算过程中,层次分析法的处理方式较为粗略,因而不适合用于对高精度要求较高的问题。
(3)主观性:从建立层次结构模型到构建成对比较矩阵,主观因素对整个过程的影响十分显著,这可能导致最终的决策结果难以获得所有相关决策者的普遍认同。

代码开源

clc; clear; % 清空命令行和工作区

% 定义判断矩阵
A = [根据方案层定义矩阵];

% 计算特征值和一致性检验
maxlam = max(eig(A)); % 最大特征值
n = size(A, 1); % 评价指标个数
RI = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45...]; % 随机一致性指标,查表根据阶数
CI = (maxlam - n) / (n - 1); % 一致性指数
CR = CI / RI(n); % 一致性比率

% 一致性检验
if CR < 0.1
    disp('该矩阵通过一致性检验。');
else
    disp('该矩阵未通过一致性检验!');
    return;
end

% 归一化处理
Aprogress = A ./ sum(A); % 归一化判断矩阵
W = mean(Aprogress, 2); % 计算权重向量

% 输入原始数据
data = [判断的方案程度矩阵];

% 数据归一化处理
data = data ./ sum(data); % 归一化每列数据

% 计算综合评分
grade = data * W; % 综合评分

最后:总结

通过上面大介绍,大概层次分析法就是这样,我也是从基础跟大家讲起,算法比较简单易懂,如果有什么讲的不好的希望大佬们指正,谢谢!最后哈哈哈哈哈,还是希望,能给我点赞收藏关注一下,真的非常谢谢咯,最后后续看看还有什么可以讲解的,后续进行分享。别忘了点赞!!!!!!哈哈哈哈哈哈,下期见


系列文章目录

专栏1:
第一篇文章:【MATLAB源码】机器视觉与图像识别技术—视觉系统的构成(视频与图像格式转换代码及软件下载)
第二篇文章:【MATLAB源码】机器视觉与图像识别技术(2)—图像分割基础
第三篇文章:【MATLAB源码】机器视觉与图像识别技术(2)续—图像分割算法
第四篇文章:【MATLAB源码】机器视觉与图像识别技术(3)—数字形态学处理以及图像特征点提取
第五篇文章: 【MATLAB源码】机器视觉与图像识别技术(4)—模式识别与视觉计数
第六篇文章: 【MATLAB源码】机器视觉与图像识别技术(5)—BP神经网络和视觉标定
第七篇文章:【MATLAB源码】机器视觉与图像识别技术实战示例文档—鱼苗面积预测计数
第八篇文章:【MATLAB源码】机器视觉与图像识别技术(6)—帧差法和videoinput视频读取
第九篇文章:【MATLAB源码】机器视觉与图像识别技术(7)续—BP神经网络
专栏2:
第一篇文章:【MATLAB源码】数学建模基础教程—初步认识数学建模

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无所从来,亦无所去】纪念去世的奶奶和外公「纪念网页」

大家好&#xff0c;我是DX3906 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘大前端领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; 纪念 2024年 奶奶 85岁、 外公83岁。他们俩分别在今年的2月份和7月份离开了。 时光倒流&#xff0c;奶…

美股:巴菲特减持苹果股份

财报亮点 伯克希尔哈撒韦发布的2024年第二季度财报显示&#xff0c;公司营收达936.53亿美元&#xff0c;略高于市场预期的910.9亿美元。净利润为303.48亿美元&#xff0c;其中投资收益占据一大比例&#xff0c;较去年同期的359.12亿美元有所下降&#xff0c;但远超市场预期的17…

JNPF全新V5.0版本!重磅升级——其他升级优化篇

尊敬的JNPF用户们&#xff1a; 我们非常高兴地宣布&#xff0c;经过团队数月的辛勤努力和不断的技术创新&#xff0c;JNPF快速开发平台终于迎来了里程碑式的全新升级——V5.0版本&#xff01;这一版本的更新发布&#xff0c;不仅代表着我们技术实力的进一步提升&#xff0c;是…

Golang死锁vs操作系统死锁

目录 一、死锁 二、Golang死锁场景 2.1 重复上锁 2.2 不会减少的 WaitGroup 2.3 空select 2.4 channel 一、死锁 1.golang中死锁的触发条件&#xff1a; 死锁是当 Goroutine 被阻塞而无法解除阻塞时产生的一种状态。 2.操作系统死锁&#xff1a; 发生死锁时&#xff0c;线…

如何在2024年成为PDF合并文件高手?试试这3款软件!

在这个数字化的年代&#xff0c;PDF文件早就成了我们工作学习时的老朋友了。不过&#xff0c;要是碰上一堆PDF文件要合并&#xff0c;是不是觉得挺头疼的&#xff1f;别急&#xff0c;今天我们就来聊聊2024年怎么变成合并PDF的大佬&#xff0c;还给你推荐三款特别实用的软件&am…

【从零开始一步步学习VSOA开发】运行hellovsoa

运行hellovsoa 和所有编程技术的首个程序一样&#xff0c;我们先创建、编译、部署、运行一个最简单的示例程序&#xff1a; hellovsoa。 创建 base 工程 需要先创建一个 workspace 工作目录&#xff0c;然后在 workspace 里先新建 base 工程。 打开 RealEvo-IDE&#xff0c…

BPM(业务流程管理):提升企业效率的关键

在现代企业中&#xff0c;业务流程管理&#xff08;BPM&#xff09;已成为提升效率和优化运营的关键工具。随着企业环境的不断变化和竞争的加剧&#xff0c;越来越多的组织开始关注如何通过有效的BPM实践来提升业务表现。本文将探讨BPM的基本概念、实施策略以及如何通过BPM实现…

Java并发中的死锁四大条件与避免策略

Java并发中的死锁四大条件与避免策略 1、死锁是啥&#xff1f;2、死锁的四大条件3、避免死锁的策略 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、死锁是啥&#xff1f; 死锁就像是几个朋友在聚会时&#xff0c;每个人都想和别人手里的…

你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉,你却浑然不觉。

据统计&#xff0c;2024年全球总体通货膨胀率预计达到5.8%&#xff0c;这意味着&#xff1a;你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉&#xff0c;你却浑然不觉。 数据来源&#xff1a;国际货币基金组织 如何跑赢通货膨胀&#xff1f; 家庭财富的积累速度&#xff0c;要…

[Git][分支管理][下]详细讲解

目录 1.合并冲突2.分支管理策略3.分支策略1.基本原则2.bug分支3.删除临时分支 1.合并冲突 在实际分⽀合并的时候&#xff0c;有时候可能会遇到代码冲突的问题&#xff0c;例如&#xff1a; dev分支在写一部分代码&#xff0c;而master分支也没闲着&#xff0c;也在写着同一份代…

MATLAB指针读数识别系统

前言 ①经过在工厂的实地测试&#xff0c;图像采集与传输装置可以正常工作&#xff0c;电脑端可以接收到清晰的图像&#xff0c;并且整个系统具有一定的的抗干扰的能力&#xff0c;在嘈杂的环境中亦可以实现其功能。 ②通过matlab可实现图片的预处理以及指针识别读数识别&…

MySQL笔记(三):修改表

##注&#xff1a;需要在cmd管理员命令行链接mysql再打开sqlyog 一、基本介绍 二、CRUD&#xff08;[create][read][update][delete]&#xff0c;增删改查)语句 1、insert语句 &#xff08;添加数据&#xff09; insert into table_name(第一项&#xff0c;第二项&#xff0…

LeetCode(力扣)数组篇 JAVA刷题详解

1 简介 是不是有许多小伙伴在刷力扣的时候感觉无从下手&#xff1f;从头按顺序开始刷的童鞋们可能会比较有感触&#xff0c;为什么才第四题就感觉很难了?没关系&#xff0c;本文将对力扣的 1-500 题中不需要会员的数据结构与算法题目(数据库与 shell 除外)进行分类&#xff0…

Linux网络编程之dpdk的环境配置详解

文章目录 一、dpdk是什么&#xff1f;二、dpdk的环境配置多队列网卡是什么&#xff1f;怎么判断是否为多队列网卡&#xff1f;怎么修改成多队列网卡&#xff1f;修改内存配置&#xff0c;使其支持hugepage(巨页)下载dpdk编译dpdk 一、dpdk是什么&#xff1f; DPDK&#xff08;…

用苹果Vision Pro隔空操控机器人,英伟达:「人机合一」也不难嘛

昨日,英伟达创始人黄仁勋在 SIGGRAPH 2024 Keynote 演讲中讲到了其人形机器人通用基础模型「Project GR00T」。该模型在功能上迎来了一系列更新。 德克萨斯大学奥斯汀分校助理教授、英伟达高级研究科学家朱玉可发推,在视频中演示了英伟达如何将通用家务机器人大规模仿真训练…

(STM32笔记)十一、通过EXTI外部中断实现 按键控制LED

我用的是正点的STM32F103来进行学习&#xff0c;板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话&#xff0c;用的也是这个板子和教程。 十一、通过EXTI外部中断实现 按键控制LED 十一、通过EXTI外部中断实现 按键控制LED1、按键模块按键原理图按键程序思路 2、中…

【数据结构】mapset详解

&#x1f341;1. Set系列集合 Set接口是一种不包含重复元素的集合。它继承自Collection接口&#xff0c;所以可以使用Collection所拥有的方法&#xff0c;Set接口的实现类主要有HashSet、LinkedHashSet、TreeSet等&#xff0c;它们各自以不同的方式存储元素&#xff0c;但都遵…

Linux常用得操作命令

1.查看ip地址------ifconfig 2.在终端中输入该命令&#xff0c;可以查看当前所在位置------pwd 3.man和–help man命令 1.man命令可以查看某个命令得具体用法 2.man命令怎么翻页 空格 3.man命令按q退出 help命令------help&#xff0c;也可以查看一个命令的帮助&#xff0c…

JavaWeb基础2:XML/Tomcat/Servlet

JavaWeb基础2&#xff1a;XML/Tomcat/Servlet (qq.com)

vim编辑器的使用【vim常用指令介绍】

1.1 vim 简介 vim 编辑器最初是 vi 编辑器&#xff0c;vi 编辑器是 Unix 系统最初的编辑器。允许查看文件内容和在文件中移动、插入、编辑和替换文本。后来开发人员对它做了一些改进。并重命名为 vim。 1.2 学习 vim 的理由 因为几乎任何一个发行版都有 vi/vim 编辑器&#xf…