当前位置: 首页 > news >正文

【数学建模】层次分析法(AHP)详解及其应用

层次分析法(AHP)详解及其应用

引言

在现实生活和工作中,我们经常面临复杂的决策问题,这些问题通常涉及多个评价准则,且各准则之间可能存在相互影响。如何在这些复杂因素中做出合理的决策?层次分析法(Analytic Hierarchy Process, AHP)作为一种系统、灵活的多准则决策方法,为我们提供了科学的决策工具。

文章目录

  • 层次分析法(AHP)详解及其应用
    • 引言
    • 什么是层次分析法?
    • 层次分析法的基本原理
    • 层次分析法的实施步骤
      • 1. 建立层次结构模型
      • 2. 构造判断矩阵
      • 3. 计算权重向量和最大特征值
      • 4. 一致性检验
      • 5. 计算综合权重
    • 层次分析法的应用实例
      • 案例:选择最佳投资项目
        • 第一步:建立层次结构
        • 第二步:构造判断矩阵
        • 第三步:计算权重
        • 第四步:一致性检验
        • 第五步:计算方案层对各准则的权重
        • 第六步:计算综合权重
    • 层次分析法的优缺点
      • 优点
      • 缺点
    • 层次分析法的扩展
    • 层次分析法的应用领域
    • 结语
    • 参考文献

什么是层次分析法?

层次分析法是由美国运筹学家Thomas L. Saaty教授于20世纪70年代提出的一种系统分析方法,它将复杂问题分解为多个层次和要素,通过定性和定量相结合的方式进行决策分析。

层次分析法的基本原理

层次分析法的核心思想是将复杂问题分解为层次结构,通常包括:

  1. 目标层:决策的最终目标
  2. 准则层:评价目标的各种准则
  3. 方案层:可供选择的各种方案

在建立层次结构后,通过两两比较各层次中的元素,形成判断矩阵,计算各元素的权重,最终得到各方案的综合评价。

层次分析法的实施步骤

1. 建立层次结构模型

将决策问题分解为相互关联的决策元素,构建层次结构模型。

2. 构造判断矩阵

采用1-9标度法对同一层次的元素进行两两比较,形成判断矩阵 A A A

A = [ a i j ] n × n A = [a_{ij}]_{n \times n} A=[aij]n×n

其中 a i j a_{ij} aij表示元素 i i i相对于元素 j j j的重要性程度,标度含义如下:

  • 1:表示两个元素同等重要
  • 3:表示一个元素比另一个元素稍微重要
  • 5:表示一个元素比另一个元素明显重要
  • 7:表示一个元素比另一个元素强烈重要
  • 9:表示一个元素比另一个元素极端重要
  • 2,4,6,8:表示上述相邻判断的中间值

且满足: a j i = 1 a i j a_{ji} = \frac{1}{a_{ij}} aji=aij1

3. 计算权重向量和最大特征值

通过求解判断矩阵的特征向量来获得权重,常用的方法有:

  • 和法归一化:将判断矩阵各列归一化后求行平均值

w i = 1 n ∑ j = 1 n a i j ∑ k = 1 n a k j w_i = \frac{1}{n} \sum_{j=1}^{n} \frac{a_{ij}}{\sum_{k=1}^{n} a_{kj}} wi=n1j=1nk=1nakjaij

  • 根法:计算每行元素乘积的n次方根,再归一化

w ˉ i = ∏ j = 1 n a i j n \bar{w}_i = \sqrt[n]{\prod_{j=1}^{n} a_{ij}} wˉi=nj=1naij

w i = w ˉ i ∑ j = 1 n w ˉ j w_i = \frac{\bar{w}_i}{\sum_{j=1}^{n} \bar{w}_j} wi=j=1nwˉjwˉi

  • 特征值法:求解判断矩阵的最大特征值及其对应的特征向量

A ⋅ W = λ m a x ⋅ W A \cdot W = \lambda_{max} \cdot W AW=λmaxW

其中 λ m a x \lambda_{max} λmax为最大特征值, W W W为对应的特征向量。

4. 一致性检验

确保判断的合理性,避免出现决策者认为“A比B重要,B比C重要,C却又比A重要”的矛盾,需要进行一致性检验:

  1. 计算一致性指标CI:

