All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Public Member Functions | List of all members
paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle > Class Template Reference

The class for solving the Steiner Network problem using Iterative Rounding. More...

#include <steiner_network.hpp>

Public Member Functions

 steiner_network (const Graph &g, const Restrictions &restrictions, CostMap cost_map, VertexIndex vertex_index, ResultNetworkOutputIterator result_network, Oracle oracle=Oracle{})
 
error_message check_input_validity ()
 
template<typename LP >
auto get_find_violation (LP &lp)
 
const edge_map & get_edge_map () const
 
const Graph & get_graph () const
 
const VertexIndex & get_index () const
 
auto get_max_restriction (vertex_idx u, vertex_idx v) const -> decltype(std::declval< Restrictions >()(0, 0))
 
const RestrictionsVector & get_restrictions_vec () const
 
auto get_cost (edge e) -> decltype(get(std::declval< CostMap >(), e))
 
void bind_edge_to_col (edge e, lp::col_id col)
 
void remove_column (lp::col_id col_id)
 
void add_column_to_solution (lp::col_id col_id)
 
const edge_list & get_edges_in_solution () const
 
compare get_compare () const
 

Detailed Description

template<typename Graph, typename Restrictions, typename CostMap, typename VertexIndex, typename ResultNetworkOutputIterator, typename Oracle = paal::lp::random_violated_separation_oracle>
class paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >

The class for solving the Steiner Network problem using Iterative Rounding.

Template Parameters
Graphinput graph
Restrictionsconnectivity restrictions for vertex pairs
CostMapmap of edge costs
ResultNetworkOutputIterator

Definition at line 55 of file steiner_network.hpp.

Constructor & Destructor Documentation

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::steiner_network ( const Graph &  g,
const Restrictions &  restrictions,
CostMap  cost_map,
VertexIndex  vertex_index,
ResultNetworkOutputIterator  result_network,
Oracle  oracle = Oracle{} 
)
inline

Constructor.

Definition at line 84 of file steiner_network.hpp.

Member Function Documentation

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
void paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::add_column_to_solution ( lp::col_id  col_id)
inline

Adds an edge corresponding to the given column to the result set.

Definition at line 182 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
void paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::bind_edge_to_col ( edge  e,
lp::col_id  col 
)
inline

Binds a graph edge to a LP column.

Definition at line 167 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
error_message paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::check_input_validity ( )
inline

Checks if the connectivity restrictions can be fulfilled.

Definition at line 96 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
compare paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_compare ( ) const
inline

Returns the double comparison object.

Definition at line 197 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
auto paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_cost ( edge  e) -> decltype(get(std::declval<CostMap>(), e))
inline

Returns the cost of an edge.

Definition at line 159 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
const edge_map& paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_edge_map ( ) const
inline

Returns the map from LP column IDs to edges.

Definition at line 125 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
const edge_list& paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_edges_in_solution ( ) const
inline

Returns the list of edges that are already added to the solution.

Definition at line 192 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
template<typename LP >
auto paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_find_violation ( LP lp)
inline
Template Parameters
LP
Parameters
lp
Returns

Definition at line 115 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
const Graph& paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_graph ( ) const
inline

Returns the input graph.

Definition at line 130 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
const VertexIndex& paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_index ( ) const
inline

Returns the vertex index.

Definition at line 135 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
auto paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_max_restriction ( vertex_idx  u,
vertex_idx  v 
) const -> decltype(std::declval<Restrictions>()(0, 0))
inline

Returns the bigger of the two restrictions for a given vertex pair.

Definition at line 141 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
const RestrictionsVector& paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::get_restrictions_vec ( ) const
inline

Returns the restrictions vector.

Definition at line 150 of file steiner_network.hpp.

template<typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename Oracle = paal::lp::random_violated_separation_oracle>
void paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >::remove_column ( lp::col_id  col_id)
inline

Removes an LP column and the graph edge corresponding to it.

Definition at line 174 of file steiner_network.hpp.


The documentation for this class was generated from the following file: