引导学习策略:一种新的元启发式算法设计与改进的更新机制


在这里插入图片描述

1.摘要

元启发式算法(MH)是一种受自然启发的全局优化算法。这些算法通常相对简单,能在短时间内解决问题,带来一定的益处。然而,随着问题复杂度的增加,算法能够获得的解通常不是问题的最优解,这限制了它的应用场景。因此,提高现有算法的性能和解决精度对于扩大它们的应用能力至关重要。在传统优化算法中,通常有两个概念,即探索和开发。探索指的是广泛的离散搜索,用于避免陷入局部最优;开发则指的是小范围的集中探索,用于提高算法精度。如何平衡探索与开发是提升算法性能和问题适应性的关键。本文提出了一个全新的策略,名为引导学习策略(GLS),以解决上述问题。GLS通过计算近几代个体历史位置的标准差来获得种群的离散度,并推断算法当前需要什么指导。当算法倾向于探索时,它将指导算法进行开发;否则,它将指导算法进行探索。

2.GLS策略

算法需要通过动态平衡探索和开发来有效解决问题,这类似于教学中的反馈机制。文中提出了一种用于分析和指导算法的机制,其中包括定义反馈结果Vo和参数α,以及设置经验上限Cmax来调整指导的频率和持续时间。算法的当前需求通过计算历史个体(学习经验)的离散度来评估,离散度高表示算法正在探索,而集中则表示正在开发。最后,反馈结果通过标准化处理,使得不同情况下都能使用同一套评价标准。

V o = s t d ( S t ) ∗ B B = 200 / ( u b − l b ) (1) \begin{array}{l}Vo=std(St)*B\\\\B=200/(ub-lb)\end{array}\tag{1} Vo=std(St)BB=200/(ublb)(1)

St代表学习经验,存储历史中最近的Cmax个个体X,B用于标准化Vo以防止其受到问题上下界变化的影响。位置更新:
X n e w = { X b e s t + tan ⁡ ( R ∗ π ) ∗ ( u b − l b ) / V o , V o > α R ∗ ( u b − l b ) , V o ≤ α (2) Xnew=\left\{\begin{array}{l}Xbest+\tan(R*\pi)*(ub-lb)/Vo,Vo>\alpha\\R*(ub-lb),Vo\leq\alpha\end{array}\right.\tag{2} Xnew={Xbest+tan(Rπ)(ublb)/Vo,Vo>αR(ublb),Voα(2)

在指导阶段,算法将被引导以获得指导结果Xnew。当检测到算法当前的需求是开发(Vo > α)时,将指导算法并利用历史上的最优个体。当检测到算法当前的需求是探索(Vo ≤ α)时,将指导算法并探索全局空间。

在这里插入图片描述

伪代码

在这里插入图片描述
流程图

在这里插入图片描述

3.结果展示

作者上传的Github链接已撤销,故复现一下GLS改进策略,应用到海洋捕食者算法MPA。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Jia H, Lu C. Guided learning strategy: A novel update mechanism for metaheuristic algorithms design and improvement[J]. Knowledge-Based Systems, 2024, 286: 111402.

5.代码获取

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值