[NIMBUS homepage]

Help: Input Problem

About the problem

The problems to be solved are of the form

where k is the number of the objective functions, m is the number of the nonlinear constraints, decision vector x and its lower and upper bounds are n-dimensional vectors, b is an l-dimensional vector and A is an l x n-dimensional matrix of linear constraint coefficients.


Either lower or upper case characters can be used.

Operators available

+ plus
- minus
* multiplication
/ division
** or ^ exponent
NEG negative

Functions available

(the argument double x means the argument in double precision)
Trigonometric functions
function argument description
COS (double x) cosine function
SIN (double x) sine function
COSH (double x) hyperbolic cosine function
SINH (double x) hyperbolic sine function
ACOS (double x) arc cosine function
ASIN (double x) arc sine function
ATAN (double x) arc tangent function

Algebraic functions
function argument(s) description
LOG (double x) natural logarithm
LOG10 (double x) common logarithm
EXP (double x) exponential function e**x
SQRT (double x) square root
ABS (double x) absolute value
SIGN (double x, double y)abs(x) if y >= 0, - abs(x) if y < 0
MAX (double x, double y,...) the largest value of the arguments
MIN (double x, double y,...) the smallest value of the arguments

Objective functions

The objective functions must be specified by using the operations and functions listed above. Names can be given to the objective functions. They will be used when the results are displayed.

The objective functions can be either minimized or maximized. When the objective function is minimized (Min), then less is preferred to more, and when the objective function is maximized (Max), then more is preferred to less. The objective function type is selected by the drop-down list before the function name field.

If lowest or highest values of the functions are known, they can be given in their respective fields. If these fields are left blank, the WWW-NIMBUS system calculates those values automatically. Note that either both or neither of the values must be given.

NOTE:

Please avoid using non-standard characters in the names, since they can cause unexpected system behavior. The safe characters are alphabets between a and z , A and Z.

Variables

Upper and lower bounds must be specified for each variable. User can also specify a starting value between them, but if he specifies starting value for one variable, he must specify it for all variables. Names can be given to the variables. They will be used when the results are displayed. The user-specified names can not be used in the problem definition. Instead, the standard names x1, x2 etc. must be used.

TIP1:
If your variables are unbounded you can use values INF or -INF to represent the fact.
Autofill
When this option is set, all non-defined variable fields will be filled with values found above (in the same column). Therefore, the first variable definition must exist at whole.
NOTE1:
Please avoid using non-standard characters in the names, since they can cause unexpected system behavior. The safe characters are alphabets between a and z , A and Z.
NOTE2:
Variables can be specified to be discrete. In this case, the word 'discrete' means integer. The selection can be done by checking the 'Integer values' - check-box beside the variable definition field. If integer variables are used, their bounds must be defined as integers, too.
TIP2:
When inserting very small or very big numeric values one may find it useful to use exponential format instead of the normal format. For example, it is easier to insert a value 1.2E+8 instead of the value 120000000. Small values can be defined the same way by defining the exponent value as negative (e.g. 0.00018 = 1.8E-4 ).

Linear constraint functions

Enter the multipliers for each variable and the constant to the rightmost field for each constraint.

Linear constraints can be either equality or inequality constraints. The default constraint type is inequality, but it can be changed by the the drop-down list using the symbol <= for inequality and symbol = for the equality constraints.

Nonlinear inequality constraint functions

Nonlinear inequality constraint functions must be specified by using the operations and functions listed above. If the problem has nonlinear inequality constraints, they can be given here.

Nonlinear equality constraint functions

If the problem has nonlinear equality constraints, they can be given here.

Strict inequality constraint functions

If the problem has strict inequality constraints, the inequality constraints given to the system must be converted to strict constraints by decreasing a small tolerance from the right-side (upper bound) of the inequality constraint. These tolerances must be large enough (significantly larger than the computational accuracy). In spite of the tolerances, some caution is in order with strict inequality constraints.

Failure in the generation of a feasible starting point

The system tries to project the specified starting point into the feasible region, if necessary. If this projection fails, the feasible region may be empty. In this case, please check the correctness of the constraints and the variable bounds. You can also try to relax your problem by giving more range to your variable bounds (and constraints).

If the feasible region is really empty, the conflicting constraints can be modeled as objective functions. An example of this kind of modeling can be found in Miettinen, K., Mäkelä M.M., Männikkö T.: Nondifferentiable Multiobjective Optimizer NIMBUS Applied to an Optimal Control Problem of Continuous Casting, Report 22/1996, University of Jyväkylä Department of Mathematics, Laboratory of Scientific Computing

Failure when running the optimization code

If running of the optimization code fails, it is probably due badly defined function(s). For example, you might have divide by zero in your functions. Also, it is quite possible that some of the gradients are not defined for the feasible region, so they should also be checked.

In the next version of the WWW-NIMBUS, the user is informed if floating point errors cause failure in the optimization process.

Selection:

Optimization
In single objective optimization, choose the optimizer to continue with. If some of the variables are discrete, you can continue only by selecting one of the global optimizers.

In multiobjective optimization, the optimizer can be chosen in a later phase of the optimization process.

NOTE:
If the subgradient information is available, and a global optimizer is selected, the local optimizer is always used after the global one. The subgradient information might not be available when the user gives the problem in a Fortran format.

Available operations:

Another problem
Define a new problem. In this case, there is no need to fill in the fields on the page.

Continue with differentiation by the system
The NIMBUS system (sub)differentiates symbolically the objective and the nonlinear constraint functions. The user must fill in all the empty fields on the page.

Continue with differentiation by the user
The user must specify the (sub)gradients of the objective and the nonlinear constraint functions by hand. Note that NIMBUS still executes symbolic (sub)differentiation and the generated (sub)gradients are used as default (sub)gradients. The user must fill in all the empty fields on the page.

Change optimization parameters
Change inner optimization parameters for the problem. These parameters affect the internal functioning of the NIMBUS method and should be modified with a great caution.

Save the current problem
Save the current problem and the obtained result and return back to this page.

NOTE: If the problem is saved from this page, the operation "Open Problem and Modify It" is the only option available when re-opening the saved problem.

Modify this problem
Change the problem dimensions.

To return to the previous action, use the 'back to previous page' function of the browser.


nimbus@mit.jyu.fi