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

多源最短路径求解: Floyd-Warshall算法和Johnson 算法

多源最短路径问题是图论中的一个经典问题, 它要求找到图中所有顶点对之间的最短路径. 这个问题可以通过几种不同的算法来解决, 其中最为著名的包括 Floyd-Warshall Algorithm 和 Johnson’s Algorithm.

Floyd-Warshall 算法

弗洛伊德-沃沙尔算法(Floyd-Warshall Algorithm) 是一种用于解决所有顶点对最短路径问题的经典动态规划算法. 它适用于加权图, 包括带有负权重边的图, 但不允许存在负权重环. 该算法的时间复杂度为 O ( V 3 ) O(V^3) O(V3), 其中 V V V 是图中顶点的数量, 因此对于中小规模的完全图或接近完全图特别有效.

算法原理

弗洛伊德-沃沙尔算法的核心思想是逐步尝试通过每个顶点作为中间节点, 更新所有可能的顶点对之间的最短路径估计值. 具体来说, 算法使用一个二维数组 D 来存储顶点间的最短路径长度, 其中 D[i][j] 表示从顶点 i 到顶点 j 的最短路径长度. 初始时, D[i][j]等于图中顶点 ij 之间的直接距离(如果存在), 或者设置为无穷大(如果没有直接连接).

算法的基本步骤如下:

  1. 初始化: 根据图的邻接矩阵初始化距离矩阵 D. 如果两个顶点之间没有直接连接, 则将相应的 D[i][j]设为无穷大; 如果 i=j, 则 D[i][i]=0.

  2. 迭代更新: 对于每一对顶点(i, j), 考虑每一个顶点 k 作为中间节点, 检查是否可以通过 k 改进 ij 的路径:

    • 如果D[i][k] + D[k][j] < D[i][j], 则更新D[i][j] = D[i][k] + D[k][j].
    • 这个过程需要遍历所有的顶点对(i, j)以及所有的中间节点 k, 因此时间复杂度为 O ( V 3 ) O(V^3) O(V3).
  3. 检测负权重环: 在某些应用场景下, 可能还需要检测图中是否存在负权重环. 可以在上述步骤完成后进行一次额外的遍历, 检查是否有任何顶点 i 满足D[i][i] < 0的情况, 如果有, 则说明图中存在负权重环.

样例

给定一个无向带权图, 求任意两个顶点的最短路径.
例题

用 Floyd-Warshall 算法解决这个问题. 因为矩阵运算非常直白, 没有分步骤演示的必要, 直接给出结果:
答案

C++实现

算法实现起来非常直白, 下面是核心部分代码:
其中 D 为邻接矩阵, D[i][j] 表示从顶点 i 到顶点 j 的最短路径长度.

void FloydWarshall() {auto n = D.size();for (int k = 0; k < n; ++k) {for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {if (D[i][k] + D[k][j] < D[i][j]) {D[i][j] = D[i][k] + D[k][j];}}}}
}

完整代码请参考: FloydWarshall.ixx

时间与空间复杂度

  • 时间复杂度: 由于需要遍历所有顶点对(i, j)以及所有可能的中间节点 k, 因此总的时间复杂度为 O ( V 3 ) O(V^3) O(V3).
  • 空间复杂度: 主要由距离矩阵 D 决定, 其大小为 V × V V \times V V×V, 因此空间复杂度是 O ( V 2 ) O(V^2) O(V2).

Johnson 算法

约翰逊算法(Johnson’s Algorithm) 是一种用于计算加权图中所有顶点对之间最短路径的有效算法. 它特别适用于稀疏图, 即边的数量远小于完全图的边数. 约翰逊算法巧妙地结合了 Bellman-Ford 算法和 Dijkstra 算法的优点, 能够处理带有负权重边但不允许存在负权重环的情况.

算法原理

