Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

type definitions for NLP solver interfaces

Author
Stefan Vigerske
Thorsten Gellermann

Definition in file type_nlpi.h.

#include "scip/def.h"
#include "scip/type_scip.h"
#include "scip/type_expr.h"
#include "scip/type_nlp.h"

Go to the source code of this file.

Data Structures

struct  SCIP_NlpParam
 
struct  SCIP_NlpStatistics
 

Macros

#define SCIP_NLPPARAM_DEFAULT_VERBLEVEL   0
 
#define SCIP_NLPPARAM_DEFAULT_INITS(scip)
 
#define SCIP_NLPPARAM_DEFAULT(scip)   (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT_INITS(scip) }
 
#define SCIP_NLPPARAM_PRINT(param)
 
#define SCIP_DECL_NLPICOPY(x)
 
#define SCIP_DECL_NLPIFREE(x)
 
#define SCIP_DECL_NLPIGETSOLVERPOINTER(x)
 
#define SCIP_DECL_NLPICREATEPROBLEM(x)
 
#define SCIP_DECL_NLPIFREEPROBLEM(x)
 
#define SCIP_DECL_NLPIGETPROBLEMPOINTER(x)
 
#define SCIP_DECL_NLPIADDVARS(x)
 
#define SCIP_DECL_NLPIADDCONSTRAINTS(x)
 
#define SCIP_DECL_NLPISETOBJECTIVE(x)
 
#define SCIP_DECL_NLPICHGVARBOUNDS(x)
 
#define SCIP_DECL_NLPICHGCONSSIDES(x)
 
#define SCIP_DECL_NLPIDELVARSET(x)
 
#define SCIP_DECL_NLPIDELCONSSET(x)
 
#define SCIP_DECL_NLPICHGLINEARCOEFS(x)
 
#define SCIP_DECL_NLPICHGEXPR(x)
 
#define SCIP_DECL_NLPICHGOBJCONSTANT(x)
 
#define SCIP_DECL_NLPISETINITIALGUESS(x)
 
#define SCIP_DECL_NLPISOLVE(x)
 
#define SCIP_DECL_NLPIGETSOLSTAT(x)
 
#define SCIP_DECL_NLPIGETTERMSTAT(x)
 
#define SCIP_DECL_NLPIGETSOLUTION(x)
 
#define SCIP_DECL_NLPIGETSTATISTICS(x)
 

Typedefs

typedef struct SCIP_Nlpi SCIP_NLPI
 
typedef struct SCIP_NlpiData SCIP_NLPIDATA
 
typedef struct SCIP_NlpiProblem SCIP_NLPIPROBLEM
 
typedef enum SCIP_NlpParam_FastFail SCIP_NLPPARAM_FASTFAIL
 
typedef struct SCIP_NlpParam SCIP_NLPPARAM
 
typedef enum SCIP_NlpSolStat SCIP_NLPSOLSTAT
 
typedef enum SCIP_NlpTermStat SCIP_NLPTERMSTAT
 
typedef struct SCIP_NlpStatistics SCIP_NLPSTATISTICS
 

Enumerations

enum  SCIP_NlpParam_FastFail {
  SCIP_NLPPARAM_FASTFAIL_OFF = 0,
  SCIP_NLPPARAM_FASTFAIL_CONSERVATIVE = 1,
  SCIP_NLPPARAM_FASTFAIL_AGGRESSIVE = 2
}
 
enum  SCIP_NlpSolStat {
  SCIP_NLPSOLSTAT_GLOBOPT = 0,
  SCIP_NLPSOLSTAT_LOCOPT = 1,
  SCIP_NLPSOLSTAT_FEASIBLE = 2,
  SCIP_NLPSOLSTAT_LOCINFEASIBLE = 3,
  SCIP_NLPSOLSTAT_GLOBINFEASIBLE = 4,
  SCIP_NLPSOLSTAT_UNBOUNDED = 5,
  SCIP_NLPSOLSTAT_UNKNOWN = 6
}
 
enum  SCIP_NlpTermStat {
  SCIP_NLPTERMSTAT_OKAY = 0,
  SCIP_NLPTERMSTAT_TIMELIMIT = 1,
  SCIP_NLPTERMSTAT_ITERLIMIT = 2,
  SCIP_NLPTERMSTAT_LOBJLIMIT = 3,
  SCIP_NLPTERMSTAT_INTERRUPT = 4,
  SCIP_NLPTERMSTAT_NUMERICERROR = 5,
  SCIP_NLPTERMSTAT_EVALERROR = 6,
  SCIP_NLPTERMSTAT_OUTOFMEMORY = 7,
  SCIP_NLPTERMSTAT_LICENSEERROR = 8,
  SCIP_NLPTERMSTAT_OTHER = 9
}
 

