Scippy

SCIP

Solving Constraint Integer Programs

dpborder.h File Reference

Detailed Description

Dynamic programming solver for Steiner tree (sub-) problems with small border.

Author
Daniel Rehfeldt

This file implements a dynamic programming method from Polzin and Vahdati to solve Steiner tree problems to optimality. See also "Practical Partitioning-Based Methods for the Steiner Problem", WEA 2006

Definition in file dpborder.h.

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

Go to the source code of this file.

Typedefs

typedef struct dynamic_programming_border DPBORDER
 

Functions

SCIP_RETCODE dpborder_init (SCIP *, const GRAPH *, DPBORDER **)
 
SCIP_RETCODE dpborder_probePotential (SCIP *, GRAPH *, DPBORDER *, SCIP_Bool *)
 
SCIP_RETCODE dpborder_solve (SCIP *, GRAPH *, DPBORDER *, int *, SCIP_Bool *)
 
void dpborder_free (SCIP *, DPBORDER **)
 

Typedef Documentation

◆ DPBORDER

Definition at line 40 of file dpborder.h.

Function Documentation

◆ dpborder_init()

◆ dpborder_probePotential()

SCIP_RETCODE dpborder_probePotential ( SCIP scip,
GRAPH graph,
DPBORDER dpborder,
SCIP_Bool hasPotential 
)

checks whether DP border has potential NOTE: needs to be called before dpborder_solve!

Parameters
scipSCIP data structure
graphgraph of sub-problem
dpborderborder
hasPotentialwas problem solved to optimality?

Definition at line 186 of file dpborder_base.c.

References BPBORDER_MAXBORDERSIZE, BPBORDER_MAXNPARTITIONS, dpborder_coreComputeOrderingSimple(), dpborderInitHelper(), dpborderIsNonPromising(), dynamic_programming_border::dpbsequence, FALSE, graph_free_csr(), graph_init_csrWithEdgeId(), dynamic_programming_border_nodes_sequence::maxbordersize, dynamic_programming_border_nodes_sequence::maxnpartitions, SCIP_CALL, SCIP_OKAY, and TRUE.

Referenced by SCIPStpDpRelaxIsPromising().

◆ dpborder_solve()

SCIP_RETCODE dpborder_solve ( SCIP scip,
GRAPH graph,
DPBORDER dpborder,
int *  solution,
SCIP_Bool wasSolved 
)

◆ dpborder_free()