C I = λ m a x − n n − 1 CI = \frac{\lambda_{max} - n}{n-1} CI=n1λmaxn

其中 λ m a x \lambda_{max} λmax为最大特征值, n n n为矩阵阶数。
C I = 0 CI = 0 CI=0 时对应的矩阵为为一致矩阵
关于一致矩阵的性质与相关介绍可以参考我的这篇文章:【数学建模】一致矩阵的应用及其在层次分析法(AHP)中的性质 。

  1. 查找对应的随机一致性指标RI
  2. 计算一致性比率CR:

C R = C I R I CR = \frac{CI}{RI} CR=RICI

  1. C R < 0.1 CR < 0.1 CR<0.1时,认为判断矩阵具有满意的一致性

5. 计算综合权重

自上而下计算各层次元素对最终目标的综合权重,得出最终决策方案。

如果第 k − 1 k-1 k1层有 m m m个元素 P 1 k − 1 , P 2 k − 1 , … , P m k − 1 P_1^{k-1}, P_2^{k-1}, \ldots, P_m^{k-1} P1k1,P2k1,,Pmk1,它们对总目标的权重分别是 a 1 k − 1 , a 2 k − 1 , … , a m k − 1 a_1^{k-1}, a_2^{k-1}, \ldots, a_m^{k-1} a1k1,a2k1,,amk1;第 k k k层有 n n n个元素 P 1 k , P 2 k , … , P n k P_1^k, P_2^k, \ldots, P_n^k P1k,P2k,,Pnk,且元素 P i k P_i^k Pik对元素 P j k − 1 P_j^{k-1} Pjk1的权重为 b i j k b_{ij}^k bijk,则元素 P i k P_i^k Pik对总目标的权重为:

a i k = ∑ j = 1 m b i j k ⋅ a j k − 1 a_i^k = \sum_{j=1}^{m} b_{ij}^k \cdot a_j^{k-1} aik=j=1mbijkajk1

层次分析法的应用实例

案例:选择最佳投资项目

假设某公司需要从三个投资项目中选择一个最佳方案,考虑的因素有:预期收益、风险程度和市场前景。

第一步:建立层次结构
  • 目标层:选择最佳投资项目
  • 准则层:预期收益(C1)、风险程度(C2)、市场前景(C3)
  • 方案层:项目A、项目B、项目C
第二步:构造判断矩阵

准则层对目标层的判断矩阵:

A = [ 1 2 4 1 2 1 3 1 4 1 3 1 ] A = \begin{bmatrix} 1 & 2 & 4 \\ \frac{1}{2} & 1 & 3 \\ \frac{1}{4} & \frac{1}{3} & 1 \end{bmatrix} A= 121412131431

第三步:计算权重

使用和法归一化计算权重向量:

A 的列和 = [ 1.75 3.33 8 ] A的列和 = \begin{bmatrix} 1.75 & 3.33 & 8 \end{bmatrix} A的列和=[1.753.338]

归一化矩阵 = [ 1 1.75 2 3.33 4 8 0.5 1.75 1 3.33 3 8 0.25 1.75 0.33 3.33 1 8 ] = [ 0.571 0.600 0.500 0.286 0.300 0.375 0.143 0.100 0.125 ] 归一化矩阵 = \begin{bmatrix} \frac{1}{1.75} & \frac{2}{3.33} & \frac{4}{8} \\ \frac{0.5}{1.75} & \frac{1}{3.33} & \frac{3}{8} \\ \frac{0.25}{1.75} & \frac{0.33}{3.33} & \frac{1}{8} \end{bmatrix} = \begin{bmatrix} 0.571 & 0.600 & 0.500 \\ 0.286 & 0.300 & 0.375 \\ 0.143 & 0.100 & 0.125 \end{bmatrix} 归一化矩阵= 1.7511.750.51.750.253.3323.3313.330.33848381 = 0.5710.2860.1430.6000.3000.1000.5000.3750.125

W = [ 0.571 + 0.600 + 0.500 3 0.286 + 0.300 + 0.375 3 0.143 + 0.100 + 0.125 3 ] = [ 0.558 0.320 0.122 ] W = \begin{bmatrix} \frac{0.571+0.600+0.500}{3} \\ \frac{0.286+0.300+0.375}{3} \\ \frac{0.143+0.100+0.125}{3} \end{bmatrix} = \begin{bmatrix} 0.558 \\ 0.320 \\ 0.122 \end{bmatrix} W= 30.571+0.600+0.50030.286+0.300+0.37530.143+0.100+0.125 = 0.5580.3200.122

