Algorithms

Algorithms#

class pymoo.algorithms.soo.nonconvex.ga.GA(pop_size=100, sampling=<pymoo.operators.sampling.rnd.FloatRandomSampling object>, selection=<pymoo.operators.selection.tournament.TournamentSelection object>, crossover=<pymoo.operators.crossover.sbx.SBX object>, mutation=<pymoo.operators.mutation.pm.PM object>, survival=<pymoo.algorithms.soo.nonconvex.ga.FitnessSurvival object>, eliminate_duplicates=True, n_offsprings=None, output=<pymoo.util.display.single.SingleObjectiveOutput object>, **kwargs)[source]

Genetic algorithm for single-objective optimization.

Parameters:
  • pop_size – The population size.

  • sampling – The sampling strategy.

  • selection – The selection strategy for parent selection.

  • crossover – The crossover operator.

  • mutation – The mutation operator.

  • survival – The survival strategy.

  • eliminate_duplicates – Whether to eliminate duplicate solutions.

  • n_offsprings – The number of offsprings per generation.

  • output – The output display configuration.

class pymoo.algorithms.soo.nonconvex.de.DE(pop_size=100, n_offsprings=None, sampling=<pymoo.operators.sampling.rnd.FloatRandomSampling object>, variant='DE/best/1/bin', output=<pymoo.util.display.single.SingleObjectiveOutput object>, **kwargs)[source]
class pymoo.algorithms.soo.nonconvex.pso.PSO(self, pop_size=25, sampling=LHS(), w=0.9, c1=2.0, c2=2.0, adaptive=True, initial_velocity='random', max_velocity_rate=0.20, pertube_best=True, repair=NoRepair(), output=PSOFuzzyOutput(), **kwargs)[source]

Particle Swarm Optimization algorithm.

Parameters:
  • pop_size – The size of the swarm being used.

  • sampling – Sampling strategy.

  • adaptive – Whether w, c1, and c2 are changed dynamically over time.

  • w – Inertia weight for velocity update.

  • c1 – Cognitive impact (personal best) during velocity update.

  • c2 – Social impact (global best) during velocity update.

  • initial_velocity – How to initialize particle velocities (‘random’ or ‘zero’).

  • max_velocity_rate – Maximum velocity rate normalized by problem bounds.

  • pertube_best – Whether to mutate the global best solution.

  • repair – Repair strategy for handling constraints.

  • output – Output display strategy.

  • **kwargs – Additional algorithm parameters.

class pymoo.algorithms.moo.nsga2.NSGA2(pop_size=100, sampling=<pymoo.operators.sampling.rnd.FloatRandomSampling object>, selection=<pymoo.operators.selection.tournament.TournamentSelection object>, crossover=<pymoo.operators.crossover.sbx.SBX object>, mutation=<pymoo.operators.mutation.pm.PM object>, survival=<pymoo.operators.survival.rank_and_crowding.classes.RankAndCrowding object>, output=<pymoo.util.display.multi.MultiObjectiveOutput object>, **kwargs)[source]
class pymoo.algorithms.moo.rnsga2.RNSGA2(self, ref_points, epsilon=0.001, normalization='front', weights=None, extreme_points_as_reference_points=False, **kwargs)[source]

Initialize R-NSGA-II algorithm.

Parameters:
  • ref_points – Reference points.

  • epsilon – Distance threshold for epsilon-neighbor clustering.

  • normalization – Normalization strategy (‘no’, ‘front’, ‘ever’).

  • weights – Weight vector for objectives.

  • extreme_points_as_reference_points – Whether to include extreme points as references.

  • **kwargs – Additional arguments passed to NSGA2.

class pymoo.algorithms.moo.moead.MOEAD(ref_dirs=None, n_neighbors=20, decomposition=None, prob_neighbor_mating=0.9, sampling=<pymoo.operators.sampling.rnd.FloatRandomSampling object>, crossover=<pymoo.operators.crossover.sbx.SBX object>, mutation=<pymoo.operators.mutation.pm.PM object>, output=<pymoo.util.display.multi.MultiObjectiveOutput object>, **kwargs)[source]