Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

internal methods for decompositions and the decomposition store

Author
Gregor Hendel

Definition in file dcmp.c.

#include <assert.h>
#include "scip/dcmp.h"
#include "scip/mem.h"
#include "scip/pub_cons.h"
#include "scip/pub_dcmp.h"
#include "scip/pub_misc.h"
#include "scip/pub_var.h"
#include "scip/scip_cons.h"
#include "scip/scip_dcmp.h"
#include "scip/scip_mem.h"
#include "scip/scip_prob.h"
#include "scip/scip_var.h"
#include "scip/scip_general.h"
#include "scip/scip_datastructures.h"
#include "scip/scip_message.h"
#include "scip/struct_dcmp.h"
#include "scip/struct_scip.h"

Go to the source code of this file.

Macros

#define INIT_MAP_SIZE   2000
 

Functions

SCIP_RETCODE SCIPdecompCreate (SCIP_DECOMP **decomp, BMS_BLKMEM *blkmem, int nblocks, SCIP_Bool original, SCIP_Bool benderslabels)
 
void SCIPdecompFree (SCIP_DECOMP **decomp, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPdecompSetVarsLabels (SCIP_DECOMP *decomp, SCIP_VAR **vars, int *labels, int nvars)
 
void SCIPdecompGetVarsLabels (SCIP_DECOMP *decomp, SCIP_VAR **vars, int *labels, int nvars)
 
SCIP_RETCODE SCIPdecompSetConsLabels (SCIP_DECOMP *decomp, SCIP_CONS **conss, int *labels, int nconss)
 
void SCIPdecompGetConsLabels (SCIP_DECOMP *decomp, SCIP_CONS **conss, int *labels, int nconss)
 
SCIP_RETCODE SCIPdecompClear (SCIP_DECOMP *decomp, SCIP_Bool clearvarlabels, SCIP_Bool clearconslabels)
 
SCIP_Bool SCIPdecompIsOriginal (SCIP_DECOMP *decomp)
 
void SCIPdecompSetUseBendersLabels (SCIP_DECOMP *decomp, SCIP_Bool benderslabels)
 
SCIP_Bool SCIPdecompUseBendersLabels (SCIP_DECOMP *decomp)
 
int SCIPdecompGetNBlocks (SCIP_DECOMP *decomp)
 
SCIP_Real SCIPdecompGetAreaScore (SCIP_DECOMP *decomp)
 
SCIP_Real SCIPdecompGetModularity (SCIP_DECOMP *decomp)
 
SCIP_RETCODE SCIPdecompGetVarsSize (SCIP_DECOMP *decomp, int *varssize, int nlabels)
 
SCIP_RETCODE SCIPdecompGetConssSize (SCIP_DECOMP *decomp, int *consssize, int nlabels)
 
int SCIPdecompGetNBorderVars (SCIP_DECOMP *decomp)
 
int SCIPdecompGetNBorderConss (SCIP_DECOMP *decomp)
 
int SCIPdecompGetNBlockGraphEdges (SCIP_DECOMP *decomp)
 
int SCIPdecompGetNBlockGraphComponents (SCIP_DECOMP *decomp)
 
int SCIPdecompGetNBlockGraphArticulations (SCIP_DECOMP *decomp)
 
int SCIPdecompGetBlockGraphMaxDegree (SCIP_DECOMP *decomp)
 
int SCIPdecompGetBlockGraphMinDegree (SCIP_DECOMP *decomp)
 
char * SCIPdecompPrintStats (SCIP_DECOMP *decomp, char *strbuf)
 
SCIP_RETCODE SCIPdecompstoreCreate (SCIP_DECOMPSTORE **decompstore, BMS_BLKMEM *blkmem, int nslots)
 
static void freeDecompositions (BMS_BLKMEM *blkmem, SCIP_DECOMP **decomps, int *ndecomps)
 
void SCIPexitSolveDecompstore (SCIP *scip)
 
void SCIPdecompstoreFree (SCIP_DECOMPSTORE **decompstore, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPdecompstoreAdd (SCIP_DECOMPSTORE *decompstore, SCIP_DECOMP *decomp)
 
SCIP_DECOMP ** SCIPdecompstoreGetDecomps (SCIP_DECOMPSTORE *decompstore)
 
int SCIPdecompstoreGetNDecomps (SCIP_DECOMPSTORE *decompstore)
 
SCIP_DECOMP ** SCIPdecompstoreGetOrigDecomps (SCIP_DECOMPSTORE *decompstore)
 
int SCIPdecompstoreGetNOrigDecomps (SCIP_DECOMPSTORE *decompstore)
 
SCIP_RETCODE SCIPtransformDecompstore (SCIP *scip)
 

Macro Definition Documentation

◆ INIT_MAP_SIZE

#define INIT_MAP_SIZE   2000

Definition at line 44 of file dcmp.c.

Referenced by SCIPdecompCreate().

Function Documentation

◆ SCIPdecompstoreCreate()

SCIP_RETCODE SCIPdecompstoreCreate ( SCIP_DECOMPSTORE **  decompstore,
BMS_BLKMEM blkmem,
int  nslots 
)

creates a decomposition storage

Parameters
decompstorepointer to store decomposition storage
blkmemblock memory data structure
nslotsmaximum number of decomposition slots in storage

Definition at line 490 of file dcmp.c.

References BMSallocBlockMemory, BMSallocBlockMemoryArray, NULL, SCIP_ALLOC, and SCIP_OKAY.

Referenced by copyProb(), and SCIPcreateProb().

◆ freeDecompositions()

static void freeDecompositions ( BMS_BLKMEM blkmem,
SCIP_DECOMP **  decomps,
int *  ndecomps 
)
static

frees array of decompositions

Parameters
blkmemblock memory data structure
decompsdecomposition array
ndecompspointer for initial number of decompositions, will be set to 0

Definition at line 514 of file dcmp.c.

References NULL, and SCIPdecompFree().

Referenced by SCIPdecompstoreFree(), and SCIPexitSolveDecompstore().

◆ SCIPexitSolveDecompstore()

void SCIPexitSolveDecompstore ( SCIP scip)

frees all decompositions in transformed space

Parameters
scipSCIP data structure

Definition at line 533 of file dcmp.c.

References SCIP_DecompStore::decomps, Scip::decompstore, freeDecompositions(), SCIP_DecompStore::ndecomps, NULL, and SCIPblkmem().

Referenced by freeSolve().

◆ SCIPdecompstoreFree()

void SCIPdecompstoreFree ( SCIP_DECOMPSTORE **  decompstore,
BMS_BLKMEM blkmem 
)

frees a decomposition storage

Parameters
decompstorepointer to store decomposition storage
blkmemblock memory data structure

Definition at line 545 of file dcmp.c.

References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, freeDecompositions(), and NULL.

Referenced by SCIPfreeProb().

◆ SCIPdecompstoreAdd()

SCIP_RETCODE SCIPdecompstoreAdd ( SCIP_DECOMPSTORE decompstore,
SCIP_DECOMP decomp 
)

adds decomposition to storage

Parameters
decompstoredecomposition storage
decompdecomposition to add

Definition at line 565 of file dcmp.c.

References SCIP_DecompStore::decomps, SCIP_DecompStore::decompssize, SCIP_DecompStore::ndecomps, SCIP_DecompStore::norigdecomps, NULL, SCIP_DecompStore::origdecomps, SCIP_ERROR, SCIP_OKAY, SCIPdecompIsOriginal(), and SCIPerrorMessage.

Referenced by SCIPaddDecomp(), and SCIPtransformDecompstore().

◆ SCIPdecompstoreGetDecomps()

SCIP_DECOMP** SCIPdecompstoreGetDecomps ( SCIP_DECOMPSTORE decompstore)

gets decompositions from storage

Parameters
decompstoredecomposition storage

Definition at line 601 of file dcmp.c.

References SCIP_DecompStore::decomps, and NULL.

Referenced by SCIPgetDecomps().

◆ SCIPdecompstoreGetNDecomps()

int SCIPdecompstoreGetNDecomps ( SCIP_DECOMPSTORE decompstore)

gets number of decompositions in storage

Parameters
decompstoredecomposition storage

Definition at line 611 of file dcmp.c.

References SCIP_DecompStore::ndecomps, and NULL.

Referenced by SCIPgetDecomps().

◆ SCIPdecompstoreGetOrigDecomps()

SCIP_DECOMP** SCIPdecompstoreGetOrigDecomps ( SCIP_DECOMPSTORE decompstore)

gets decompositions from storage

Parameters
decompstoredecomposition storage

Definition at line 620 of file dcmp.c.

References NULL, and SCIP_DecompStore::origdecomps.

Referenced by SCIPapplyBendersDecomposition(), and SCIPgetDecomps().

◆ SCIPdecompstoreGetNOrigDecomps()

int SCIPdecompstoreGetNOrigDecomps ( SCIP_DECOMPSTORE decompstore)

gets number of decompositions in storage

Parameters
decompstoredecomposition storage

Definition at line 630 of file dcmp.c.

References SCIP_DecompStore::norigdecomps, and NULL.

Referenced by SCIPapplyBendersDecomposition(), SCIPgetDecomps(), and SCIPsolve().

◆ SCIPtransformDecompstore()