约翰逊算法的核心思想是通过重新赋予权重, 使得原图中的所有边权重变为非负数, 从而可以利用效率更高的 Dijkstra 算法来解决单源最短路径问题. 具体步骤如下:

  1. 添加虚拟节点: 首先, 在原图中添加一个虚拟起点, 并从这个虚拟起点向图中每一个实际存在的节点连接一条权重为 0 的边.

  2. 执行 Bellman-Ford 算法: 使用 Bellman-Ford 算法从虚拟起点出发, 计算出每个节点的最小偏移值 h ( v ) h(v) h(v). 这里的偏移值 h ( v ) h(v) h(v)表示的是从虚拟起点到节点 v v v 的最短路径长度. 这一步骤不仅能够检测图中是否存在负权重环, 而且还能为后续步骤提供必要的偏移值.

  3. 重新赋予权重: 对于每条边 ( u , v ) (u, v) (u,v), 其新的权重 w ′ ( u , v ) = w ( u , v ) + h ( u ) − h ( v ) w'(u, v) = w(u, v) + h(u) - h(v) w(u,v)=w(u,v)+h(u)h(v). 这里, w ( u , v ) w(u, v) w(u,v)是原图中边 ( u , v ) (u, v) (u,v)的权重, 而 h ( u ) h(u) h(u) h ( v ) h(v) h(v)分别是节点 u u u v v v 的偏移值. 这样做的目的是为了消除原图中的负权重边, 同时保证最短路径不会因此发生改变.

  4. 运行 Dijkstra 算法: 对于每个节点作为源节点, 分别运行一次 Dijkstra 算法, 以求解该源节点到其它所有节点的最短路径. 由于经过重新赋予权重后所有的边权重都变成了非负数, 所以可以高效地应用 Dijkstra 算法.

  5. 调整最短路径长度: 最后, 根据每个节点的偏移值调整最终的最短路径长度, 恢复原始图中的真实最短路径长度.

关于 Bellman-Ford 和 Dijkstra 算法, 请参考: 图的最短路径:Dijkstra 算法和 Bellman-Ford 算法(C++)

时间复杂度

假设图中有 V V V 个顶点和 E E E 条边, 约翰逊算法的时间复杂度主要由两部分组成:

  • Bellman-Ford 算法的时间复杂度为 O ( V E ) O(VE) O(VE).
  • 对于每个顶点分别运行一次 Dijkstra 算法, 总时间复杂度为 O ( V ( E + V log ⁡ V ) ) O(V (E + V \log V)) O(V(E+VlogV)), 其中使用斐波那契堆实现的 Dijkstra 算法的时间复杂度为 O ( E + V l o g V ) O(E + V log V) O(E+VlogV).

因此, 整个约翰逊算法的时间复杂度大约为 O ( V 2 l o g V + V E ) O(V^2 log V + VE) O(V2logV+VE), 在稀疏图上表现尤为出色.

算法对比

下面是约翰逊算法(Johnson’s Algorithm)和弗洛伊德-沃沙尔算法(Floyd-Warshall Algorithm)在不同方面的对比表格。这个表格可以帮助你更好地理解两种算法的特点、适用场景及其优缺点。

特性/指标约翰逊算法 (Johnson’s Algorithm)弗洛伊德-沃沙尔算法 (Floyd-Warshall Algorithm)
处理负权重边支持,通过重新赋予权重消除负权重边支持,直接处理负权重边
处理负权重环通过贝尔曼-福特算法检测并排除可以检测到负权重环
时间复杂度 O ( V 2 l o g V + V E ) O(V^2 log V + VE) O(V2logV+VE) O ( V 3 ) O(V^3) O(V3),适用于中小规模的完全图或接近完全图
空间复杂度 O ( V 2 ) O(V^2) O(V2),主要用于存储距离矩阵和优先队列 O ( V 2 ) O(V^2) O(V2),主要用于存储距离矩阵
适用场景适用于大规模稀疏图,尤其是当图中存在负权重边但无负权重环时适用于中小规模稠密图,或者需要快速解决所有顶点对最短路径问题时
典型应用场景社交网络分析、交通网络优化、大规模稀疏图中的最短路径计算图形学中的碰撞检测、机器人路径规划、电路设计中的布线优化

图论主题帖子

  • 图的遍历
  • 拓扑排序
  • 单源最短路径
  • 最小生成树
  • 二分图
  • 多源最短路径
  • 强连通分量
  • 欧拉回路和汉密尔顿回路

