【论文复现|智能算法改进】基于多策略麻雀搜索算法的机器人路径规划 改进点:改进的无限折叠迭代混沌映射 改进点:改进的发现者更新公式 改进点:改进的侦察者比例 改进点:正弦余弦算法 杨红,杨超.基于多策略麻雀搜索算法的机器人路径规划[J].沈阳大学学报(自然科学版),2024,36(02):141-152.

最近在研究机器人路径规划相关内容,发现了一篇超有意思的论文——《基于多策略麻雀搜索算法的机器人路径规划》,作者是杨红和杨超,发表在《沈阳大学学报(自然科学版)》2024 年第 36 卷第 02 期上,果断来和大家分享分享。

一、改进点剖析

1. 改进的无限折叠迭代混沌映射

混沌映射在很多智能算法里都有应用,它能帮助算法更好地在搜索空间里探索。这里作者提出的无限折叠迭代混沌映射有点意思。在常规的混沌映射基础上,进行了迭代方式的创新,使得混沌序列的随机性和遍历性更好,能让麻雀搜索算法在初始种群的生成以及搜索过程中更具多样性。

比如说,经典的 Logistic 混沌映射公式是:$x{n + 1} = \mu xn(1 - xn)$,其中 $\mu$ 是控制参数,一般取在 $(3.57, 4]$ 之间,$xn$ 是当前迭代值。而改进的无限折叠迭代混沌映射可能会像下面这样(伪代码示意):

# 假设我们定义一个函数来实现改进的无限折叠迭代混沌映射
def improved_chaotic_map(x0, iter_num):
    x = [x0]
    for i in range(iter_num):
        if x[-1] < 0.5:
            x.append(2 * x[-1] * (1 - 2 * x[-1]))
        else:
            x.append(2 * (1 - x[-1]) * (2 * x[-1] - 1))
    return x

在这段代码里,通过对当前值的判断,进行不同的计算方式,使得生成的混沌序列与经典的 Logistic 混沌映射有所区别,能为麻雀搜索算法带来不一样的初始种群分布,有助于跳出局部最优解。

2. 改进的发现者更新公式

麻雀搜索算法里,发现者的作用是去探索新的区域,寻找潜在的更好解。原算法的发现者更新公式可能在某些复杂环境下效率不高,作者对其进行了改进。

【论文复现|智能算法改进】基于多策略麻雀搜索算法的机器人路径规划 改进点:改进的无限折叠迭代混沌映射 改进点:改进的发现者更新公式 改进点:改进的侦察者比例 改进点:正弦余弦算法 杨红,杨超.基于多策略麻雀搜索算法的机器人路径规划[J].沈阳大学学报(自然科学版),2024,36(02):141-152.

一般发现者更新公式可能类似:$X{i,j}^{t + 1} = X{i,j}^t(1 + \beta L)$,其中 $X_{i,j}^t$ 是第 $t$ 代第 $i$ 个麻雀在第 $j$ 维的位置,$\beta$ 是步长控制参数,$L$ 是一个 $1 \times d$ 的随机向量($d$ 是维度)。改进后的公式可能考虑了更多环境因素或者种群信息,比如(同样伪代码示意):

import numpy as np

# 假设这里的 pop_size 是种群数量,dim 是维度
def improved_finder_update(X, t, pop_size, dim, best_X):
    beta = 0.5
    L = np.random.rand(1, dim)
    new_X = np.zeros((pop_size, dim))
    for i in range(pop_size):
        if np.random.rand() < 0.8:
            new_X[i, :] = X[i, :] * (1 + beta * L) + np.random.rand() * (best_X - X[i, :])
        else:
            new_X[i, :] = X[i, :] * (1 + beta * L) - np.random.rand() * (best_X - X[i, :])
    return new_X

在这段代码里,通过增加一个随机判断,根据不同情况对发现者位置进行更新,考虑了当前全局最优解 best_X 的信息,让发现者在探索新区域时更有方向性,避免盲目搜索。

3. 改进的侦察者比例

侦察者在麻雀搜索算法里负责发现危险,及时调整种群的搜索策略。原算法的侦察者比例可能不太适应所有场景,作者对其进行了调整。通过动态改变侦察者的比例,能让算法在不同阶段更好地平衡全局探索和局部开发。

比如说在算法前期,环境信息了解少,可能适当增加侦察者比例,让种群更注重危险的发现,避免陷入危险区域(这里用简单变量 scout_ratio 示意侦察者比例):

# 假设 total_pop 是总种群数量
if t < total_iterations * 0.3:
    scout_ratio = 0.3
else:
    scout_ratio = 0.2

这里在算法前期(前 30% 的迭代次数)把侦察者比例设为 0.3,之后设为 0.2,根据不同阶段需求灵活调整,提升算法整体性能。

4. 正弦余弦算法

作者还引入了正弦余弦算法来辅助麻雀搜索算法。正弦余弦算法具有独特的搜索机制,它通过正弦和余弦函数的周期性和波动性来引导搜索。将其与麻雀搜索算法结合,能为算法带来新的搜索方向和方式。

简单示意结合的代码可能像这样(伪代码):

import math

def sine_cosine_help(X, t, pop_size, dim, best_X):
    a = 2
    for i in range(pop_size):
        for j in range(dim):
            r1 = np.random.rand()
            r2 = np.random.rand()
            if r1 < 0.5:
                X[i, j] = X[i, j] + r2 * a * math.sin(r1) * (best_X[j] - X[i, j])
            else:
                X[i, j] = X[i, j] + r2 * a * math.cos(r1) * (best_X[j] - X[i, j])
    return X

在这段代码里,通过 r1 的随机判断,利用正弦和余弦函数来调整麻雀的位置,借助正弦余弦算法的特性,帮助麻雀搜索算法在搜索空间里进行更细致的探索。

二、总结

这篇论文提出的基于多策略麻雀搜索算法的机器人路径规划,从多个方面对传统算法进行改进,确实为机器人路径规划提供了一种更有效的思路。通过改进的无限折叠迭代混沌映射、发现者更新公式、侦察者比例以及引入正弦余弦算法,有望在复杂环境下让机器人更快、更准确地规划出最优路径。之后有机会一定要亲自在实际场景中复现验证一下,看看效果到底如何,也欢迎大家一起交流探讨呀。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