用于 C++ 机器人路径规划器的 FireFly 算法
作者:互联网
萤火虫算法(FA) 是一种基于萤火虫点燃后行为的随机优化算法。为了保证方法的有效性、实用性和简便性,将萤火虫的光度和趋光性理想化。萤火虫被重新定位到该区域最亮的萤火虫,并在算法运行过程中不断更新其位置,该算法仅搜索萤火虫的照度和趋光性伙伴。
FA 基于以下规则,可概括如下:
- 萤火虫不分性别,彼此之间的吸引力完全取决于它们的亮度。
- 两只萤火虫的吸引力与亮度成正比,与它们之间的距离成反比。
萤火虫的位置影响亮度。如果位置更好,萤火虫照亮的亮度会更强烈。萤火虫的亮度越高,吸引的萤火虫就越多。他们所处的位置会影响他们的才华。 - 期望的目标函数的值决定了萤火虫有多灿烂。
FA 非常简单有效,但是有一些必须评估和部署的常数参数。对于这篇文章,我遵循了可以在此处阅读的文章。作者指定了我在 C++ 中部署的成本函数。
这篇文章的 C++ 源代码可以在我的GitHub 上找到。
考虑到机器人路径规划器,我们正在寻找起点和目标之间的最短无障碍路径(此处为二维空间)。路径上的航路点(萤火虫的位置)必须按照成本函数必须达到全局最小值(优化问题)的方式进行选择。
所提出的算法在循环中运行并根据公式更新萤火虫的位置(机器人在我们试图找到的路径上的位置),
在哪里,