【智能算法】骑手优化算法(ROA)原理及实现

在这里插入图片描述


1.背景

2018年,D Binu等人受到骑手群体竞赛赢得比赛行为启发,提出了骑手优化算法(Rider Optimization Algorithm, ROA)。
在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

ROA基于骑手群体竞赛协同合作启发,探究如何赢得比赛,ROA主要分为四类:

  • 绕行骑手(Bypass rider):绕过主要路线到达目标,这意味着绕行骑手不跟随领头骑手(适应度最好) 避免陷入局部解
  • 跟随骑手(Follower):跟随骑手是指大部分依赖或跟随领头骑手
  • 超车骑手(Overtaker):按照领头骑手和自己位置前进
  • 冲刺骑手(Attacker):根据其他骑手的位置以最大速度到达目标

在这里插入图片描述

2.2算法过程

群体G分为绕行骑手B,跟随骑手F,超车骑手O,冲刺骑手A:
R = B + F + O + A B = F = O = A = R / 4 (1) R=B+F+O+A\\ B=F=O=A=R/4\tag{1} R=B+F+O+AB=F=O=A=R/4(1)
骑手参数初始化,辆在时刻T的转向角T为:
T t = { T i , j t } ; 1 ≤ i ≤ R ; 1 ≤ j ≤ Q (2) T_t=\{T_{i,j}^t\};\quad1\leq i\leq R; 1\leq j\leq Q\tag{2} Tt={Ti,jt};1iR;1jQ(2)
表达式为:
T i , j = { θ i ; if j = 1 T i , j − 1 + φ ; if j ≠ 1 & T i , j − 1 + φ ≤ 360 T i , j − 1 + φ − 360 ; otherwise (3) T_{i,j}=\begin{cases}\theta_i;&\text{if} j=1\\T_{i,j-1}+\varphi;&\text{if} j\neq1 \& T_{i,j-1}+\varphi\leq360\\T_{i,j-1}+\varphi-360;&\text{otherwise}\end{cases}\tag{3} Ti,j= θi;Ti,j1+φ;Ti,j1+φ360;ifj=1ifj=1&Ti,j1+φ360otherwise(3)
其中θi是骑手车辆的位置角,φ是坐标角。骑手车辆的位置角度取决于骑手人数和360°的最大角度:
θ i = i ∗ 36 0 ∘ R (4) \theta_i=i*\frac{360^\circ}{R}\tag{4} θi=iR360(4)
其中R是乘客的数量。坐标角有助于确定给定的转向角:
φ = 360 Q (5) \varphi=\frac{360}{Q}\tag{5} φ=Q360(5)
然后初始化与车辆相关的齿轮、油门、刹车等三个参数。在一个特定的组中,骑手的车辆的齿轮表示为:
E = { E i } ; 1 ≤ i ≤ R (6) E=\{E_i\};\quad1\leq i\leq R\tag{6} E={Ei};1iR(6)
其中Ei是第i个骑手的车辆的齿轮。在时间t, Et i从集合{0,1,2,3,4}中取一个值。Ei的初始值设为零。同样,第二个参数,即车辆的油门初始化为:
e = { e i } ; 1 ≤ i ≤ R (7) e=\{e_i\};\quad1\leq i\leq R\tag{7} e={ei};1iR(7)
其中ei表示车手车辆的油门,其取值范围为0到1。在时刻t, ei的初始值被设为零。以同样的方式,车辆中的制动器表示为:
K = { K i } ; 1 ≤ i ≤ R (8) K=\{K_i\};\quad1\leq i\leq R\tag{8} K={Ki};1iR(8)
其中Ki为第i位骑行者车辆的制动,取值范围为[0,1]。Ki的初始值设置为1。在到达目标的路上,骑手根据空间中的两个边界值调整车辆(汽车/汽车)的速度。因此,骑手可以驾驶的最大速度为:
V max ⁡ i = X U i − X L i T O F F (9) V_{\max}^i=\frac{X_U^i-X_L^i}{T_{\mathrm{OFF}}}\tag{9} Vmaxi=TOFFXUiXLi(9)
车手的齿轮速度限制计算为:
V i E = V max ⁡ i ∣ E ∣ (10) V_i^E=\frac{V_{\max}^i}{|E|}\tag{10} ViE=EVmaxi(10)
初始化骑手组和参数后,计算每个骑手的成功率。成功率根据骑手位置与目标位置之间的距离来表示:
r i = 1 ∥ X i − L T ∥ (11) r_i=\frac{1}{\|X_i-L_T\|}\tag{11} ri=XiLT1(11)
由于绕行骑手绕过公共路径,不跟随领头骑手,因此该集合的位置更新是随机的,表示为:
X t + 1 B ( i , j ) = δ [ X t ( η , j ) ∗ β ( j ) + X t ( ξ , j ) ∗ [ 1 − β ( j ) ] ] (12) X_{t+1}^{B}(i,j)=\delta[X_{t}(\eta,j)*\beta(j)+X_{t}(\xi,j)*[1-\beta(j)]]\tag{12} Xt+1B(i,j)=δ[Xt(η,j)β(j)+Xt(ξ,j)[1β(j)]](12)
跟随骑手跟随领头骑手的位置更新自己的位置,使骑手能够快速有效地到达目标:
X t + 1 F ( i , k ) = X L ( L , k ) + [ cos ⁡ ( T i , k t ) ∗ X L ( L , k ) ∗ d i t ] (13) X_{t+1}^F(i,k)=X^L(L,k)+\left[\cos\left(T_{i,k}^t\right)*X^L(L,k)*d_i^t\right]\tag{13} Xt+1F(i,k)=XL(L,k)+[cos(Ti,kt)XL(L,k)dit](13)
k为坐标选择器,XL为领跑骑手的位置,L为领跑骑手的指数,Tt i,k为第i位骑手在第k个坐标上的转向角度,dt i为第i位骑手要行驶的距离。这个距离是用骑手的速度乘以离开时间的比率来测量:
d i t = v i t ∗ ( 1 / T O F F ) (14) d_i^t=v_i^t*(1/T_\mathrm{OFF})\tag{14} dit=vit(1/TOFF)(14)
其中vt i是骑手i的速度,TOFF是脱离时间。骑手的速度与车辆的速度和骑手参数有关:
v i t = 1 3 [ E i t ∗ V i E + V max ⁡ i ∗ e i t + ( 1 − K i t ) ∗ V max ⁡ i ] (15) v_i^t=\frac{1}{3}\bigl[E_i^t*V_i^E+V_{\max}^i*e_i^t+(1-K_i^t)*V_{\max}^i\bigr]\tag{15} vit=31[EitViE+Vmaxieit+(1Kit)Vmaxi](15)
坐标选择器是根据准时概率选择:
P O N t = ( t T O F F ) ∗ Q (16) P_{\mathrm{ON}}^t=\left(\frac{t}{T_{\mathrm{OFF}}}\right)*Q\tag{16} PONt=(TOFFt)Q(16)
超车骑手位置更新:
X t + 1 O ( i , k ) = X t ( i , k ) + [ D t I ( i ) ∗ X L ( L , k ) ] (17) X_{t+1}^{O}(i,k)=X_{t}(i,k)+\left[D_{t}^{I}(i)*X^{L}(L,k)\right]\tag{17} Xt+1O(i,k)=Xt(i,k)+[DtI(i)XL(L,k)](17)
D为当前个体的方向指示器:
D t I ( i ) = [ 2 1 − log ⁡ ( S t R ( i ) ) ] − 1 (18) D_t^I(i)=\left[\frac{2}{1-\log\left(S_t^R(i)\right)}\right]-1\tag{18} DtI(i)=[1log(StR(i))2]1(18)
其中SRt (i)为相对成功率,超车手的相对成功率由其适应度值与种群内最差个体的适应度值之比确定:
S t R ( i ) = r t ( i ) max ⁡ i = 1 R r t ( i ) (19) S_t^R(i)=\frac{r_t(i)}{\max_{i=1}^Rr_t(i)}\tag{19} StR(i)=maxi=1Rrt(i)rt(i)(19)
冲刺骑手位置更新:
X t + 1 A ( i , j ) = X L ( L , j ) + [ cos ⁡ ( T i , j t ) ∗ X L ( L , j ) ] + d i t (20) X_{t+1}^A(i,j)=X^L(L,j)+\left[\cos\left(T_{i,j}^t\right)*X^L(L,j)\right]+d_i^t\tag{20} Xt+1A(i,j)=XL(L,j)+[cos(Ti,jt)XL(L,j)]+dit(20)

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Binu D, Kariyappa B S. RideNN: A new rider optimization algorithm-based neural network for fault diagnosis in analog circuits[J]. IEEE Transactions on Instrumentation and Measurement, 2018, 68(1): 2-26.

  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小O的算法实验室

谢谢大佬的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值