Multiobjective algorithms¶
NSGA-II¶
-
class
jmetal.algorithm.multiobjective.nsgaii.
NSGAII
(problem: jmetal.core.problem.Problem[S], population_size: int, max_evaluations: int, mutation: jmetal.core.operator.Mutation[S], crossover: jmetal.core.operator.Crossover[S, S], selection: jmetal.core.operator.Selection[typing.List[S], S], evaluator: jmetal.component.evaluator.Evaluator[S] = <jmetal.component.evaluator.SequentialEvaluator object>)¶ Bases:
jmetal.algorithm.singleobjective.evolutionaryalgorithm.GenerationalGeneticAlgorithm
NSGA-II implementation as described in
- K. Deb, A. Pratap, S. Agarwal and T. Meyarivan, “A fast and elitist multiobjective genetic algorithm: NSGA-II,” in IEEE Transactions on Evolutionary Computation, vol. 6, no. 2, pp. 182-197, Apr 2002. doi: 10.1109/4235.996017
NSGA-II is a genetic algorithm (GA), i.e. it belongs to the evolutionary algorithms (EAs) family. The implementation of NSGA-II provided in jMetalPy follows the evolutionary algorithm template described in the algorithm module (
jmetal.core.algorithm
).Parameters: - problem – The problem to solve.
- population_size – Size of the population.
- max_evaluations – Maximum number of evaluations/iterations.
- mutation – Mutation operator (see
jmetal.operator.mutation
). - crossover – Crossover operator (see
jmetal.operator.crossover
). - selection – Selection operator (see
jmetal.operator.selection
). - evaluator – An evaluator object to evaluate the individuals of the population.
-
get_name
() → str¶
-
get_result
()¶
-
replacement
(population: typing.List[S], offspring_population: typing.List[S]) → typing.List[typing.List[S]]¶ This method joins the current and offspring populations to produce the population of the next generation by applying the ranking and crowding distance selection.
Parameters: - population – Parent population.
- offspring_population – Offspring population.
Returns: New population after ranking and crowding distance selection is applied.
-
jmetal.algorithm.multiobjective.nsgaii.
R
¶
SMPSO¶
-
jmetal.algorithm.multiobjective.smpso.
R
= ~R¶
-
class
jmetal.algorithm.multiobjective.smpso.
SMPSO
(problem: jmetal.core.problem.FloatProblem, swarm_size: int, max_evaluations: int, mutation: jmetal.core.operator.Mutation[jmetal.core.solution.FloatSolution], leaders: jmetal.component.archive.BoundedArchive[jmetal.core.solution.FloatSolution], evaluator: jmetal.component.evaluator.Evaluator[jmetal.core.solution.FloatSolution] = <jmetal.component.evaluator.SequentialEvaluator object>)¶ Bases:
jmetal.core.algorithm.ParticleSwarmOptimization
This class implements the SMPSO algorithm as described in
- SMPSO: A new PSO-based metaheuristic for multi-objective optimization
- MCDM 2009. DOI: http://dx.doi.org/10.1109/MCDM.2009.4938830/.
The implementation of SMPSO provided in jMetalPy follows the algorithm template described in the algorithm templates section of the documentation.
Parameters: - problem – The problem to solve.
- swarm_size – Swarm size.
- max_evaluations – Maximum number of evaluations.
- mutation – Mutation operator.
- leaders – Archive for leaders.
- evaluator – An evaluator object to evaluate the solutions in the population.
-
create_initial_swarm
() → typing.List[jmetal.core.solution.FloatSolution]¶
-
evaluate_swarm
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → typing.List[jmetal.core.solution.FloatSolution]¶
-
get_result
() → typing.List[jmetal.core.solution.FloatSolution]¶
-
init_progress
() → None¶
-
initialize_global_best
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
initialize_particle_best
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
initialize_velocity
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
is_stopping_condition_reached
() → bool¶
-
perturbation
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
select_global_best
() → jmetal.core.solution.FloatSolution¶
-
update_global_best
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
update_particle_best
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
update_position
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
update_progress
() → None¶
-
update_velocity
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
class
jmetal.algorithm.multiobjective.smpso.
SMPSORP
(problem: jmetal.core.problem.FloatProblem, swarm_size: int, max_evaluations: int, mutation: jmetal.core.operator.Mutation[jmetal.core.solution.FloatSolution], reference_points: typing.List[typing.List[float]], leaders: typing.List[jmetal.component.archive.BoundedArchive[jmetal.core.solution.FloatSolution]], evaluator: jmetal.component.evaluator.Evaluator[jmetal.core.solution.FloatSolution] = <jmetal.component.evaluator.SequentialEvaluator object>)¶ Bases:
jmetal.algorithm.multiobjective.smpso.SMPSO
This class implements the SMPSORP algorithm.
Parameters: - problem – The problem to solve.
- swarm_size –
- max_evaluations –
- mutation –
- leaders – List of bounded archives.
- evaluator – An evaluator object to evaluate the solutions in the population.
-
get_result
() → typing.List[jmetal.core.solution.FloatSolution]¶
-
init_progress
() → None¶
-
initialize_global_best
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
select_global_best
() → jmetal.core.solution.FloatSolution¶
-
update_global_best
(swarm: typing.List[jmetal.core.solution.FloatSolution]) → None¶
-
update_leaders_density_estimator
()¶
-
update_progress
() → None¶