一、互联银行系统优化算法
互联银行系统优化(Connected Banking System Optimizer,CBSO)算法是2024年由Mehrdad Nemati等人提出的一种智能优化算法,其灵感来源于银行系统之间的连接和交易过程。在银行系统中,核心银行出现问题会影响其他银行,甚至可能导致整个系统崩溃。银行之间可以通过双边交易直接连接,成功连接的银行会影响其他连接的质量。
算法流程:
确定候选解在搜索空间中的初始位置 :在算法开始时,首先确定候选解在搜索空间中的初始位置。
评估初始位置的适应度值 :对这些初始位置的适应度值进行评估,以确定它们的质量。
确定并评估最佳解 :从初始位置中确定最佳解,并对其进行评估,以了解其性能。
生成 RN1 和 R1 的值 :生成随机数 RN1 和 R1 的值,这些值可能用于后续的计算或决策过程。
检查更新机制 :检查是否存在更新机制,以确定是否需要对当前解进行更新。
开始第二阶段 :如果满足一定条件,进入算法的第二阶段。
选择两个随机解 :在第二阶段中,选择两个随机解,以便进行进一步的处理或组合。
将解分成两半 :将选择的解分成两半,这可能是为了进行交叉、变异或其他操作。
生成 RN2 和 R2 的值 :生成随机数 RN2 和 R2 的值,这些值可能用于后续的计算或决策过程。
检查更新机制 :再次检查更新机制,以确定是否需要对当前解进行更新。
进入第三阶段 :如果满足一定条件,进入算法的第三阶段。
检查终止条件是否满足 :在第三阶段中,检查算法的终止条件是否满足。如果满足,则结束算法并输出最优解;如果不满足,则返回到前面的步骤继续迭代,直到满足终止条件为止。
输出最优解 :当算法满足终止条件时,输出找到的最优解。
参考文献:
[1]Nemati, M., Zandi, Y. & Sabouri, J. Application of a novel metaheuristic algorithm inspired by connected banking system in truss size and layout optimum design problems and optimization problems. Sci Rep 14, 27345 (2024). https://doi.org/10.1038/s41598-024-79316-z
二、移动机器人路径规划及栅格地图环境搭建
移动机器人路径规划是移动机器人研究的核心领域之一,旨在为机器人从起点到目标点生成一条安全、无碰撞且最优的路径。路径规划根据环境信息的已知程度,分为全局路径规划和局部路径规划。全局路径规划假设环境信息已知,适用于静态环境;局部路径规划则适用于环境信息未知或部分已知的动态环境。随着机器人技术的发展,路径规划算法不断演进,从传统的栅格法和人工势场法,发展到现代的智能优化算法,如遗传算法、粒子群优化算法(PSO)、麻雀搜索算法(SSA)、灰狼优化算法和鲸鱼优化算法等。
- 栅格法:将环境划分为二维或三维的栅格,机器人在栅格间移动。该方法简单直观,但存储需求随空间增大而剧增,决策速度下降。
- 人工势场法:通过模拟引力和斥力引导机器人移动,但容易陷入局部最优解和死锁现象。
- 智能优化算法:如蚁群算法通过模拟蚂蚁释放信息素的行为,能够找到最优路径,但存在收敛速度慢的问题。改进的蚁群算法通过引入跳点搜索和信息素更新策略,提高了收敛速度和路径平滑度。麻雀搜索算法基于麻雀觅食行为,具有结构简单、收敛速度快的优点,适用于路径优化问题。
栅格地图是路径规划中常用的环境表示方法,通过将工作空间划分为二维栅格来简化环境建模。每个栅格用序号标识,无障碍物的栅格为可行栅格(标记为0),有障碍物的栅格为不可行栅格(标记为1)。栅格的尺寸根据障碍物尺寸和安全距离设置。通过障碍物膨胀,可以确保机器人在路径规划时避开障碍物。
在20x20的栅格环境中,每个栅格的坐标通过以下公式计算:
x=mod(Ni/N)−0.5
x = \text{mod}(N_i / N) - 0.5
x=mod(Ni/N)−0.5
y=N−ceil(Ni/N)+0.5
y = N - \text{ceil}(N_i / N) + 0.5
y=N−ceil(Ni/N)+0.5
其中,NiN_iNi 是栅格的序号,NNN 是每列的栅格数量。栅格中心位置作为其在坐标系中的坐标。路径规划问题转化为在栅格地图上寻找从起始点到目标点的有序栅格子集,这些栅格子集的中心连线即为规划路径。
参考文献:
[1]史恩秀,陈敏敏,李俊,等.基于蚁群算法的移动机器人全局路径规划方法研究[J].农业机械学报, 2014, 45(6):5.DOI:CNKI:SUN:NYJX.0.2014-06-009.
[2]朱庆保,张玉兰.基于栅格法的机器人路径规划蚁群算法[J].机器人, 2005, 27(2):5.DOI:10.3321/j.issn:1002-0446.2005.02.008.
[3]曹新亮,王智文,冯晶,等.基于改进蚁群算法的机器人全局路径规划研究[J].计算机工程与科学, 2020, 42(3):7.DOI:CNKI:SUN:JSJK.0.2020-03-027.
三、部分MATLAB及结果
clc
clear
close all
tic
%% 地图
global G S E
G=[0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0;
0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0;
0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0;
0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0;
0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0;
0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0;
0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0;
0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0;
0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0;
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0;
1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0;
1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0;
0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0;];
for i=1:20/2
for j=1:20
m=G(i,j);
n=G(21-i,j);
G(i,j)=n;
G(21-i,j)=m;
end
end
%%
S = [1 1]; %起点
E = [20 20]; %终点
[ub,dimensions] = size(G);
dim = dimensions - 2;