相关文章:

多源最短路径求解: Floyd-Warshall算法和Johnson 算法

多源最短路径问题是图论中的一个经典问题, 它要求找到图中所有顶点对之间的最短路径. 这个问题可以通过几种不同的算法来解决, 其中最为著名的包括 Floyd-Warshall Algorithm 和 Johnson’s Algorithm. Floyd-Warshall 算法 弗洛伊德-沃沙尔算法(Floyd-Warshall Algorithm) 是…...

解决IDEA使用Ctrl + / 注释不规范问题

问题描述&#xff1a; ctrl/ 时&#xff0c;注释缩进和代码规范不一致问题 解决方式 设置->编辑器->代码样式->java->代码生成->注释代码...

第9章 机器学习与统计模型

这一章重点探讨统计模型和机器学习模型&#xff0c;两个大的主题都建立在数据的基础之上&#xff0c;所以要熟练掌握对数据的处理与分析。实际上&#xff0c;机器学习本身就是统计模型的延伸&#xff0c;是在大数据背景下传统统计方法捉襟见肘了&#xff0c;所以才考虑引入机器…...

基于MATLAB的OFDM通信系统仿真设计

下面将为你详细介绍基于MATLAB的OFDM通信系统仿真设计的步骤和示例代码。 1. OFDM系统原理概述 正交频分复用&#xff08;OFDM&#xff09;是一种多载波调制技术&#xff0c;它将高速数据流通过串并转换&#xff0c;分配到多个正交的子载波上进行传输&#xff0c;这样可以有效…...

WebRTC学习七:WebRTC 中 STUN 协议详解

系列文章目录 第一篇 基于SRS 的 WebRTC 环境搭建 第二篇 基于SRS 实现RTSP接入与WebRTC播放 第三篇 centos下基于ZLMediaKit 的WebRTC 环境搭建 第四篇 WebRTC学习一&#xff1a;获取音频和视频设备 第五篇 WebRTC学习二&#xff1a;WebRTC音视频数据采集 第六篇 WebRTC学习三…...

力扣47. 全排列 II

思路 用 used 保存在一次答案中取过的数组索引。 先对数组进行排序&#xff0c;然后尝试取每个元素作为排列。 首先需要满足不重复取自己&#xff0c;即 !used.contains(i)。其次当前元素和前一个元素不同时可取&#xff0c;即 i 0 || nums[i] ! nums[i - 1]&#xff1b; 如…...

什么是将应用放在边缘服务器上创建?应用不是在用户手机上吗?边缘计算究竟如何优化?通过两个问题来辨析

元宇宙应用虽然可以在用户的手机等终端设备上运行&#xff0c;但大部分的计算和数据处理任务并不是完全在手机上完成的。元宇宙的运行需要庞大的计算资源和大量的数据交互&#xff0c;而这些是手机等终端设备难以独自承担的。因此&#xff0c;元宇宙应用需要借助边缘数据中心等…...

jmeter高级使用场景

JMeter 是一款功能强大的性能测试工具,除了基础的使用方法外,还有许多高级使用技巧,可帮助你更精准、高效地完成复杂的测试任务。以下为你详细介绍一些 JMeter 的高级使用方法: 分布式测试 当需要模拟大量并发用户来对系统进行压力测试时,单台机器的性能可能无法满足要求…...

智能升级、安全加倍,遨游防爆对讲机拉起通信安防线

在充斥着爆炸性气体和易燃物质的危险作业环境中&#xff0c;通信设备的选择关乎生命安全。一旦通信设备引发电火花&#xff0c;其后果将不堪设想。因此&#xff0c;专为防范易燃易爆环境而设计的防爆对讲机&#xff0c;凭借其独特的防爆技术和设计&#xff0c;成为了这些高风险…...

Flutter 上的 Platform 和 UI 线程合并是怎么回事?它会带来什么?

Flutter 在 3.29 发布了一个「重大」调整&#xff1a;从 3.29 开始&#xff0c;Android 和 iOS 上的 Flutter 将在应用的主线程上执行 Dart 代码&#xff0c;并且不再有单独的 Dart UI 线程 也许一些人对于这个概念还比较陌生&#xff0c;有时间可以看看以前发过的 《深入理解…...