第四步:一致性检验

计算 λ m a x \lambda_{max} λmax

A ⋅ W = [ 1 2 4 1 2 1 3 1 4 1 3 1 ] ⋅ [ 0.558 0.320 0.122 ] = [ 1.704 0.978 0.372 ] A \cdot W = \begin{bmatrix} 1 & 2 & 4 \\ \frac{1}{2} & 1 & 3 \\ \frac{1}{4} & \frac{1}{3} & 1 \end{bmatrix} \cdot \begin{bmatrix} 0.558 \\ 0.320 \\ 0.122 \end{bmatrix} = \begin{bmatrix} 1.704 \\ 0.978 \\ 0.372 \end{bmatrix} AW= 121412131431 0.5580.3200.122 = 1.7040.9780.372

λ m a x = 1 3 ( 1.704 0.558 + 0.978 0.320 + 0.372 0.122 ) = 3.054 \lambda_{max} = \frac{1}{3} \left( \frac{1.704}{0.558} + \frac{0.978}{0.320} + \frac{0.372}{0.122} \right) = 3.054 λmax=31(0.5581.704+0.3200.978+0.1220.372)=3.054

C I = λ m a x − n n − 1 = 3.054 − 3 2 = 0.027 CI = \frac{\lambda_{max} - n}{n-1} = \frac{3.054 - 3}{2} = 0.027 CI=n1λmaxn=23.0543=0.027

对于 n = 3 n=3 n=3的矩阵, R I = 0.58 RI = 0.58 RI=0.58

C R = C I R I = 0.027 0.58 = 0.047 < 0.1 CR = \frac{CI}{RI} = \frac{0.027}{0.58} = 0.047 < 0.1 CR=RICI=0.580.027=0.047<0.1

判断矩阵具有满意的一致性。

第五步:计算方案层对各准则的权重

(此处省略具体计算过程,假设已经得到以下权重矩阵)

W C 1 = [ 0.65 0.25 0.10 ] , W C 2 = [ 0.20 0.30 0.50 ] , W C 3 = [ 0.30 0.60 0.10 ] W_{C1} = \begin{bmatrix} 0.65 \\ 0.25 \\ 0.10 \end{bmatrix}, W_{C2} = \begin{bmatrix} 0.20 \\ 0.30 \\ 0.50 \end{bmatrix}, W_{C3} = \begin{bmatrix} 0.30 \\ 0.60 \\ 0.10 \end{bmatrix} WC1= 0.650.250.10 ,WC2= 0.200.300.50 ,WC3= 0.300.600.10

第六步:计算综合权重

W 综合 = W C 1 ⋅ w 1 + W C 2 ⋅ w 2 + W C 3 ⋅ w 3 W_{综合} = W_{C1} \cdot w_1 + W_{C2} \cdot w_2 + W_{C3} \cdot w_3 W综合=WC1w1+WC2w2+WC3w3

= [ 0.65 0.25 0.10 ] ⋅ 0.558 + [ 0.20 0.30 0.50 ] ⋅ 0.320 + [ 0.30 0.60 0.10 ] ⋅ 0.122 = \begin{bmatrix} 0.65 \\ 0.25 \\ 0.10 \end{bmatrix} \cdot 0.558 + \begin{bmatrix} 0.20 \\ 0.30 \\ 0.50 \end{bmatrix} \cdot 0.320 + \begin{bmatrix} 0.30 \\ 0.60 \\ 0.10 \end{bmatrix} \cdot 0.122 = 0.650.250.10 0.558+ 0.200.300.50 0.320+ 0.300.600.10 0.122

= [ 0.45 0.32 0.23 ] = \begin{bmatrix} 0.45 \\ 0.32 \\ 0.23 \end{bmatrix} = 0.450.320.23

因此,项目A是最佳选择。

层次分析法的优缺点

优点

  1. 结构清晰,逻辑性强
  2. 计算简便,易于理解和应用
  3. 能够处理定性和定量相结合的复杂决策问题
  4. 通过一致性检验保证判断的合理性