Macro Definition Documentation

◆ SCIP_NLPPARAM_DEFAULT_VERBLEVEL

#define SCIP_NLPPARAM_DEFAULT_VERBLEVEL   0

default verbosity level in NLP parameters

Definition at line 78 of file type_nlpi.h.

◆ SCIP_NLPPARAM_DEFAULT_INITS

#define SCIP_NLPPARAM_DEFAULT_INITS (   scip)
Value:
.lobjlimit = SCIP_REAL_MIN, \
.feastol = SCIPfeastol(scip), \
.opttol = SCIPdualfeastol(scip), \
.solvertol = 0.0, \
.timelimit = SCIP_REAL_MAX, \
.iterlimit = INT_MAX, \
.expectinfeas= FALSE, \
.warmstart = FALSE, \
.caller = __FILE__
SCIP_Real SCIPfeastol(SCIP *scip)
SCIP_Real SCIPdualfeastol(SCIP *scip)
#define FALSE
Definition: def.h:87
#define SCIP_NLPPARAM_DEFAULT_VERBLEVEL
Definition: type_nlpi.h:78
#define SCIP_REAL_MAX
Definition: def.h:178
#define SCIP_REAL_MIN
Definition: def.h:179

default values for parameters

Typical use for this define is the initialization of a SCIP_NLPPARAM struct, e.g.,

SCIP_NLPPARAM nlpparam = { SCIP_NLPPARAM_DEFAULT(scip); }   //lint !e446

or

SCIP_NLPPARAM nlpparam;
nlpparam = (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT(scip); }  //lint !e446

Definition at line 93 of file type_nlpi.h.

◆ SCIP_NLPPARAM_DEFAULT

#define SCIP_NLPPARAM_DEFAULT (   scip)    (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT_INITS(scip) }

default values for parameters

Typical use for this define is the initialization of a SCIP_NLPPARAM struct, e.g.,

SCIP_NLPPARAM nlpparam = SCIP_NLPPARAM_DEFAULT(scip);   //lint !e446

or

SCIP_NLPPARAM nlpparam;
nlpparam = SCIP_NLPPARAM_DEFAULT(scip);  //lint !e446

Definition at line 117 of file type_nlpi.h.

Referenced by applyNlobbt(), heurExec(), resolveNLPWithTighterFeastol(), and SCIP_DECL_RELAXEXEC().

◆ SCIP_NLPPARAM_PRINT

#define SCIP_NLPPARAM_PRINT (   param)
Value:
"lobjlimit = %g, " \
"feastol = %g, " \
"opttol = %g, " \
"solvertol = %g, " \
"timelimit = %g, " \
"iterlimit = %d, " \
"verblevel = %hd, " \
"fastfail = %d, " \
"expectinfeas = %d, " \
"warmstart = %d, " \
"called by %s\n", \
(param).lobjlimit, (param).feastol, (param).opttol, (param).solvertol, (param).timelimit, (param).iterlimit, \
(param).verblevel, (param).fastfail, (param).expectinfeas, (param).warmstart, (param).caller != NULL ? (param).caller : "unknown"
#define NULL
Definition: lpi_spx1.cpp:155

macro to help printing values of SCIP_NLPPARAM struct

Typical use for this define is something like

SCIPdebugMsg(scip, "calling NLP solver with parameters " SCIP_NLPPARAM_PRINT(param));

Definition at line 133 of file type_nlpi.h.

Referenced by SCIP_DECL_NLPISOLVE().

◆ SCIP_DECL_NLPICOPY

#define SCIP_DECL_NLPICOPY (   x)
Value:
SCIP* scip, \
SCIP_NLPI* sourcenlpi)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

copy method of NLP interface (called when SCIP copies plugins)

Implementation of this callback is optional.

Parameters
[in]sciptarget SCIP where to include copy of NLPI
[in]sourcenlpithe NLP interface to copy

Definition at line 206 of file type_nlpi.h.

◆ SCIP_DECL_NLPIFREE

#define SCIP_DECL_NLPIFREE (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIDATA** nlpidata)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
struct SCIP_NlpiData SCIP_NLPIDATA
Definition: type_nlpi.h:43

frees the data of the NLP interface

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]nlpidataNLPI data to free

Definition at line 216 of file type_nlpi.h.

◆ SCIP_DECL_NLPIGETSOLVERPOINTER

