filterSQP NLP interface
Definition in file nlpi_filtersqp.c.
#include <string.h>
#include <sys/time.h>
#include <pthread.h>
#include "scip/misc.h"
#include "nlpi/nlpi_filtersqp.h"
#include "nlpi/nlpi.h"
#include "nlpi/nlpioracle.h"
Go to the source code of this file.
Macros | |
#define | NLPI_NAME "filtersqp" /* short concise name of solver */ |
#define | NLPI_DESC "Sequential Quadratic Programming trust region solver by R. Fletcher and S. Leyffer" /* description of solver */ |
#define | NLPI_PRIORITY -1000 /* priority of NLP solver */ |
#define | RANDSEED 26051979 |
#define | MAXPERTURB 0.01 |
#define | MAXNRUNS 3 |
#define | WORKSPACEGROWTHFACTOR 2 |
#define | MINEPS 1e-14 |
#define | OPTTOLFACTOR 0.5 |
#define | DEFAULT_LOBJLIM (real)(-1e100) |
#define | DEFAULT_FEASOPTTOL 1e-6 |
#define | DEFAULT_MAXITER 3000 |
Typedefs | |
typedef int | fint |
typedef double | real |
typedef long | ftnlen |
typedef struct SCIP_Time | SCIP_TIME |
Functions | |
void | F77_FUNC (filtersqp, FILTERSQP) |
F77_FUNC (cpname, CPNAME) | |
struct { | |
fint phl | |
fint phr | |
fint phc | |
} | F77_FUNC (hessc, HESSC) |
struct { | |
real ubd | |
real tt | |
} | F77_FUNC (ubdc, UBDC) |
struct { | |
real infty | |
real eps | |
} | F77_FUNC (nlp_eps_inf, NLP_EPS_INF) |
struct { | |
fint n_bqpd_calls | |
fint n_bqpd_prfint | |
} | F77_FUNC (bqpd_count, BQPD_COUNT) |
struct { | |
fint scale_mode | |
fint phe | |
} | F77_FUNC (scalec, SCALEC) |
static SCIP_TIME | gettime (void) |
static SCIP_Real | timeelapsed (SCIP_NLPIDATA *nlpidata) |
static SCIP_Bool | timelimitreached (SCIP_NLPIDATA *nlpidata, SCIP_NLPIPROBLEM *nlpiproblem) |
void | F77_FUNC (objfun, OBJFUN) |
void | F77_FUNC (confun, CONFUN) |
void | F77_FUNC (gradient, GRADIENT) |
void | F77_FUNC (objgrad, OBJGRAD) |
void | F77_FUNC (hessian, HESSIAN) |
static SCIP_RETCODE | setupGradients (BMS_BLKMEM *blkmem, SCIP_NLPIORACLE *oracle, fint **la, int *lasize, real **a) |
static SCIP_RETCODE | setupHessian (BMS_BLKMEM *blkmem, SCIP_NLPIORACLE *oracle, fint **la, int *lasize) |
static SCIP_RETCODE | setupStart (SCIP_NLPIDATA *data, SCIP_NLPIPROBLEM *problem, real *x, SCIP_Bool *success) |
static void | invalidateSolution (SCIP_NLPIPROBLEM *problem) |
static SCIP_RETCODE | processSolveOutcome (SCIP_NLPIDATA *nlpidata, SCIP_NLPIPROBLEM *problem, fint ifail, real *x, real *lam) |
static int | calcGrowSize (int num) |
static | SCIP_DECL_NLPICOPY (nlpiCopyFilterSQP) |
static | SCIP_DECL_NLPIFREE (nlpiFreeFilterSQP) |
static | SCIP_DECL_NLPIGETSOLVERPOINTER (nlpiGetSolverPointerFilterSQP) |
static | SCIP_DECL_NLPICREATEPROBLEM (nlpiCreateProblemFilterSQP) |
static | SCIP_DECL_NLPIFREEPROBLEM (nlpiFreeProblemFilterSQP) |
static | SCIP_DECL_NLPIGETPROBLEMPOINTER (nlpiGetProblemPointerFilterSQP) |
static | SCIP_DECL_NLPIADDVARS (nlpiAddVarsFilterSQP) |
static | SCIP_DECL_NLPIADDCONSTRAINTS (nlpiAddConstraintsFilterSQP) |
static | SCIP_DECL_NLPISETOBJECTIVE (nlpiSetObjectiveFilterSQP) |
static | SCIP_DECL_NLPICHGVARBOUNDS (nlpiChgVarBoundsFilterSQP) |
static | SCIP_DECL_NLPICHGCONSSIDES (nlpiChgConsSidesFilterSQP) |
static | SCIP_DECL_NLPIDELVARSET (nlpiDelVarSetFilterSQP) |
static | SCIP_DECL_NLPIDELCONSSET (nlpiDelConstraintSetFilterSQP) |
static | SCIP_DECL_NLPICHGLINEARCOEFS (nlpiChgLinearCoefsFilterSQP) |
static | SCIP_DECL_NLPICHGQUADCOEFS (nlpiChgQuadraticCoefsFilterSQP) |
static | SCIP_DECL_NLPICHGEXPRTREE (nlpiChgExprtreeFilterSQP) |
static | SCIP_DECL_NLPICHGNONLINCOEF (nlpiChgNonlinCoefFilterSQP) |
static | SCIP_DECL_NLPICHGOBJCONSTANT (nlpiChgObjConstantFilterSQP) |
static | SCIP_DECL_NLPISETINITIALGUESS (nlpiSetInitialGuessFilterSQP) |
static | SCIP_DECL_NLPISOLVE (nlpiSolveFilterSQP) |
static | SCIP_DECL_NLPIGETSOLSTAT (nlpiGetSolstatFilterSQP) |
static | SCIP_DECL_NLPIGETTERMSTAT (nlpiGetTermstatFilterSQP) |
static | SCIP_DECL_NLPIGETSOLUTION (nlpiGetSolutionFilterSQP) |
static | SCIP_DECL_NLPIGETSTATISTICS (nlpiGetStatisticsFilterSQP) |
static | SCIP_DECL_NLPIGETWARMSTARTSIZE (nlpiGetWarmstartSizeFilterSQP) |
static | SCIP_DECL_NLPIGETWARMSTARTMEMO (nlpiGetWarmstartMemoFilterSQP) |
static | SCIP_DECL_NLPISETWARMSTARTMEMO (nlpiSetWarmstartMemoFilterSQP) |
static | SCIP_DECL_NLPIGETINTPAR (nlpiGetIntParFilterSQP) |
static | SCIP_DECL_NLPISETINTPAR (nlpiSetIntParFilterSQP) |
static | SCIP_DECL_NLPIGETREALPAR (nlpiGetRealParFilterSQP) |
static | SCIP_DECL_NLPISETREALPAR (nlpiSetRealParFilterSQP) |
static | SCIP_DECL_NLPIGETSTRINGPAR (nlpiGetStringParFilterSQP) |
static | SCIP_DECL_NLPISETSTRINGPAR (nlpiSetStringParFilterSQP) |
static | SCIP_DECL_NLPISETMESSAGEHDLR (nlpiSetMessageHdlrFilterSQP) |
SCIP_RETCODE | SCIPcreateNlpSolverFilterSQP (BMS_BLKMEM *blkmem, SCIP_NLPI **nlpi) |
const char * | SCIPgetSolverNameFilterSQP (void) |
const char * | SCIPgetSolverDescFilterSQP (void) |
SCIP_Bool | SCIPisFilterSQPAvailableFilterSQP (void) |
Variables | |
static pthread_mutex_t | filtersqpmutex = PTHREAD_MUTEX_INITIALIZER |
#define NLPI_NAME "filtersqp" /* short concise name of solver */ |
Definition at line 42 of file nlpi_filtersqp.c.
Referenced by SCIPcreateNlpSolverFilterSQP().
#define NLPI_DESC "Sequential Quadratic Programming trust region solver by R. Fletcher and S. Leyffer" /* description of solver */ |
Definition at line 43 of file nlpi_filtersqp.c.
Referenced by SCIPcreateNlpSolverFilterSQP(), and SCIPgetSolverDescFilterSQP().
#define NLPI_PRIORITY -1000 /* priority of NLP solver */ |
Definition at line 44 of file nlpi_filtersqp.c.
Referenced by SCIPcreateNlpSolverFilterSQP().
#define RANDSEED 26051979 |
#define MAXPERTURB 0.01 |
maximal perturbation of bounds in starting point heuristic
Definition at line 47 of file nlpi_filtersqp.c.
Referenced by setupStart().
#define MAXNRUNS 3 |
maximal number of FilterSQP calls per NLP solve (several calls if increasing workspace or decreasing eps)
Definition at line 48 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPISOLVE().
#define WORKSPACEGROWTHFACTOR 2 |
factor by which to increase worksapce
Definition at line 49 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPISOLVE().
#define MINEPS 1e-14 |
minimal FilterSQP epsilon
Definition at line 50 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPISOLVE().
#define OPTTOLFACTOR 0.5 |
factor to apply to optimality tolerance, because FilterSQP do scaling
Definition at line 51 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPISOLVE().
#define DEFAULT_LOBJLIM (real)(-1e100) |
default lower objective limit (should mean "unlimited")
Definition at line 52 of file nlpi_filtersqp.c.
Referenced by processSolveOutcome(), and SCIP_DECL_NLPICREATEPROBLEM().
#define DEFAULT_FEASOPTTOL 1e-6 |
default feasibility and optimality tolerance
Definition at line 53 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPICREATEPROBLEM().
#define DEFAULT_MAXITER 3000 |
default iteration limit
Definition at line 54 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPICREATEPROBLEM().
typedef int fint |
Definition at line 60 of file nlpi_filtersqp.c.
typedef double real |
Definition at line 61 of file nlpi_filtersqp.c.
typedef long ftnlen |
Definition at line 62 of file nlpi_filtersqp.c.
Definition at line 69 of file nlpi_filtersqp.c.
void F77_FUNC | ( | filtersqp | , |
FILTERSQP | |||
) |
FilterSQP main routine.
Array a has length nnza, which is the number of nonzeros in the gradient of the objective and the Jacobian. The first entries of a is the objective gradient, next are the gradients of the constraints.
Array la has length lamax, which is at least nnza+m+2. la contains the index information of a row-oriented sparse matrix storage. It stores the number of nonzeros, the column indices, and the row starts: la[0] must be set to nnza+1. la[1]..la[nnza] are indices of the variables corresponding to the entries in a (colidx). la[nnza+1]..la[nnza+1+m] contain the index where each row starts in a and la (rowstart).common block for problemname
Definition at line 159 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPISOLVE(), and setupHessian().
F77_FUNC | ( | cpname | , |
CPNAME | |||
) |
struct @14 F77_FUNC | ( | hessc | , |
HESSC | |||
) |
common block for Hessian storage set to 0, i.e. NO Hessian
struct @15 F77_FUNC | ( | ubdc | , |
UBDC | |||
) |
common block for upper bound on filter
struct @16 F77_FUNC | ( | nlp_eps_inf | , |
NLP_EPS_INF | |||
) |
common block for infinity & epsilon
struct @17 F77_FUNC | ( | bqpd_count | , |
BQPD_COUNT | |||
) |
common block for printing from QP solver
struct @18 F77_FUNC | ( | scalec | , |
SCALEC | |||
) |
common for scaling: scale_mode = 0 (none), 1 (variables), 2 (vars+cons)
|
static |
Definition at line 259 of file nlpi_filtersqp.c.
References SCIP_Time::sec, and SCIP_Time::usec.
Referenced by SCIP_DECL_NLPISOLVE(), and timeelapsed().
|
static |
nlpidata | NLPI data |
Definition at line 281 of file nlpi_filtersqp.c.
References gettime(), SCIP_Real, SCIP_Time::sec, and SCIP_Time::usec.
Referenced by processSolveOutcome(), and timelimitreached().
|
static |
nlpidata | NLPI data |
nlpiproblem | NLPI problem |
Definition at line 299 of file nlpi_filtersqp.c.
References FALSE, SCIP_NlpiProblem::maxtime, and timeelapsed().
Referenced by F77_FUNC(), and SCIP_DECL_NLPISOLVE().
void F77_FUNC | ( | objfun | , |
OBJFUN | |||
) |
Objective function evaluation set to 1 if arithmetic exception occurs, otherwise 0
Definition at line 311 of file nlpi_filtersqp.c.
References SCIP_NlpiProblem::oracle, SCIP_OKAY, SCIPdebugMessage, SCIPisFinite, SCIPnlpiOracleEvalObjectiveValue(), and timelimitreached().
void F77_FUNC | ( | confun | , |
CONFUN | |||
) |
Constraint functions evaluation set to 1 if arithmetic exception occurs, otherwise 0
Definition at line 346 of file nlpi_filtersqp.c.
References SCIP_NlpiProblem::oracle, SCIP_OKAY, SCIPdebugMessage, SCIPisFinite, and SCIPnlpiOracleEvalConstraintValue().
void F77_FUNC | ( | gradient | , |
GRADIENT | |||
) |
Objective gradient and Jacobian evaluation
Definition at line 383 of file nlpi_filtersqp.c.
References BMScopyMemoryArray, SCIP_NlpiProblem::evalbuffer, SCIP_NlpiProblem::evalbufsize, SCIP_NlpiProblem::oracle, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnlpiOracleEvalJacobian(), SCIPnlpiOracleEvalObjectiveGradient(), and TRUE.
void F77_FUNC | ( | objgrad | , |
OBJGRAD | |||
) |
Definition at line 439 of file nlpi_filtersqp.c.
References SCIPerrorMessage.
void F77_FUNC | ( | hessian | , |
HESSIAN | |||
) |
Hessian of the Lagrangian evaluation
phase = 1 : Hessian of the Lagrangian without objective Hessian phase = 2 : Hessian of the Lagrangian (including objective Hessian)
Definition at line 452 of file nlpi_filtersqp.c.
References BMSallocMemoryArray, BMScopyMemoryArray, BMSfreeMemoryArray, SCIP_NlpiProblem::evalbuffer, SCIP_NlpiProblem::evalbufsize, SCIP_NlpiProblem::hessiannz, SCIP_NlpiProblem::oracle, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnlpiOracleEvalHessianLag(), and TRUE.
|
static |
blkmem | block memory |
oracle | NLPI oracle |
la | buffer to store pointer to sparsity structure |
lasize | buffer to store length of *la array |
a | buffer to store pointer to value buffer |
Definition at line 510 of file nlpi_filtersqp.c.
References BMSallocBlockMemoryArray, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnlpiOracleGetJacobianSparsity(), SCIPnlpiOracleGetNConstraints(), and SCIPnlpiOracleGetNVars().
Referenced by SCIP_DECL_NLPISOLVE().
|
static |
blkmem | block memory |
oracle | NLPI oracle |
la | buffer to store pointer to Hessian sparsity structure |
lasize | buffer to store length of *la array |
Definition at line 579 of file nlpi_filtersqp.c.
References BMSallocBlockMemoryArray, F77_FUNC(), SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnlpiOracleGetHessianLagSparsity(), and SCIPnlpiOracleGetNVars().
Referenced by SCIP_DECL_NLPISOLVE().
|
static |
setup starting point for FilterSQP
data | NLPI data |
problem | NLPI problem |
x | array to store initial values |
success | whether we could setup a point in which functions could be evaluated |
Definition at line 642 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArray, SCIP_NlpiProblem::evalbuffer, FALSE, SCIP_NlpiProblem::initguess, MAX, MAXPERTURB, SCIP_NlpiProblem::oracle, RANDSEED, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPisFinite, SCIPnlpiOracleEvalConstraintValue(), SCIPnlpiOracleEvalJacobian(), SCIPnlpiOracleEvalObjectiveGradient(), SCIPnlpiOracleEvalObjectiveValue(), SCIPnlpiOracleGetNConstraints(), SCIPnlpiOracleGetNVars(), SCIPnlpiOracleGetVarLbs(), SCIPnlpiOracleGetVarUbs(), SCIPrandomCreate(), SCIPrandomGetReal(), and SCIP_NlpiProblem::varssize.
Referenced by SCIP_DECL_NLPISOLVE().
|
static |
sets the solstat and termstat to unknown and other, resp.
problem | data structure of problem |
Definition at line 720 of file nlpi_filtersqp.c.
References SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OTHER, SCIP_NlpiProblem::solstat, and SCIP_NlpiProblem::termstat.
Referenced by SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPIADDVARS(), SCIP_DECL_NLPICHGCONSSIDES(), SCIP_DECL_NLPICHGEXPRTREE(), SCIP_DECL_NLPICHGLINEARCOEFS(), SCIP_DECL_NLPICHGNONLINCOEF(), SCIP_DECL_NLPICHGOBJCONSTANT(), SCIP_DECL_NLPICHGQUADCOEFS(), SCIP_DECL_NLPICHGVARBOUNDS(), SCIP_DECL_NLPICREATEPROBLEM(), SCIP_DECL_NLPIDELCONSSET(), SCIP_DECL_NLPIDELVARSET(), and SCIP_DECL_NLPISETOBJECTIVE().
|
static |
processes results from FilterSQP call
nlpidata | NLPI data |
problem | NLPI problem |
ifail | fail flag from FilterSQP call |
x | primal solution values from FilterSQP call, or NULL if stopped before filtersqp got called |
lam | dual solution values from FilterSQP call, or NULL if stopped before filtersqp got called |
Definition at line 733 of file nlpi_filtersqp.c.
References BMSallocBlockMemoryArray, SCIP_NlpiProblem::consdualvalues, SCIP_NlpiProblem::conssize, DEFAULT_LOBJLIM, FALSE, SCIP_NlpiProblem::feastol, SCIP_NlpiProblem::fmin, MAX, SCIP_NlpiProblem::maxtime, SCIP_NlpiProblem::opttol, SCIP_NlpiProblem::oracle, SCIP_NlpiProblem::primalvalues, SCIP_NlpiProblem::rstat, SCIP_ALLOC, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_GLOBINFEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_LOCOPT, SCIP_NLPSOLSTAT_UNBOUNDED, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_EVALERR, SCIP_NLPTERMSTAT_ITLIM, SCIP_NLPTERMSTAT_LOBJLIM, SCIP_NLPTERMSTAT_MEMERR, SCIP_NLPTERMSTAT_NUMERR, SCIP_NLPTERMSTAT_OKAY, SCIP_NLPTERMSTAT_OTHER, SCIP_NLPTERMSTAT_TILIM, SCIP_OKAY, SCIPnlpiOracleGetNConstraints(), SCIPnlpiOracleGetNVars(), SCIP_NlpiProblem::solstat, SCIP_NlpiProblem::solvetime, SCIP_NlpiProblem::termstat, timeelapsed(), TRUE, SCIP_NlpiProblem::varlbdualvalues, SCIP_NlpiProblem::varssize, SCIP_NlpiProblem::varubdualvalues, and SCIP_NlpiProblem::warmstart.
Referenced by SCIP_DECL_NLPISOLVE().
|
static |
calculate memory size for dynamically allocated arrays (copied from scip/set.c)
num | minimum number of entries to store |
Definition at line 880 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPIADDVARS(), and SCIP_DECL_NLPISOLVE().
|
static |
copy method of NLP interface (called when SCIP copies plugins)
input:
Definition at line 907 of file nlpi_filtersqp.c.
References SCIP_CALL, SCIP_NLPPAR_INFINITY, SCIP_OKAY, SCIPcreateNlpSolverFilterSQP(), SCIPnlpiGetData(), SCIPnlpiSetMessageHdlr(), and SCIPnlpiSetRealPar().
|
static |
destructor of NLP interface to free nlpi data
input:
Definition at line 932 of file nlpi_filtersqp.c.
References BMSfreeBlockMemory, SCIP_OKAY, SCIPnlpiGetData(), and SCIPrandomFree().
|
static |
gets pointer for NLP solver
to do dirty stuff
input:
return: void pointer to solver
Definition at line 962 of file nlpi_filtersqp.c.
|
static |
creates a problem instance
input:
Definition at line 975 of file nlpi_filtersqp.c.
References BMSallocBlockMemory, BMSclearMemory, DEFAULT_FEASOPTTOL, DEFAULT_LOBJLIM, DEFAULT_MAXITER, invalidateSolution(), SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), SCIPnlpiOracleCreate(), SCIPnlpiOracleSetInfinity(), and SCIPnlpiOracleSetProblemName().
|
static |
free a problem instance
input:
Definition at line 1011 of file nlpi_filtersqp.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), and SCIPnlpiOracleFree().
|
static |
gets pointer to solver-internal problem instance
to do dirty stuff
input:
return: void pointer to problem instance
Definition at line 1063 of file nlpi_filtersqp.c.
|
static |
add variables
input:
Definition at line 1079 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, BMSreallocBlockMemoryArray, calcGrowSize(), FALSE, invalidateSolution(), SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), SCIPnlpiOracleAddVars(), SCIPnlpiOracleGetNConstraints(), and SCIPnlpiOracleGetNVars().
|
static |
add constraints quadratic coefficients: row oriented matrix for each constraint
input:
Definition at line 1219 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, BMSreallocBlockMemoryArray, calcGrowSize(), FALSE, invalidateSolution(), SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), SCIPnlpiOracleAddConstraints(), SCIPnlpiOracleGetConstraintDegree(), SCIPnlpiOracleGetNConstraints(), and SCIPnlpiOracleGetNVars().
|
static |
sets or overwrites objective, a minimization problem is expected May change sparsity pattern.
input:
Definition at line 1333 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), and SCIPnlpiOracleSetObjective().
|
static |
change variable bounds
input:
Definition at line 1370 of file nlpi_filtersqp.c.
References invalidateSolution(), SCIP_CALL, SCIP_OKAY, and SCIPnlpiOracleChgVarBounds().
|
static |
change constraint bounds
input:
Definition at line 1406 of file nlpi_filtersqp.c.
References invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiOracleChgConsSides(), and SCIPnlpiOracleGetNVars().
|
static |
delete a set of variables
input:
output:
Definition at line 1445 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, FALSE, invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), and SCIPnlpiOracleDelVarSet().
|
static |
delete a set of constraints
input:
output:
Definition at line 1489 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, FALSE, invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), and SCIPnlpiOracleDelConsSet().
|
static |
changes (or adds) linear coefficients in a constraint or objective
input:
Definition at line 1530 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), and SCIPnlpiOracleChgLinearCoefs().
|
static |
changes (or adds) coefficients in the quadratic part of a constraint or objective
input:
Definition at line 1569 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), SCIPnlpiOracleChgQuadCoefs(), and SCIPnlpiOracleGetConstraintDegree().
|
static |
replaces the expression tree of a constraint or objective
input:
Definition at line 1613 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), SCIPnlpiOracleChgExprtree(), and SCIPnlpiOracleGetConstraintDegree().
|
static |
change one coefficient in the nonlinear part
input:
return: Error if parameter does not exist
Definition at line 1654 of file nlpi_filtersqp.c.
References BMSfreeBlockMemoryArrayNull, invalidateSolution(), SCIP_CALL, SCIP_OKAY, SCIPnlpiGetData(), and SCIPnlpiOracleChgExprParam().
|
static |
change the constant offset in the objective
input:
Definition at line 1687 of file nlpi_filtersqp.c.
References invalidateSolution(), SCIP_CALL, SCIP_OKAY, and SCIPnlpiOracleChgObjConstant().
|
static |
sets initial guess for primal variables
input:
Definition at line 1711 of file nlpi_filtersqp.c.
References BMSallocBlockMemoryArray, BMScopyMemoryArray, BMSfreeBlockMemoryArrayNull, SCIP_ALLOC, SCIP_OKAY, SCIPnlpiGetData(), and SCIPnlpiOracleGetNVars().
|
static |
tries to solve NLP
input:
Definition at line 1746 of file nlpi_filtersqp.c.
References BMSallocBlockMemoryArray, BMSallocClearBlockMemoryArray, BMSclearMemoryArray, BMScopyMemoryArray, BMSreallocBlockMemoryArray, calcGrowSize(), eps, F77_FUNC(), FALSE, filtersqpmutex, gettime(), MAX, MAXNRUNS, MINEPS, OPTTOLFACTOR, processSolveOutcome(), SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPmessagePrintInfo(), SCIPnlpiGetData(), SCIPnlpiOracleGetConstraintDegree(), SCIPnlpiOracleGetConstraintLhs(), SCIPnlpiOracleGetConstraintRhs(), SCIPnlpiOracleGetInfinity(), SCIPnlpiOracleGetNConstraints(), SCIPnlpiOracleGetNVars(), SCIPnlpiOracleGetVarLbs(), SCIPnlpiOracleGetVarUbs(), setupGradients(), setupHessian(), setupStart(), timelimitreached(), and WORKSPACEGROWTHFACTOR.
|
static |
gives solution status
input:
return: Solution Status
Definition at line 2058 of file nlpi_filtersqp.c.
|
static |
gives termination reason
input:
return: Termination Status
Definition at line 2074 of file nlpi_filtersqp.c.
|
static |
gives primal and dual solution values
solver can return NULL in dual values if not available but if solver provides dual values for one side of variable bounds, then it must also provide those for the other side
for a ranged constraint, the dual variable is positive if the right hand side is active and negative if the left hand side is active
input:
Definition at line 2098 of file nlpi_filtersqp.c.
References SCIP_CALL, SCIP_INVALID, SCIP_OKAY, and SCIPnlpiOracleEvalObjectiveValue().
|
static |
gives solve statistics
input:
output:
Definition at line 2155 of file nlpi_filtersqp.c.
References SCIP_OKAY, SCIPnlpStatisticsSetNIterations(), and SCIPnlpStatisticsSetTotalTime().
|
static |
gives required size of a buffer to store a warmstart object
input:
output:
Definition at line 2176 of file nlpi_filtersqp.c.
References SCIP_OKAY, SCIPABORT, and SCIPerrorMessage.
|
static |
stores warmstart information in buffer
required size of buffer should have been obtained by SCIPnlpiGetWarmstartSize before
input:
output:
Definition at line 2197 of file nlpi_filtersqp.c.
References SCIP_OKAY, SCIPABORT, and SCIPerrorMessage.
|
static |
sets warmstart information in solver
write warmstart to buffer
input:
Definition at line 2215 of file nlpi_filtersqp.c.
References SCIP_OKAY, SCIPABORT, and SCIPerrorMessage.
|
static |
gets integer parameter of NLP
input:
output:
Definition at line 2235 of file nlpi_filtersqp.c.
References SCIP_NLPPAR_FASTFAIL, SCIP_NLPPAR_FEASTOL, SCIP_NLPPAR_FROMSCRATCH, SCIP_NLPPAR_INFINITY, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_LOBJLIM, SCIP_NLPPAR_OPTFILE, SCIP_NLPPAR_RELOBJTOL, SCIP_NLPPAR_TILIM, SCIP_NLPPAR_VERBLEVEL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PARAMETERWRONGTYPE, and SCIPerrorMessage.
|
static |
sets integer parameter of NLP
input:
Definition at line 2322 of file nlpi_filtersqp.c.
References SCIP_Bool, SCIP_NLPPAR_FASTFAIL, SCIP_NLPPAR_FEASTOL, SCIP_NLPPAR_FROMSCRATCH, SCIP_NLPPAR_INFINITY, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_LOBJLIM, SCIP_NLPPAR_OPTFILE, SCIP_NLPPAR_RELOBJTOL, SCIP_NLPPAR_TILIM, SCIP_NLPPAR_VERBLEVEL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PARAMETERWRONGTYPE, SCIP_PARAMETERWRONGVAL, SCIPdebugMessage, and SCIPerrorMessage.
|
static |
gets floating point parameter of NLP
input:
output:
Definition at line 2443 of file nlpi_filtersqp.c.
References SCIP_NLPPAR_FASTFAIL, SCIP_NLPPAR_FEASTOL, SCIP_NLPPAR_FROMSCRATCH, SCIP_NLPPAR_INFINITY, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_LOBJLIM, SCIP_NLPPAR_OPTFILE, SCIP_NLPPAR_RELOBJTOL, SCIP_NLPPAR_TILIM, SCIP_NLPPAR_VERBLEVEL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PARAMETERWRONGTYPE, SCIPerrorMessage, SCIPnlpiGetData(), and SCIPnlpiOracleGetInfinity().
|
static |
sets floating point parameter of NLP
input:
Definition at line 2539 of file nlpi_filtersqp.c.
References SCIP_CALL, SCIP_NLPPAR_FASTFAIL, SCIP_NLPPAR_FEASTOL, SCIP_NLPPAR_FROMSCRATCH, SCIP_NLPPAR_INFINITY, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_LOBJLIM, SCIP_NLPPAR_OPTFILE, SCIP_NLPPAR_RELOBJTOL, SCIP_NLPPAR_TILIM, SCIP_NLPPAR_VERBLEVEL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PARAMETERWRONGTYPE, SCIP_PARAMETERWRONGVAL, SCIPerrorMessage, SCIPnlpiGetData(), and SCIPnlpiOracleSetInfinity().
|
static |
gets string parameter of NLP
input:
output:
Definition at line 2663 of file nlpi_filtersqp.c.
References SCIP_NLPPAR_FASTFAIL, SCIP_NLPPAR_FEASTOL, SCIP_NLPPAR_FROMSCRATCH, SCIP_NLPPAR_INFINITY, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_LOBJLIM, SCIP_NLPPAR_OPTFILE, SCIP_NLPPAR_RELOBJTOL, SCIP_NLPPAR_TILIM, SCIP_NLPPAR_VERBLEVEL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PARAMETERWRONGTYPE, and SCIPerrorMessage.
|
static |
sets string parameter of NLP
input:
Definition at line 2747 of file nlpi_filtersqp.c.
References SCIP_NLPPAR_FASTFAIL, SCIP_NLPPAR_FEASTOL, SCIP_NLPPAR_FROMSCRATCH, SCIP_NLPPAR_INFINITY, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_LOBJLIM, SCIP_NLPPAR_OPTFILE, SCIP_NLPPAR_RELOBJTOL, SCIP_NLPPAR_TILIM, SCIP_NLPPAR_VERBLEVEL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PARAMETERWRONGTYPE, SCIPerrorMessage, SCIPmessagePrintWarning(), and SCIPnlpiGetData().
|
static |
sets message handler for message output
input:
Definition at line 2829 of file nlpi_filtersqp.c.
References SCIP_OKAY, and SCIPnlpiGetData().
SCIP_RETCODE SCIPcreateNlpSolverFilterSQP | ( | BMS_BLKMEM * | blkmem, |
SCIP_NLPI ** | nlpi | ||
) |
create solver interface for FilterSQP solver
blkmem | block memory data structure |
nlpi | pointer to buffer for nlpi address |
Definition at line 2848 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPICOPY(), and SCIPincludeDefaultPlugins().
const char* SCIPgetSolverNameFilterSQP | ( | void | ) |
gets string that identifies filterSQP (version number)
Definition at line 2885 of file nlpi_filtersqp.c.
Referenced by SCIPincludeDefaultPlugins().
const char* SCIPgetSolverDescFilterSQP | ( | void | ) |
gets string that describes filterSQP
Definition at line 2893 of file nlpi_filtersqp.c.
Referenced by SCIPincludeDefaultPlugins().
SCIP_Bool SCIPisFilterSQPAvailableFilterSQP | ( | void | ) |
returns whether filterSQP is available, i.e., whether it has been linked in
Definition at line 2901 of file nlpi_filtersqp.c.
fint phl |
Definition at line 224 of file nlpi_filtersqp.c.
fint phr |
Definition at line 224 of file nlpi_filtersqp.c.
fint phc |
Definition at line 224 of file nlpi_filtersqp.c.
real ubd |
Definition at line 231 of file nlpi_filtersqp.c.
real tt |
Definition at line 231 of file nlpi_filtersqp.c.
real infty |
Definition at line 237 of file nlpi_filtersqp.c.
real eps |
Definition at line 237 of file nlpi_filtersqp.c.
Referenced by checkRedundancySide(), createSubproblem(), isLbBetter(), isUbBetter(), SCIP_DECL_NLPISOLVE(), SCIPbanditCreateEpsgreedy(), SCIPbranchGetScore(), SCIPcalcMachineEpsilon(), SCIPhistoryUpdatePseudocost(), SCIProwGetLPEfficacy(), SCIProwGetNLPEfficacy(), SCIProwGetRelaxEfficacy(), SCIProwGetSolEfficacy(), SCIPsetDualfeasFloor(), SCIPsetEpsilonEpsgreedy(), SCIPsetIsDualfeasIntegral(), tightenDualproof(), and varProcessChgBranchFactor().
fint n_bqpd_calls |
Definition at line 243 of file nlpi_filtersqp.c.
fint n_bqpd_prfint |
Definition at line 243 of file nlpi_filtersqp.c.
fint scale_mode |
Definition at line 250 of file nlpi_filtersqp.c.
fint phe |
Definition at line 250 of file nlpi_filtersqp.c.
|
static |
Definition at line 255 of file nlpi_filtersqp.c.
Referenced by SCIP_DECL_NLPISOLVE().