After you have specified the initial data of the problem, a new page appears asking for the objective functions, variables and possible (non)linear constraints. The input form of those functions is similar to standard syntax. All usual trigonometric etc. functions are available, and a complete list of them can be found on the online help page. The page also contains input fields for lowest and highest (ICV and Nadir) values. These fields should be filled only when the values are well-known. If you are not sure about these values, it is wise to leave them blank and let the system calculate them for you.
Each of the functions are identified by their name.By default, the names are f1, f2, f3.... Example:
Let us examine our cylinder problem again. We already know that we have two variables, x1 and x2. Furthermore, it has been discovered thatHere the Volume, SurfaceArea and HeightDiff are the names of our functions. It is much easier to refer to a function by its name than by its expression. Now we just have to insert these functions into the fields, exactly as shown above.
Cylinder's volume: Volume = 3.14159*(x1^2)*x2 Cylinder's surface area: SurfaceArea = 2*3.14159*(x1^2)+2*3.14159*x1*x2 Height difference: HeightDiff = ABS(x2-15.0)
Variable field(s) are very easy to understand: you insert the upper and lower bounds and set the starting point for every variable. Starting point information is not mandatory, but it will be used when specified. Otherwise the lower bound values are used as starting point. The variable names must be of the formx1, x2, x3, ... when specifying the functions. However, new names can be specified here for further reference. Nimbus can also handle discrete (integer) variables. The rightmost checkbox beside the variable field informs the system that the variable should get only integer values. However, this selection forces the system to use global optimization, so the solution process becomes much slower. When using integer optimization, box constraints should be defined as integers, too.The 'autofill' function is useful when the problem contains a huge amount of variables with same values. Autofill allows the variable fields to be left empty, and their values are taken from the first non-empty field found above. Therefore, the uppermost fields cannot be left empty.
NOTE: When problem is specified by using a fortran file, user may inform that (sub)gradient information is not available (i.e. fortran file does not contain the (sub)gradient functions). In that case genetic algorithms (GA) are used in optimization, and starting point information is not used. This means that user can leave the starting point fields empty, and system accepts that. However, if the starting points are still specified (and they are feasible), their values are stored. When problem type is changed into non-GA (user specifies the (sub)gradients), these starting points are used in optimization.
Example:
We define the variable fields as follows:Our problem is quite simple, so the starting point can be anything between the bounds. It does not necessarily have to satisfy the constraint functions, but it is projected to the feasible region, if required. In this case we use real values for variables instead of integer values.
Name Lower bound Starting point Upper bound Integer values r 5 10 15 <Not used> h 5 10 25 <Not used>
To the next field(s) you insert the coeffients of linear constraint(s) if they exist: the multipliers of the variables to the left and the constant to the rightmost field.Our problem contains one linear constraint, which is that the cylinder's height must be greater or equal to its width. So, we define the constraint as follows:
Example page2*x1 - 1*x2 <= 0
This is the field where you insert the nonlinear inequality constraint function, which is also of a standard form (syntax). You can use all the trigonometric etc. functions described on the help page.Our problem does not contain any nonlinear inequality constraints.
This is the field where you insert the nonlinear equality constraint function, which is also of a standard form (syntax). You can use all the trigonometric etc. functions described on the help page.Our problem does not contain any nonlinear equality constraints.