IDEA关闭SpringBoot程序后仍然占用端口的排查与解决

IDEA关闭SpringBoot程序后仍然占用端口的排查与解决 问题描述 在使用 IntelliJ IDEA 开发 Spring Boot 应用时&#xff0c;有时即使关闭了应用&#xff0c;程序仍然占用端口&#xff08;例如&#xff1a;4001 端口&#xff09;。这会导致重新启动应用时出现端口被占用的错误&a…...

进程状态(R|S|D|t|T|X|Z)、僵尸进程及孤儿进程

文章目录 一.进程状态进程排队状态&#xff1a;运行、阻塞、挂起 二.Linux下的进程状态R 运行状态&#xff08;running&#xff09;S 睡眠状态&#xff08;sleeping)D 磁盘休眠状态&#xff08;Disk sleep&#xff09;t 停止、暂停状态(tracing stopped)T 停止、暂停状态(stopp…...

Docker 搭建 Gitlab 服务器 (完整详细版)

参考 Docker 搭建 Gitlab 服务器 (完整详细版)_docker gitlab-CSDN博客 Docker 安装 (完整详细版)_docker安装-CSDN博客 Docker 日常命令大全(完整详细版)_docker命令-CSDN博客 1、Gitlab镜像 # 查找Gitlab镜像 docker search gitlab # 拉取Gitlab镜像 docker pull gitlab/g…...

Elasticsearch:使用经过训练的 ML 模型理解稀疏向量嵌入

作者&#xff1a;来自 Elastic Dai Sugimori 了解稀疏向量嵌入&#xff0c;理解它们的作用/含义&#xff0c;以及如何使用它们实现语义搜索。 Elasticsearch 提供语义搜索功能&#xff0c;允许用户使用自然语言进行查询并检索相关信息。为此&#xff0c;目标文档和查询必须首先…...

huggingface部署本地大模型DeepSeek-R1-Distill-Llama-70B使用streamlit构建交互式 Web 应用

文章目录 一、Streamlit介绍二、模型下载三 、模型部署四、效果展示 一、Streamlit介绍 Streamlit 是一个开源的 Python 库&#xff0c;专门用于快速构建和部署交互式 Web 应用程序&#xff0c;尤其适合数据科学和机器学习领域。以下是关于 Streamlit 的详细介绍&#xff1a; …...

中华人民共和国著作权法

目录 中华人民共和国著作权法 第一章 总则 第二章 著作权 第一节 著作权人及其权利 第二节 著作权归属 第三节 权利的保护期 第四节 权利的限制 第三章 著作权许可使用和转让合同 第四章 与著作权有关的权利 第一节 图书、报刊的出版 第二节 表  演 第…...

Maven 从下载到实战:一站式配置与使用指南

一、Maven 简介 Maven 是一款基于 POM&#xff08;Project Object Model&#xff09; 的 Java 项目管理工具&#xff0c;支持依赖管理、构建自动化、标准化项目结构等功能。其核心优势包括&#xff1a; 依赖管理&#xff1a;自动下载和管理第三方库&#xff08;JAR 包&#xf…...

4部署kibana:5601

kibana 是一个基于浏览器页面的Elasticsearch前端展示工具&#xff0c;, 是一个开源和免费的工具 Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面, 可以帮你汇总、分析和搜索重要数据日志 1.安装-所有的es节点 # tar xf kibana-6.4.1-linux-x86_64.t…...

前端项目配置 Nginx 全攻略

在前端开发中&#xff0c;项目开发完成后&#xff0c;如何高效、稳定地将其部署到生产环境是至关重要的一步。Nginx 作为一款轻量级、高性能的 Web 服务器和反向代理服务器&#xff0c;凭借其出色的性能和丰富的功能&#xff0c;成为了前端项目部署的首选方案。本文将详细介绍在…...

Nmap网络安全审计

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Nmap网络安全审计 什么是Nmap Nmap是由Gordon Lyon设计并实现的&#xff0c;于1997开始发布。最初设计Nmap的目的只是希望打造一款强大的端口扫描工具。但是随着…...

