层次分析法和多属性决策算法

article/2025/7/19 0:46:14

层次分析法

层次分析法是笔者参加建模比赛最喜欢用的模型,也是各种算法中最简单的算法,大部分类型的题目都可以用层次分析法入手,进行初步的分析。
层次分析法的优点在于不需要任何数据,矩阵中用到的数据都是建模者主观上的比较,适用于没有数据或者数据少的问题中,缺点在于有些时候逻辑不够严谨以及模型较单一,推广能力差。

层次分析法概念:

层次分析法(AHP)特点在于对复杂的决策问题的本质、影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法。是对难以完全定量的复杂系统做出决策的模型和方法

  • 注:决策是指面临多种方案时需要根据一定的标准选择某一种方案,如根据景区的景色、居住环境、餐饮特色、交通便利程度、旅游费用等来选择某一旅游目的地。

层次分析法原理:

根据问题的性质和要达到的总目标,将问题分解成不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。

层次分析法步骤:

1、 建立层次结构模型
2、 构造成对比较矩阵
3、 层次单排序及其一致性检验
4、 层次总排序及其一致性检验

如何构建层次结构模型

将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为目标层、准则层、方案层,绘制出层次结构图
目标层:决策的目的,要解决的问题
准则层:考虑的因素、决策的准则
方案层:决策时的备选方案

如何构造成对比较矩阵

在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接受,因此提出一致矩阵法,即
(1)不把所有因素放在一起比较,而是两两相互比较
(2)对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准确度。

  • 成对比较矩阵时表示本层所有因素针对上一层某一个因素的相对重要性的比较。成对比较矩阵的元素a_ij用1——9的标度方法给出。

如何一致性检验

在这里插入图片描述

计算一致性指标CI
在这里插入图片描述
在这里插入图片描述
为了避免随机因素所造成的误差,还需将 CI 和随机一致性指标 RI 进行比较,得出检验系数 CR,当CR<0.1,该矩阵的一致性可以接受,若CR>=0.1,该矩阵的一致性不能接受。
公式如下:

                    CR=CI/RI

实例:

在上海,杭州,南京三个旅游目的地中选择一个最合适的城市进行旅游。

符号说明

在这里插入图片描述

步骤一:绘制层次结构模型

列举出影响游客选择旅游目的地的因素——景色,费用,居住,饮食,路程。
然后列出旅游的城市——上海,杭州,南京
确定目标层、准则层和方案层。
在这里插入图片描述

步骤二:构建成对比较矩阵

根据资料和实际数据,我们可以列出成对比较矩阵
在这里插入图片描述

步骤三:一致性检验(代码见最后)

A矩阵的CI=0.0180,CR=0.0161,一致性检验通过

步骤四:得出结果

经过计算
A_1 A_2 A_3 A_4 A_5对Z的权重为【0.2636,0.4758,0.0538,0.0981,0.1087】
B_1 B_2 B_3对A_1的权重为【0.5954,0.2764,0.1283】
B_1 B_2 B_3对A_2的权重为【0.0819,0.2363,0.6817】
B_1 B_2 B_3对A_3的权重为【0.4286,0.4286,0.1429】
B_1 B_2 B_3对A_4的权重为【0.6337,0.1919,0.1744】
B_1 B_2 B_3对A_5的权重为【0.1667,0.1667,0.6667】

结论:

B_1 B_2 B_3对总目标的权重为【0.3,0.245,0.455】,因此选择南京作为旅游目的地最合适。

多属性决策

多属性决策模型实质:

利用已有的决策信息,通过一定的方式,对一组(有限个)备选方案进行排序或择优。
主要由两部分构成:(1)获取决策信息——一般包括属性权重和属性值(实数、区间数和语言),其中属性权重的确定是多属性决策中的一个重要研究内容;(2)通过一定方法对决策信息进行集结并对方案进行排序和择优。

加权算数平均算子(WAA)

信息集结方法包括加权算数平均算子(WAA)、加权几何平均算子(WGA),有序加权平均算子(OWA),本文主要介绍WAA。

定义

在这里插入图片描述

属性归一化