缺点

  1. 当准则或方案较多时,需要进行大量的两两比较
  2. 判断矩阵的构造具有主观性
  3. 层次结构中的元素被假设为相互独立,可能与现实情况有差距
  4. 排序结果可能受到新增或删除方案的影响

层次分析法的扩展

为了克服传统层次分析法的局限性,研究者提出了多种改进方法,如:

  1. 模糊层次分析法:引入模糊数学处理判断的不确定性,使用模糊数 a ~ i j \tilde{a}_{ij} a~ij代替确定值 a i j a_{ij} aij
  2. 网络分析法(ANP):考虑元素之间的相互依赖关系,构建超矩阵 W W W
  3. 群体决策层次分析法:综合多个决策者的判断,如几何平均法:

a i j = ∏ k = 1 K a i j ( k ) K a_{ij} = \sqrt[K]{\prod_{k=1}^{K} a_{ij}^{(k)}} aij=Kk=1Kaij(k)

其中 a i j ( k ) a_{ij}^{(k)} aij(k)表示第 k k k个决策者对元素 i i i j j j的判断值, K K K为决策者总数。

层次分析法的应用领域

层次分析法在多个领域有广泛应用:

  1. 工程项目评估与选择
  2. 资源配置与投资决策
  3. 人才评价与绩效考核
  4. 产品设计与评价
  5. 风险评估与管理

结语

层次分析法作为一种系统、灵活的多准则决策方法,为复杂决策问题提供了科学的解决思路。虽然存在一些局限性,但通过不断改进和与其他方法的结合,层次分析法仍然是现代决策理论中不可或缺的重要工具。在实际应用中,我们应当根据具体问题的特点,合理运用层次分析法,以期获得科学、合理的决策结果。


参考文献

  1. Saaty, T. L. (1980). The Analytic Hierarchy Process. New York: McGraw-Hill.
  2. 徐泽水. (2002). 层次分析法原理. 天津: 天津大学出版社.
  3. 许树柏. (1995). 层次分析法. 北京: 中国人民大学出版社.

这篇文章详细介绍了层次分析法的基本原理、实施步骤、应用实例以及优缺点,希望对您有所帮助!如有任何问题,欢迎在评论区留言交流。

相关文章:

【数学建模】层次分析法(AHP)详解及其应用

层次分析法(AHP)详解及其应用 引言 在现实生活和工作中&#xff0c;我们经常面临复杂的决策问题&#xff0c;这些问题通常涉及多个评价准则&#xff0c;且各准则之间可能存在相互影响。如何在这些复杂因素中做出合理的决策&#xff1f;层次分析法(Analytic Hierarchy Process…...

【大模型】Transformer、GPT1、GPT2、GPT3、BERT 的论文解析

前言 在自然语言处理&#xff08;NLP&#xff09;和深度学习的快速发展中&#xff0c;Transformer模型和 GPT系列模型扮演了至关重要的角色。本篇博客旨在对这些开创性的论文进行介绍&#xff0c;涵盖它们的提出时间、网络结构等关键信息&#xff0c;能够快速的理解这些模型的设…...

Android 手机启动过程

梳理 为了梳理思路&#xff0c;笔者画了一幅关于 Android 手机启动的过程图片内容纯属个人见解&#xff0c;如有错误&#xff0c;欢迎各位指正...

【redis】hash基本命令和内部编码

文章目录 表示形式命令HSET 和 HGET HEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSETNXHINCRBYHINCRBYFLOAT命令小结内部编码 表示形式 Redis 自身已经是键值对结构了 Redis 自身的键值对就是通过哈希的方式来组织的 把 key 这一层组织完成之后&#xff0c;到了 value 这一层&…...

统计数字字符个数(信息学奥赛一本通-1129)

【题目描述】 输入一行字符&#xff0c;统计出其中数字字符的个数。 【输入】 一行字符串&#xff0c;总长度不超过255。 【输出】 输出为1行&#xff0c;输出字符串里面数字字符的个数。 【输入样例】 Peking University is set up at 1898. 【输出样例】 4 【输出样例】 #in…...

基于javaweb的SSM+Maven网上选课管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

算法及数据结构系列 - BFS算法

