2024国赛A问题5
问题五
龙头最大速度优化模型的建立
问题五在问题四的曲线的基础上对速度进行了约束,即在逐步改变龙头速度的情况下,各个龙身的速度也会依次改变,给出龙头的最大行进速度,使得舞龙队各把手的速度均不超过 2 m/s。即可依此构建一个龙头速度的优化模型,将各把手的速度范围与计算公式作为约束条件。下面的具体的建立过程:
目标函数
问题五需求解最大的龙头速度,故将龙头速度 v v v作为目标函数,使用 V V V表示,其数学表示为:
max V \max V maxV
约束条件
-
根据问题五的要求,舞龙队各把手的速度均不得超过 2 m / s 2m/s 2m/s,依据前文, v i v_i vi表示第 i i i个把手的速度,则该约束条件的数学表示为:
v i ≤ 2 , i = 1 , 2 , … , 22 v_i \leq2,\space i=1,2,\dots,22 vi≤2, i=1,2,…,22 -
根据问题四求解的结果,在 v ≥ 1 v \geq 1 v≥1的情况下,龙身不会出现速度大于 2 m / s 2 m/s 2m/s的情况,故可用数学表示为:
V ≥ 1 V \geq1 V≥1 -
速度的求解基于在时间的极小步长下的位置变化量,其计算公式为:
v i = lim Δ t → 0 ( x i 1 − x i 2 ) 2 + ( y i 1 − y i 2 ) 2 Δ t v_i=\lim_{\Delta t\to0}\frac{\sqrt{(x_{i1}-x_{i2})^2+(y_{i1}-y{_{i2}})^2}}{\Delta t} vi=Δt→0limΔt(xi1−xi2)2+(yi1−yi2)2
其中 ( x i 1 , y i 1 ) (x_{i1},y_{i1}) (xi1,yi1)为在 t t t时刻下的位置坐标, ( x i 2 , y i 2 ) (x_{i2},y_{i2}) (xi2,yi2)为在 t + 2 ⋅ Δ t t+2\cdot \Delta t t+2⋅Δt下的速度,其中 Δ t = 0.001 s \Delta t=0.001s Δt=0.001s.
综上所述,龙头最大速度优化模型建立如下:
max V s . t . { v i ≤ 2 , V ≥ 1 , v i = lim Δ t → 0 ( x i 1 − x i 2 ) 2 + ( y i 1 − y i 2 ) 2 Δ t , i = 1 , 2 , … , 22 , \begin{aligned}&\max V\\&\mathrm{s.t.}\begin{cases}v_i\leq2,\\V\geq1,\\v_i=\lim_{\Delta t\to0}\frac{\sqrt{(x_{i1}-x_{i2})^2+(y_{i1}-y_{i2})^2}}{\Delta t},&\end{cases}i=1,2,\ldots,22,\end{aligned} maxVs.t.⎩ ⎨ ⎧vi≤2,V≥1,vi=limΔt→0Δt(xi1−xi2)2+(yi1−yi2)2,i=1,2,…,22,
模型的求解
由于第五问模型比较简单,求解起来较为容易,故可采取二分变步长搜索策略与小步长时间数值模拟结合的办法进行求解,具体步骤如下:
Step1 设定初始解与搜索步长
设定初始解为前四问中的初始速度 v 0 = 1 m / s v_0=1m/s v0=1m/s,初始搜索步长为 Δ v = 0.1 m / s \Delta v=0.1m/s Δv=0.1m/s,开始进行搜索。
Step2 大步长快速搜索
从初始速度 v 0 v_0 v0开始搜索,以 Δ v = 0.1 m / s \Delta v=0.1m/s Δv=0.1m/s为步长开始遍历,快速搜索解空间直达搜索到不满足约束条件 v i ≤ 2 v_i\leq2 vi≤2,设该点为 V i V_i Vi,则该点前一个搜索点为 V i − 1 V_{i-1} Vi−1为最后一个满足约束条件的解。
Step3 二分精细搜索
取两点中点值 v i + v i − 1 2 \frac{v_i+v_{i-1}}{2} 2vi+vi−1进行计算,若仍不满足约束条件则搜索空间 [ v i − 1 , v i + v i − 1 2 ] [v_{i-1},\frac{v_i+v_{i-1}}{2}] [vi−1,2vi+vi−1],若满足则搜索空间 [ v i + v i − 1 2 , v i ] [\frac{v_i+v_{i-1}}{2},v_i] [2vi+vi−1,vi],修改步长为 Δ v 2 \frac{\Delta v}{2} 2Δv。仍然搜索各解空间中点,按照上述二分法则精细搜索空间。
Step4 导出搜索结果
当搜索步长抵达 Δ v ≤ 0.001 m / s \Delta v\leq 0.001m/s Δv≤0.001m/s时,抵达搜索误差容限,导出此时解空间的中点作为最终搜索结果 v b e s t v_{best} vbest。
误差检验
各个搜索模型的检验(注,把几个模型前面的问题几去掉)
由于本文对于问题三,问题四与问题五的求解涉及到定步长,变步长与双重模拟退火算法等搜索模型,模型搜索的正确性和可靠性直接影响了本题最后结果是否正确,故需要对搜索模型进行检验。
首先检验定步长搜索模型,在满足约束条件的情况下,本文遍历了问题四的所有解空间,绘制了自变量 θ C \theta_C θC与 θ D \theta_D θD与最终结果弧长 L L L的图像,如下图所示。
通过对整个图像的观察可知,该函数的最终应为在 θ C = 16.63 r a d \theta_C=16.63 rad θC=16.63rad与 θ D = − 16.63 r a d \theta_D=-16.63rad θD=−16.63rad的情况下取得,即整个图像左下角递减区间的最底处,与定步长搜索模型求得的结果几乎完全相同,证明了定步长搜索模型的可靠性。
其次是对变步长搜索模型的检验,在问题三与问题五的结果分析中均对结果进行了遍历与可视化,可视化图可见图多少,多少,均处于图像的最小值处,可证明该模型的可靠性。
最后是对模拟退火算法进行检验,本文在问题三中采取了双重模拟退火算法与变步长搜索模型进行比对的策略,其中模拟退火算法的结果 0.4680 0.4680 0.4680,而变步长搜索算法的结果是 0.45 0.45 0.45,两者相对误差 δ \delta δ计算结果为:
δ = ∣ 0.4680 − 0.45 ∣ 0.45 = 3.96 % < 5 % \delta=\frac{|0.4680-0.45|}{0.45}=3.96\%<5\% δ=0.45∣0.4680−0.45∣=3.96%<5%
故认为模拟退火算法搜索得到的结果较为可靠,证明了该模型的可靠性。
灵敏度检验
根据题意,板凳的尺寸大小是恒定不变。但考虑到实际生活中板凳龙板凳尺寸大小并不固定,为对模型进行灵敏度检验并探究板凳大小的改变对舞龙队行进轨迹等影响,令板凳长度 L a L_a La在 [ 1.8 m , 3.4 m ] [1.8m,3.4m] [1.8m,3.4m]内以 0.2 m 0.2m 0.2m为步长变化;板凳宽度 L b L_b Lb在 [ 0.1 m , 0.6 m ] [0.1m,0.6m] [0.1m,0.6m]内,以 0.1 m 0.1m 0.1m为步长变化。遍历由 [ L a , L b ] [L_a,L_b] [La,Lb]组成的向量空间,计算得到在不同板凳尺寸下板凳龙出现碰撞的时间,可视化如下图所示:
由图可知,在板凳龙长度 L a L_a La减小且 L b L_b Lb长度在 [ 0.1 m , 0.4 m ] [0.1m,0.4m] [0.1m,0.4m]以内的情况下,板凳龙的出现碰撞时间 t C t_C tC出现了明显延长,而板凳宽度 L b L_b Lb增大直接导致了碰撞时间 t C t_C tC的减小,尤其是 L b > 0.5 m L_b>0.5m Lb>0.5m后,可发现板凳龙无法成功进入问题一的螺线模型中,说明了在最开始就出现了碰撞。
上述结果不仅符合实际情况,即板凳的长度 L a L_a La与 L b L_b Lb尺寸越小,越不容易出现碰撞,同时也说明了本文模型的灵敏性高,能够对板凳微小的变化作出正确的输出。
结果分析
问题一结果分析
观察图可知,随着时间增加,各个把手的速度整体上呈现为下降趋势。下降幅度 随螺线的几何性质变化。观察把手轴可以知道,龙头到龙尾的速度呈增长趋势。
观察结果可视化图可得出如下结论:
- 对于单个把手而言,虽然速度呈现波动的趋势,但是其整体速度呈现下降趋势,这与其运动轨迹在螺线上,螺线曲率半径越来越小相对应。
- 对于整个队伍而言,龙头到龙尾的速度呈现递减的趋势,其原因应为龙头的运动速度虽为1m/s,但是在运动固定位移后,由于运动轨迹为螺线,运动的传递存在迟滞与消耗,故后面的龙身速度会存在减小。
问题二结果分析
观察图可知,问题二除了龙头到龙尾速度仍然满足递减趋势外,还可以发现,板凳龙中板凳的最近距离呈现出一个类似周期性的变化规律,即在某个时间最近距离突然增大,然后再减小,重复这个周期,但是整体呈现减小的趋势,可以推断:
- 随着板凳龙进入螺线的推进,螺线的曲率半径减小,板凳之间的最近距离应该是呈现减小的趋势。
- 最近距离的求得与板凳之间的实际位置相关,运动过程中螺线每一圈存在板凳对角突出的情况,导致最近距离呈现类周期的变化规律,这与螺线本身呈现一圈圈环绕的形状相关。
问题四结果分析
在求解出问题四的结果之外,通过对问题四所有板凳的速度进行可视化,可发现在 t < 10 s t<10s t<10s时,所有的板凳速度几乎保持一致,趋近于 1 m / s 1m/s 1m/s,但是在 t = 10 s t=10s t=10s处,几乎所有板凳出现了一个速度的突变,且在此之后板凳的速度分别出现变化,通过对该时间的板凳龙位置进行可视化,得出了如下结论:
- 在 t = 10 s t=10s t=10s时候板凳龙前把手刚好进入后段圆弧,由于求解得到的后段圆弧半径仅有 1.50 m 1.50m 1.50m左右,故板凳龙前把手几乎可以在 1 s − 2 s 1s-2s 1s−2s内越过,此时会出现较大的弧度变化,导致板凳龙前把手的运动对后面龙身的运动产生了较大的影响,进而影响了其他所有龙身的速度。
- 龙身后面的部分逐步通过该圆弧,每个龙身通过过程均会产生较大的弧度变化,进而导致速度出现波动,最终出现速度热力图中的现象。
相关文章:
2024国赛A问题5
问题五 龙头最大速度优化模型的建立 问题五在问题四的曲线的基础上对速度进行了约束,即在逐步改变龙头速度的情况下,各个龙身的速度也会依次改变,给出龙头的最大行进速度,使得舞龙队各把手的速度均不超过 2 m/s。即可依此构建一个龙头速度的…...
Kalilinux下MySQL的安装
MySQL是一个广泛使用的开源关系型数据库管理系统,它是最流行的关系型数据库之一。在Kalilinux下安装MySQL可以为我们提供方便的数据库管理和开发环境。本文将介绍如何在Kalilinux中安装MySQL,并提供一些常用的代码示例。 步骤一:更新软件包 …...
文件路径与Resource接口详解
目录 第一章、快速了解文件路径1.1)什么是文件路径?1.1.1)绝对路径1.1.2)相对路径 1.2)重要:相对路径的表示方法1.2.1) ./ 与 ../ 1.3)文件路径与环境变量1.3.1)什么是环境变量1.3.2…...
极狐GitLab 17.7正式发布,可从 GitLab 丝滑迁移至极狐GitLab【二】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
分布式光纤传感|分布式光纤测温|线型光纤感温火灾探测器DTS|DTS|DAS|BOTDA的行业16年的总结【2024年】
背景: 从2008年,从事分布式光纤传感行业已经过了16年时间了,依稀记得2008年,看的第一遍论文就是中国计量大学张在宣老爷子的分布式光纤测温综述,我的经历算是行业内极少数最丰富的之一。混过学术圈: 发表…...
存储过程实现多个分类不同计算规则得到对应的分类、月份和款号
该存储过程 PRO_MON_MDCODE 实现多个分类不同计算规则得到对应的分类、月份和款号,其中线下分类的款最早出现时间会在20230101,最晚是当前月份后12月,电商的款取商品维表的23,24,25年商品年份的A款,其他业务分类逻辑(A-线上,B电商公司,C品牌公司)的款最早出现时间会在2…...
aj-report本地前后端分离部署运行
github项目地址 aj-report-mine 在源代码v1.4版本基础上,本地进行前后端分离部署开发 这里我是进行了整合,把自己在拉取源代码到成功运行过程中的一些东西直接整合,根据下面的步骤即可成功运行 资源获取 夸克网盘(16-github-aj-report-re…...
CSS 过渡动画效果
在 CSS 中,transition 是用来实现元素属性平滑过渡的一个属性。通过 transition,你可以指定当元素的状态发生变化时,如何在一定时间内平滑地过渡到新的样式,而不是立即跳变。 使用于侧边栏展开和收起了,左侧区域的自适…...
网络安全 - DOS
1.1.1 摘要 最近网络安全成了一个焦点,除了国内明文密码的安全事件,还有一件事是影响比较大的——Hash Collision DoS(通过Hash碰撞进行的拒绝式服务攻击),有恶意的人会通过这个安全漏洞让你的服务器运行巨慢无比&…...
【强化学习】Stable-Baselines3学习笔记
【强化学习】Stable-Baselines3学习笔记 Stable-Baselines3是什么安装ExampleReinforcement Learning Tips and TricksVecEnv相关在stablebaselines中使用自定义环境 Stable-Baselines3是什么 Stable Baselines3(简称SB3)是一套基于PyTorch实现的强化学习…...
前端真实面试题自用
一、写在前面 笔者,经过计算机学硕考研的失败后,想谋求一份前端工作实在是太难了。一方面,确实曾经学习过的东西很久没有拾起,另一方面,对于前端面经还是记忆不深刻,特地写此贴记录笔者在真实前端面试中遇…...
vue3和springboot使用websocket通信
前端端口:9090 后端端口:8080 vue3 引入依赖: npm install sockjs-client stomp/stompjs vue页面 <template><div><h1>WebSocket 示例</h1><button click"sendMessage">发送消息</button>…...
JS 解构、数组扩展符和模板字符串的常见用法
文章目录 解构1. 对象解构2. 数组解构 数组扩展符模板字符串 解构 1. 对象解构 想把对象中的属性赋值给变量时, 需要一次一次的赋值,很麻烦。而对象解构, 就是把对象的结构拆解开, 然后把拆解后的属性自动赋值给匹配的变量。 (1) 对象属性赋值变量的传统写法&…...
低代码开源项目Joget的研究——Joget7社区版安装部署
大纲 环境准备安装必要软件配置Java配置JAVA_HOME配置Java软链安装三方库 获取源码配置MySql数据库创建用户创建数据库导入初始数据 配置数据库连接配置sessionFactory编译下载tomcat启动下载aspectjweaver移动jw.war文件编写脚本运行 测试参考资料 Joget,作为一款开…...
Golang 为什么没有注解?
Go 的哲学是:“少就是多,显式优于隐式。”注解虽然方便,但会违背 Go 追求简洁和清晰的设计理念。 什么是注解?为什么看起来很实用? 注解的定义:注解是一种特殊的元信息,用于修饰代码(如类、方法、字段等),让程序或工具在运行时或编译时解析和处理这些信息。例如: …...
Visual Studio Code(VS Code)配置C/C++环境
一、Visual Studio Code安装 Visual Studio Code,下文中简称为VS Code的详细安装方法请参考VSCode安装教程(超详细)-CSDN博客 二、MinGW编译器下载与配置 1、MinGW介绍 MinGW(Minimalist GNU for Windows)是一款用于Windows 平台的轻…...
LabVIEW软件开发的未来趋势
LabVIEW软件开发的未来趋势可以从以下几个方面来分析: 1. 与AI和机器学习的深度结合 趋势:LabVIEW正在向集成AI和机器学习方向发展,尤其是在数据处理、预测性维护和自动化控制领域。 原因:AI技术的普及使得实验和工业场景中的…...
Node.js 助力前端开发:自动化操作实战
前端开发中,重复性任务如新建文件、配置路由、生成组件等,往往耗时且容易出错。借助 Node.js 的强大能力,我们可以实现开发过程中的自动化操作,提高效率。 文章目录 自动生成 router 配置文件自动生成组件模板动态构建导航菜单自…...
HuggingFace peft LoRA 微调 LLaMA
1. 安装必要库 pip install transformers peft accelerate2. 加载 LLaMA 模型和分词器 从 Hugging Face Transformers 加载预训练的 LLaMA 模型和分词器。 from transformers import AutoModelForCausalLM, AutoTokenizer# 加载 LLaMA 模型和分词器 model_name "meta-…...
记-编译magisk_v22
1) 下载源码 git clone gitgitee.com:MayuriNFC/Magisk.git 使用国内镜像站 2) 切换标签: git checkout v22.0 3)下载/更新依赖 git submodule initgit sumodule update 4)下载对应ndk(自动下载出错了,用了手动下载), wget -c https://dl.google.com/android/reposito…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
