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:

70af07697b1e49fe837ff3f6e165f58d

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.99999552 0.99995705 0.99995392 0.99988342 0.99990366 0.99983088
 0.99988264 0.99975641 0.99968556 2.999569   2.99942706 2.9989723
 0.9999679 ]
F = [-14.99594502]
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 – The stochastic ranking weight for bubble sort decisions.

  • **kwargs – Additional strategy parameters.