deepseek sse流式输出

链接 semi-ui-vue聊天组件 - 可以用这个组件优化界面 sse服务端消息推送 webflux&webclient Hi-Dream-Blog - 参考这个博客&#xff0c;可以在后台将markdown语法转为html 文章目录 链接效果代码pom.xmlDeepSeekControllerWebConfigDeepSeekClientAiChatRequestAiChatM…...

opencv(6): 形态学操作(二值化、自适应阈值、开闭、对比度)

如何在图片中识别出一些物体的位置。具体是什么不是形态学的范畴。 处理方法基本是对二进制图像进行处理。 卷积核决定着图像处理后的效果。 图像二值化 将图像的每个像素变成两种值&#xff0c; 如 0&#xff0c; 255。 全局二值化&#xff1a;全局按照某个阈值二值化 局部…...

P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值--完全 “二叉树” 不一定是 “满二叉树”

P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值 题目分析代码 题目 分析 我吧完全二叉树记成满二叉树了^^ 又卡我几分钟 代码 #include <iostream> #include <vector> #include <string> #include <algorithm> #include <math.h> #include <qu…...

Python驱动的餐饮企业智能数据分析:从数据清洗到可视化决策全流程实战

文章目录 Python驱动的餐饮企业智能数据分析:从数据清洗到可视化决策全流程实战引言一、案例背景1.1 需求分析1.2 数据准备1.2.1 模拟数据生成代码二、数据处理全流程2.1 数据清洗2.1.1 缺失值处理2.1.2 异常值检测2.2 核心指标计算2.2.1 营业额分析2.2.2 门店表现评估2.2.3 菜…...

深入理解IP子网掩码子网划分{作用} 以及 不同网段之间的ping的原理 以及子网掩码的区域划分

目录 子网掩码详解 子网掩码定义 子网掩码进一步解释 子网掩码的作用 计算总结表 子网掩码计算 子网掩码对应IP数量计算 判断IP是否在同一网段 1. 计算步骤 2. 示例 3. 关键点 总结 不同网段通信原理与Ping流程 1. 同网段通信 2. 跨网段通信 网段计算示例 3. P…...

Rust 中的内部可变性与 `RefCell<T>`

一、为什么需要内部可变性&#xff1f; 通常&#xff0c;Rust 编译器通过静态分析确保&#xff1a; 同一时刻只能存在一个可变引用&#xff0c;或任意多个不可变引用&#xff1b;引用始终保持有效。 这种严格的借用规则使得许多内存错误在编译阶段就能被捕获&#xff0c;但也…...

Android Audio实战——音频相关基础概念(附)

Android Audio 开发其实就是媒体源数字化的过程,通过将声波波形信号通过 ADC 转换成计算机支持的二进制的过程叫做音频采样 (Audio Sampling)。采样 (Sampling) 的核心是把连续的模拟信号转换成离散的数字信号。 一、声音的属性 1、响度 (Loudness) 响度是指人类可以感知到的…...

【Java项目】基于Spring Boot的教师人事档案管理系统

【Java项目】基于Spring Boot的教师人事档案管理系统 技术简介&#xff1a;采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介&#xff1a;此系统的功能分为教师和管理员模块&#xff1a; 1、教师后台功能模块包括&#xff1a;首页、个人中心、个人档案管理、奖惩信…...

MySQL 中表和视图的关系

MySQL 中表和视图的关系 在 MySQL 中&#xff0c;表&#xff08;Table&#xff09; 是数据库中的基本存储结构&#xff0c;实际存储数据。而 视图&#xff08;View&#xff09; 是基于表或其他视图的虚拟表&#xff0c;它不存储数据&#xff0c;而是存储一条 SQL 查询的定义&a…...

BigDecimal线上异常解决方案:避免科学计数法输出的坑

文章目录 问题背景为什么BigDecimal会输出科学计数法&#xff1f;线上异常场景场景1&#xff1a;数据传递异常场景2&#xff1a;日志记录异常场景3&#xff1a;数据存储异常 解决方案1. 使用toPlainString()方法2. 设置格式化输出3. 自定义工具类 代码示例总结 在Java开发中&am…...

