Non-dominated sorting genetic algorithm (NSGA-III)

NSGA3 - Non-dominated sorting genetic algorithm

class glennopt.optimizers.nsga3.NSGA3(eval_command: str = 'python evaluation.py', eval_folder: str = 'Evaluation', pop_size: int = 128, optimization_folder: Optional[str] = None, single_folder_eval=False, overwrite_input_file=False, pareto_resolution: int = 4)[source]
__crossover_mutate__(individuals: List[Individual])[source]

[summary]

Parameters

individuals (List[Individual]) – [description]

Returns

[description]

Return type

[type]

__optimize__(individuals: List[Individual], n_generations: int, pop_start: int, reference_points: ndarray)[source]

NSGA-III main loop Note: This function will read given starting population’s results in, perform necessary crossover and mutation to generate enough individuals for the next iteration (self.pop_size)

Inputs:

individuals - list of individuals to evaluate n_generations - number of generations to loop through pop_start - starting population number

add_eval_parameters(eval_params: List[Parameter])[source]

Add evaluation parameters. This is part of the initialization

Parameters

eval_params (List[Parameter]) – Add in a list of evaluation parameters

add_objectives(objectives: List[Parameter])[source]

Add the objectives

Parameters

objectives (List[Parameter]) – [description]

add_performance_parameters(performance_params: Optional[List[Parameter]] = None)[source]

Add performance parameters

Parameters

performance_params (List[Parameter], optional) – [description]. Defaults to None.

property mutation_params

Get Mutation parameters

Returns

parameter class describes the mutation

Return type

mutation_parameters

optimize_from_population(pop_start: int, n_generations: int)[source]

Reads the values of a population, this can be a DOE or a previous evaluation Starts the optimization

Inputs:

pop_start (-1 for DOE), reads the population folder and starts at pop_start+1 n_generations - number of generations to run for

start_doe(doe_individuals: Optional[List[Individual]] = None, doe_size: int = 128)[source]

Starts a design of experiments. This generates the parameters for the individuals to be evaluated and executes each case. If the DOE has already started and there is an output file for an individual then the individual won’t be evaluated

Parameters
  • doe_individuals (List[Individual], optional) – List of individuals. Defaults to None.

  • doe_size (int, optional) – [description]. Defaults to 128.

glennopt.optimizers.nsga3.random() x in the interval [0, 1).