文章目录 框架思路经典题型111. 二叉树的最小深度752. 打开转盘锁 框架思路 BFS 的核心思想应该不难理解的&#xff0c;就是把一些问题抽象成图&#xff0c;从一个点开始&#xff0c;向四周开始扩散。一般来说&#xff0c;我们写 BFS 算法都是用队列这种数据结构&#xff0c;每…...

深入剖析 MetaSpace OOM 问题:根因分析与高效解决策略

目录 一、MetaSpace 区 OOM&#xff1a;概述 &#xff08;一&#xff09; MetaSpace的变革与挑战 &#xff08;二&#xff09;MetaSpace OOM的影响 &#xff08;三&#xff09; 为什么要关注MetaSpace OOM 二、MetaSpace 区 OOM的根本原因 &#xff08;一&#xff09;Met…...

java自带日志系统介绍(JUL)以及和Log4j 2、Logback、SLF4J不同日志工具的对比

Java 日志系统是开发中用于记录应用程序运行时信息的重要工具。以下是 Java 日志系统的核心组件及其使用场景、配置参数的详细介绍&#xff0c;以及不同日志系统的对比分析。 Java 日志系统核心组件 1. 日志记录器&#xff08;Logger&#xff09; 作用&#xff1a;负责生成日…...

Kubernetes 中metrics-server的采集周期,采集链路是什么样的?

0. 运维干货分享 软考高级系统架构设计师备考学习资料软考高级网络规划设计师备考学习资料Kubernetes CKA认证学习资料分享信息安全管理体系&#xff08;ISMS&#xff09;制度模板分享免费文档翻译工具(支持word、pdf、ppt、excel)PuTTY中文版安装包MobaXterm中文版安装包ping…...

一分钟了解深度学习

一分钟了解深度学习 A Minute to Know About Deep Learning By JacksonML 1. 什么是深度学习&#xff1f; 深度学习(Deep Learning) 是机器学习的一个子集&#xff0c;都属于人工智能的范畴&#xff1b;它使用多层神经网络&#xff08;称为深度神经网络&#xff09;来模拟人…...

Git LFS (Large File Storage) 简介

目录 Git LFS (Large File Storage) 简介 1. 什么是 Git LFS&#xff1f; 2. 为什么需要 Git LFS&#xff1f; 3. Git LFS 的工作原理 4. 如何使用 Git LFS&#xff1f; 4.1 安装 Git LFS 4.2 配置 Git LFS 5. Git LFS 的优缺点 优点 缺点 6. 适用场景 7. 结论 1. …...

前端权限系统

前端权限系统是为了确保用户只能访问他们有权限查看的资源而设计的。在现代前端开发中&#xff0c;权限控制不仅仅是简单的显示或隐藏元素&#xff0c;还涉及到对路由、组件、数据和操作权限的细致控制。下面是前端权限系统的常见设计方案和实现步骤。 前端权限系统的组成部分 …...

【蓝桥杯速成】| 4.递归

递归 题目一&#xff1a;最大公约数 问题描述 1979. 找出数组的最大公约数 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums &#xff0c;返回数组中最大数和最小数的 最大公约数 。 两个数的 最大公约数 是能够被两个数整除的最大正整数。 解题步骤 需要…...

QEMU源码全解析 —— 块设备虚拟化(4)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(3) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 类模板是创建类的模式_创建类是的模版-CSDN博客<...

92.HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质量应用

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT开发学习路径与最佳实践总结&#xff1a;构建高质量应用 文章目录 HarmonyOS NEXT开发学习路径与最佳实践总结&#xff1a;构建高质…...

【004】deepseek本地化部署后,python的调用方式_#py

python调用本地deepseek 1 本地化部署deepseek2 python调用方式 1 本地化部署deepseek 已经有很多大佬们说了不少部署本地化部署deepseek的工作了&#xff0c;我就不过多重复了。 先安装Ollama软件&#xff0c;再通过Ollama获取deepseek的模型文件&#xff0c;大家根据电脑的配…...

基于Python+Flask+MySQL+HTML的爬取豆瓣电影top-250数据并进行可视化的数据可视化平台

FlaskMySQLHTML 项目采用前后端分离技术&#xff0c;包含完整的前端&#xff0c;以flask作为后端 Pyecharts、jieba进行前端图表展示 通过MySQL收集格列数据 通过Pyecharts制作数据图表 这是博主b站发布的详细讲解&#xff0c;感兴趣的可以去观看&#xff1a;【Python爬虫可…...

