Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Find Pareto front of multiple fitness functions using genetic algorithm

`x = gamultiobj(fitnessfcn,nvars)`

`x = gamultiobj(fitnessfcn,nvars,A,b)`

`x = gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq)`

`x = gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub)`

`x = gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,nonlcon)`

`x = gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)`

```
x =
gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
```

`x = gamultiobj(problem)`

```
[x,fval]
= gamultiobj(___)
```

```
[x,fval,exitflag]
= gamultiobj(___)
```

```
[x,fval,exitflag,output]
= gamultiobj(___)
```

```
[x,fval,exitflag,output,population,scores]
= gamultiobj(___)
```

finds `x`

= gamultiobj(`fitnessfcn`

,`nvars`

)`x`

on
the Pareto Front of the objective
functions defined in `fitnessfcn`

. `nvars`

is
the dimension of the optimization problem (number of decision variables).
The solution `x`

is local, which means it might not
be on the global Pareto front.

Passing Extra Parameters (Optimization Toolbox) explains how to pass extra parameters to the objective function and nonlinear constraint functions, if necessary.

finds
a local Pareto set `x`

= gamultiobj(`fitnessfcn`

,`nvars`

,`A`

,`b`

)`x`

subject to the linear inequalities $$A\ast x\le b$$. See Linear Inequality Constraints (Optimization Toolbox). `gamultiobj`

supports
linear constraints only for the default `PopulationType`

option
(`'doubleVector'`

).

finds
a local Pareto set `x`

= gamultiobj(`fitnessfcn`

,`nvars`

,`A`

,`b`

,`Aeq`

,`beq`

)`x`

subject to the linear equalities $$Aeq\ast x=beq$$ and the linear inequalities $$A\ast x\le b$$, see Linear Equality Constraints (Optimization Toolbox).
(Set `A = []`

and `b = []`

if no inequalities exist.) `gamultiobj`

supports
linear constraints only for the default `PopulationType`

option
(`'doubleVector'`

).

defines
a set of lower and upper bounds on the design variables `x`

= gamultiobj(`fitnessfcn`

,`nvars`

,`A`

,`b`

,`Aeq`

,`beq`

,`lb`

,`ub`

)`x`

so
that a local Pareto set is found in the range $$LB\le x\le UB$$, see Bound Constraints (Optimization Toolbox).
Use empty matrices for `Aeq`

and `beq`

if
no linear equality constraints exist. `gamultiobj`

supports
bound constraints only for the default `PopulationType`

option
(`'doubleVector'`

).

finds a Pareto set subject to the
constraints defined in `x`

= gamultiobj(`fitnessfcn`

,`nvars`

,`A`

,`b`

,`Aeq`

,`beq`

,`lb`

,`ub`

,`nonlcon`

)`nonlcon`

. The function `nonlcon`

accepts `x`

and
returns vectors `c`

and `ceq`

, representing
the nonlinear inequalities and equalities respectively. `gamultiobj`

minimizes `fitnessfcn`

such
that `c(x) `

≤` 0`

and `ceq(x) = 0`

. (Set `lb = []`

and `ub = []`

if no bounds exist.) `gamultiobj`

supports
nonlinear constraints only for the default `PopulationType`

option
(`'doubleVector'`

).

or `x`

= gamultiobj(`fitnessfcn`

,`nvars`

,`A`

,`b`

,`Aeq`

,`beq`

,`lb`

,`ub`

,`options`

)

finds
a Pareto set `x`

=
gamultiobj(`fitnessfcn`

,`nvars`

,`A`

,`b`

,`Aeq`

,`beq`

,`lb`

,`ub`

,`nonlcon`

,`options`

)`x`

with the default optimization parameters
replaced by values in `options`

. Create `options`

using `optimoptions`

(recommended) or `gaoptimset`

.

finds
the Pareto set for `x`

= gamultiobj(`problem`

)`problem`

, where `problem`

is
a structure. Create `problem`

by exporting a problem
from the Optimization app, as described in Importing and Exporting Your Work (Optimization Toolbox).

`gamultiobj`

uses a controlled, elitist genetic
algorithm (a variant of NSGA-II [1]). An elitist
GA always favors individuals with better fitness value (rank). A controlled
elitist GA also favors individuals that can help increase the diversity
of the population even if they have a lower fitness value. It is important
to maintain the diversity of population for convergence to an optimal
Pareto front. Diversity is maintained by controlling the elite members
of the population as the algorithm progresses. Two options, `ParetoFraction`

and `DistanceFcn`

,
control the elitism. `ParetoFraction`

limits the
number of individuals on the Pareto front (elite members). The distance
function, selected by `DistanceFcn`

, helps to maintain
diversity on a front by favoring individuals that are relatively far
away on the front. The algorithm stops if the *spread*,
a measure of the movement of the Pareto front, is small.

[1] Deb, Kalyanmoy. *Multi-Objective
Optimization Using Evolutionary Algorithms*. Chichester,
England: John Wiley & Sons, 2001.

Was this topic helpful?