The current model is a simple QP model with a sparse Q matrix, bounded variables, and one constraint.
The number of superbasic variables is larger than the default limit of 500 and the model does not solve nicely. To solve it faster, there are these possibilities:
- Increase the limit on the number of superbasics. This can be done with a call to coidef_maxsup() or with an option. Both approaches are shown in extra solves in this file.
- Use directional 2nd derivatives, see qp2
- Use 2nd derivatives as a matrix, see qp3
- 2 and 3 combined, see qp4
- Use 2nd derivatives computed using perturbations, see qp5
- Use 2nd derivatives computed using perturbations defined using an options routine, see qp6
- As 5 but with the objective defined as a positive variable, i.e. it cannot be removed in the post-triangle.
For more information about the individual callbacks, please have a look at the source code.
◆ buildModel()
void qp1_TutModelData.buildModel |
( |
| ) |
|
|
inline |
adds variables and constraints to the model
Definition at line 92 of file qp1.java.
◆ evaluateNonlinearTerm()
double qp1_TutModelData.evaluateNonlinearTerm |
( |
double[] | x, |
|
|
int | rowno, |
|
|
boolean | ignerr, |
|
|
int | thread ) |
|
inline |
callback method for evaluating the nonlinear terms in a given row
- Parameters
-
x | the solution vector that needs to be evaluated. |
rowno | the number for the row in which the nonlinear term exists. |
ignerr | a boolean to indicate whether the current point is safe or unsafe. |
thread | the index of the thread from which this method is being called from. |
- Returns
- the value of the nonlinear terms.
Note: an error in the evaluation is reported by calling errorInEvaluation()
Definition at line 128 of file qp1.java.
◆ evaluateNonlinearJacobian()
void qp1_TutModelData.evaluateNonlinearJacobian |
( |
double[] | x, |
|
|
double[] | jac, |
|
|
int | rowno, |
|
|
int[] | jacnum, |
|
|
boolean | ignerr, |
|
|
int | thread ) |
|
inline |
callback method for evaluating the jacobian for the nonlinear terms in a given row
- Parameters
-
x | the solution vector that needs to be evaluated. |
jac | an array to store the Jacobian at the given point and row. This is of length numVar(). |
rowno | the number for the row in which the nonlinear term exists. |
jacnum | vector with a list of column numbers for the nonlinear nonzero Jacobian elements in the row. |
ignerr | a boolean to indicate whether the current point is safe or unsafe. |
thread | the index of the thread from which this method is being called from. |
Note: an error in the evaluation is reported by calling errorInEvaluation()
Definition at line 146 of file qp1.java.