Scippy

SCIP

Solving Constraint Integer Programs

mincut.h File Reference

Detailed Description

Minimum cut routines for Steiner problems.

Author
Daniel Rehfeldt

This file encompasses minimum cut routines for Steiner tree problems.

Definition in file mincut.h.

#include "graph.h"

Go to the source code of this file.

Typedefs

typedef struct terminal_separator_storage TERMSEPAS
 

Functions

SCIP_RETCODE mincut_termsepasInit (SCIP *, const GRAPH *, int, int, TERMSEPAS **)
 
void mincut_termsepasFree (SCIP *, TERMSEPAS **)
 
int mincut_termsepasGetNall (const TERMSEPAS *)
 
int mincut_termsepasGetN (const TERMSEPAS *, int)
 
const int * mincut_termsepasGetFirst (int, TERMSEPAS *, int *, int *)
 
const int * mincut_termsepasGetNext (int, TERMSEPAS *, int *, int *)
 
int mincut_termsepasGetSource (const TERMSEPAS *)
 
SCIP_Bool mincut_findTerminalSeparatorsIsPromising (const GRAPH *)
 
SCIP_RETCODE mincut_findTerminalSeparators (SCIP *, SCIP_RANDNUMGEN *, GRAPH *, TERMSEPAS *)
 
SCIP_RETCODE mincut_separateLp (SCIP *, SCIP_CONSHDLR *, SCIP_RANDNUMGEN *, const int *, GRAPH *, int, int *)
 

Typedef Documentation

◆ TERMSEPAS

Definition at line 33 of file mincut.h.

Function Documentation

◆ mincut_termsepasInit()

◆ mincut_termsepasFree()

◆ mincut_termsepasGetNall()

int mincut_termsepasGetNall ( const TERMSEPAS termsepas)

returns number of all separators

Parameters
termsepasterminal separators

Definition at line 2135 of file mincut.c.

References terminal_separator_storage::nsepas_all.

Referenced by mincut_findTerminalSeparators(), reduce_termsepaFull(), and testTerminalSeparatorsAreFound().

◆ mincut_termsepasGetN()

int mincut_termsepasGetN ( const TERMSEPAS termsepas,
int  sepasize 
)

returns number of separators per given size

Parameters
termsepasterminal separators
sepasizesize

Definition at line 2147 of file mincut.c.

References terminal_separator_storage::maxnsepas, and terminal_separator_storage::nsepas.

◆ mincut_termsepasGetFirst()

const int* mincut_termsepasGetFirst ( int  sepasize,
TERMSEPAS termsepas,
int *  sinkterm,
int *  nsinknodes 
)

Returns first separator of given size. Returns NULL if none is available.

Parameters
sepasizesize
termsepasterminal separators
sinktermthe sink
nsinknodesnumber of sink-side nodes

Definition at line 2162 of file mincut.c.

References terminal_separator_storage::currsepa_n, and mincut_termsepasGetNext().

Referenced by testTerminalSeparatorsAreFound(), and testTerminalSeparatorsAreFound2().

◆ mincut_termsepasGetNext()

const int* mincut_termsepasGetNext ( int  sepasize,
TERMSEPAS termsepas,
int *  sinkterm,
int *  nsinknodes 
)

◆ mincut_termsepasGetSource()

int mincut_termsepasGetSource ( const TERMSEPAS termsepas)

gets terminal separator source

Parameters
termsepasterminal separators

Definition at line 2232 of file mincut.c.

References terminal_separator_storage::root.

Referenced by reduce_termsepaGetNextComp().

◆ mincut_findTerminalSeparatorsIsPromising()

SCIP_Bool mincut_findTerminalSeparatorsIsPromising ( const GRAPH g)

is it promising to look for terminal separators?

Parameters
ggraph data structure

Definition at line 2243 of file mincut.c.

References FALSE, graph_get_nVET(), nnodes, NULL, GRAPH::terms, and TERMSEPA_SPARSE_MAXRATIO.

◆ mincut_findTerminalSeparators()

◆ mincut_separateLp()

SCIP_RETCODE mincut_separateLp ( SCIP scip,
SCIP_CONSHDLR conshdlr,
SCIP_RANDNUMGEN randnumgen,
const int *  termorg,
GRAPH g,
int  maxncuts,
int *  ncuts 
)