属性类型一般有效益型、成本性、固定性、区间型、偏离区间型等。其中效益型属性是指属性值越大越好的属性;成本型属性是指属性值越小越好的属性;固定型属性是指属性值越接近某个固定值α_i越好的属性;区间型属性是指属性值越接近某个固定区间[〖q_1〗j,〖q_2〗j](包括落入该区间)越好的属性,偏离区间型属性是指属性值越偏离某个固定区间[〖q_1〗j,〖q_2〗j ]越好的属性。为了消除不同物理量纲对决策结果的影响,决策时可按下列公式对数据进行规范化处理。
在这里插入图片描述



在这里插入图片描述

多属性决策实例:

投资银行拟对四家企业(方案)进行投资,抽取下列5项指标(属性)进行评估——产值(万元);投资成本(万元);销售额(万元);国家收益比重;环境污染程度
投资银行考察了上年度4家企业的上述指标情况(其中污染程度系有环保部门历时检测并量化),所得结果如表所示。
在各项指标中,投资成本、环境污染程度为成本型,其他为效益型,属性权重信息完全未知,试确定最佳投资方案。
在这里插入图片描述

计算属性权重

对五个属性构建成对比较矩阵,计算属性权重
在这里插入图片描述

一致性检验的MATLAB代码

disp(' 请输入成对比较矩阵A ');
A=input('A=');
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
while  k>pi=i+1;x(:,i)=A*y(:,i-1);m(i)=max(x(:,i));y(:,i)=x(:,i)/m(i);k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp(w);
% 以下是一致性检验
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
CR=CI/RI(n);
if CR<0.10disp('此矩阵的一致性可以接受!');disp('CI=');disp(CI);disp('CR=');disp(CR);
end

http://chatgpt.dhexx.cn/article/sLcFFsjQ.shtml

相关文章

数学建模方法-多属性决策模型

一、引言 哈喽大家好&#xff0c;今天我们要讲的一个内容叫“多属性决策”。这个东东它在工程设计、经济、管理和军事等诸多领域中有着广泛的应用。比如&#xff1a;投资决策、项目评估、产业部门发展排序和经济效益综合评价等等。那么接下来我们就要开始我们的内容咯。 二、多…

matlab实现决策矩阵规范化(多属性决策)

matlab实现决策矩阵规范化&#xff08;多属性决策&#xff09; 一般来说&#xff0c;不同的决策变量量纲也不同&#xff0c;规范化可以消除量纲对最终结果的影响&#xff0c;使不同变量具有可比性。 假设决策矩阵为 A ( a i j ) m n A({a_{ij}})_{mn} A(aij​)mn​, 规范化…

数学模型-多属性决策

数学模型-多属性决策 多属性决策是现代决策科学的一个重要组成部分,它 的理论和方法在工程设计、经济、管理和军事等诸多领域 中有着广泛的应用,如:投资决策、项目评估、维修服务、 武器系统性能评定、工厂选址、投标 招标、产业 部门发展 排序和经济效益综合评价等.多…

多属性决策模型详解(matlab)

多属性决策简介 多属性决策是现代决策科学的一个重要组成部分&#xff0c;它的理论和方法在工程设计、经济、管理和军事等诸多领域中有着广泛的应用&#xff0c;如&#xff1a;投资决策、项目评估、维修服务、武器系统性能评定、工厂选址、投标招标、产业部门发展排序和经济效…

数模(02)---多属性决策模型

matlab---多属性决策模型 加权算术平均算子属性值的归一化处理多属性决策模型举例 多属性决策的实质是利用已有的决策信息通过一定的方式对一组&#xff08;有限个&#xff09;备选方案进行排序或择优。它主要由2部分组成&#xff1a; 获取决策信息。 决策信息一般包括两…

Matlab:数模02-多属性决策模型

文章目录&#xff1a; 加权算术平均算子属性化的归一化处理多属性决策模型实例 加权算术平均算子 属性化的归一化处理 多属性决策模型实例 首先我们要判断u1&#xff5e;u5的属性值都对应着什么。一般而言&#xff0c;我们的属性值要么是效益型&#xff0c;要么是成本型。我们作…

多属性决策模型-matlab实现

多属性决策模型-matlab实现 属性集合决策矩阵评价指标类型的一致化处理决策矩阵标准化 属性权重信息熵法动态加权函数的设定1.分段变幂函数2.偏大型正态分布函数3.S型分布函数 综合方法简单加权和法(首选)加权积法接近理想解的偏好排序法 方案选取代码实现归一化函数综合方法函…

多属性决策(MCDM)

