Scippy

SCIP

Solving Constraint Integer Programs

sepaspecial.h File Reference

Detailed Description

Separator for Steiner tree problem contraints beyond flow-balance-directed-cut constraints.

Author
Daniel Rehfeldt

This file includes some special separator routines beyond the flow-balance directed cut formulation constraints.

Definition in file sepaspecial.h.

#include "scip/scip.h"
#include "graph.h"

Go to the source code of this file.

Typedefs

typedef struct pseudoancestor_cliques PACLIQUES
 
typedef struct prize_collecting_implications PCIMPLICATION
 
typedef struct vertex_terminal_implications VTIMPLICATION
 

Functions

SCIP_RETCODE sepaspecial_pacliquesInit (SCIP *, const GRAPH *, PACLIQUES **)
 
void sepaspecial_pacliquesFree (SCIP *, PACLIQUES **)
 
SCIP_RETCODE sepaspecial_pacliquesSeparate (SCIP *, SCIP_CONSHDLR *, PACLIQUES *, int, int *)
 
int sepaspecial_pcimplicationsGetNstarts (const PCIMPLICATION *)
 
const int * sepaspecial_pcimplicationsGetStarts (const PCIMPLICATION *)
 
const int * sepaspecial_pcimplicationsGetVerts (const PCIMPLICATION *)
 
SCIP_RETCODE sepaspecial_pcimplicationsInit (SCIP *, const GRAPH *, PCIMPLICATION **)
 
void sepaspecial_pcimplicationsFree (SCIP *, PCIMPLICATION **)
 
SCIP_RETCODE sepaspecial_pcimplicationsSeparate (SCIP *, SCIP_CONSHDLR *, PCIMPLICATION *, int, int *)
 
SCIP_RETCODE sepaspecial_vtimplicationsInit (SCIP *, const GRAPH *, VTIMPLICATION **)
 
void sepaspecial_vtimplicationsFree (SCIP *, VTIMPLICATION **)
 
SCIP_RETCODE sepaspecial_vtimplicationsSeparate (SCIP *, SCIP_CONSHDLR *, VTIMPLICATION *, int, int *)
 

Typedef Documentation

◆ PACLIQUES

cuts for pseudo ancestor cliques

Definition at line 42 of file sepaspecial.h.

◆ PCIMPLICATION

cuts for implications between potential terminals

Definition at line 45 of file sepaspecial.h.

◆ VTIMPLICATION

cuts for implications between non-terminals and terminals

Definition at line 48 of file sepaspecial.h.

Function Documentation

◆ sepaspecial_pacliquesInit()

SCIP_RETCODE sepaspecial_pacliquesInit ( SCIP scip,
const GRAPH g,
PACLIQUES **  pacliques 
)

◆ sepaspecial_pacliquesFree()

void sepaspecial_pacliquesFree ( SCIP scip,
PACLIQUES **  pacliques 
)

frees

Parameters
scipSCIP data structure
pacliquesclique data

Definition at line 207 of file sepaspecial.c.

References SCIPfreeMemoryArray, and SCIPfreeMemoryArrayNull.

Referenced by SCIP_DECL_CONSEXITSOL().

◆ sepaspecial_pacliquesSeparate()

◆ sepaspecial_pcimplicationsGetNstarts()

int sepaspecial_pcimplicationsGetNstarts ( const PCIMPLICATION pcimp)

return number of proper potential terminals

Parameters
pcimpimplications

Definition at line 636 of file sepaspecial.c.

References prize_collecting_implications::pcimplnppterms.

Referenced by SCIPStpGetPcImplNstarts().

◆ sepaspecial_pcimplicationsGetStarts()

const int* sepaspecial_pcimplicationsGetStarts ( const PCIMPLICATION pcimp)

return CSR like starts

Parameters
pcimpimplications

Definition at line 647 of file sepaspecial.c.

References prize_collecting_implications::pcimplstart.

Referenced by SCIPStpGetPcImplStarts().

◆ sepaspecial_pcimplicationsGetVerts()

const int* sepaspecial_pcimplicationsGetVerts ( const PCIMPLICATION pcimp)

return CSR like vertices

Parameters
pcimpimplications

Definition at line 658 of file sepaspecial.c.

References prize_collecting_implications::pcimplverts.

Referenced by SCIPStpGetPcImplVerts().

◆ sepaspecial_pcimplicationsInit()

◆ sepaspecial_pcimplicationsFree()

void sepaspecial_pcimplicationsFree ( SCIP scip,
PCIMPLICATION **  pcimplications 
)

frees (R)PC implications

Parameters
scipSCIP data structure
pcimplicationsimplication data

Definition at line 485 of file sepaspecial.c.

References SCIPfreeMemoryArray, and SCIPfreeMemoryArrayNull.

Referenced by SCIP_DECL_CONSEXITSOL().

◆ sepaspecial_pcimplicationsSeparate()

◆ sepaspecial_vtimplicationsInit()

SCIP_RETCODE sepaspecial_vtimplicationsInit ( SCIP scip,
const GRAPH g,
VTIMPLICATION **  vtimplications 
)

initializes implications

Parameters
scipSCIP data structure
ggraph data structure
vtimplicationsimplication data

Definition at line 669 of file sepaspecial.c.

References BLOCKED, GRAPH::cost, EAT_LAST, FARAWAY, flipedge, GE, graph_get_nNodes(), graph_typeIsSpgLike(), GRAPH::head, Is_term, LT, nnodes, NULL, GRAPH::oeat, GRAPH::outbeg, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocMemory, StpVecPushBack, and GRAPH::term.

Referenced by SCIP_DECL_CONSSEPALP().

◆ sepaspecial_vtimplicationsFree()

void sepaspecial_vtimplicationsFree ( SCIP scip,
VTIMPLICATION **  vtimplications 
)

frees implications

Parameters
scipSCIP data structure
vtimplicationsimplication data

Definition at line 730 of file sepaspecial.c.

References SCIPfreeMemoryArray, and StpVecFree.

Referenced by SCIP_DECL_CONSEXITSOL().

◆ sepaspecial_vtimplicationsSeparate()

SCIP_RETCODE sepaspecial_vtimplicationsSeparate ( SCIP scip,
SCIP_CONSHDLR conshdlr,
VTIMPLICATION vtimplications,
int  maxcuts,
int *  ncuts 
)

separates implications

Parameters
scipSCIP data structure
conshdlrconstraint handler
vtimplicationsimplication data
maxcutsmaximal number of cuts
ncutspointer to store number of cuts

Definition at line 743 of file sepaspecial.c.

References EAT_LAST, FALSE, flipedge, get_inflow(), graph_edge_isInRange(), GRAPH::ieat, GRAPH::inpbeg, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddPoolCut(), SCIPaddRow(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPcreateEmptyRowConshdlr(), SCIPdebugMessage, SCIPflushRowExtensions(), SCIPinfinity(), SCIPisCutEfficacious(), SCIPisFeasLT(), SCIPprobdataGetGraph2(), SCIPprobdataGetVars(), SCIPprobdataGetXval(), SCIPreleaseRow(), StpVecGetSize, GRAPH::tail, and TRUE.

Referenced by SCIP_DECL_CONSSEPALP().