Last Modified: February 27, 2020

Determines the global minimum of a given set of *n*-dimension functions with constraints using the differential evolution (DE) method.

Arbitrary values passed to the strictly typed VI reference.

Strictly typed reference to the VI that implements the objective function(s), the equality constraints function, and the inequality constraints function as separate outputs.

Initial values of the parameters at which the optimization starts. This node uses the values in **start** when **beginning state** is empty.

Each row of **start** represents one set of parameters. If **start** has fewer rows than **population size**, this node initializes the remaining sets of parameters. If **start** has more rows than **population size**, this node ignores the additional sets of parameters. The number of columns in **start** must equal the length of **minimum** and **maximum** in **parameter bounds**.

Upper and lower numeric limits for the parameters being optimized.

Smallest allowed values of the parameters being optimized.

This input must be empty or the same size as **start**. This input must be the same size as **maximum**. This input does not allow exceptional values, such as Inf, -Inf, or NaN.

Greatest allowed values of the parameters being optimized.

This input must be empty or the same size as **start**. This input must be the same size as **minimum**. This input does not allow exceptional values, such as Inf, -Inf, or NaN.

Initial values of the populations and Pareto indexes.

**beginning state** is typically the **ending state** of a previous optimization and allows a warm start of the optimization. If **beginning state** has values, this node ignores **start**.

Initial values of the parameters, objective functions, equality constraints, and inequality constraints.

Initial values of the candidate parameters.

Values of the objective functions at **parameters**.

Values of the equality constraints at **parameters**.

Values of the inequality constraints at **parameters**.

Indexes of the selected parameters from all the candidate parameters.

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

Settings for the differential evolution (DE) method.

Understanding the DE Method

The DE method is a population-based optimization method. It makes a tradeoff between exploring the global space and converging to the most promising solutions so far. This tradeoff is affected by the variance of the mutant parameters in the population. The variance of the mutant parameters in the population decreases as the node converges to a solution. You can control this variance by adjusting the **scale factor** and **mutation method** settings.

Number of sets of candidate parameters that this node calculates and number of objective function calls at each loop iteration in the optimization.

The greater the value of **population size**, the more accurate the optimization results and the longer the execution time.

**Default: **10

Diversity factor that this node uses to generate mutant parameters.

The greater the value of **scale factor**, the more variance in the mutant parameters.

**Default: **0.9

Probability that this node inherits the trial parameters from the mutant parameters.

The greater the value of **crossover probability**, the higher the probability that this node accepts the mutant parameters.

**Default: **0.95

Method that this node uses to map the trial parameters into **parameter bounds**.

This node ignores **bound mapping method** if the values of the trial parameters are within **parameter bounds**.

Name | Value | Description |
---|---|---|

None | 0 | Does not map the trial parameters into parameter bounds. |

Random between Bounds and Values | 1 | Maps the trial parameters to a random value between the parameter values and parameter bounds. |

Re-Initialize | 2 | Generates new trial parameters within the bounds. |

**Default: **Random between Bounds and Values

Method that this node uses to generate mutant parameters.

Name | Value | Description |
---|---|---|

Random | 0 | Generates the most variance in the mutant parameters. |

Either Or | 1 | Both generates the most variance in the mutant parameters and is invariant to rotational dependence in the parameters of the problem. This method is generally the most robust method. |

Best | 2 | Biases the mutant parameters towards the most promising solution of the current population and generates mutant parameters with the least variance. |

Target to Best | 3 | Generates mutant parameters with a level of variance between the Best method and the Random method. |

**Default: **Random

Conditions that terminate the optimization.

This node terminates the optimization if this node passes any of the maximum thresholds.

Maximum number of iterations that the node runs in the optimization.

**Default: **50

Maximum number of calls to the objective function allowed in the optimization.

**Default: ** -1 — The optimization never times out.

Maximum amount of time in seconds allowed for the optimization.

**Default: ** -1 — The optimization never times out.

Determined values of the variables where the objective functions have the global minimum among all minimum possibilities.

Values of the objective functions at **minimum**.

Final values of the populations and Pareto indexes at the end of the optimization.

Values of the candidate parameters, objective functions, equality constraints, and inequality constraints at the end of the optimization.

Values of the candidate parameters at the end of optimization.

Values of the objective functions at **parameters**.

Function values of the equality constraints at **parameters**.

Function values of the inequality constraints at **parameters**.

Indexes of the selected parameters from all the candidate parameters.

Number of times that this node called the objective function(s) in the optimization.

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

This node determines the global minimum using the differential evolution (DE) method. The DE method approximates the actual global minimum by iteratively mutating and improving the candidate parameters from the initial set of candidate parameters. The DE method cannot guarantee finding the global minimum. Whether this node can return the best parameters depends on the DE settings and the objective functions.

The following illustration shows how this node determines the global minimum.

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application