SCIP-SDP  2.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
prop_sdpredcost.c File Reference

reduced cost / dual fixing for SDPs More...

Go to the source code of this file.

Macros

Propagator properties
#define PROP_NAME   "sdpredcost"
 
#define PROP_DESC   "sdp reduced cost strengthening propagator"
 
#define PROP_TIMING   (SCIP_PROPTIMING_DURINGLPLOOP | SCIP_PROPTIMING_AFTERLPLOOP)
 
#define PROP_PRIORITY   +1000000
 
#define PROP_FREQ   1
 
#define PROP_DELAY   FALSE
 
#define DEFAULT_SDPRCBIN   TRUE
 
#define DEFAULT_SDPRCINTCONT   TRUE
 

Functions

static SCIP_RETCODE sdpRedcostFixingBinary (SCIP *scip, SCIP_VAR *var, SCIP_Real primallbval, SCIP_Real primalubval, SCIP_Real cutoffbound, SCIP_Real relaxval, SCIP_RESULT *result)
 
static SCIP_RETCODE sdpRedcostFixingIntCont (SCIP *scip, SCIP_VAR *var, SCIP_Real primallbval, SCIP_Real primalubval, SCIP_Real cutoffbound, SCIP_Real relaxval, SCIP_RESULT *result)
 
static SCIP_DECL_PROPEXEC (propExecSdpredcost)
 
static SCIP_DECL_PROPFREE (propFreeSdpredcost)
 
static SCIP_DECL_PROPINITSOL (propInitsolSdpredcost)
 
static SCIP_DECL_PROPCOPY (propCopySdpredcost)
 
SCIP_RETCODE SCIPincludePropSdpredcost (SCIP *scip)
 

Detailed Description

reduced cost / dual fixing for SDPs

Author
Tristan Gally

Definition in file prop_sdpredcost.c.

Macro Definition Documentation

#define PROP_NAME   "sdpredcost"

Definition at line 55 of file prop_sdpredcost.c.

Referenced by SCIP_DECL_PROPCOPY(), and SCIPincludePropSdpredcost().

#define PROP_DESC   "sdp reduced cost strengthening propagator"

Definition at line 56 of file prop_sdpredcost.c.

Referenced by SCIPincludePropSdpredcost().

#define PROP_TIMING   (SCIP_PROPTIMING_DURINGLPLOOP | SCIP_PROPTIMING_AFTERLPLOOP)

Definition at line 57 of file prop_sdpredcost.c.

Referenced by SCIPincludePropSdpredcost().

#define PROP_PRIORITY   +1000000

propagator priority

Definition at line 58 of file prop_sdpredcost.c.

Referenced by SCIPincludePropSdpredcost().

#define PROP_FREQ   1

propagator frequency

Definition at line 59 of file prop_sdpredcost.c.

Referenced by SCIPincludePropSdpredcost().

#define PROP_DELAY   FALSE

Should propagation method be delayed, if other propagators found reductions?

Definition at line 60 of file prop_sdpredcost.c.

Referenced by SCIPincludePropSdpredcost().

#define DEFAULT_SDPRCBIN   TRUE

Should sdp reduced cost fixing be executed for binary variables?

Definition at line 61 of file prop_sdpredcost.c.

Referenced by SCIPincludePropSdpredcost().

#define DEFAULT_SDPRCINTCONT   TRUE

Should sdp reduced cost fixing be executed for integer and continuous variables?

Definition at line 62 of file prop_sdpredcost.c.

Referenced by SCIPincludePropSdpredcost().

Function Documentation

static SCIP_RETCODE sdpRedcostFixingBinary ( SCIP *  scip,
SCIP_VAR *  var,
SCIP_Real  primallbval,
SCIP_Real  primalubval,
SCIP_Real  cutoffbound,
SCIP_Real  relaxval,
SCIP_RESULT *  result 
)
static

reduced cost fixing for binary variables

If the corresponding primal variable for the lower bound is bigger than the cutoff bound minus the current relaxation value, then the variable can be fixed to zero, if the primal variable for the upper bound is bigger than this value, then it can be fixed to one.

Parameters
scippointer to SCIP data structure
varvariable to propagate
primallbvalvalue of the primal variable corresponding to the lower bound
primalubvalvalue of the primal variable corresponding to the upper bound
cutoffboundcurrent cutoffbound in SCIP
relaxvaloptimal objective value of the current relaxation
resultpointer to return result

Definition at line 84 of file prop_sdpredcost.c.

Referenced by SCIP_DECL_PROPEXEC().

static SCIP_RETCODE sdpRedcostFixingIntCont ( SCIP *  scip,
SCIP_VAR *  var,
SCIP_Real  primallbval,
SCIP_Real  primalubval,
SCIP_Real  cutoffbound,
SCIP_Real  relaxval,
SCIP_RESULT *  result 
)
static

reduced cost fixing for non-binary variables

We propagate the new bounds

$ y_j \leq \ell_j + \frac{v_{CO} - \bar{v}}{\bar{X}_{n+m+j,n+m+j}} $,

$ y_j \geq u_j - \frac{v_{CO} - \bar{v}}{\bar{X}_{n+j,n+j}} $

where $\bar{v}$ is the value of the current relaxation, $v_{CO}$ is the cutoffbound and $\bar{X}_{n+m+j,n+m+j}$ the value of the corresponding primal solution

Parameters
scippointer to SCIP data structure
varvariable to propagate
primallbvalvalue of the primal variable corresponding to the lower bound
primalubvalvalue of the primal variable corresponding to the upper bound
cutoffboundcurrent cutoffbound in SCIP
relaxvaloptimal objective value of the current relaxation
resultpointer to return result

Definition at line 146 of file prop_sdpredcost.c.

Referenced by SCIP_DECL_PROPEXEC().

static SCIP_DECL_PROPEXEC ( propExecSdpredcost  )
static
static SCIP_DECL_PROPFREE ( propFreeSdpredcost  )
static

free the propagator data

Definition at line 305 of file prop_sdpredcost.c.

static SCIP_DECL_PROPINITSOL ( propInitsolSdpredcost  )
static

allocate memory for the primal variable values

Definition at line 327 of file prop_sdpredcost.c.

static SCIP_DECL_PROPCOPY ( propCopySdpredcost  )
static

copy method for propagator plugins (called when SCIP copies plugins)

Definition at line 345 of file prop_sdpredcost.c.

References PROP_NAME, and SCIPincludePropSdpredcost().

SCIP_RETCODE SCIPincludePropSdpredcost ( SCIP *  scip)

creates the Sdpredcost propagator and includes it in SCIP

Parameters
scipSCIP data structure

Definition at line 358 of file prop_sdpredcost.c.

References DEFAULT_SDPRCBIN, DEFAULT_SDPRCINTCONT, PROP_DELAY, PROP_DESC, PROP_FREQ, PROP_NAME, PROP_PRIORITY, and PROP_TIMING.

Referenced by runSCIP(), and SCIP_DECL_PROPCOPY().