问题五
龙头最大速度优化模型的建立
问题五在问题四的曲线的基础上对速度进行了约束,即在逐步改变龙头速度的情况下,各个龙身的速度也会依次改变,给出龙头的最大行进速度,使得舞龙队各把手的速度均不超过 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内越过,此时会出现较大的弧度变化,导致板凳龙前把手的运动对后面龙身的运动产生了较大的影响,进而影响了其他所有龙身的速度。
- 龙身后面的部分逐步通过该圆弧,每个龙身通过过程均会产生较大的弧度变化,进而导致速度出现波动,最终出现速度热力图中的现象。