#define SCIP_DECL_NLPIGETSOLVERPOINTER (   x)
Value:
void* x (\
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem)
SCIP_VAR ** x
Definition: circlepacking.c:54

gets pointer to solver-internal NLP solver

Implementation of this callback is optional.

Depending on the solver interface, a solver pointer may exist for every NLP problem instance. For this case, a nlpiproblem can be passed in as well.

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance, or NULL
Returns
void pointer to solver

Definition at line 234 of file type_nlpi.h.

◆ SCIP_DECL_NLPICREATEPROBLEM

#define SCIP_DECL_NLPICREATEPROBLEM (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM** problem, \
const char* name)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

creates a problem instance

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[out]problempointer to store the problem data
[in]namename of problem, can be NULL

Definition at line 246 of file type_nlpi.h.

◆ SCIP_DECL_NLPIFREEPROBLEM

#define SCIP_DECL_NLPIFREEPROBLEM (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM** problem)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

free a problem instance

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problempointer where problem data is stored

Definition at line 258 of file type_nlpi.h.

◆ SCIP_DECL_NLPIGETPROBLEMPOINTER

#define SCIP_DECL_NLPIGETPROBLEMPOINTER (   x)
Value:
void* x (\
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem)
SCIP_VAR ** x
Definition: circlepacking.c:54

gets pointer to solver-internal problem instance

Implementation of this callback is optional.

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
Returns
void pointer to problem instance

Definition at line 273 of file type_nlpi.h.

◆ SCIP_DECL_NLPIADDVARS

#define SCIP_DECL_NLPIADDVARS (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int nvars, \
const SCIP_Real* lbs, \
const SCIP_Real* ubs, \
const char** varnames)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

adds variables

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]nvarsnumber of variables
[in]lbslower bounds of variables, can be NULL if -infinity
[in]ubsupper bounds of variables, can be NULL if +infinity
[in]varnamesnames of variables, can be NULL

Definition at line 288 of file type_nlpi.h.

◆ SCIP_DECL_NLPIADDCONSTRAINTS

#define SCIP_DECL_NLPIADDCONSTRAINTS (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int nconss, \
const SCIP_Real* lhss, \
const SCIP_Real* rhss, \
const int* nlininds, \
int* const* lininds, \
SCIP_Real* const* linvals, \
SCIP_EXPR** exprs, \
const char** names)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

add constraints

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]nconsnumber of added constraints
[in]lhssleft hand sides of constraints, can be NULL if -infinity
[in]rhssright hand sides of constraints, can be NULL if +infinity
[in]nlinindsnumber of linear coefficients for each constraint; may be NULL in case of no linear part
[in]linindsindices of variables for linear coefficients for each constraint; may be NULL in case of no linear part
[in]linvalsvalues of linear coefficient for each constraint; may be NULL in case of no linear part
[in]exprsexpressions for nonlinear part of constraints; may be NULL or entries may be NULL when no nonlinear parts
[in]namesnames of constraints; may be NULL or entries may be NULL

Definition at line 311 of file type_nlpi.h.

◆ SCIP_DECL_NLPISETOBJECTIVE

#define SCIP_DECL_NLPISETOBJECTIVE (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int nlins, \
const int* lininds, \
const SCIP_Real* linvals, \
SCIP_EXPR* expr, \
const SCIP_Real constant)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

sets or overwrites objective, a minimization problem is expected

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]nlinsnumber of linear variables
[in]linindsvariable indices; may be NULL in case of no linear part
[in]linvalscoefficient values; may be NULL in case of no linear part
[in]exprexpression for nonlinear part of objective function; may be NULL in case of no nonlinear part
[in]constantobjective value offset

Definition at line 335 of file type_nlpi.h.

◆ SCIP_DECL_NLPICHGVARBOUNDS

#define SCIP_DECL_NLPICHGVARBOUNDS (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
const int nvars, \
const int* indices, \
const SCIP_Real* lbs, \
const SCIP_Real* ubs)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

change variable bounds

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]nvarsnumber of variables to change bounds
[in]indicesindices of variables to change bounds
[in]lbsnew lower bounds
[in]ubsnew upper bounds

Definition at line 355 of file type_nlpi.h.

◆ SCIP_DECL_NLPICHGCONSSIDES

#define SCIP_DECL_NLPICHGCONSSIDES (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int nconss, \
const int* indices, \
const SCIP_Real* lhss, \
const SCIP_Real* rhss)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