【Prometheus01】可观测性系统之Prometheus简介、优缺点对比、组件介绍、数据采集流程、TSDB简介

监控工具对比、黑盒监控与盒白盒监控、Kubernetes监控简介 监控简介&#xff1a; 监控的价值&#xff1a; 长期趋势分析&#xff1a;通过对监控样本数据的持续收集和统计&#xff0c;对监控指标进行长期趋势分析。例如&#xff0c;通过对磁盘空间增长率的判断&#xff0c;我们…...

Postman下载安装及简单入门

一&#xff0e;Postman简介 Postman是一款API测试工具&#xff0c;可以帮助开发、测试人员发送HTTP请求&#xff0c;与各种API进行交互&#xff0c;并分析响应 二&#xff0e;下载与安装 访问Postman官网&#xff08;https://www.postman.com/&#xff09;&#xff0c;下载适…...

记第一次跟踪seatunnel的任务运行过程三——解析配置的具体方法getLogicalDag

前绪 记第一次跟踪seatunnel的任务运行过程二——ClientJobExecutionEnvironment的execture方法 从这里开始&#xff0c;就是使用seatunnel-2.3.9的源码了。前面部分没有变化&#xff0c;2.3.X版本都是通用的。 建议打开源码&#xff0c;边读文章&#xff0c;边阅读源码 正文…...

Maven 的核心包

由于前端项目不是核心&#xff0c;阅读 nexus-public 源代码似乎绕远路了。nexus-oss 社区版主要就是集成 maven 的上传包、认证、包解析、包存储这几个核心功能&#xff0c;前端实现重新可以使用新的现代前端工具来提高生产力。故重新疏理一下 maven 的核心机制&#xff0c;即…...

上位机数据可视化:使用QtCharts绘制波形图

工程配置 CMake文件 find_package(Qt5 COMPONENTS Charts REQUIRED)target_link_libraries(zhd-desktop PRIVATE Qt5::Charts)包含头文件以及名称空间&#xff08;这个很重要&#xff0c;没有包含名称空间编译器会提示找不到相关的类型&#xff09; #include <QtCharts&g…...

制造业数字化转型,汽车装备制造企业数字化转型案例,智能制造数字化传统制造业数字化制造业数字化转型案例

《某制造业企业信息化整体解决方案》PPT展示了一个汽车装备企业的整体信息化解决方案&#xff0c;阐述了该企业的业务特点和现状&#xff0c;主要包括按订单生产、多级计划和产品跟踪等&#xff0c;分析了信息化建设的主要困难&#xff0c;如信息管理手工化、过程数据追溯困难、…...

网络安全常识科普(百问百答)

汪乙己一到店&#xff0c;所有喝酒的人便都看着他笑&#xff0c;有的叫道&#xff0c;“汪乙己&#xff0c;你又监控员工隐私了&#xff01;”他不回答&#xff0c;对柜里说&#xff0c;“来两个fofa。”便排出三个比特币。他们又故意的高声嚷道&#xff0c;“你一定又在电报群…...

P2512糖果传递 P4447分组 P1080国王游戏 P4053建筑抢修

P2512 [HAOI2008] 糖果传递 题目描述 有 n n n 个小朋友坐成一圈&#xff0c;每人有 a i a_i ai​ 个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 1 1 1。 输入格式 小朋友个数 n n n&#xff0c;下面 n n n 行 a i a_i ai​。 输出格式 求使所…...

SpringMVC(七)数据校验+VO++脱敏

目录 一 基础原理 1 先将数据校验的依赖导入 2 在JavaBean中编写校验注解 3 使用Valid告诉SpringMVC进行校验&#xff08;校验不通过&#xff0c;方法通知执行&#xff09; 4 在Valid参数后面加上一个BindingResult参数&#xff0c;获取校验结果。 二 改进方案 1 没写全…...

使用OpenResty(基于Nginx和Lua)优化Web服务性能

引言 1.1 OpenResty简介 OpenResty 是一个基于 Nginx 和 Lua 的高性能 Web 应用平台。它通过将 Lua 脚本嵌入到 Nginx 中,提供了强大的动态处理能力,适用于构建高性能的 Web 服务、API 网关、动态内容生成等场景。 1.2 Nginx与Lua结合的优势 高性能:Nginx 本身就是一个高…...

