多目标进化算法系列

  1. 多目标进化算法(MOEA)概述
  2. 多目标优化-测试问题及其Pareto前沿
  3. 多目标进化算法详述-MOEA/D与NSGA2优劣比较
  4. 多目标进化算法-约束问题的处理方法
  5. 基于C#的多目标进化算法平台MOEAPlat实现
  6. MOEAD中聚合函数等高线分析
  7. MOEAD中一种使解更均匀分布的聚合函数介绍

现实世界中的多目标优化问题往往包含不等式约束和等式约束,对于这类带约束条件的多目标优化问题,需要使用有别于无约束优化问题的处理方法。下面首先给出带约束条件的多目标优化问题的的定义:
Definition : 约束多目标优化问题

带约束多目标优化python代码 多目标约束优化算法_约束多目标优化

在这个定义式中,为了描述方便,将所有的不等式约束都转换为了带约束多目标优化python代码 多目标约束优化算法_约束支配_02的形式。其中带约束多目标优化python代码 多目标约束优化算法_MOEA_03为目标函数的个数,带约束多目标优化python代码 多目标约束优化算法_MOEA_04为决策变量的个数,带约束多目标优化python代码 多目标约束优化算法_约束多目标优化_05为不等式约束条件的个数,带约束多目标优化python代码 多目标约束优化算法_多目标进化算法_06为等式约束条件的个数,带约束多目标优化python代码 多目标约束优化算法_约束支配_07带约束多目标优化python代码 多目标约束优化算法_多目标进化算法_08分别为第带约束多目标优化python代码 多目标约束优化算法_约束支配_09个决策变量带约束多目标优化python代码 多目标约束优化算法_多目标进化算法_10的下限和上限值。

针对这类带约束条件的优化问题,使用无约束多目标进化算法处理的方法显然是不可行的,为了解决这类约束多目标优化问题,针对基于Pareto支配关系的算法,主要使用带约束的支配关系(constrained-dominance)来处理,而对于基于分解的算法,则使用新的替换策略来更新解。

为了详细说明上述两种方法,现介绍几个重要的概念。

对于一个解带约束多目标优化python代码 多目标约束优化算法_MOEA_11,若其满足约束条件,则称该解为可行解(feasible solution),若不满足,则称之为不可行解(infeasible solution)。

对于不可行解,如何描述其违反约束的程度呢,一般使用约束违反值(constraint violation value),该值用来定量描述一个解违反约束条件的程度。对于一个解带约束多目标优化python代码 多目标约束优化算法_MOEA_11,其值可如下表达

带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_13

其中带约束多目标优化python代码 多目标约束优化算法_约束多目标优化_14表示若带约束多目标优化python代码 多目标约束优化算法_MOEA_15,则带约束多目标优化python代码 多目标约束优化算法_约束支配_16,否则带约束多目标优化python代码 多目标约束优化算法_约束多目标优化_17。显然,对于一个解,其CV值越小,说明该解越优。同时,对于一个可行解,其CV值为0,对于不可行解,其CV值则大于0。

下面介绍约束支配关系,对于任意两个解带约束多目标优化python代码 多目标约束优化算法_MOEA_18带约束多目标优化python代码 多目标约束优化算法_MOEA_11约束支配带约束多目标优化python代码 多目标约束优化算法_MOEA_20的条件满足以下条件的任一项即可:

  1. 带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_21是可行解,而带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_22是不可行解;
  2. 带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_23都不是可行解,但带约束多目标优化python代码 多目标约束优化算法_约束多目标优化_24
  3. 带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_23都是可行解,且带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_21 Pareto支配 带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_22

以上便是约束支配关系的描述,对于一个带约束的多目标优化问题,便可直接将该支配关系应用到基于Pareto支配关系的多目标进化算法中,如NSGA-II,NSGA-III等,同时,对于无约束多目标优化问题,该支配关系显然也是有效的。

下面介绍基于分解的算法处理约束多目标优化问题中的替换策略。假设带约束多目标优化python代码 多目标约束优化算法_MOEA_20是新生成的子代解,选择一个邻居解带约束多目标优化python代码 多目标约束优化算法_MOEA_11来确定是否用解带约束多目标优化python代码 多目标约束优化算法_MOEA_20替换解带约束多目标优化python代码 多目标约束优化算法_MOEA_11,满足以下条件的任一项则替换之:

  1. 带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_21是不可行解,带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_22是可行解;
  2. 带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_23都不是可行解,但带约束多目标优化python代码 多目标约束优化算法_MOEA_35
  3. 带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_23都是可行解,但解带约束多目标优化python代码 多目标约束优化算法_带约束多目标优化python代码_22的聚合函数值更小

该替换策略可直接用到MOEA/D或其他基于分解思想的多目标进化算法中来处理约束多目标优化问题。

以上便是目前约束多目标优化问题处理的一些常用方法。

QQ交流群:399652146

参考:

  1. Deb K, Pratap A, Meyarivan T. Constrained Test Problems for Multi-objective Evolutionary Optimization[C]// Evolutionary Multi-Criterion Optimization, First International Conference, EMO 2001, Zurich, Switzerland, March 7-9, 2001, Proceedings. 2001:284–298.
  2. Jain H, Deb K. An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point Based Nondominated Sorting Approach, Part II: Handling Constraints and Extending to an Adaptive Approach[J]. IEEE Transactions on Evolutionary Computation, 2014, 18(4):602-622.
  3. Li K, Deb K, Zhang Q, et al. An Evolutionary Many-Objective Optimization Algorithm Based on Dominance and Decomposition[J]. IEEE Transactions on Evolutionary Computation, 2015, 19(5):694-716.