萤火虫群优化 (GSO) 是一种自然启发算法,旨在解决优化问题,特别是那些具有多个最优解的问题。 它模拟了萤火虫的行为,萤火虫利用生物发光来吸引黑暗环境中的同伴。 在 GSO 中,人工代理(萤火虫)在搜索空间中移动,根据附近邻居的亮度调整其位置。 每只萤火虫都携带一个“萤光素”值,该值代表其当前位置的质量——较高的萤光素意味着更好的解决方案。 该算法迭代地更新代理的位置,使群体能够同时识别并收敛到多个最优值,使其适用于多峰优化任务,如传感器部署或机器人路径规划。
该过程首先初始化具有随机位置和萤光素值的萤火虫。 在每次迭代期间,每个代理都会根据其当前位置的适应度(例如,目标函数值)更新其萤光素。 接下来,萤火虫检测动态“决策范围”内的邻居,这决定了它们的可见性。 每个代理选择一个具有较高萤光素的邻居并向其移动,步长由亮度差异和距离控制。 例如,在机器人群搜索多个目标时,机器人(萤火虫)会倾向于靠近目标的同伴,从而分割群以覆盖不同的区域。 决策范围也会随着时间的推移而适应,以避免过度拥挤,确保代理分散开来以探索搜索空间的不同区域。
对于需要发现多个峰值或解决方案的问题,GSO 具有优势。 与收敛到单个全局最优值的粒子群优化 (PSO) 不同,GSO 通过允许子组围绕局部最优值形成来保持群的多样性。 例如,在无线传感器网络部署中,GSO 可以将传感器定位在多个事件热点周围,而不会重叠覆盖范围。 开发人员可以通过调整萤光素衰减率、步长和邻居计数等参数来实施 GSO,从而平衡探索和利用。 虽然对于中等规模的问题来说,计算效率很高,但其性能取决于参数选择和问题复杂性。 这种灵活性使 GSO 成为图像处理、聚类或路线优化等任务的实用工具,在这些任务中,多个高质量的解决方案是有价值的。