SRES: Stochastic Ranking Evolutionary Strategy

Contents

SRES: Stochastic Ranking Evolutionary Strategy#

Many different constraint handling methods have been proposed in the past. One way of addressing constraints in evolutionary strategy is to change the selection operator and give infeasible solutions a chance to survive. The survival is based on stochastic ranking, and thus the method is known as Stochastic Ranking Evolutionary Strategy [18].

The stochastic ranking is proposed as follows:

808bc58189ef42a38ee3c3288324fae9

Together with the effective evolutionary strategy search algorithm, this provides a powerful method to optimize constrained problems.

[1]:
from pymoo.algorithms.soo.nonconvex.sres import SRES
from pymoo.problems import get_problem
from pymoo.optimize import minimize

problem = get_problem("g1")

algorithm = SRES(n_offsprings=200, rule=1.0 / 7.0, gamma=0.85, alpha=0.2)

res = minimize(problem,
               algorithm,
               ("n_gen", 200),
               seed=1,
               verbose=False)

print("Best solution found: \nX = %s\nF = %s\nCV = %s" % (res.X, res.F, res.CV))
Best solution found:
X = [0.99997468 0.99997319 0.99987926 0.99997708 0.99907074 0.99951752
 0.9993391  0.99993842 0.99990203 2.99798795 2.99785281 2.99928644
 0.99962097]
F = [-14.99153712]
CV = [0.]

An improved version of SRES, called ISRES, has been proposed to deal with dependent variables. The dependence has been addressed by using the differential between individuals as an alternative mutation.

API#

class pymoo.algorithms.soo.nonconvex.sres.SRES(self, PF=0.45, **kwargs)[source]

Stochastic Ranking Evolutionary Strategy (SRES)

Parameters:
PF: float

The stochastic ranking weight for choosing a random decision while doing the modified bubble sort.