考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码
考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码
一、引言
1.1、研究背景和意义
随着全球航运业的迅猛发展,船舶交通密度不断增大,海上交通事故频发,严重威胁到海上航行的安全。国际海上避碰规则(COLREGs)作为防止船舶碰撞的基本准则,其执行主要依赖于航海人员的经验和判断。然而,在复杂多变的海洋环境中,特别是在多船相遇、狭水道航行及恶劣气候条件下,仅凭人为判断往往难以确保航行安全。因此,开发高效的自动化船舶运动规划方法,以辅助或替代人工决策,显得尤为重要。
近年来,随着人工智能和自动化技术的飞速发展,利用先进算法进行船舶自主航行成为可能。其中,模型预测控制(MPC)和人工势场法(APF)因其良好的适应性和优化能力,在船舶运动规划领域得到了广泛关注和应用。这两种方法能够有效处理船舶运动的非线性特性和不确定性,特别是在复杂遭遇场景下,通过精确预测和实时调整,可以显著提高航行的安全性和效率。
1.2、研究现状
目前,基于MPC和APF的船舶运动规划方法已取得一系列成果。例如,一些研究利用MPC预测船舶未来状态,通过优化控制输入来生成安全航迹;另一些研究则通过构建人工势场,利用虚拟力引导船舶避开障碍物并向目标点移动。然而,大多数研究在处理复杂遭遇场景时仍面临挑战,特别是在满足COLREGs约束条件下,如何有效避免碰撞并规划最优航迹,仍是一个亟待解决的问题。
尽管MPC和APF在船舶运动规划中展现出巨大潜力,但现有方法在面对复杂多变的海洋环境时,仍存在一些不足。例如,MPC在处理高维度和非线性问题时,计算复杂度较高,难以实现实时优化;而APF在复杂环境中容易陷入局部最优,无法保证全局最优路径的生成。此外,大多数研究未能充分考虑COLREGs的详细规则,导致在多船相遇等复杂场景下,规划出的航迹可能不符合实际航行要求。
1.3、提出问题
在复杂的海洋环境中,特别是在多船相遇、狭水道航行及恶劣气候条件下,现有的船舶运动规划方法往往难以同时满足安全和效率的要求。具体而言,如何在考虑COLREGs约束的前提下,有效处理多船相遇时的避碰问题,以及如何在动态变化的海洋环境中实时优化船舶航迹,是当前面临的主要挑战。
此外,现有的方法大多依赖于理想化的模型和假设,未能充分考虑到实际航行中的各种复杂因素。例如,海洋环境的不确定性、船舶运动的非线性特性、以及多船相遇时的交互影响等,都增加了运动规划的难度。因此,如何在考虑这些复杂因素的情况下,开发出更加鲁棒和高效的船舶运动规划方法,是一个亟待解决的问题。
1.4、研究目的和方法
针对上述问题,本研究提出一种基于模型预测人工势场(MPAPF)的船舶运动规划方法。该方法结合MPC和APF的优点,通过建立精确的船舶运动学模型,利用MPC预测船舶未来运动状态,并构建融合COLREGs约束的人工势场,以实现复杂遭遇场景下的安全、高效航行。具体而言,研究将首先建立船舶运动学模型,然后设计模型预测人工势场,最后通过仿真实验验证方法的有效性和优越性。
二、船舶运动规划相关理论
2.1、国际海上避碰规则(COLREGs)
国际海上避碰规则(COLREGs)是国际海事组织(IMO)制定的一套旨在防止船舶碰撞的规则。这些规则详细规定了船舶在各种会遇情况下的行动准则,包括船舶的航行灯光、声号、航速调整及航向改变等要求。COLREGs的实施主要依赖于航海人员的经验和判断,然而在复杂多变的海洋环境中,特别是在多船相遇、狭水道航行及恶劣气候条件下,仅凭人为判断往往难以确保航行安全。因此,开发高效的自动化船舶运动规划方法,以辅助或替代人工决策,显得尤为重要。
2.2、模型预测控制(MPC)
模型预测控制(MPC)是一种先进的控制策略,其核心思想是利用预测模型预测未来一段时间内的系统状态,并根据预测结果优化控制策略,使系统达到期望的目标。MPC能够有效处理系统的非线性特性和不确定性,特别适用于多变量、复杂系统的控制。在船舶运动规划中,MPC可以通过预测船舶的未来运动轨迹,计算出相应的控制输入(如航向、速度等),以实现预定的航行目标。
2.3、人工势场法(APF)
人工势场法(APF)是一种常用的路径规划方法,其基本原理是将船舶周围的环境视为一个势场,船舶受到引力势场和斥力势场的作用。引力势场引导船舶向目标点移动,而斥力势场则引导船舶避开障碍物。在APF中,势场的构建是关键,通过合理设计势场函数,可以实现复杂的路径规划任务。然而,APF在复杂环境中容易陷入局部最优,无法保证全局最优路径的生成。因此,需要结合其他方法,以提高路径规划的鲁棒性和全局优化能力。
三、基于MPAPF的船舶运动规划方法
3.1、船舶运动学模型的建立
建立精确的船舶运动学模型是实现有效运动规划的基础。船舶运动学模型描述了船舶在地球表面上的运动规律,包括纵向运动、横向运动和首摇运动等。本研究采用非线性船舶运动学模型,该模型能够较为准确地描述船舶的运动特性。具体而言,船舶运动学模型可以通过以下方程描述:
x ˙ = u cos ( ψ ) − v sin ( ψ ) ẋ = u \cos(ψ) - v \sin(ψ) x˙=ucos(ψ)−vsin(ψ)
y ˙ = u sin ( ψ ) + v cos ( ψ ) ẏ = u \sin(ψ) + v \cos(ψ) y˙=usin(ψ)+vcos(ψ)
ψ ˙ = r ψ̇ = r ψ˙=r
其中,(x, y) 为船舶的地理坐标,ψ 为航向角,u, v, r 分别为船舶的纵向速度、横向速度和首摇角速度。
3.2、模型预测人工势场(MPAPF)的设计
模型预测人工势场(MPAPF)结合了MPC和APF的优点,通过预测船舶未来运动状态,并构建融合COLREGs约束的人工势场,以实现复杂遭遇场景下的安全、高效航行。具体而言,MPAPF的设计包括以下几个步骤:
3.2.1、收集环境信息
首先,需要获取与船舶运动相关的环境信息,包括目标船舶的位置、速度、航向等。这些信息可以通过雷达、AIS(自动识别系统)等设备获取。
3.2.2、预测船舶运动
利用模型预测控制技术,对目标船舶的未来运动进行预测。这可以通过建立动力学模型和环境模型来实现。动力学模型描述了船舶的运动规律,而环境模型描述了外部环境对船舶的影响。
3.2.3、生成人工势场
根据预测的目标船舶运动,生成人工势场。人工势场由两部分组成:静态势场和动态势场。静态势场与环境中的障碍物有关,用于避免船舶与障碍物的碰撞;动态势场与目标船舶的运动有关,用于引导船舶与目标船舶保持安全距离。
3.2.4、路径规划
根据生成的人工势场,进行路径规划。路径规划的目标是找到一条安全且符合COLREG规则的航线,以确保船舶能够安全通过复杂的遭遇场景。
3.2.5、运动控制
根据规划的航线,进行运动控制。运动控制可以通过调整船舶的航向、速度等参数来实现。在COLREG船舶运动规划中,运动控制需要考虑到COLREG规则的要求,以确保船舶的运动符合规则并避免碰撞。
3.3、人工势场的构建
在MPAPF方法中,人工势场的构建是关键。人工势场由静态势场和动态势场组成。静态势场用于避免船舶与静态障碍物(如岛屿、礁石等)的碰撞,其势场强度与船舶到障碍物的距离成反比。动态势场则用于引导船舶避开移动目标(如其他船舶),其势场强度与船舶到目标船舶的距离和相对运动状态有关。
为了满足COLREGs的要求,我们在动态势场中加入了规则约束项,例如保持安全距离、遵守让路规则等。这些约束项可以根据不同的遭遇场景和规则进行调整。具体来说,斥力势场可以根据COLREGs中的规定,针对不同类型的船舶和遭遇情况,设定不同的安全距离和斥力强度。例如,对限制作业船舶应保持更大的安全距离,对交叉相遇局面需要根据自身船舶的让路义务调整斥力大小和方向。
3.4、路径规划与运动控制
在路径规划过程中,我们利用生成的人工势场,通过优化算法找到一条安全且符合COLREG规则的航线。优化算法可以考虑多种因素,如航行时间、燃料消耗、航行距离等,以确保生成的航迹不仅安全而且高效。
运动控制则通过调整船舶的航向、速度等参数,使船舶能够沿着规划的航线安全航行。在运动控制过程中,我们需要考虑到船舶的动态特性以及外部环境的变化,以确保控制的实时性和准确性。具体而言,运动控制可以通过以下步骤实现:
3.4.1、航向控制
根据规划的航线,调整船舶的航向,以确保船舶能够沿着预定航线航行。航向控制可以通过调整舵角来实现。
3.4.2、速度控制
根据航行环境和规划要求,调整船舶的速度,以确保船舶能够在规定时间内到达目标点。速度控制可以通过调整发动机功率来实现。
3.4.3、实时调整
在航行过程中,实时监测船舶的位置、速度以及周围环境的变化,并根据实际情况对航线进行实时调整,以确保航行的安全性和效率。
四、仿真实验与结果分析
4.1、仿真场景设置
为了验证所提出的基于MPAPF的船舶运动规划方法的有效性和优越性,我们设计了多个仿真场景,包括多船相遇、狭水道航行以及恶劣气候条件等。在仿真实验中,我们模拟了不同种类的船舶在不同初始条件下的运动情况,并考虑了海洋环境的不确定性和动态变化。
具体而言,仿真场景包括以下几个方面:
4.1.1、多船相遇场景
在多船相遇场景中,我们模拟了多艘船舶在不同航向和速度下的相遇情况,以验证MPAPF方法在处理多船避碰问题上的表现。
4.1.2、狭水道航行场景
在狭水道航行场景中,我们模拟了船舶在狭水道中的航行情况,以验证MPAPF方法在处理复杂航行环境问题上的表现。
4.1.3、恶劣气候条件场景
在恶劣气候条件场景中,我们模拟了船舶在强风、大浪等恶劣气候条件下的航行情况,以验证MPAPF方法在处理极端环境问题上的表现。
4.2、仿真结果展示
仿真结果显示,所提出的基于MPAPF的船舶运动规划方法能够在各种复杂的遭遇场景下,有效规划船舶的运动路径,确保遵守COLREG规则并避免碰撞。在多船相遇场景中,船舶能够根据彼此的运动状态和COLREGs要求,合理调整航向和速度,安全通过相遇区域。在狭水道航行场景中,船舶能够避开静态障碍物,并沿着最优航线安全航行。在恶劣气候条件场景中,船舶能够克服环境干扰,保持稳定的航向和速度,确保航行安全。
具体而言,仿真结果包括以下几个方面:
4.2.1、多船相遇场景结果
在多船相遇场景中,仿真结果显示,船舶能够根据彼此的运动状态和COLREGs要求,合理调整航向和速度,安全通过相遇区域。图1展示了多船相遇场景下的仿真结果。
4.2.2、狭水道航行场景结果
在狭水道航行场景中,仿真结果显示,船舶能够避开静态障碍物,并沿着最优航线安全航行。图2展示了狭水道航行场景下的仿真结果。
4.2.3、恶劣气候条件场景结果
在恶劣气候条件场景中,仿真结果显示,船舶能够克服环境干扰,保持稳定的航向和速度,确保航行安全。图3展示了恶劣气候条件场景下的仿真结果。
4.3、结果分析
通过分析仿真结果,我们可以得出结论,所提出的基于MPAPF的船舶运动规划方法在处理复杂遭遇场景下的船舶运动规划问题上表现出色。该方法能够有效结合MPC和APF的优点,通过精确预测和实时调整,确保船舶在复杂环境中的安全航行。
具体而言,结果分析包括以下几个方面:
4.3.1、安全性分析
仿真结果显示,所提出的方法能够在各种复杂的遭遇场景下,有效避免船舶碰撞,确保航行安全。在多船相遇场景中,船舶能够根据彼此的运动状态和COLREGs要求,合理调整航向和速度,安全通过相遇区域。在狭水道航行场景中,船舶能够避开静态障碍物,并沿着最优航线安全航行。在恶劣气候条件场景中,船舶能够克服环境干扰,保持稳定的航向和速度,确保航行安全。
4.3.2、效率分析
仿真结果显示,所提出的方法在确保航行安全的同时,还能够优化航行效率。通过合理规划航线,船舶能够以最短的时间和最小的燃料消耗到达目标点。这对于提高航运效率和降低运营成本具有重要意义。
4.3.3、鲁棒性分析
仿真结果显示,所提出的方法在面对各种复杂环境和动态变化时,具有较强的鲁棒性。无论是在多船相遇、狭水道航行还是恶劣气候条件下,该方法都能够有效规划船舶的运动路径,确保航行安全。这表明,所提出的方法在实际应用中具有较高的可行性和可靠性。
五、结论与展望
5.1、研究总结
本研究提出了一种基于模型预测人工势场(MPAPF)的船舶运动规划方法,该方法结合了模型预测控制(MPC)和人工势场法(APF)的优点,通过建立精确的船舶运动学模型,利用MPC预测船舶未来运动状态,并构建融合COLREGs约束的人工势场,以实现复杂遭遇场景下的安全、高效航行。仿真实验验证了该方法的有效性和优越性,结果显示,所提出的方法能够在各种复杂的遭遇场景下,有效规划船舶的运动路径,确保遵守COLREG规则并避免碰撞。
具体而言,研究总结如下:
5.1.1、提出了一种新的船舶运动规划方法
本研究提出了一种新的基于模型预测人工势场(MPAPF)的船舶运动规划方法,该方法结合了MPC和APF的优点,通过精确预测和实时调整,确保船舶在复杂环境中的安全航行。
5.1.2、建立精确的船舶运动学模型
研究建立了精确的船舶运动学模型,该模型能够较为准确地描述船舶的运动特性,为实现有效的运动规划提供了基础。
5.1.3、设计了模型预测人工势场
研究了模型预测人工势场的设计方法,通过收集环境信息、预测船舶运动、生成人工势场、路径规划和运动控制等步骤,实现了复杂遭遇场景下的安全、高效航行。
5.1.4、仿真实验验证
通过仿真实验验证了该方法的有效性和优越性,结果显示,所提出的方法能够在各种复杂的遭遇场景下,有效规划船舶的运动路径,确保遵守COLREG规则并避免碰撞。
5.2、研究展望
尽管本研究取得了一些成果,但仍存在一些局限性和未解决的问题,未来研究可以从以下几个方面进行:
5.2.1、考虑更多的复杂因素
在未来的研究中,可以进一步考虑更多的复杂因素,如海洋环境的不确定性、船舶运动的非线性特性、以及多船相遇时的交互影响等,以提高运动规划的鲁棒性和准确性。
5.2.2、优化算法的效率
虽然所提出的方法在仿真实验中表现出色,但在实际应用中,还需要进一步优化算法的效率,以确保实时性和可行性。特别是在处理高维度和非线性问题时,需要降低计算复杂度,提高计算速度。
5.2.3、结合其他先进技术
未来可以结合其他先进技术,如人工智能、机器学习等,以提高船舶运动规划的智能化水平。例如,利用机器学习算法对海洋环境数据进行学习和预测,可以进一步提高运动规划的准确性和鲁棒性。
5.2.4、实际应用和验证
在未来的研究中,可以进一步开展实际应用和验证工作,通过实际海试验证所提出方法的有效性和可行性。这对于推动自动化船舶技术的发展具有重要意义。
总之,本研究提出了一种新的基于模型预测人工势场(MPAPF)的船舶运动规划方法,该方法在处理复杂遭遇场景下的船舶运动规划问题上表现出色。通过进一步的研究和优化,该方法有望在实际应用中发挥重要作用,为提高海上航行的安全性和效率提供有力支持。
相关文章:
考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码
考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码 一、引言 1.1、研究背景和意义 随着全球航运业的迅猛发展,船舶交通密度不断增大,海上交通事故频发,严重威胁到海上航行的安全。国际海上避碰规…...
构建高效系统:API接口设计规范详解
在当今的数字化时代,应用程序接口(API,Application Programming Interface)已成为连接不同软件系统和服务的桥梁,是推动数字化转型的关键技术之一。无论是企业内部系统集成、第三方服务接入,还是面向开发者…...
【文献阅读】A Survey Of Resource-Efficient LLM And Multimodal Foundation Models
发表时间:二〇二四年九月二十三日 摘要 大型基础模型,包括大语言模型(LLMs)、视觉Transformer(ViTs)、扩散模型以及基于大语言模型的多模态模型,正在革新整个机器学习的生命周期,…...
mysql 全方位安装教程
下载 MySQL 【官网下载地址】 注意要选择较大的哪个安装包,小的安装包是一个安装器。 我们不用登录,直接下载 直接运行下载好的安装包 MySQL如果是 安装包安装, 可以图形化界面自主配置 如果是压缩包解压, 可以配置 配置文件, 可以解压安装到指定的…...
【Linux】Linux的进程控制
目录 1. 学习思维导图 2.进程创建(fork) 2.1 fork创建进程失败 3.进程终止 3.1 进程退出情况 3.1.1main函数 3.1.2 退出码 3.2 exit/_exit函数 1. exit() 函数 2. _exit() 函数 4.进程等待 4.1 实现进程等待的方法 wait/waitpid方法 区别&a…...
金融支付行业技术侧重点
1. 合规问题 第三方支付系统的平稳运营,严格遵循《非银行支付机构监督管理条例》的各项条款是基础与前提,其中第十八条的规定堪称重中之重,是支付机构必须牢牢把握的关键准则。 第十八条明确指出,非银行支付机构需构建起必要且独…...
Django模型管理器/QuerySet 常见的方法
模型管理器/QuerySet 常见的方法 get([**kwargs]) 方法 用途:获取满足条件的唯一对象。参数:关键字参数,指定查询条件。返回值:模型对象。异常:如果找到多个对象或未找到对象,将分别抛出 MultipleObjects…...
QT播放视频保持视频宽高比消除黑边
QT播放视频保持视频宽高比消除黑边 1、问题 在播放视频的时候,由于框架的大小发生变化,导致视频出现黑边很不好看。 因此需要像一种方法消除黑边 2、处理 1、读取视频的宽高比 2、设置视频的Widget的大小固定,Widget的宽高比和视频宽高比…...
在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思?
在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思? 在 Ubuntu(或其他基于 GNOME 文件管理器的 Linux 发行版)中,文件或文件夹的右下角出现一把“锁”标志,通常表示 你当前的用户没有该文件/文件夹的写…...
聊聊Java的SPI机制
个人自建博客地址 什么是SPI呢? SPI全称Service Provider Interface,翻译过来就是服务提供者接口。调用方提供接口声明,服务提供方对接口进行实现,提供服务的一种机制,服务提供方往往是第三方或者是外部扩展。 下面…...
【 实战案例篇三】【某金融信息系统项目管理案例分析】
大家好,今天咱们来聊聊金融行业的信息系统项目管理。这个话题听起来可能有点专业,但别担心,我会尽量用大白话给大家讲清楚。金融行业的信息系统项目管理,说白了就是如何高效地管理那些复杂的IT项目,确保它们按时、按预算、按质量完成。咱们今天不仅会聊到一些理论,还会通…...
go并发编程
https://www.bilibili.com/video/BV16A4y1f7EX sync包工具 Mutex:同一时间只有一个goroutine持有锁,其它申请该锁的goroutine会被阻塞。RWMutex:允许多个协程同时读取共享数据,但写入时需要独占锁。WaitGroup:等待一组…...
使用Python开发以太坊智能合约:轻松入门与深度探索
使用Python开发以太坊智能合约:轻松入门与深度探索 随着区块链技术的快速发展,以太坊作为最为成熟和广泛使用的智能合约平台,成为了开发去中心化应用(DApp)的核心工具。智能合约不仅是区块链技术的基础,更…...
Python从0到100(八十九):Resnet、LSTM、Shufflenet、CNN四种网络分析及对比
前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...
密码学(哈希函数)
4.1 Hash函数与数据完整性 数据完整性: 检测传输消息(加密或未加密)的修改。 密码学Hash函数: 构建某些数据的简短“指纹”;如果数据被篡改,则该指纹(以高概率)不再有效。Hash函数…...
设计模式Python版 备忘录模式
文章目录 前言一、备忘录模式二、备忘录模式示例1三、备忘录模式示例2 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式:…...
CES Asia 2025聚焦量子计算,多领域进展引关注
作为亚洲地区极具影响力的科技盛会,CES Asia 2025第七届亚洲消费电子技术贸易展(赛逸展)将在首都北京举办。本届展会以“创新、智能、互联”为主题,将全方位展示全球消费科技领域的最新成果与发展趋势。其中,量子计算作…...
MySQL索引深度剖析:从数据结构到实际应用
引言 在数据库系统中,索引是提高查询效率的关键技术之一。MySQL作为最流行的关系型数据库之一,其索引机制尤为重要。本文将剖析MySQL索引的数据结构、分类、创建方式以及实际应用场景,帮助读者更好地理解和应用索引技术。 主体部分 1. MyS…...
【deepseek】本地部署+RAG知识库挂载+对话测试
文章目录 前言一、Deepseek模型下载(以7B为例)二、RAG本地知识库挂载三、创建本地对话脚本四、结果展示 前言 本文主要涵盖Deepseek在ubuntu系统中的部署全流程,包括模型的下载、系统部署、本地文档向量化、向量列表存储、RAG知识库挂载、对话测试等内容 一、Deeps…...
Vue.js 组件开发全面详解及应用案例
Vue.js 的组件化开发是其核心特性之一,使得代码复用、维护和扩展变得更加容易。以下是关于 Vue.js 组件开发的全面解析,并附带一个实际应用案例。 一、组件基础概念 1. 什么是组件? 组件是 Vue 应用的基本构建块,封装了 HTML、C…...
java面试场景问题
还在补充,这几天工作忙,闲了会把答案附上去,也欢迎各位大佬评论区讨论 1.不用分布式锁如何防重复提交 方法 1:基于唯一请求 ID(幂等 Token) 思路:前端生成 一个唯一的 requestId(…...
MySQL数据库基本概念
目录 什么是数据库 从软件角度出发 从网络角度出发 MySQL数据库的client端和sever端进程 mysql的client端进程连接sever端进程 mysql配置文件 MySql存储引擎 MySQL的sql语句的分类 数据库 库的操作 创建数据库 不同校验规则对查询的数据的影响 不区分大小写 区…...
【wiki知识库】07.用户管理后端SpringBoot部分
目录 一、今日目标 二、??SpringBoot部分类的添加 2.1 使用逆向工程新增User模块 2.2 UserQueryParam添加 2.3 UserSaveParam添加 2.4 UserResetPasswordParam添加 2.5 UserQueryVo添加 2.6 SnowFlake工具类 三、??后端新增接口? 3.1 /user/list接口添加 3.2 /…...
千峰React:案例二
完成对html文档还有css的引入,引入一下数据: import { func } from prop-types import ./购物车样式.css import axios from axios import { useImmer } from use-immer import { useEffect } from reactfunction Item() {return (<li classNameacti…...
Junit框架缺点
JUnit 是 Java 生态中最流行的单元测试框架,广泛应用于单元测试和集成测试中。尽管它功能强大且易于使用,但也存在一些缺陷和局限性。以下是 JUnit 的主要缺点: 1. 功能相对固定 问题:JUnit 的核心功能相对固定,缺乏灵…...
计算机毕业设计SpringBoot+Vue.js公司日常考勤系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Python线程池知多少
目录 目标 Python版本 官方文档 概述 线程池 实战 创建线程池的基本语法 批量提交任务 生产者&消费者模型 目标 掌握线程池的基本概念和使用方法。 Python版本 Python 3.9.18 官方文档 concurrent.futures — Launching parallel taskshttps://docs.python.org/3…...
MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 6
从6到12章将会是重中之重,请一定好好看 第06章_索引的数据结构 1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教课书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一…...
C++动态与静态转换区别详解
文章目录 前言一、 类型检查的时机二、安全性三、适用场景四、代码示例对比总结 前言 在 C 中,dynamic_cast 和 static_cast 是两种不同的类型转换操作符,主要区别体现在类型检查的时机、安全性和适用场景上。以下是它们的核心区别: 一、 类…...
面向AI 的前端发展及初识大模型
AI带来的开发范式迁移 随着AI的涌现,对前端的发展也有着非常大的影响,总结过去前端的发展路径,目前应该属于又一次的大规模的开发范式迁移阶段。上一个阶段是从jquery到React/Vue/Angular迁移(jquery之前的就不讨论了)…...
Java入门的基础学习
Java的基础语法知识 一 初始Java二 Java数据类型和变量1.字面常量2.数据类型基本数据类型引用数据类型 3.变量整型变量浮点型变量字符型变量布尔型变量 4.类型转化和提升类型转化类型提升 三 运算符1.算数运算符2.关系操作符3.逻辑运算符:&&,||&…...
万字详解 MySQL MGR 高可用集群搭建
文章目录 1、MGR 前置介绍 1.1、什么是 MGR1.2、MGR 优点1.3、MGR 缺点1.4、MGR 适用场景 2、MySQL MGR 搭建流程 2.1、环境准备2.2、搭建流程 2.2.1、配置系统环境2.2.2、安装 MySQL2.2.3、配置启动 MySQL2.2.4、修改密码、设置主从同步2.2.5、安装 MGR 插件 3、MySQL MGR 故…...
脚本无法获取响应主体(原因:CORS Missing Allow Credentials)
背景: 前端的端口号8080,后端8000。需在前端向后端传一个参数,让后端访问数据库去检测此参数是否出现过。涉及跨域请求,一直有这个bug是404文件找不到。 在修改过程当中不小心删除了一段代码,出现了这个bug࿰…...
GD32F450 使用
GB32F450使用 1. 相关知识2. 烧写程序3. SPI3.1 spi基础3.2 spi代码 4. 串口4.1 串口引脚4.2 串口通信代码 问题记录1. 修改晶振频率 注意:GD32F450 总共有三种封装形式,本文所述的相关代码和知识,均为 GD32F450IX 系列。 1. 相关知识 参数配…...
神经网络代码入门解析
神经网络代码入门解析 import torch import matplotlib.pyplot as pltimport randomdef create_data(w, b, data_num): # 数据生成x torch.normal(0, 1, (data_num, len(w)))y torch.matmul(x, w) b # 矩阵相乘再加bnoise torch.normal(0, 0.01, y.shape) # 为y添加噪声…...
Android 数据库查询对比(APN案例)
功能背景 APN 数据通常存储在数据库中,由TelephonyProvider提供。当用户进入APN设置界面时,Activity会启动,AOSP源码通过ContentResolver查询APN数据。关键分析点在于这个查询操作是否在主线程执行,因为主线程上的耗时操作会导致…...
神卓 S500 异地组网设备实现监控视频异地组网的详细步骤
一、设备与环境准备 硬件清单 主设备:神卓 S500 异地组网路由器 1子设备:神卓 S500 或兼容设备 N(需通过官网认证)监控设备:支持 RTSP/ONVIF 协议的 NVR、摄像头网络要求:各网点需稳定联网(推荐…...
golang安装(1.23.6)
1.切换到安装目录 cd /usr/local 2.下载安装包 wget https://go.dev/dl/go1.23.6.linux-amd64.tar.gz 3.解压安装包 sudo tar -C /usr/local -xzf go1.23.6.linux-amd64.tar.gz 4.配置环境变量 vi /etc/profile export PATH$…...
leetcode35.搜索插入位置
题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出…...
LeetCode第57题_插入区间
LeetCode 第57题:插入区间 题目描述 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 难度 中…...
人工智能之数学基础:线性代数中矩阵的运算
本文重点 矩阵的运算在解决线性方程组、描述线性变换等方面发挥着至关重要的作用。通过对矩阵进行各种运算,可以简化问题、揭示问题的本质特征。在实际应用中,我们可以利用矩阵运算来处理图像变换、数据分析、电路网络等问题。深入理解和掌握矩阵的运算,对于学习线性代数以…...
SQL Server 创建用户并授权
创建用户前需要有一个数据库,创建数据库命令如下: CREATE DATABASE [数据库名称]; CREATE DATABASE database1;一、创建登录用户 方式1:SQL命令 命令格式:CREATE LOGIN [用户名] WITH PASSWORD ‘密码’; 例如,创…...
MySQL双主搭建-5.7.35
文章目录 上传并安装MySQL 5.7.35双主复制的配置实例一:172.25.0.19:实例二:172.25.0.20: 配置复制用户在实例 1 (172.25.0.19)上执行:在实例 2 (172.25.0.20)上执行&…...
RNN实现精神分裂症患者诊断(pytorch)
RNN理论知识 RNN(Recurrent Neural Network,循环神经网络) 是一种 专门用于处理序列数据(如时间序列、文本、语音、视频等)的神经网络。与普通的前馈神经网络(如 MLP、CNN)不同,RNN…...
Python中字符串的常用操作
一、r原样输出 在 Python 中,字符串前加 r(即 r"string" 或 rstring)表示创建一个原始字符串(raw string)。下面详细介绍原始字符串的特点、使用场景及与普通字符串的对比。 特点 忽略转义字符࿱…...
uniapp 本地数据库多端适配实例(根据运行环境自动选择适配器)
项目有个需求,需要生成app和小程序,app支持离线数据库,如果当前没有网络提醒用户开启离线模式,所以就随便搞了下,具体的思路就是: 一个接口和多个实现类(类似后端的模板设计模式)&am…...
Spring Cloud Gateway 整合Spring Security
做了一个Spring Cloud项目,网关采用 Spring Cloud Gateway,想要用 Spring Security 进行权限校验,由于 Spring Cloud Gateway 采用 webflux ,所以平时用的 mvc 配置是无效的,本文实现了 webflu 下的登陆校验。 1. Sec…...
【异地访问本地DeepSeek】Flask+内网穿透,轻松实现本地DeepSeek的远程访问
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言依赖Flask构建本地网页访问LM Studio 开启网址访问DeepSeek 调用模板Flask 访问本…...
Windows对比MacOS
Windows对比MacOS 文章目录 Windows对比MacOS1-环境变量1-Windows添加环境变量示例步骤 1:打开环境变量设置窗口步骤 2:添加系统环境变量 2-Mac 系统添加环境变量示例步骤 1:打开终端步骤 2:编辑环境变量配置文件步骤 3࿱…...
React实现无缝滚动轮播图
实现效果: 由于是演示代码,我是直接写在了App.tsx里面在 文件位置如下: App.tsx代码如下: import { useState, useEffect, useCallback, useRef } from "react"; import { ImageContainer } from "./view/ImageC…...