32、构造函数

1、用构造函数反复创建多个相同结果的对象 问题 如果想反复创建多个相同结构&#xff0c;但是内容不同的对象时&#xff0c;用{}创建会代码重复&#xff0c;及其不便于维护&#xff01; 解决 今后只要想反复创建同一类型的多个相同结构不同内容的对象时&#xff0c;都用构造函…...

蓝桥与力扣刷题(蓝桥 星期计算)

题目&#xff1a;已知今天是星期六&#xff0c;请问 20^22 天后是星期几? 注意用数字 1 到 7 表示星期一到星期日。 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 解题思路&#xff0b;代码&#xff1a; 代码&#xff1…...

【leetcode hot 100 230】二叉搜索树中第K小的元素

解法一&#xff1a;从小到大输出到list中&#xff0c;取list[k-1]就是第k小的元素 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val;…...

六种最新优化算法(TOC、MSO、AE、DOA、GOA、OX)求解多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码

一、算法简介 &#xff08;一&#xff09;阿尔法进化&#xff08;Alpha Evolution&#xff0c;AE&#xff09;算法 阿尔法进化&#xff08;Alpha Evolution&#xff0c;AE&#xff09;算法是2024年提出的一种新型进化算法&#xff0c;其核心在于通过自适应基向量和随机步长的…...

python离线安装

Python Releases for Windows | Python.org 下载包地址widows一般是64bit的包 下载完成后双击&#xff0c;在弹出的首个页面会看到下面的图 第一步&#xff1a;建议手动安装 第二步&#xff1a;一定要勾选把版本加入到Path路径 然后就是无脑下一步&#xff0c;到这一步就可…...

【每日学点HarmonyOS Next知识】状态栏字体、生命周期、自定义对话框屏幕中间、透明度、tab居中

1、HarmonyOS 单页面如何控制状态栏字体颜色&#xff1f; 状态栏字体颜色可通过设置statusBarContentColor修改&#xff0c;参考文档如下&#xff1a; https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5 参考代码&#xff1a; import…...

C# GeneticSharp包

可以直接从nuget安装GeneticSharp包 GeneticSharp 遗传算法类库 GeneticSharp 是什么 GeneticSharp 是一个C#的遗传算法类库, 遗传算法Java著名的JMetal, Python也有JMetalPy和PyMoo, C#相对差一截, 稍微有名的是GeneticSharp库. GeneticSharp 的弱点: 不支持多目标优化没…...

大模型中的常用名词介绍八:【特征与数据处理、伦理与公平性等】【建议收藏】

本文总结了大模型领域有关特征与数据处理、伦理与公平性等其他部分的名词&#xff0c;并解释其含义。跳出浩如烟海的大模型知识圈层&#xff0c;从概念上理清大模型的基础脉络&#xff01; 序号模块分组说明快捷访问1 模型架构与基础概念 介绍了【模型架构与基础概念】相关的常…...

HTML5 drag API实现列表拖拽排序

拖拽API&#xff08;Drag and Drop API&#xff09;是HTML5提供的一组功能&#xff0c;使得在网页上实现拖放操作变得更加简单和强大。这个API允许开发者为网页元素添加拖拽功能&#xff0c;用户可以通过鼠标将元素拖动并放置到指定的目标区域。 事件类型 dragstart&#xff1…...

HTTPS建立连接过程

一、混合加密 通过混合加密的方式可以保证信息的机密性&#xff0c;解决了窃听的风险。 HTTPS采用的是对称加密和非对称加密结合的混合加密方式&#xff1a; &#xff08;1&#xff09; 在通信建立前采用非对称加密的方式交换会话密钥&#xff0c;后续就不再使用非对称加密。 &…...

deepseek GRPO算法保姆级讲解(数学原理+源码解析+案例实战)

文章目录 什么是GRPO群组形成(Group Formation):让大模型创建多种解决方案偏好学习(Preference Learning)&#xff1a;让大模型理解何为好的解答组内相对优势 优化(optimization): 让大模型从经验中学习(learning from experience)目标函数 GRPO算法的伪码表示GRPO算法的局限与…...