change constraint sides

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]nconssnumber of constraints to change sides
[in]indicesindices of constraints to change sides
[in]lhssnew left hand sides
[in]rhssnew right hand sides

Definition at line 374 of file type_nlpi.h.

◆ SCIP_DECL_NLPIDELVARSET

#define SCIP_DECL_NLPIDELVARSET (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int* dstats, \
int dstatssize)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

delete a set of variables

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in,out]dstatsdeletion status of vars on input (1 if var should be deleted, 0 if not); new position of var on output, -1 if var was deleted
[in]dstatssizesize of the dstats array

Definition at line 391 of file type_nlpi.h.

◆ SCIP_DECL_NLPIDELCONSSET

#define SCIP_DECL_NLPIDELCONSSET (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int* dstats, \
int dstatssize)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

delete a set of constraints

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in,out]dstatsdeletion status of constraints on input (1 if constraint should be deleted, 0 if not); new position of constraint on output, -1 if constraint was deleted
[in]dstatssizesize of the dstats array

Definition at line 406 of file type_nlpi.h.

◆ SCIP_DECL_NLPICHGLINEARCOEFS

#define SCIP_DECL_NLPICHGLINEARCOEFS (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int idx, \
int nvals, \
const int* varidxs, \
const SCIP_Real* vals)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

changes (or adds) linear coefficients in a constraint or objective

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]idxindex of constraint or -1 for objective
[in]nvalsnumber of values in linear constraint to change
[in]varidxsindices of variables which coefficient to change
[in]valsnew values for coefficients

Definition at line 423 of file type_nlpi.h.

◆ SCIP_DECL_NLPICHGEXPR

#define SCIP_DECL_NLPICHGEXPR (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
int idxcons, \
SCIP_EXPR* expr)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

replaces the expression of a constraint or objective

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]idxconsindex of constraint or -1 for objective
[in]exprnew expression for constraint or objective, or NULL to only remove previous tree

Definition at line 440 of file type_nlpi.h.

◆ SCIP_DECL_NLPICHGOBJCONSTANT

#define SCIP_DECL_NLPICHGOBJCONSTANT (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
SCIP_Real objconstant)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

changes the constant offset in the objective

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]objconstantnew value for objective constant

Definition at line 454 of file type_nlpi.h.

◆ SCIP_DECL_NLPISETINITIALGUESS

#define SCIP_DECL_NLPISETINITIALGUESS (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
SCIP_Real* primalvalues, \
SCIP_Real* consdualvalues, \
SCIP_Real* varlbdualvalues, \
SCIP_Real* varubdualvalues)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

sets initial guess

Implementation of this callback is optional.

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]primalvaluesinitial primal values for variables, or NULL to clear previous values
[in]consdualvaluesinitial dual values for constraints, or NULL to clear previous values
[in]varlbdualvaluesinitial dual values for variable lower bounds, or NULL to clear previous values
[in]varubdualvaluesinitial dual values for variable upper bounds, or NULL to clear previous values

Definition at line 472 of file type_nlpi.h.

◆ SCIP_DECL_NLPISOLVE

#define SCIP_DECL_NLPISOLVE (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

tries to solve NLP

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[in]paramparameters (e.g., working limits) to use

Definition at line 488 of file type_nlpi.h.

◆ SCIP_DECL_NLPIGETSOLSTAT

#define SCIP_DECL_NLPIGETSOLSTAT (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem)
SCIP_VAR ** x
Definition: circlepacking.c:54
enum SCIP_NlpSolStat SCIP_NLPSOLSTAT
Definition: type_nlpi.h:159

gives solution status

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
Returns
Solution Status

Definition at line 502 of file type_nlpi.h.

◆ SCIP_DECL_NLPIGETTERMSTAT

#define SCIP_DECL_NLPIGETTERMSTAT (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem)
enum SCIP_NlpTermStat SCIP_NLPTERMSTAT
Definition: type_nlpi.h:185
SCIP_VAR ** x
Definition: circlepacking.c:54

gives termination reason

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
Returns
Termination Status

Definition at line 515 of file type_nlpi.h.

◆ SCIP_DECL_NLPIGETSOLUTION

#define SCIP_DECL_NLPIGETSOLUTION (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
SCIP_Real** primalvalues, \
SCIP_Real** consdualvalues, \
SCIP_Real** varlbdualvalues, \
SCIP_Real** varubdualvalues, \
SCIP_Real* objval)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54
#define SCIP_Real
Definition: def.h:177

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.

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[out]primalvaluesbuffer to store pointer to array to primal values, or NULL if not needed
[out]consdualvaluesbuffer to store pointer to array to dual values of constraints, or NULL if not needed
[out]varlbdualvaluesbuffer to store pointer to array to dual values of variable lower bounds, or NULL if not needed
[out]varubdualvaluesbuffer to store pointer to array to dual values of variable lower bounds, or NULL if not needed
[out]objvalpointer to store the objective value, or NULL if not needed

