You may solve an optimization problem with the `ALIAS` library by
using one of the following procedures:

Minimize Maximize MinimizeGradient MaximizeGradient MinMax MinMaxGradient.

Note that these procedures are only special variants of the general
solving procedures of `ALIAS`-Maple. Hence most of the parameters setting
for these procedures are also valid for the optimization procedures.
Specific parameters for these procedure are presented in
section 5.3.

**In the list of functions that are provided to these procedures the last
one must be
the function whose extremum are looked for**, while the other one are
supposed to be constraints.
The interval solution that are returned will verify:

- for the constraints:
- for inequality constraint: for any value of the unknowns within the solution ranges the inequality is strictly satisfied
- for equality constraint: if the width of the interval
solution is less than
``ALIAS/epsilon``then the interval evaluation of the constraint include 0, while if this is not the case then the width of the interval evaluation of the function include 0 and its width is less than``ALIAS/fepsilon``

- for the function that is to be minimized or maximized: the real
minimum or maximum of the function is at a distance at most
``ALIAS/eepsilon``(default value: 1e-6) from the result provided by`ALIAS`

You may also us the gradient of the function to be minimize or
maximized to improve the efficiency of the procedure. The
`MinimizeGradient` and `MaximizeGradient` procedures may be used
for this purpose and have the same argument than the `Minimize`
and `Maximize` procedure.

There are also procedures to compute at the same time the minimum and
maximum values of a function, eventually under constraint. The
`Minmax` and `MinMaxGradient` procedures may be used for this
purpose. The only difference with the previous procedures is that the
arguments should be ended by `Min`, `Max` which provide the
minimum and maximum of the function (being understood that the
function that is considered is always the last in the list, the other
one being the constraints).

However in that case a global variable of the `ALIAS` Maple
library may play an important role:
``ALIAS/stop_minmax`.
Its default value is set to 0 but:

- if set to 1: the procedure will search the minimal and maximal value of the last function in the list but will exit if at some point it is shown that the minimum and maximum value have opposite sign. If this is not the case the procedure will still provide the minimal and maximal value of the function up to the given accuracy
- if set to 2: here the main purpose is to determine if the
minimum and maximum of the function have the same sign.
None of the
`Min`,`Max`value will be significant from an optimum viewpoint: they are used only to indicate the sign of the extremum.

The flag `allow_storage` may also be of interest: if set to 1
(default value: 0) the current estimation of the optimum is written in
the file `.opti` in a sequential way.

All these procedures accept optionally as least argument a string
`Simp` that
indicates the name of a simplification procedure
(see chapter 4) whose C++ code is
available in the file `Simp.C`. Among the simplification
procedures provided by ALIAS-Maple the use of the `HullIConsistency` procedure with the key-word `Optimum` may be
interest for an optimization problem, see section 4.2.1.

You may also specify initial value for the minimum or maximum value of
the optimized function by setting ``ALIAS/opt_min``,
``ALIAS/opt_max``.