【WEB APIs】DOM-节点操作

1. 日期对象 1.1 实例化 <script>// 实例化// 1.得到当前时间const date new Date()console.log(date);// 2.得到指定时间const date1 new Date(2025-3-14)console.log((date1));</script> 1.2 日期对象方法 千万不要忘记加小括号 // 获得日期对象const date2 …...

VSTO(C#)Excel开发7:自定义任务窗格

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

Qemu 详解与 ARM 虚拟机搭建指南

1. Qemu 是什么&#xff1f; Qemu&#xff08;Quick Emulator&#xff09;是一款开源的机器模拟器和虚拟化工具&#xff0c;支持多种硬件架构&#xff08;如 x86、ARM、PowerPC 等&#xff09;。它的核心功能包括&#xff1a; 动态指令翻译&#xff1a;将不同架构的指令实时翻…...

Windows编译Flash-attention模块

​ 博主的环境配置&#xff1a;windows11操作系统&#xff0c;cuda11.8.r11.8, cudnn8.9.7, git2.47.1&#xff0c;cmake4.0.0-rc4&#xff0c;ninja1.12.1, vs_buildTools17.4.21, cl19.34.31948, torch2.3.1 编译flash-attention的环境依赖如下图 #mermaid-svg-SZBhH41EsJGfu…...

《Python深度学习》第三讲:神经网络

在前面的课程里&#xff0c;我们已经了解了深度学习的数学基础&#xff0c;也用一个简单的例子展示了神经网络的强大能力。本讲我们要更深入地探讨神经网络的结构、训练过程&#xff0c;以及如何用它解决实际问题。 3.1 神经网络剖析 先来聊聊神经网络的核心组件&#xff1a;层…...

编程题《牛牛的链表删除》的python可以用非链表的方式

描述 牛牛从键盘输入了一个长度为 n 的数组&#xff0c;把这个数组转换成链表然后把链表中所有值是 x 的节点都删除。 输入描述&#xff1a; 第一行输入两个正整数 n 和 x 表示数组的长度和要删除的链表节点值 x 。 第二行输入 n 个正整数表示数组中每个元素的值。 输出描述&am…...

传统RAG vs 知识图谱:大模型时代的知识管理革命

引言&#xff1a;为什么需要突破传统RAG&#xff1f; 在大模型应用落地的浪潮中&#xff0c;检索增强生成&#xff08;RAG&#xff09;技术通过连接外部知识库&#xff0c;有效缓解了模型的幻觉问题。然而&#xff0c;当面对复杂关系推理、多文档关联分析等场景时&#xff0c;…...

【Go语言圣经2.6】

目标 概念 GOPATH模型 GOPATH&#xff1a;GOPATH 是一个环境变量&#xff0c;指明 Go 代码的工作区路径。工作区通常包含三个目录&#xff1a; src&#xff1a;存放源代码&#xff0c;按照导入路径组织。例如&#xff0c;包 gopl.io/ch2/tempconv 应存放在 $GOPATH/src/gopl.i…...

多时间尺度的配电网深度强化学习无功优化策略的Python示例代码框架

以下是一个简单的多时间尺度的配电网深度强化学习无功优化策略的Python示例代码框架&#xff0c;用于帮助你理解如何使用深度强化学习&#xff08;以深度Q网络 DQN 为例&#xff09;来处理配电网的无功优化问题。在实际应用中&#xff0c;你可能需要根据具体的配电网模型和需求…...

0CTF 2016 piapiapia 1

#源码泄露 #代码审计 #反序列化字符逃逸 #strlen长度过滤数组绕过 www.zip 得到源码 看到这里有flag &#xff0c;猜测服务端docker的主机里&#xff0c;$flag变量应该存的就是我们要的flag。 于是&#xff0c;我们的目的就是读取config.php 利用思路 这里存在 任意文件读取…...

ArcGIS Pro将有文字标注底图切换为无标注底图(在线地图图源)

今天介绍一下在ArcGIS Pro将有标注的地形底图换成无标注的底图。 大家在这项目底图时候会经常调用ArcGIS Pro自带的地形图&#xff0c;但是这个地形图自带是有注记的&#xff0c;如下图。 如何更改&#xff0c;才可以调用无文字注记的呢&#xff1f; 对于一个已经切好图的有注记…...