网络运维学习笔记(DeepSeek优化版)004网工初级(HCIA-Datacom与CCNA-EI)Console管理台使用、登录认证、破解恢复密码

文章目录 Console管理台使用、登录认证、破解恢复密码一、Console管理台使用和登录认证1.1 思科设备配置1.1.1 基本配置流程1.1.2 验证配置 1.2 华为设备配置1.2.1 本地密码认证1.2.2 AAA认证配置 二、远程管理协议Telnet和SSH配置2.1 思科Telnet基本配置2.2 华为Telnet基本配置…...

vmware系统磁盘扩容

扩展磁盘 关闭系统 编辑虚拟机设置&#xff0c;点击磁盘进行扩展 若无法点击检查是否有快照&#xff0c;若报错“在部分链上无法执行所调用的函数&#xff0c;请打开父虚拟磁盘”可查看解决方案 内部挂载 扩展分区 fdisk /dev/sda输入p&#xff0c;打印当前分区表删除/dev/…...

数据结构(陈越,何钦铭) 第四讲 树(中)

4.1 二叉搜索树 4.1.1 二叉搜索树及查找 Position Find(ElementTyoe X,BinTree BST){if(!BST){return NULL;}if(X>BST->Data){return Find(X,BST->Right)}else if(X<BST->Data){return Find(X,BST->Left)}else{return BST;} } Position IterFind(ElementTyp…...

OpenGL进阶系列19 - OpenGL SuperBible - basicfbo 例子学习

一:概述 在超级宝典之前的例子中,程序执行的所有渲染操作都是针对一个窗口,或者可能是计算机的主显示屏。片元着色器(fragment shader)的输出进入后台缓冲区(back buffer),而这个缓冲区通常由操作系统或窗口系统管理,并最终显示给用户。 当我们为渲染上下文选择格式时…...

猿大师播放器:交通水利、公安消防Web端Vue网页播放20路RTSP H.265 1080P监控视频流

随着互联网技术的飞速发展&#xff0c;视频监控已成为各行各业不可或缺的一部分。无论是交通物流、公安消防&#xff0c;还是水利农业、园区校园&#xff0c;视频监控都扮演着至关重要的角色。然而&#xff0c;传统的视频监控解决方案往往依赖于特定的客户端软件&#xff0c;这…...

文件下载技术的终极选择:`<a>` 标签 vs File Saver.js

文件下载技术的终极选择&#xff1a;<a> 标签 vs File Saver.js 在 Web 开发中&#xff0c;文件下载看似简单&#xff0c;实则暗藏玄机。工作种常纠结于 <a> 标签的原生下载和 File Saver.js 等插件的灵活控制之间。本文将从原理、优缺点、场景对比到实战技巧&…...

IDE(集成开发环境)

IDE&#xff08;集成开发环境&#xff09; 1. IDE 的定义 全称&#xff1a;Integrated Development Environment&#xff08;集成开发环境&#xff09;。中文&#xff1a;集成开发环境。作用&#xff1a;为程序开发提供全面的开发环境&#xff0c;集成了多种工具和服务&#x…...

数据安全_笔记系列02:国密算法(商用密码算法)详解

数据安全_笔记系列02:国密算法&#xff08;商用密码算法&#xff09;详解 国密算法是中国国家密码管理局&#xff08;现国家密码管理局&#xff09;制定的一系列自主可控的密码算法标准&#xff0c;旨在保障国内信息安全&#xff0c;满足合规要求。以下从 算法类型、技术细节、…...

全面汇总windows进程通信(三)

在Windows操作系统下,实现进程间通信(IPC, Inter-Process Communication)有几种常见的方法,包括使用管道(Pipe)、共享内存(Shared Memory)、消息队列(Message Queue)、命名管道(Named Pipe)、套接字(Socket)等。本文介绍如下几种: RPC(远程过程调用,Remote Pr…...

Python爬虫-破解字体加密技术

前言 本文是该专栏的第77篇,后面会持续分享python爬虫干货知识,记得关注。 字体加密是一种常见的反爬虫技术,通过自定义字体文件和字符映射来保护网页内容,防止爬虫直接获取文本信息。 而本文,笔者将针对“如何解决目标平台的字体加密技术,并获取目标数据”,进行详细介…...

Pytorch实现论文:基于多尺度融合生成对抗网络的水下图像增强

简介 简介:提出了一种新型的水下图像增强算法,基于多尺度融合生成对抗网络,名为UMSGAN,以解决低对比度和颜色失真的问题。首先经过亮度的处理,将处理后的图像输入设计的MFFEM模块和RM模块生成图像。该算法旨在适应各种水下场景,提供颜色校正和细节增强。 论文题目:Und…...

【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程

本小节学习建议&#xff1a;掌握Python编程、统计学&#xff08;时间序列分析&#xff09;、金融学基础&#xff08;资产定价理论&#xff09;三者结合&#xff0c;是进入量化领域的核心路径。 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章目录 1.1 量化金…...

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(3)

Paimon的下载及安装&#xff0c;并且了解了主键表的引擎以及changelog-producer的含义参考&#xff1a; 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1) 利用Paimon表做lookup join&#xff0c;集成mysql cdc等参考&#xff1a; 大数据组件(四)快速入门实时数据…...

【论文解读】《Training Large Language Models to Reason in a Continuous Latent Space》

论文链接 1. 背景与动机 语言空间与推理的矛盾 目前大多数大语言模型&#xff08;LLMs&#xff09;在解决复杂问题时采用链式思维&#xff08;Chain-of-Thought, CoT&#xff09;方法&#xff0c;即利用自然语言逐步推导出答案。然而&#xff0c;论文指出&#xff1a; 自然语言…...

Linux-CentOS 7安装

Centos 7镜像&#xff1a;https://pan.baidu.com/s/1fkQHYT64RMFRGLZy1xnSWw 提取码: q2w2 VMware Workstation&#xff1a;https://pan.baidu.com/s/1JnRcDBIIOWGf6FnGY_0LgA 提取码: w2e2 1、打开vmware workstation 2、选择主界面的"创建新的虚拟机"或者点击左上…...

【Web RCE 漏洞常见类型】

Web RCE 漏洞常见类型 1. 注入类漏洞2. 反序列化漏洞3. 文件处理漏洞4. 模板引擎漏洞5. 服务端请求伪造&#xff08;SSRF&#xff09;6. 框架/中间件漏洞7. 第三方组件漏洞8. 配置不当与协议滥用9. 其他边缘场景防御建议 以下是可以导致远程代码执行&#xff08;RCE&#xff09…...

【蓝桥杯单片机】第十三届省赛第二场

一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 2.编写LED函数&#xff08;led.c&#xff09; void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器 关闭锁存…...

【够用就好006】-PC桌面管理ECS服务器的实操步骤

背景介绍解决思路拓展知识 背景介绍 #够用就好#知其然知其所以然#aigc创意人左边 我计划搭建个人网站&#xff0c;计划格式化我的ECS服务器&#xff0c;但是里面有我之前的实践项目&#xff0c;我舍不得删除&#xff0c;我想要保存到本地。 通常我都是在vscode中用remotes ssh…...

Spring Boot 2/3.x 中 MultipartFile 接收问题深度解析与实战解决方案

文章目录 引言&#xff1a;文件上传的暗礁与应对一、核心机制解析1.1 多部分请求处理流程1.2 关键配置参数演进 二、典型问题排查与修复2.1 文件接收为null问题2.2 大文件上传内存溢出 三、版本差异陷阱3.1 Jakarta Servlet API迁移影响3.2 默认配置变更对比 四、高级问题解决方…...

MySQL的三种并发问题和四种隔离级别

阅读之前&#xff0c;请心里默念&#xff0c;脏读、不可重复读、幻读是三种常见的并发问题&#xff0c;隔离级别是应对并发问题的四种隔离级别&#xff0c;隔离级别和并发问题是两个东西&#xff0c;不要混淆。 在数据库事务中&#xff0c;脏读&#xff08;Dirty Read&#xff…...