Solving Constraint Integer Programs

struct_nlp.h File Reference

Detailed Description

datastructures for NLP management

Thorsten Gellermann
Stefan Vigerske

In SCIP, the NLP is defined as follows:

min const + obj * x + <x, Qx> + f(x) lhs <= const + A * x <= rhs lhs <= const + A * x + <x, Qx> + f(x) <= rhs lb <= x <= ub

where the linear rows and variable bounds are managed by the LP and the nonlinear rows are managed by the NLP.

The row activities are defined as activity = A * x + const for a linear row and as activity = f(x) + <x, Qx> + A * x + const for a nonlinear row. The activities must therefore be in the range of [lhs,rhs].

The main datastructures for storing an NLP are the nonlinear rows. A nonlinear row can live on its own (if it was created by a separator), or as relaxation of a constraint. Thus, it has a nuses-counter, and is deleted, if not needed any more. In difference to columns of an LP, nonlinear rows are defined with respect SCIP variables.

Definition in file struct_nlp.h.

#include "scip/def.h"
#include "scip/type_nlp.h"
#include "scip/type_var.h"
#include "nlpi/type_nlpi.h"
#include "nlpi/type_expr.h"

Go to the source code of this file.

Data Structures

struct  SCIP_NlRow
struct  SCIP_Nlp