数学建模评价类模型—层次分析法(无数据情况下)
目录
前言
一、评价类问题概述
二、AHP建模流程
1、过程描述
2、层次分析法—Matlab代码
三、权重计算
1、算术平均法
2、几何平均法
3、特征值法
目录
文章目录
前言
一、评价类问题概述
二、AHP建模流程
1、过程描述
2、层次分析法—Matlab代码
三、权重计算
算术平均法
前言
本文将讲解解决评价类问题的第一种模型层次分析法(AHP法),首先我们会具体讲解评价类问题解答的具体流程再对AHP方法进行讲解
一、评价类问题概述
评价指标本身的数学量化,评价指标之间的数学综合
基本流程:明确主体—>指标明确—>权重计算—>方案评价
明确主体:明确哪里可以用到评价,比如:2012对《葡萄酒的评价》这里葡萄球的等级就是可以用到评价的地方
指标确定:可以通过一个思维导图的方式来画出这个指标系统。先确定方向(通过查找文献和头脑风暴),然后再向下细化
权重计算:使用主观权重法和客观权重法,每个指标都要进行归一化
方案评价:得到权重后,再对结果进行进一步分析
二、AHP建模流程
1、过程描述
1、建立层次结构模型:
目标层(决策的目标,如:选出微博之星)
准测层C={C1,C2,···,Cn}(考虑的因素,实质上就是评价指标)
方案层P={P1,P2,···Pm}(决策对象,如:微博之星又A,B,C三个人可选择)
2、构造判断矩阵
对于准则层中的每个元素Ci(i=1,2,···,n),构造一个关于方案层P中各个元素两两比较的判断矩阵Ai(mxm),其中元素aij表示因素Pj相对于因素Pi的重要性程度。通常使用1-9的比例标度来表示这种重要性程度。易得aij*aji=1,所以在写判断矩阵时可以只写一边矩阵再对应填另一边
注意:这个地方常常会出现嵌套分层,也就是说可能每个Ci可能会单独对应某些Pi,这个时候要再构造一次判断矩阵,本质上就是先聚类(将单个指标因素按照关联度和相似度分为互不影响的几大类)再使用层次分析法
例如:下面我们将问题分成了三层,其中,我们将指标首先分为互不影响的三大类:通行能力,安全性,便捷度,首先对这三类构造判断矩阵,进行一致性检验,算出这三大类的权重;然后又讨论影响这三大类的因素,在每一大类中,对其中的影响因素再构造相应的判断矩阵,并且检验其一致性,再算出每个因素的权重,最后再计算出每个具体因素的总权重,进行评价分析。
3、层次单排序及一致性检验
- 对于每个判断矩阵Ai,计算其最大特征根λmax和对应的特征向量Wi,对特征向量Wi进行归一化处理(其实就是特征向量/n)
- 得到准则层Ci下各因素的权重向量wi = (wi1, wi2, ..., wim)。
- 计算一致性指标CI 和随机一致性指标RI(可在网上查到),进而计算一致性比例CR = CI / RI。
- 如果CR < 0.1,(这里只有CI越小CR才能越小,故当λmax—>n时,我们认为矩阵Ai越接近一致矩阵) 则认为判断矩阵Ai具有满意的一致性
2、层次分析法—Matlab代码
%层次分析法-一致性检验
A = input('判断矩阵A=');%输入判断矩阵
[n,n]=size(A); %获取A的行和列%求出最大特征值以及对应的特征向量
[V,D]=eig(A); %V是特征向量 D是特征值构成的对角矩阵
Max_eig = max(max(D)); %先求出每一行的最大值,再求出最大值中的最大值,即为最大特征值CI = (Max_eig - n)/(n-1);%求出一致性检验指标%网上查表可得
RI=[0,0.0001,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];%注意RI最多支持n=15
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);if CR<0.1disp('因为CR<0.01,所以该判断矩阵A的一致性可以接受!');
elsedisp('注意:CR>=0.10,因此该判断举证A要进行修改!');
end
三、权重计算
1、算术平均法
%1.算术平均法计算权重
%输入样例,将前面的判断矩阵输入即可,此处省略
Asum=sum(A,1);%将A的每列求和赋值到Asum中
Ar = repmat(Asum,n,1);%复制Asum n行1列为Ar矩阵,使得Ar又变回了n行n列的矩阵
stand_A=A./Ar;%归一化处理,./表示对应的元素相除
ASumr = sum(stand_A,2);%再对归一化处理后的矩阵的每列加到同一行
disp(ASumr/n);%相加后的每个元素/n得到权重向量(nx1)
2、几何平均法
A = input('判断矩阵A='); %输入判断矩阵
[n,n] = size(A); %获取A的行和列
prod_A = prod(A,2); %将A中每一行元素相乘得到
一列向量
prod_n_A = prod_A.^(1/n); %将新的向量的每个分量开n
次方等价求1/n次方
re_prod_A = prod_n_A./sum(prod_n_A);%归一化处理
disp(re_prod_A); %展示权重结果
3、特征值法
A = input('判断矩阵A='); %输入判断矩阵
[n,n] = size(A); %获取A的行和列
%求出最大特征值以及对应的特征向量
[V,D] = eig(A); %V是特征向量 D是特征值构
成的对角矩阵
Max_eig = max(max(D)); %先求出每一列的最大值,
再求最大值中的最大值
[r,c] = find(Max_eig == D,1);%使用find()函数找出最大
特征值对应的特征向量的位置(索引)
%对特征向量进行归一化得到所需权重
disp(V(:,c)./sum(V(:,c)));
相关文章:
数学建模评价类模型—层次分析法(无数据情况下)
目录 前言 一、评价类问题概述 二、AHP建模流程 1、过程描述 2、层次分析法—Matlab代码 三、权重计算 1、算术平均法 2、几何平均法 3、特征值法 目录 文章目录 前言 一、评价类问题概述 二、AHP建模流程 1、过程描述 2、层次分析法—Matlab代码 三、权重计算 算术平均法 前言…...
模拟实现strcat(字符串追加)
1.我们要知道stcat的作用是什么,字符串追加。 2.我们进行模仿,我们先将arr1不断,直到“\0”,我们加在后面。 //模拟实现strcat(字符串追加) char* my_strcat(char* arr1, const char* arr2) {assert(arr1 && arr2);char ret arr1;…...
HTTP简单概述
一. HTTP HTTP(HyperText Transfer Protocol)是用于在客户端和服务器之间传输超文本数据(如HTML)的应用层协议。它是万维网的基础协议,定义了浏览器和服务器之间如何请求和传输文档。HTTP有多个版本,每个版…...
掌握PyCharm代码片段管理器:提升编码效率的秘诀
掌握PyCharm代码片段管理器:提升编码效率的秘诀 PyCharm作为业界领先的集成开发环境(IDE),提供了许多便利的功能来提升开发者的编码效率,其中之一就是代码片段管理器。代码片段管理器允许开发者保存、管理和重用代码模…...
MyBatis动态代理和映射器
目录 1、映射器简介 (1)什么是mapper动态代理? (2)动态代理的规范 (3)如何使用动态代理 (4)为什么学映射器 (5)映射器与接口 (…...
ShardingSphere中的ShardingJDBC常见分片算法的实现
文章目录 ShardingJDBC快速入门修改雪花算法和分表策略核心概念分片算法简单INLINE分片算法STANDARD标准分片算法COMPLEX_INLINE复杂分片算法CLASS_BASED自定义分片算法HINT_INLINE强制分片算法 注意事项 ShardingJDBC Git地址 快速入门 现在我存在两个数据库,并…...
SpringBoot整合Flink CDC实时同步postgresql变更数据,基于WAL日志
SpringBoot整合Flink CDC实时同步postgresql变更数据,基于WAL日志 一、前言二、技术介绍(Flink CDC)1、Flink CDC2、Postgres CDC 三、准备工作四、代码示例五、总结 一、前言 在工作中经常会遇到要实时获取数据库(postgresql、m…...
ThinkPHP事件的使用
技术说明 1.ThinkPHP版本:支持6.0、8.0 2.使用场景:用户登陆后日志记录、通知消息发送等主流程、次流程分离等场景 3.说明:网上很多帖子说的不明不白的,建议大家自己手动尝试总结一下 4.事件手动绑定的时候,一定要…...
【Nuxt】服务端渲染 SSR
SSR 概述 服务器端渲染全称是:Server Side Render,在服务器端渲染页面,并将渲染好HTML返回给浏览器呈现。 SSR应用的页面是在服务端渲染的,用户每请求一个SSR页面都会先在服务端进行渲染,然后将渲染好的页面…...
Spring Boot整合WebSocket
说明:本文介绍如何在Spirng Boot中整合WebSocket,WebSocket介绍,参考下面这篇文章: WebSocket 原始方式 原始方式,指的是使用Spring Boot自己整合的方式,导入的是下面这个依赖 <dependency><g…...
《LeetCode热题100》---<5.③普通数组篇五道>
本篇博客讲解LeetCode热题100道普通数组篇中的五道题 第五道:缺失的第一个正数(困难) 第五道:缺失的第一个正数(困难) 方法一:将数组视为哈希表 class Solution {public int firstMissingPosi…...
Cocos Creator文档学习记录
Cocos Creator文档学习记录 一、什么是Cocos Creator 官方文档链接:Hello World | Cocos Creator 百度百科:Cocos Creator_百度百科 Cocos Creator包括开发和调试、商业化 SDK 的集成、多平台发布、测试、上线这一整套工作流程,可多次的迭…...
插入数据优化 ---大批量数据插入建议使用load
一.insert优化 1.批量插入 2.手动提交事务 3.主键顺序插入 二.大批量插入数据 如果一次性需要插入大批量数据,使用insert语句插入性能较低,此时可以使用MySQL数据库提供的load指令进行插入。操作如下 1.客户端连接服务端时,加入参数 --local-infine mysql --local-infine…...
【Linux】一篇总结!什么是重定向?输出重定向的作用是什么?什么又是追加重定向?
欢迎来到 CILMY23 的博客 🏆本篇主题为:一篇总结!什么是重定向?输出重定向的作用是什么?什么又是追加重定向? 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Py…...
svn软件总成全内容
SVN软件总成 概述:本文为经验型文档 目录 D:\安装包\svn软件总成 的目录D:\安装包\svn软件总成\svn-base添加 的目录D:\安装包\svn软件总成\tools 的目录D:\安装包\svn软件总成\tools\sqlite-tools-win32-x86-3360000 的目录D:\安装包\svn软件总成\安装包-----bt lo…...
[激光原理与应用-118]:电源系统的接地详解:小信号的噪声干扰优化,从良好外壳接地开始
目录 一、电路的基本原理:电流回路 1、电流回路的基本概念 2、电流回路的特性 3、电流回路的类型 4、电流回路的应用 五、电流回路的注意事项 二、交流设备的接地 1.1 概述 1、交流工作接地的定义 2、交流工作接地的作用 3、交流工作接地的规范要求 4、…...
回测本身就是一种过度拟合?
这也许是一个絮絮叨叨的专题,跟大伙儿唠一唠量化相关的小问题,有感而发写到哪算哪,这是第一期,先唠个10块钱的~ 前段时间在某乎上看到这样一个问题『您怎么理解回测本身就是一种过度拟合?』 个人看来,回测本…...
什么是Arduino?
Arduino是一款便捷灵活、方便上手的开源电子原型平台,由欧洲的一个开发团队于2005年冬季开发。以下是关于Arduino的详细介绍: 一、基本概述 定义:Arduino是一个基于开放源代码的软硬件平台,它让电子设计更加简单快捷。通过Arduin…...
【机器学习基础】Scikit-learn主要用法
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…...
python-素数回文数的个数(赛氪OJ)
[题目描述] 求 11 到 n 之间(包括 n),既是素数又是回文数的整数有多少个。输入: 一个大于 11 小于 10000 的整数 n。输出: 11 到 n 之间的素数回文数个数。样例输入1 23 样例输出1 1 提示: 回文数指左右对…...
OCC 网格化(二)-网格划分算法
目录 一、概述 二、详解 1. 线性偏转 (Linear Deflection) 2. 角偏转 (Angular Deflection) 三、示例 3.1 示例1 3.2 示例2 一、概述 在 Open CASCADE Technology (OCC) 中默认的网格划分算法BRepMesh_IncrementalMesh有两个主要的选项来定义三角剖分—线性和角偏转。 …...
pyecharts模块
PyEcharts 一个基于ECharts库的Python封装库,它使得开发者可以方便地在Python环境中创建交互式的图表,包括折线图、柱状图、饼图、地图等多种可视化效果。 优点: 易用性:PyEcharts提供了简单易懂的API,通过链式调用…...
深⼊理解指针(3)
1. 字符指针变量 2. 数组指针变量 3. ⼆维数组传参的本质 4. 函数指针变量 5. 函数指针数组 6. 转移表 1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 ⼀般使⽤: char* 这两种方式都是把字符串中的首字符的地址赋值给pc。 在这串代码中 str1内容的地…...
黑马头条vue2.0项目实战(四)——首页—文章列表
目录 1. 头部导航栏 1.1 页面布局 1.2 样式调整中遇到的问题 2. 频道列表 2.1 页面布局 2.2 样式调整 2.3 展示频道列表 3. 文章列表 3.1 思路分析 3.2 使用 List 列表组件 3.3 加载文章列表数据 3.4 下拉刷新 3.5 设置上下padding固定头部和频道列表 3.6 记住列…...
UE5.4内容示例(4)UI_UMG - 学习笔记
https://www.unrealengine.com/marketplace/zh-CN/product/content-examples 《内容示例》是学习UE5的基础示例,可以用此熟悉一遍UE5的功能 UI示例 UI_UMG :基本UMGUI_CommonUI :UMG多层应用UI_SlatePostBuffer UI :FX的示例&…...
C#实现数据采集系统-配置文件化
系统优化-配置 配置信息ip端口,还有点位信息,什么的都是直接在代码里直接写死,添加点位,修改配置,比较麻烦,每次修改都需要重新生成打包。 所以将这些配置都改成配置文件,这样只需要修改配置文件,程序无须修改,即可更新。 配置代码: 如果我们有100个采集,一个个去…...
Java面试题 -- 为什么重写equals就一定要重写hashcode方法
在回答这个问题之前我们先要了解equals与hascode方法的本质是做什么的 1. equals方法 public boolean equals(Object obj) {return (this obj);}我们可以看到equals在不重写的情况下是使用判断地址值是否相同 所以默认的 equals 的逻辑就是判断的双方是否引用了一个对象&am…...
J031_使用TCP协议支持与多个客户端同时通信
一、需求文档 使用TCP协议支持与多个客户端同时通信。 1.1 Client package com.itheima.tcp2;import java.io.DataOutputStream; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner;public class Client {public static void main(String[] a…...
二分查找(精确查找、范围搜索)
目录 1. 二分查找概述2. 精确查找2.1 【left,right】2. 2 【left,right) 3. 范围查找总结 1. 二分查找概述 二分查找法,也称为二分搜索法或折半查找法,是一种在有序数组中查找特定元素的搜索算法。其基本思想是&#x…...
软件工程简记
文章目录 一、软件工程要点之软件设计二、UML(Unified Modeling Language,统一建模语言)(一)UML 的整体分类与部分功能(二)UML 各类图的具体内容三、开发模型(一)多种开发模型的特点与问题四、设计模式(一)设计模式的总体概念与原则(二)软件结构设计原则(三)常见…...
网站的优化什么做/什么软件可以发布广告信息
1.配置ssh keyssh-keygen -t rsa -C "注册GitHub的邮箱"Enter file in which to save the key (/c/Users/yongfengnice/.ssh/id_rsa): //提示输入key保存的文件名称,默认是用户名下的.ssh文件夹下的id_rsa文件Enter passphrase (empty for no passphrase)…...
国外的网站建设/新业务在线软件下载
ECC加密算法入门介绍 前言 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开密钥算法。目前&#x…...
石家庄市网站建设培训班/微信引流的十个方法
在此博客中,我将讨论 EDI 和 IDOC 之间的区别。 IDOC 代表中间文档。它是一个 SAP 对象,将业务事务的数据 从一个系统传送到另一个系统。从 SAP 到非 SAP 系统的传输是通过 EDI(电子数据交换)子系统完成的,而对于两个…...
谁做网站收录/百度搜索引擎的特点
面向对象 1.类和对象的理解 1.1 类是对事物的一种描述,对象是具体存在的事物。 在java中,Scanner s new Scanner(); 前面的Scanner就是类,后面的new Scanner就是真正的对象,s只不过是对象地址的引用。对象可以有很多的方法&a…...
桥头网站建设/大数据精准获客软件
使用方法: 需要右滑返回的activity继承baseActivity就可以, 如: public class SettingActivity extends BaseActivity {} 为防止滑动出现黑屏效果,记得需要定义 <!-- 滑动activity必须使用该主题,防侧滑时黑屏 --&g…...
如何把网站做好/源码交易网站源码
学习目标: 提示:这里可以添加学习目标 例如:一周掌握 Java 入门知识 学习内容: Javascript中的6种声明学习产出: 提示:这里统计学习计划的总量 例如: 1:var const let function c…...