# Termination Controls

## Contents

### Iterations

Specifies the maximum number of iterations (pivots) by the simplex algorithm during the optimization. If this is exceeded, OptStatusNum() returns 3 (Iterates limit reached. Indicates an early exit of the algorithm.). Maximum number of generations in *Evolutionary* solver. Maximum number of gradient descent steps by *GRG Nonlinear*. If the problem has integer or grouped integer domains, it is preferred to use the MaxSubproblems setting instead of Iterations.

**Default**: no limit

### MaxSubproblems

Applies only to problems with integer or grouped integer domains. Places a limit on the number of sub-problems that the Branch & Bound algorithm explores before pausing and prompting the user to stop or continue.

**Default**: no limit

### MaxIntegerSols

Applies only to problems with integer or grouped integer domains. Places a limit on the number of integer solutions the Branch & Bound algorithm explores before pausing and prompting the user to stop or continue.

**Default**: no limit

### MaxTime

Maximum number of seconds the Optimizer spends on the problem. If exceeded, OptStatusNum is 10 (Time out status. Returned when the maximum allowed time has been exceeded. Indicates an early exit of the algorithm.).

**Default**: no limit

### MaxTimeNoImp

The maximum number of seconds that the Optimizer continues without finding any improvement in the best solution.

**Default**: 30 seconds

**Allowed range**: positive

### IntTolerance

In a MIP optimization, if the branch-and-bound algorithm can determine that the best solution found so far is within this relative tolerance of the true optimal, it terminates the search and return the best solution found so far. The bound is relative, meaning a value of 10% guarantees a solution within 10% of the optimal. Often, the branch-and-bound algorithm quickly locates a nearly optimal solution, but then spends a large amount of refining its best solution to the true optimum. Specifying a non-zero gap tolerance can eliminate this additional search, thus in some cases drastically reducing computation time. The gap is computed as the absolute value of the difference between the best solution so far, and the best bound on the optimum, divided by the best bound on the optimum. With zero gap (default), the search continues until the entire search space is eliminated so that the global optimum is reached.

**Default**: 0%

**Allowed range**: 0 to 1

### Convergence

The evolutionary solver stops with status “Solver has converged to the current solution” when nearly all members in the current population have very similar fitness values. This stopping criteria is satisfied when 99% of the population members all have fitness values within *Convergence* tolerance of each other.

The fitness value is a combination of the objective function value and a penalty for constraints still violated. If you think the evolutionary solver is terminating too quickly, you can make this tolerance smaller, but you might also want to increase **MutationRate** or **PopulationSize** in order to increase the diversity of trial solutions.

**Default**: 10^{-4}

**Allowed range**: 0 to 1

### Tolerance

If the relative (i.e., percentage) improvement observed during the previous MaxTimeNoImp seconds does not exceed this value, then *Evolutionary* solver terminates. See MaxTimeNoImp.

**Default**: 0

**Allowed range**: 0 to 1

### MaxTimeNoImp

Controls the amount of time (in seconds) that the evolutionary solver is willing to spend without making any significant progress. If the relative improvement during this time has not exceeded the setting specified by Tolerance, it terminates with status set to either *Solver cannot improve the current solution* or *Solver could not find a feasible solution*.

**Default**: 10-5

**Allowed range**: 10-9 to 10-4

### MaxFeasibleSolutions

The maximum number of feasible solutions found by the Evolutionary algorithm before terminating.

**Default**: no limit

**Allowed range**: positive

## See Also

Enable comment auto-refresher