多属性决策(MCDM) 指的是利用已有的决策信息通过移动的方式对一组&#xff08;有限个&#xff09;备选方案进行排序或者择优。 属性&#xff1a;备选方案的特征、品质或性能参数 包括属性权重和属性值 对决策信息进行集结&#xff1a; 加权算术平均算子(WAA)加权几何平均算…

多属性决策

多属性决策&#xff08;有限方案多目标决策&#xff09;&#xff0c;实现较好的数据预处理 由决策变量选择对应的决策形式 离散型 进行分析评价的目的是对方案进行排序 连续型 从非劣解集中获取偏好解 数据预处理 遵循非量纲化、归一化属性值的定性等级 最好、很好、好、较…

【数学建模】多属性决策模型(评价与决策)

文章目录 一、算法介绍1. 加权算术平均算子&#xff08;WAA&#xff09;2. 属性值归一化处理 二、适用问题三、算法总结1. 步骤 四、应用场景举例&#xff08;企业评估&#xff09;1. 建模构建决策矩阵2. 属性值归一化3. 对各个属性构造成对比较矩阵计算属性权重&#xff08;层…

多属性决策分析

【 1. 多属性决策分析简介 】 实质&#xff1a; 利用已有的决策信息通过一定的方式对一组(有限个)备选方案进行排序或择优。组成&#xff1a; (l) 获取决策信息。决策信息一般包括两个方面的内容&#xff1a;属性权重和属性值(属性值主要有三种形式&#xff1a;实数、区间数和…

机器学习(MACHINE LEARNING)多属性决策模型

文章目录 1 多属性决策概念2 加权算术平均算子3 属性值归一化处理4 例子 1 多属性决策概念 首先&#xff0c;什么是多属性决策呢&#xff0c;它指的是利用已有的决策信息通过移动的方式对一组&#xff08;有限个&#xff09;备选方案进行排序或者择优。它的主要组成部分有如下…

离散模型——多属性决策

数学模型 7.1 P233 目录 多属性决策 定义&#xff1a; 第一步&#xff1a;确定决策矩阵并标准化 1&#xff09;确定决策矩阵&#xff1a; 2&#xff09;决策矩阵标准化&#xff1a; 第二步&#xff1a;确定属性权重 第三步&#xff1a;综合方法 1&#xff09;将决策矩阵…

【C语言】my_strcmp字符串比较

1.思想&#xff1a;①.比较两个字符串涉及对两个字符串对应的字符逐个进行比较&#xff0c;直到发现不匹配为止&#xff0c;返回比较结果。 ②.strcmp函数实际上是对字符的ASCII码进行比较&#xff0c;strcmp函数最多比较到其中一个字符串遇到\0为止。 2.函数原型如下&#xf…

C/C++编程笔记:C语言字符串比较函数,超详细,值得收藏!

void *memset(void *dest, int c, size_t count); 将dest前面count个字符置为字符c. 返回dest的值. void *memmove(void *dest, const void *src, size_t count); 从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理. 返回dest的值. void *memcpy(voi…

【c语言】字符串比较 | API仿真

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ …

C/C++中比较字符串的方法

一、strcmp函数 适用对象 char*类型字符串 函数介绍 strcmp函数是cstring库中的函数&#xff0c;包含在string.h头文件中 用法 strcmp的两个参数都是char*类型&#xff0c;将要比较的字符串传入即可&#xff0c;根据返回值得到比较结果 举例 二、compare()函数 适用对象…

【c语言】字符串比较

独立实现标准字符串库的strcmp函数&#xff0c;即字符串比较函数&#xff0c;从键盘输入两个字符串&#xff0c;按字典序比较大小&#xff0c;前者大于后者输出1&#xff0c;前者小于后者输出-1&#xff0c;两者相等输出0。 样例输入: apple one 样例输出: -1 样例输入: hello…

C语言 - 比较字符串大小

程序源码 #include <stdio.h> int mStrcpy(char *s, char *s1, int len); int main() {char str[2][20];int i, j;printf("请输入2个字符串&#xff01;\n");for(i0; i<2; i)gets(str[i]);printf("字符串大小比较结果&#xff1a;%d\n", mStrcpy…

c语言比较两个字符串是否相等strcmp

c语言提供了几个标准库函数&#xff0c;可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子&#xff1a; #include <stdio.h> #include <string.h> int main(void) {char str_1[] "abc"; char str_2[] "abc";char str_3…