深度强化学习通常是怎么解决带约束的优化问题的?
深度强化学习通常是怎么解决带约束的优化问题的?约束条件体现在哪里,是要把有约束的优化问题转化成无约束的吗?
违反约束加一个惩罚就行了
一个优化问题不可能没有约束。个人理解,对于约束,要么通过奖赏函数来设定,使得智能体学习到满足约束的策略,要么就把约束转化为规则,以规则+学习的方式进行智能体的训练,还有一种,就是把约束嵌入环境,等同于环境模型的约束。
硬约束的话直接写规则。
软约束的话可以在目标函数里加惩罚项;或者更通用的,直接改写reward函数就行了。
论文题目:Cooperative Multiobjective Evolutionary Algorithm With Propulsive Population for Constrained Multiobjective Optimization
论文发表时间和期刊:IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS: SYSTEMS, VOL. 52, NO. 6, JUNE 2022
算法思想
本文提出了一种带有推进种群的合作多目标进化算法(CMOEA-PP)。CMOEA-PP有推进种群和正常种群两个种群,这两个种群协同工作。具体来说,推进型人口侧重于收敛。正常人口优先考虑可行性,有义务保持多样性。为了穿越不可行的区域到达帕累托前沿(PF),推进种群不考虑前期约束,只考虑后期约束。为了进一步加快收敛速度,推进种群只搜索角点解和中心解,而正常种群搜索整个PF,导致推进种群由于不关注可行性,可以穿过不可行区域。此外,推进型种群还可以引导和加速进化过程的收敛。
1、算法整体流程
2、种群定义
CMOEA-PP中的两个种群,称为推进种群和正常种群,协同工作以解决CMOPs
a. 推进种群
推进种群研究仅选取2M+1个角解。其中包括M个子问题、M个同时优化除一个(M?1)个目标以外的所有目标问题及一个中心解问题(下图所示)。
利用具有(2M + 1)个预定义权重向量的成就标度函数(ASF),可以将上述子问题转化为(2M + 1)个单目标问题。
推进种群的权重向量定义如下
AFS值定义
值越小,表示它在子问题上的性能越好
对于每个子问题,种群中的所有个体将根据其在该子问题中的表现进行排序。当排序完成后,种群中的每个个体X根据排序得到一个位置值Ri(X),种群中的每个个体都有(2M + 1)个位置值。
推进人口在前期不考虑可行性信息,在后期优先考虑可行性个体。当推进种群不考虑可行性信息时,种群中所有个体按 值由小到大进行排序。当推进种群优先考虑可行个体时,认为可行个体比不可行个体表现更好,此时采用混合CDP的方法进行筛选。
当(2M +1)排序完成时,种群中的每个个体得到(2M +1)个位置值。个体X的最终排名值rank (X)计算如下
推进种群中的使用DE算子产生后代,选择了勘探突变能力的算子DE/current-to-rand/1
为推进种群的个体, 和 为推进种群或正常种群的个体
推进种群个体更新机制及繁殖机制伪代码
b. 正常种群
3、环境选择与种群更新
(1)推进种群更新
输入:推进种群 、两个后代种群 与 、种群更新代数t
输出:新一代推进种群
a. 合并推进种群
b. 对于2M+1个子问题,若当前代数t大于 ,则根据约束违反程度以及ASF值对个体进行排名,使得个体获得排名值。否则,根据ASF值对个体进行排名。
c. 计算个体最终排名
d. 根据最终排名进行升序排序
e. 按照排名顺序放入推进种群
(2)正常种群更新
正常种群采用SPEA2和CDP的更新机制。具体来说,在正常种群中,可行方案比不可行方案更受青睐。对于所有可行解,根据目标函数作为SPEA2的更新机制,用它们的支配关系对它们进行评价。对于所有不可行的解,总约束违反值越小的解在下一代中生存的机会越大。
输入:推进种群 、两个后代种群 与 、种群更新代数t
输出:新一代推进种群
a. 合并推进种群
b. 基于SPEA2与CDP挑选个体更新
4、、算法整体步骤
输入:问题目标数M,常规种群个体大小 ,推进种群个体大小
输出:常规种群
a. t=0
b. 初始化:构造推进种群的2M+1个权重向量、初始化正常种群、初始化推进种群
c. 当不符合停止准则时:
产生正常种群后代 ,产生推进种群后代
利用环境选择挑选个体,更新推进种群和正常种群
XuanAxuan:【深度强化学习】Constraint RL for safe exploration:primal-dual optimization 算法