MultiObjectiveStochasticDescentHillClimberMutation#

class pybrops.opt.algo.pymoo_addon.MultiObjectiveStochasticDescentHillClimberMutation(setspace, phc, nhc=None, **kwargs)[source]#

Bases: Mutation

Perform a memetic subset exchange mutation.

Constructor for MultiObjectiveStochasticDescentHillClimberMutation.

Parameters:

kwargs (dict) – Additional keyword arguments used for cooperative inheritance.

Methods

do

Perform steepest descent hillclimber for subset chromosomes

get_prob_var

hillclimb

Hillclimb mutation for a single individual.

Attributes

setspace

Set space from which to sample elements.

__call__(problem, elem, *args, to_numpy=False, **kwargs)#

Call self as a function.

do(problem, pop, inplace=True, **kwargs)[source]#

Perform steepest descent hillclimber for subset chromosomes

Parameters:
  • problem (pymoo.core.problem.Problem) – An optimization problem.

  • pop (pymoo.core.population.Population) – A population of individuals to mutate.

  • inplace (bool) – Whether to modify a population in-place.

Returns:

out – A mutated population.

Return type:

pymoo.core.population.Population

hillclimb(prob, indiv, *args, **kwargs)[source]#

Hillclimb mutation for a single individual. For a single individual, pick a single allele locus and mutate it with all alternative alleles. Remove individuals that are dominated. Return a population of individuals that are non-dominated.

Parameters:
  • prob (pymoo.core.problem.Problem) – Problem object.

  • indiv (pymoo.core.individual.Individual) – A single individual to mutate via a hillclimb.

Returns:

out – Chromosome of a single individual.

Return type:

pymoo.core.population.Population

property setspace: ndarray#

Set space from which to sample elements.