Definition at line 536 of file type_nlpi.h.

◆ SCIP_DECL_NLPIGETSTATISTICS

#define SCIP_DECL_NLPIGETSTATISTICS (   x)
Value:
SCIP* scip, \
SCIP_NLPI* nlpi, \
SCIP_NLPIPROBLEM* problem, \
SCIP_NLPSTATISTICS* statistics)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_VAR ** x
Definition: circlepacking.c:54

gives solve statistics

Parameters
[in]scipSCIP data structure
[in]nlpidatastructure for solver interface
[in]problemdatastructure for problem instance
[out]statisticsbuffer where to store statistics

Definition at line 553 of file type_nlpi.h.

Typedef Documentation

◆ SCIP_NLPI

typedef struct SCIP_Nlpi SCIP_NLPI

NLP solver interface

Definition at line 42 of file type_nlpi.h.

◆ SCIP_NLPIDATA

typedef struct SCIP_NlpiData SCIP_NLPIDATA

locally defined NLP solver interface data

Definition at line 43 of file type_nlpi.h.

◆ SCIP_NLPIPROBLEM

locally defined NLP solver interface data for a specific problem instance

Definition at line 44 of file type_nlpi.h.

◆ SCIP_NLPPARAM_FASTFAIL

NLP solver fast-fail levels

Definition at line 54 of file type_nlpi.h.

◆ SCIP_NLPPARAM

typedef struct SCIP_NlpParam SCIP_NLPPARAM

parameters for NLP solve

Definition at line 72 of file type_nlpi.h.

◆ SCIP_NLPSOLSTAT

NLP solution status

Definition at line 159 of file type_nlpi.h.

◆ SCIP_NLPTERMSTAT

NLP solver termination status

Definition at line 185 of file type_nlpi.h.

◆ SCIP_NLPSTATISTICS

NLP solve statistics

Definition at line 197 of file type_nlpi.h.

Enumeration Type Documentation

◆ SCIP_NlpParam_FastFail

NLP solver fast-fail levels

Enumerator
SCIP_NLPPARAM_FASTFAIL_OFF 

never stop if progress is still possible

SCIP_NLPPARAM_FASTFAIL_CONSERVATIVE 

stop if it seems unlikely that an improving point can be found

SCIP_NLPPARAM_FASTFAIL_AGGRESSIVE 

stop if convergence rate is low

Definition at line 47 of file type_nlpi.h.

◆ SCIP_NlpSolStat

NLP solution status

Enumerator
SCIP_NLPSOLSTAT_GLOBOPT 

solved to global optimality

SCIP_NLPSOLSTAT_LOCOPT 

solved to local optimality

SCIP_NLPSOLSTAT_FEASIBLE 

feasible solution found

SCIP_NLPSOLSTAT_LOCINFEASIBLE 

solution found is local infeasible

SCIP_NLPSOLSTAT_GLOBINFEASIBLE 

problem is proven infeasible

SCIP_NLPSOLSTAT_UNBOUNDED 

problem is unbounded

SCIP_NLPSOLSTAT_UNKNOWN 

unknown solution status (e.g., problem not solved yet)

Definition at line 149 of file type_nlpi.h.

◆ SCIP_NlpTermStat

NLP solver termination status

Enumerator
SCIP_NLPTERMSTAT_OKAY 

terminated successfully

SCIP_NLPTERMSTAT_TIMELIMIT 

time limit exceeded

SCIP_NLPTERMSTAT_ITERLIMIT 

iteration limit exceeded

SCIP_NLPTERMSTAT_LOBJLIMIT 

lower objective limit reached

SCIP_NLPTERMSTAT_INTERRUPT 

SCIP has been asked to stop (SCIPinterruptSolve() called)

SCIP_NLPTERMSTAT_NUMERICERROR 

stopped on numerical error

SCIP_NLPTERMSTAT_EVALERROR 

stopped on function evaluation error

SCIP_NLPTERMSTAT_OUTOFMEMORY 

memory exceeded

SCIP_NLPTERMSTAT_LICENSEERROR 

problems with license of NLP solver

SCIP_NLPTERMSTAT_OTHER 

other error (= this should never happen)

Definition at line 162 of file type_nlpi.h.