A detailed description of the TOMLAB /OQNLP solver interface is given
below. Also see the M-file help for
Solves global constrained nonlinear mixed-integer problems.
.
Result |
Structure
with result from optimization.
The following fields are set: |
|
|
f_k |
Function value at optimum. |
|
g_k |
Gradient of the function. |
|
|
x_k |
Solution vector. |
|
x_0 |
Initial solution vector. |
|
|
c_k |
Nonlinear constraint residuals. |
|
cJac |
Nonlinear constraint gradients. |
|
|
xState |
State of variables. Free == 0; On lower == 1; On
upper == 2; Fixed == 3; |
|
bState |
State of linear constraints. Free == 0; Lower ==
1; Upper == 2; Equality == 3; |
|
cState |
State of nonlinear constraints. Free == 0; Lower
== 1; Upper == 2; Equality == 3; |
|
|
v_k |
Lagrange multipliers (for bounds + dual solution vector). |
|
ExitFlag |
Exit status from OQNLP (TOMLAB standard). |
|
Inform |
OQNLP information parameter. |
|
|
<0 = Setup Error. |
|
|
0 = Status not set. |
|
|
1 = Optimal solution found. |
|
|
2 = Fractional change in objective too small. |
|
|
3 = All remedies failed. |
|
|
4 = Too many iterations. |
|
|
5 = Problem is unbounded. |
|
|
6-10 = Problem infeasible. |
|
|
11-38 = Runtime failure. |
|
|
39 = Termination by user. |
|
|
40 = Jacobian overflow. |
|
|
41 = OPTQUEST Error. |
|
|
42 = Time limit exceeded. |
|
|
43 = Feasible solution found. |
|
|
Other = Unknown return code. |
|
|
rc |
Reduced costs. If ninf=0, last m == -v_k. |
|
Iter |
Number of iterations. |
|
FuncEv |
Number of function evaluations. |
|
GradEv |
Number of gradient evaluations. |
|
ConstrEv |
Number of constraint evaluations. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
|
Solver |
Name of the solver (OQNLP). |
|
SolverAlgorithm |
Description of the solver. |
|
Solves global constrained nonlinear problems.
Result |
Structure with
result from optimization.
The following fields are set: |
|
|
f_k |
Function value at optimum. |
|
g_k |
Gradient of the function. |
|
|
x_k |
Solution vector. |
|
x_0 |
Initial solution vector. |
|
|
c_k |
Nonlinear constraint residuals. |
|
cJac |
Nonlinear constraint gradients. |
|
|
xState |
State of variables. Free == 0; On lower == 1; On
upper == 2; Fixed == 3; |
|
bState |
State of linear constraints. Free == 0; Lower ==
1; Upper == 2; Equality == 3; |
|
cState |
State of nonlinear constraints. Free == 0; Lower
== 1; Upper == 2; Equality == 3; |
|
|
v_k |
Lagrange multipliers (for bounds + dual solution vector). |
|
ExitFlag |
Exit status from MSNLP (TOMLAB standard). |
|
Inform |
MSNLP information parameter. |
|
|
<0 = Setup Error. |
|
|
0 = Status not set. |
|
|
1 = Optimal solution found. |
|
|
2 = Fractional change in objective too small. |
|
|
3 = All remedies failed. |
|
|
4 = Too many iterations. |
|
|
5 = Problem is unbounded. |
|
|
6-10 = Problem infeasible. |
|
|
11-38 = Runtime failure. |
|
|
39 = Termination by user. |
|
|
40 = Jacobian overflow. |
|
|
41 = OPTQUEST Error. |
|
|
42 = Time limit exceeded. |
|
|
43 = Feasible solution found. |
|
|
Other = Unknown return code. |
|
|
rc |
Reduced costs. If ninf=0, last m == -v_k. |
|
Iter |
Number of iterations. |
|
FuncEv |
Number of function evaluations. |
|
GradEv |
Number of gradient evaluations. |
|
ConstrEv |
Number of constraint evaluations. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
|
Solver |
Name of the solver (MSNLP). |
|
SolverAlgorithm |
Description of the solver. |
|
Solves constrained nonlinear problems.
Result |
Structure with
result from optimization.
The following fields are set: |
|
|
f_k |
Function value at optimum. |
|
g_k |
Gradient of the function. |
|
|
x_k |
Solution vector. |
|
x_0 |
Initial solution vector. |
|
|
c_k |
Nonlinear constraint residuals. |
|
cJac |
Nonlinear constraint gradients. |
|
|
xState |
State of variables. Free == 0; On lower == 1; On
upper == 2; Fixed == 3; |
|
bState |
State of linear constraints. Free == 0; Lower ==
1; Upper == 2; Equality == 3; |
|
cState |
State of nonlinear constraints. Free == 0; Lower
== 1; Upper == 2; Equality == 3; |
|
|
v_k |
Lagrange multipliers (for bounds + dual solution vector). |
|
ExitFlag |
Exit status from LSGRG2 (TOMLAB standard). |
|
Inform |
LSGRG2 information parameter. |
|
|
<0 = Setup Error. |
|
|
0 = Status not set. |
|
|
1 = Kuhn-Tucker conditions satisfied. |
|
|
2 = Fractional change in objective too small. |
|
|
3 = All remedies failed. |
|
|
4 = Too many iterations. |
|
|
5 = Problem is unbounded. |
|
|
6-10 = Problem infeasible. |
|
|
11-38 = Runtime failure. |
|
|
39 = Termination by user. |
|
|
40 = Jacobian overflow. |
|
|
41 = Engine Error. |
|
|
42 = Time limit exceeded. |
|
|
Other = Unknown return code. |
|
|
rc |
Reduced costs. If ninf=0, last m == -v_k. |
|
Iter |
Number of iterations. |
|
FuncEv |
Number of function evaluations. |
|
GradEv |
Number of gradient evaluations. |
|
ConstrEv |
Number of constraint evaluations. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
|
Solver |
Name of the solver (LSGRG2). |
|
SolverAlgorithm |
Description of the solver. |
|
The following table shows all the options that the user can set for
the OQNLP and MSNLP solvers. The LSGRG2 solver options are in Table
. Observe that parameters which mention
OptQuest are only available when using OQNLP (The OptQuest engine is
part of OQNLP). All parameters should be set in
User options for the TOMLAB /OQNLP solvers. The following fields are used: |
|
Option |
Description |
Default |
|
|
BASIN_DECREASE _FACTOR |
This value must be between 0 and 1. If DYNAMIC_DISTANCE_FILTER is set to 1, the MAXDIST value associated with any local solution is reduced by (1-BASIN_DECREASE_FACTOR) if MERIT_WAITCYCLE consecutive trial points have distance from the solution less than MAXDIST. |
0.2 |
|
BASIN_OVERLAP_FIX |
A value of 1 turns on logic which checks the MAXDIST values of all pairs of local solutions, and reduces any pair of MAXDIST values if their sum is greater then the distance between the 2 solutions. This ensures that the spherical models of their basins of attracting do not overlap. A value of 0 turns off this logic. Turning it off can reduce the number of NLP solver calls, but can also cause OQNLP to miss the global solution. |
1 |
|
DISTANCE_FACTOR |
If the distance between an
OptQuest trial point and any local solution found previously is less
then DISTANCE_FACTOR * MAXDIST, the NLP solver is not started
from that trial point. MAXDIST is the largest distance ever traveled
to get to that local solution. Increasing DISTANCE_FACTOR leads to
fewer solver calls and risks finding a worse solution. Decreasing it
leads to more solver calls and possibly a better solution. |
1.0 |
|
DYNAMIC_DISTANCE _FILTER |
A value of 1 turns on logic which reduces the value of MAXDIST (described under the DISTANCE_FILTER keyword) for a local solution if MERIT_WAITCYCLE consecutive trial points have a distance from that solution less than MAXDIST. MAXDIST is multiplied by (1-BASIN_REDUCTION_FACTOR). A value of 0 turns off this logic. Turning it off can decrease the number of NLP solver calls, but can also lead to a worse final solution. |
1 |
|
DYNAMIC_MERIT _FILTER |
A value of 1 turns on logic which dynamically varies the parameters which increases the merit filter threshold, THRESHOLD_INCREASE_FACTOR. If MERIT_WAITCYCLE consecutive trial points have been rejected by the merit filter, this value is replaced by max(THRESHOLD_INCREASE_FACTOR, val), where val is the value of THRESHOLD_INCREASE_FACTOR which causes the merit filter to just accept the best of the previous MERIT_WAITCYCLE trial points. A value of 0 turns off this logic. Turning it off can reduce NLP solver calls, but may lead to a worse final solution. |
1 |
|
FEASIBILITY _TOLERANCE |
This tolerance is used to check each point returned by an NLP solver for
feasibility. If the largest absolute infeasibility at the point is
larger than this tolerance, the point is classified infeasible. This
test is made because points returned by NLP solvers may occasionally
be infeasible despite feasible status codes. Some NLP solvers use
internal scaling before testing for feasibility. The unscaled
problem may be infeasible, while the scaled one is feasible. If this
occurs, increasing this tolerance (to 1.e-2 or larger)
often eliminates the problem. |
1.e-4 |
|
FEASIBILITY_MODE |
If this option is set to 1 the system
focuses on finding a feasible point, stopping after the first NLP
solver call which finds such a point. If set to 0, the system tries
to find the global optimum of the objective function subject to the
constraints. |
0 |
|
INFBND |
This value (its negative) is given to OptQuest as the upper (lower) bound for any variable with no upper and lower bound. However, the original bounds are given to the local solver, so it can produce solutions not limited by this artificial bound. |
1.e5 |
|
OptQuest must have finite upper and lower bounds for each variable. If INFBND (or any of the user-supplied bounds) is much larger than any component of the optimal solution, OptQuest will be less efficient because it is searching over a region that is much larger than needed. Hence the user is advised to try to provide realistic values for all upper and lower bounds. It is even more dangerous to make INFBND smaller then some component of a globally optimal solution, since OptQuest can never generate a trial point near that solution. It is possible, however, for the local solver to reach a global solution in this case, since the artificial bounds are not imposed on it. |
|
ITERATION_PRINT _FREQUENCY |
If the OQNLP iteration log is written to the OQNLP log file, one line of output is written every k'th OptQuest iteration, where k is the value given here. |
20 |
|
ITERATION_LIMIT |
Increasing this limit can allow OQNLP to find a better solution. Try it if your run using 1000 iterations doesn't take too long. Surprisingly, the best solution using, say 2000 iterations, may be found in the first 1000 iterations, and that solution may be better then the one found with an iteration limit of 1000. This is because OptQuest changes its search strategy depending on the iteration limit. Because of this, it is also possible that increasing the iteration limit will yield a worse solution, but this is rare. Decreasing this iteration limit usually leads to a worse solution, but also reduces run time. |
1000 |
|
LOCALS_FILE |
Specify a complete path and name for a file to which the objective value and values of all variables for all local solutions found will be written. For example, C:\temp\opt.out. There are 2 possible formats for this file, specified by the LOCALS_FILE_FORMAT option below. If there is no LOCALS_FILE specified, the locals file will not be created. WARNING, no file will be created unless Prob.OQNLP.PrintFile is set. |
|
LOCALS_FILE _FORMAT |
There are 2 possible values for this option. The REPORT entry creates the locals file in a format designed to be examined easily by eye, but processed less easily by a computer program or spreadsheet. The DATA1 entry creates a file with many records, each on a single line, each having the following format: <index of local optimum> <objval> <var index> <var index>. |
DATA1 |
|
MAX_LOCALS |
When the number of distinct local solutions found by OQNLP exceeds the value specified here, OQNLP will stop, returning the best solution found. |
1000 |
|
MAX_SOLVER_CALLS |
When the number of calls to the NLP solver exceeds the value specified here, OQNLP will stop, returning the best solution found. |
1000 |
|
MAX_SOLVER_CALLS _NOIMPROVEMENT |
The positive integer specified here will cause OQNLP to stop whenever the number of consecutive solver calls with a fractional improvement in the best objective value found less than 1.e-4 exceeds that values. In other words, if the value specified is 50, and there are more than 50 consecutive solver calls where the relative change in the best objective was less then 1.e-4 in all iterations, OQNLP will stop. |
100 |
|
MAXTIME |
When the execution time spent by OQNLP exceeds this number of seconds, OQNLP will stop and return the best solution found. |
1000 |
|
MERIT_WAITCYCLE |
This value must be a positive integer. If the merit filter is used, and there are MERIT_WAITCYCLE consecutive iterations where the merit filter logic causes the NLP solver not to be started, the merit filter threshold is increased by the factor THRESHOLD_INCREASE_FACTOR (see below). Increasing MERIT_WAITCYCLE usually leads to fewer solver calls, but risks finding a worse solution. Decreasing it leads to more solver calls, but may find a better solution. |
20 |
|
|
OPTQUEST_ONLY |
If you think the NLP solver is taking too long and/or not working well, choosing 1 will stop it from being called. This may occur if the problem is of type "DNLP", where one or more problem functions are discontinuous or have discontinuous derivatives. If the problem has only discrete (integer) variables, choose 1, as there is nothing for the NLP solver to do (since it optimizes over the continuous variables when the integers are fixed, and there aren't any). |
0 |
|
OQ_ALL_DISCRETE |
This option sets the filter logic for problems with discrete variables. Setting this option to 1 has the potential to produce better solutions but also consumes more computing time. |
0 |
|
PENALTY_FUNCTION |
Results using either choice are usually similar, but choosing 1 can lead to fewer iterations. The 1 value causes the exact penalty function to be used, while 0 uses OptQuest's internal penalty function, whose penalty term is the largest percentage violation of all violated constraints. |
1 |
|
POINT_GENERATION |
'OPTQUEST' causes trial points to be generated by the OptQuest driver. This option is only available with TOMLAB /OQNLP and is the default for this option. |
See text |
|
'RANDOM' causes trial points to be generated by sampling each variable from a uniform distribution defined within its
bounds. |
|
'SMARTRANDOM1' generates trial points by sampling each variable independently from either normal or triangular
distributions. This is the default for TOMLAB /MSNLP. |
|
SAMPLING _DISTRIBUTION |
This keyword is relevant only when POINT_GENERATION is set to
SMARTRANDOM1. Then a value of 0 causes normal distributions to be
used to generate trial points, while a value of 1 causes triangular
distributions
to be used. |
0 |
|
SEARCH _PARAMETER |
This parameter has a range between zero and one, and a default value of 0.5. Increasing it causes more trial points to be directed towards the boundary. This is advisable if you believe the optimal solution will be on the boundary or at a vertex, as is true for problems where a concave function is maximized subject to linear constraints. |
0.5 |
|
SEARCH_TYPE |
This option controls the search strategy used by OptQuest. The three choices that are relevant for use within OQNLP are: |
boundary |
|
aggressive This choice controls the population update of the OptQuest algorithm. It triggers a very aggressive update, which keeps the best of the points generated from the current population as the new population. The risk in this is that all points in the new population may cluster in a small portion of the search volume, and regions far from this volume will not be explored in the next cycle. |
|
boundary This option affects the trial points generated by OptQuest, directing them toward the boundary of the region defined by the linear constraints and variables bounds. The value of SEARCH_PARAMETER discussed below controls the fraction of points that are directed towards the boundary. |
|
crossover This option affects how OptQuest trial points are generated from population points. It retains the linear combination operator, but adds a "crossover" operator, similar to those used in evolutionary or genetic algorithms, to create 2 additional trial points. |
|
STAGE1_ITERATIONS |
Specifies the total number of OptQuest iterations in stage 1 of the OQNLP algorithm, where no NLP solver calls are made. Increasing this sometimes leads to a better starting point for the first local solver call in stage 2, at the cost of delaying the call. Decreasing it can lead to more solver calls, but the first call occurs sooner. |
200 |
|
STARTING _MULTIPLIER |
Since no Lagrange multiplier values are available until the first solver call at the end of stage 1, this value is used for all multipliers if PENALTY_FUNCTION is set to 1. |
1000 |
|
START_WITH_NLP _SOLVER |
In the beginning, OQNLP passes the starting point defined in the TOMLAB model to the NLP subsolver. This will ensure that solutions generated with OQNLP will be always as good as the one generated by the NLP subsolver alone. After this initial call the OQNLP algorithm continues as usual. The initial call to the NLP subsolver starting from the point defined by the TOMLAB model can be suppressed by setting this parameter to 0. |
1 |
|
THRESHOLD _INCREASE_FACTOR |
This value must be nonnegative. If there are MERIT_WAITCYCLE consecutive OptQuest iterations where the merit filter logic causes the NLP solver not to be called, the merit threshold is increased by multiplying it by (1+THRESHOLD_INCREASE_FACTOR) |
0.2 |
|
USE_DISTANCE _FILTER |
Use 0 to turn off the distance filter,
the logic which starts the NLP solver at a trial point only if the
(Euclidean) distance from that point to any local solution found
thus far is greater than the distance threshold. Turning off the
distance filter leads to more solver calls and more run time, and
increases the chances of finding a global solution. Turn off both
distance and merit filters to find (almost) all local solutions. |
1 |
|
USE_LINEAR _CONSTRAINTS |
This option applies only to
problems which have linear constraints other than simple bounds on
the variables. Using 1 (all OptQuest trial points satisfy the linear
constraints) often leads to fewer iterations and solver calls, but
OptQuest has to solve an LP to project each trial point onto the
linear constraints. For large problems (more than 100 variables),
this can greatly increase run time, so the default value is off (0) |
0 |
|
USE_MERIT_FILTER |
Use 0 to turn off the merit filter, the
logic which starts the NLP solver at a trial point only if the
penalty function value at that point is below the merit threshold.
This will lead to more solver calls, but increase the chances of
finding a global solution. Turn off both filters of you want to find
(almost) all local solutions. This will cause the solver to be
called at each stage 2 iteration. |
1 |
|
WAITCYCLE |
This value must be a positive integer. If the merit filter is used, and there
are WAITCYCLE consecutive iterations where the merit filter logic
causes the NLP solver not to be started, the merit filter threshold
is increased by the factor THRESHOLD_INCREASE_FACTOR (see above).
Increasing WAITCYCLE usually leads to fewer solver calls, but risks
finding a worse solution. Decreasing
it leads to more solver calls, but may find a better solution. |
20 |
|
The following options are available for the LSGRG2 solver included
with the TOMLAB /OQNLP /MSNLP package. The fields are set in
. It is only possible to set these fields
when calling LSGRG2 directly, i.e. they are ignored if calling
OQNLP.
User options for the TOMLAB /OQNLP - LSGRG2 solver. The following fields are used: |
|
Option |
Description |
Default |
|
|
EPNEWT |
A constraint is assumed to be binding if it is within this epsilon of one of its bounds. |
1e−4 |
|
EPINIT |
If it is desired to run the problem with EPNEWT initially set fairly large and then tightened at the end of the optimization then this is accomplished by assigning EPINIT the initial tolerance and EPNEWT the final one. Doing this often reduces run time. |
1e−4 |
|
EPSTOP |
If the fractional change in the objective is less than EPSTOP for NSTOP consecutive iterations, the program will stop. The program will also stop if Kuhn-Tucker optimality conditions are satisfied to within EPSTOP. |
1e−4 |
|
EPSPIV |
If, in constructing the basis inverse, the absolute value of a prospective pivot element is less than EPSPIV, the pivot will be rejected and another pivot element will be sought. |
1e−6 |
|
PH1EPS |
If nonzero, the phase 1 objective (normally the sum of infeasibilities, sinf) is augmented by a multiplier, say w, times the true objective, obj, so that the new phase 1 objective is sinf+w*obj. The multiplier, w, is selected so that, at the initial point, w*obj = PH1EPS*sinf. In phase 1 the term w*obj should be small relative to sinf, so PH1EPS should be less than 1.0, with 0.1 a reasonable default value. The reason for setting PH1EPS positive is to cause phase 1 to pay a small amount of attention to the objective, so that any feasible point found will have a good objective value. |
0.0 |
|
AIJTOL |
Zero tolerance for Jacobian elements. Any derivative with absolute value less than this value will be set to zero. |
1e−10 |
|
PIVPCT |
When choosing pivots for each row, all columns with updated entries within PIVPCT of the maximum will be considered. |
1e−1 |
|
PSTEP |
This is the step size used in PARSHF and PARSHC for estimating partial derivatives of the functions with respect to the variables. This value is computed from the calculated machine precision. |
1e−8 |
|
FUNPR |
The function precision. |
1e−8 |
|
CONDTL |
When factoring the basis matrix, this is the largest condition number which is acceptable. Blocks whose estimated condition number exceeds CONDTL are considered to be ill-conditioned, and an error message is issued to that effect. If you see these messages, either automatic or user scaling can improve the situation. |
1e+8 |
|
EPBOUN |
A variable is considered to be at its bound if it is within EPBOUN of the bound. |
1e−6 |
|
EPDEG |
If problem becomes degenerate, the variable bounds will be perturbed by this relative tolerance, and the problem re solved. |
1e−4 |
|
MAXTIME |
Time limit in seconds. |
1000 |
|
NSTOP |
If the fractional change in the objective is less than EPSTOP for NSTOP consecutive iterations, the program will stop. |
3 |
|
ITLIM |
If subroutine newton takes ITLIM iterations without converging satisfactorily, the iterations are stopped and corrective action is taken. |
10 |
|
LIMSER |
If the number of completed one dimensional searches equals LIMSER, optimization will terminate. |
10,000 |
|
INPRNT |
If 1, turns on printing of initial problem structure, option settings, initial values, bounds, and status of variables and rows. |
0 |
|
OTPRNT |
If 1, turns on printing of final values and status of rows and variables, Lagrange multipliers, reduced gradients, and run statistics. |
0 |
|
IPR |
Suppress all output printing except initial and final reports. |
0 |
|
1 = Print one line of output for each one dimensional
search. |
|
2 = Provide more detailed information on the progress of each one dimensional
search. |
|
3 = Expand the output to include the problem function values and variable values at each iteration as well as the separation of constraints into nonbinding and binding and variables into basic, superbasic and
nonbasic. |
|
4 = At each iteration the reduced gradient, the search direction and the tangent vector are
printed. |
|
5 = Provides details of the basis inversion process including the initial basis and its inverse. also displays the variable values and constraint errors for each newton
iteration. |
|
6 = This is the maximum level of print available and includes all of the above along with detailed progress of the basis construction phase, including the basis inverse at each
pivot. |
|
IPN# |
If IPN# is greater than zero then IPR will be set to # after IPN# iterations. The symbol # may be 4, 5, or 6. For example, setting IPN5 to 20 sets the print level IPR to 5 after 20 iterations. |
0 |
|
IPER |
If IPER is greater than zero then for every IPER th iteration, LSGRG2 output will use the current value of IPR, otherwise use IPR=1. |
0 |
|
IQUAD |
Method for initial estimates of basic variables for each one dimensional search . |
0 |
|
0 = Tangent vector and linear extrapolation will be
used. |
|
1 = Quadratic extrapolation will be used. |
|
KDERIV |
Method for obtaining partial derivatives. |
0 |
|
0 = Forward difference approximation. |
|
1 = Central difference approximation. |
|
2 = User supplied subroutine parsh is used. |
|
MODCG |
MODCG and MAXHES (see below) control use of a conjugate gradient (cg) method. If the number of superbasic variables exceeds MAXHES, the cg method indicated by MODCG is used. Default value of MODCG=6. To use a cg method at each iteration, set MAXHES=0. |
6 |
|
1 = Uses fletcher reeves formula. |
|
2 = Uses polak ribiere formula. |
|
3 = Uses perrys formula. |
|
4 = Uses 1 step version of the DFP quasi-newton
method. |
|
5 = Uses 1 step version of the BFGS quasi-newton
method. |
|
6 = Uses limited memory version of the BFGS quasi-newton
method. |
|
NOTE: if MODCG=6, the optional parameters MEMCG and HSCALE (see below) are
relevant. |
|
MXTABU |
The maximum length of the tabu list in chuzq. |
25 |
|
IDEGLM |
The maximum number of consecutive degenerate steps before the subroutine terminates. |
25 |
|
ISCALE |
Determines whether Jacobian scaling will be used at the initial point. |
0 |
|
0 = Do not scale jacobian. |
|
1 = Scale the jacobian. |
|
ISCLAG |
Rescale the Jacobian after every ISCLAG line searches are performed. |
0 |
|
0 = No rescaling is performed. |
|
>0 = Rescale after ISCLAG line searches. |
|
MEMCG |
If using MODCG = 6, MEMCG is the memory length of the limited memory cg method. Note: this method is only used if MODCG=6. |
3 |
|
IBVBLM |
If a basic variable is in the basis at a bound for IBVBLM consecutive iterations, the LSGRG2 basis factorization routine does not try to replace it. |
2 |
|
HRDBND |
The maximum length of the tabu list in chuzq. |
0 |
|
0 = This allows the user routines to be called with some variables outside their bounds. This can cause errors when routines contain functions like square roots, logs,
etc. |
|
1 = All variables will be within their bounds. |
|
FIXPIV |
The maximum length of the tabu list in chuzq. |
0 |
|
0 = The pivot tolerance PIVPCT will be fixed at the specified
level. |
|
1 = The pivot tolerance PIVPCT will be adjusted
dynamically. |
|
GFEAS |
Phase control. |
0 |
|
0 = Both phase 1 and phase 2 are performed. |
|
1 = Only a phase 1 is performed. The algorithm will terminate when a feasible point is
found. |
|
USEPH0 |
Phase control. |
1 |
|
0 = No phase 0 is performed. Instead, a normal phase 1 is performed if the initial point is not
feasible. |
|
1 = A phase 0 is performed to attempt to find an initial feasible point via newtons method. This method is usually faster, but can occasionally cause LSGRG2 to fail, in which case it should be
disabled. |
|
The LSGRG2 printing logic is described below.
Prob.PriLevOpt is called PriLev in the text.
PriLev controls the amount of output from LSGRG2, by setting the
print level (IPR) to PriLev. PriLev also controls whether
information shall be printed to the MATLAB screen or not. If PriLev
is > 0, information from LSGRG2 is printed to the MATLAB screen.
Prob.LSGRG2.options.IPR is a solver specific option controlling the
amount of output to be printed. It takes precedence to PriLev, i.e.
an old IPR value set by PriLev is reset to the new
Prob.LSGRG2.options.IPR value. IMPORTANT: PriLev remains PriLev, and
it still controls any output to the MATLAB screen.
Prob.LSGRG2.PrintFile is the name of the output file. If set by the
user and printing is turned on, the file will be created.
<= 0 and printing is enabled through solver specific
options and no Prob.LSGRG2.PrintFile name is given, a default file
is opened.
> 0 and printing is enabled in some way and no
Prob.LSGRG2.PrintFile name is given, no default file will be opened,
as the user may only want screen printing.
Options controlling printing are: Prob.LSGRG2.options.INPRNT,
.OTPRNT, .IPR, .IPN#, .IPER.