Push and pull search is a constrained multi-objective evolutionary algorithm (CMOEA).
Python 100.00%
pps's Introduction
PPS: Push and pull search
Reference: Fan Z, Li W, Cai X, et al. Push and pull search for solving constrained multi-objective optimization problems[J]. Swarm and Evolutionary Computation, 2019, 44: 665-679.
PPS is a constrained multi-objective evolutionary algorithm (CMOEA). In the push stage, a MOEA is used to explore the search space without considering any constraints. The pull stage handles constraints with a adjustable epsilon level.
Variables
Meaning
npop
Population size
iter
Iteration number
lb
Lower bound
ub
Upper bound
T
Neighborhood size (default = 30)
delta
The probability of selecting individuals in the neighborhood (default = 0.9)
nr
The maximal number of solutions replaced by a child (default = 2)
tau
Control the scale factor multiplied by the maximum overall constraint violation (default = 0.1)
alpha
Control the searching preference between the feasible and infeasible regions (default = 0.95)
Tc
Control generation (default = 0.8 * iter)
cp
Control the speed of reducing relaxation of constraints (default = 2)
last_gen
The last generation (default = 20)
CR
Crossover rate (default = 1)
F
Mutation scalar number (default = 0.5)
eta_m
Spread factor distribution index (default = 20)
nvar
The dimension of decision space
nobj
The dimension of objective space
ideal
The ideal points
nadir
The nadir points
V
Weight vectors
B
The T closet weight vectors
pop
Population
objs
Objectives
phi
Constraint violations
phi_max
The maximum overall constraint violation found so far
push_stage
Denotes the search is in the push stage
rk
The max rate of change between the ideal and nadir points during the last last_gen generations