GOBNILP  f164d83
Data Structures | Functions
circuit_cuts.h File Reference

Function declarations for circuit_cuts.c. More...

#include "scip/scip.h"
#include "stack.h"
#include "vector.h"
#include "vectorlist.h"
#include "parent_set_data.h"
Include dependency graph for circuit_cuts.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  CircuitCutsStorage
 A collection of storage items that can be allocated just once per constraint to save time. More...
 

Functions

SCIP_RETCODE CC_addParams (SCIP *scip)
 Adds parameters to those recognised by SCIP. More...
 
SCIP_RETCODE CC_finalise (SCIP *scip, CircuitCutsStorage *ccs, int n)
 Frees all memory allocated by CC_initialise. More...
 
SCIP_RETCODE CC_findCuts (SCIP *scip, SCIP_CONSHDLR *conshdlr, ParentSetData *psd, SCIP_SOL *sol, CircuitCutsStorage *ccs, int *nGen, SCIP_Bool forcecuts, SCIP_Bool *found_efficacious_ptr, SCIP_Bool *cutoff)
 Find cuts to rule out cycles in the current solution. More...
 
SCIP_RETCODE CC_initialise (SCIP *scip, CircuitCutsStorage *ccs, ParentSetData *data)
 Sets up data structures once, to avoid creating them everytime the separation routine is called. More...
 

Detailed Description

Function declarations for circuit_cuts.c.

Function Documentation

◆ CC_addParams()

SCIP_RETCODE CC_addParams ( SCIP *  scip)

Adds parameters to those recognised by SCIP.

Parameters
scipThe SCIP instance to add parameters to.
Returns
SCIP_OKAY if the operation succeded or an error othewrwise.
Parameters
scipSCIP data structure

References UT_addBoolParam().

Here is the call graph for this function:

◆ CC_finalise()

SCIP_RETCODE CC_finalise ( SCIP *  scip,
CircuitCutsStorage ccs,
int  n 
)

Frees all memory allocated by CC_initialise.

Returns
SCIP_OKAY if the finalisation was successful or an appropriate error code otherwise.
Parameters
scipSCIP data structure
ccsCircuit storage to free
nNumber of DAG nodes

References StackDelete(), VectorDelete(), and VectorListDelete().

Referenced by SCIP_DECL_CONSDELETE().

Here is the call graph for this function:

◆ CC_findCuts()

SCIP_RETCODE CC_findCuts ( SCIP *  scip,
SCIP_CONSHDLR *  conshdlr,
ParentSetData psd,
SCIP_SOL *  sol,
CircuitCutsStorage ccs,
int *  nGen,
SCIP_Bool  forcecuts,
SCIP_Bool *  found_efficacious_ptr,
SCIP_Bool *  cutoff 
)

Find cuts to rule out cycles in the current solution.

Parameters
scipThe SCIP instance the cuts are to be found for.
conshdlrThe constraint handler responsible for the cuts.
solThe current relaxed solution.
nGenThe number of cuts that were added.
forcecutsWhether to force cuts to be added
found_efficacious_ptrA pointer to return whether any efficacious cuts were found.
Returns
SCIP_OKAY if the algorithm terminated correctly, or an appropriate error otherwise.

References CircuitCutsStorage::add_cluster_cuts, CircuitCutsStorage::add_cluster_cuts_to_pool, CircuitCutsStorage::add_cycle_cuts, CircuitCutsStorage::add_cycle_cuts_to_pool, CircuitCutsStorage::add_fractional_cuts, addCuts(), circuit(), findStronglyConnectedComponents(), Vector::items, VectorList::items, CircuitCutsStorage::max_cycle_length, CircuitCutsStorage::max_cycles, ParentSetData::n, ParentSetData::nParents, ParentSetData::nParentSets, ParentSetData::ParentSets, ParentSetData::PaVars, Vector::size, VectorList::size, VectorClear(), and VectorListClear().

Referenced by DagClusterSeparate().

Here is the call graph for this function:

◆ CC_initialise()

SCIP_RETCODE CC_initialise ( SCIP *  scip,
CircuitCutsStorage ccs,
ParentSetData data 
)

Sets up data structures once, to avoid creating them everytime the separation routine is called.

Parameters
scipThe SCIP instance the separation is to take place in.
dataThe problem data that the separation will occur on.
Returns
SCIP_OKAY if the initialisation was successful or an appropriate error code otherwise.

References CircuitCutsStorage::add_cluster_cuts, CircuitCutsStorage::add_cluster_cuts_to_pool, CircuitCutsStorage::add_cycle_cuts, CircuitCutsStorage::add_cycle_cuts_to_pool, CircuitCutsStorage::add_fractional_cuts, CircuitCutsStorage::max_cycle_length, and CircuitCutsStorage::max_cycles.

Referenced by createConsData().