Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.0 - Français

Change language to:
English - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.
See the recommended documentation of this function

Aide de Scilab >> Algorithmes génétiques > Algorithms > optim_nsga


A multi-objective Niched Sharing Genetic Algorithm


[pop_opt,fobj_pop_opt,pop_init,fobj_pop_init] = optim_nsga(ga_f,pop_size,nb_generation,p_mut,p_cross,Log,param,sigma,pow)



the function to be optimized. The prototype if y = f(x) or y = list(f,p1,p2,...).


the size of the population of individuals (default value: 100).


the number of generations (equivalent to the number of iterations in classical optimization) to be computed (default value: 10).


the mutation probability (default value: 0.1).


the crossover probability (default value: 0.7).


if %T, will call the output function at the end of each iteration, see "output_func" under param variable below.


a list of parameters.

  • 'codage_func': the function which will perform the coding and decoding of individuals (default function: coding_ga_identity).

  • 'init_func': the function which will perform the initialization of the population (default function: init_ga_default).

  • 'dimension', 'minbounds' and 'maxbounds': parameters used by the initialization function to define the initial population.

  • 'crossover_func': the function which will perform the crossover between two individuals (default function: crossover_ga_default).

  • 'mutation_func': the function which will perform the mutation of one individual (default function: mutation_ga_default).

  • 'selection_func': the function whcih will perform the selection of individuals at the end of a generation (default function: selection_ga_elitist).

  • 'nb_couples': the number of couples which will be selected so as to perform the crossover and mutation (default value: 100).

  • 'pressure': the value the efficiency of the worst individual (default value: 0.05).

  • "output_func": a callback function called after each generation if Log is %T (default function output_nsga_default).


the radius of the sharing area.


the power coefficient of the penalty formula.


the population of optimal individuals.


the set of objective function values associated to pop_opt (optional).


the initial population of individuals (optional).


the set of objective function values associated to pop_init (optional).


  • This function implements the classical "Niched Sharing Genetic Algorithm". For a demonstration, see SCI/modules/genetic_algorithms/demos/NSGAdemo.sce


function f=deb_1(x)
   f1_x1 = x(1);
   g_x2  = 1 + 9 * sum((x(2:$)-x(1)).^2) / (length(x) - 1);
   h     = 1 - sqrt(f1_x1 / g_x2);

   f(1,1) = f1_x1;
   f(1,2) = g_x2 * h;

PopSize     = 100;
Proba_cross = 0.5;
Proba_mut   = 0.3;
NbGen       = 4;
NbCouples   = 110;
Log         = %T;
nb_disp     = 10; // Nb point to display from the optimal population
pressure    = 0.1;

ga_params = init_param();
ga_params = add_param(ga_params,'dimension',2);
ga_params = add_param(ga_params,'minbound',zeros(2,1));
ga_params = add_param(ga_params,'maxbound',ones(2,1));

[pop_opt, fobj_pop_opt, pop_init, fobj_pop_init] = optim_nsga(deb_1, PopSize,NbGen, Proba_mut, Proba_cross, Log, ga_params)

See also

  • optim_moga — multi-objective genetic algorithm
  • optim_ga — A flexible genetic algorithm
  • optim_nsga2 — A multi-objective Niched Sharing Genetic Algorithm version 2
Report an issue
<< optim_moga Algorithms optim_nsga2 >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:06:37 CET 2017