All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Classes | Functions
paal::ir::detail Namespace Reference

Detail of Iterative Rounding namespace. More...

Classes

class  iterative_rounding
 This class solves an iterative rounding problem. More...
 
struct  vertex_filter
 
struct  bool_map_to_tree_filter
 
struct  bool_map_to_non_tree_filter
 
class  const_int_map
 A boost graph map that returns a constant integer value. More...
 

Functions

template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename CostMap , typename VertexIndex , typename SpanningTreeOutputIterator >
bounded_degree_mst< Graph,
DegreeBounds, CostMap,
VertexIndex,
SpanningTreeOutputIterator,
Oracle > 
make_bounded_degree_mst (const Graph &g, const DegreeBounds &deg_bounds, CostMap cost_map, VertexIndex vertex_index, SpanningTreeOutputIterator result_spanning_tree, Oracle oracle=Oracle())
 Creates a bounded_degree_mst object. Non-named version. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename CostMap , typename VertexIndex , typename SpanningTreeOutputIterator , typename IRcomponents = bdmst_ir_components<>, typename Visitor = trivial_visitor>
IRResult bounded_degree_mst_iterative_rounding (const Graph &g, const DegreeBounds &deg_bounds, CostMap cost_map, VertexIndex vertex_index, SpanningTreeOutputIterator result_spanning_tree, IRcomponents components=IRcomponents(), Oracle oracle=Oracle(), Visitor visitor=Visitor())
 Solves the Bounded Degree MST problem using Iterative Rounding. Non-named version. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator >
steiner_network< Graph,
Restrictions, CostMap,
VertexIndex,
ResultNetworkOutputIterator,
Oracle > 
make_steiner_network (const Graph &g, const Restrictions &restrictions, CostMap cost_map, VertexIndex vertex_index, ResultNetworkOutputIterator result_network, Oracle oracle=Oracle{})
 Creates a steiner_network object. Non-named version. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename IRcomponents = steiner_network_ir_components<>, typename Visitor = trivial_visitor>
IRResult steiner_network_iterative_rounding (const Graph &g, const Restrictions &restrictions, CostMap cost, VertexIndex vertex_index, ResultNetworkOutputIterator result, IRcomponents components=IRcomponents(), Oracle oracle=Oracle(), Visitor visitor=Visitor())
 Solves the Steiner Network problem using Iterative Rounding. Non-named version. More...
 
template<class EdgeListGraph >
int filtered_num_edges (const EdgeListGraph &g)
 
template<typename Graph , typename TreeMap , typename CostMap , typename VertexIndex , typename EdgeSetOutputIterator >
tree_aug< Graph, TreeMap,
CostMap, VertexIndex,
EdgeSetOutputIterator > 
make_tree_aug (const Graph &g, TreeMap tree_map, CostMap cost_map, VertexIndex vertex_index, EdgeSetOutputIterator solution)
 Creates a tree_aug object. Non-named parameters. More...
 
template<typename Graph , typename TreeMap , typename CostMap , typename VertexIndex , typename EdgeSetOutputIterator , typename IRcomponents = tree_augmentation_ir_components<>, typename Visitor = trivial_visitor>
IRResult tree_augmentation_iterative_rounding (const Graph &g, TreeMap tree_map, CostMap cost_map, VertexIndex vertex_index, EdgeSetOutputIterator solution, IRcomponents components=IRcomponents(), Visitor visitor=Visitor())
 Solves the Tree Augmentation problem using Iterative Rounding. Non-named parameters. More...
 

Detailed Description

Detail of Iterative Rounding namespace.

Function Documentation

template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename CostMap , typename VertexIndex , typename SpanningTreeOutputIterator , typename IRcomponents = bdmst_ir_components<>, typename Visitor = trivial_visitor>
IRResult paal::ir::detail::bounded_degree_mst_iterative_rounding ( const Graph &  g,
const DegreeBounds &  deg_bounds,
CostMap  cost_map,
VertexIndex  vertex_index,
SpanningTreeOutputIterator  result_spanning_tree,
IRcomponents  components = IRcomponents(),
Oracle  oracle = Oracle(),
Visitor  visitor = Visitor() 
)

Solves the Bounded Degree MST problem using Iterative Rounding. Non-named version.

Template Parameters
Oracle
Graph
DegreeBounds
CostMap
VertexIndex
SpanningTreeOutputIterator
IRcomponents
Visitor
Parameters
g
degBoundMap
cost_map
vertex_index
result_spanning_tree
components
oracle
visitor
Returns
solution status

Definition at line 538 of file bounded_degree_mst.hpp.

template<class EdgeListGraph >
int paal::ir::detail::filtered_num_edges ( const EdgeListGraph &  g)

This function returns the number of edges in a graph. The reason this function was written is that BGL's num_edges() function does not work properly for filtered_graph. See http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/filtered_graph.html#2

Definition at line 48 of file tree_augmentation.hpp.

template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename CostMap , typename VertexIndex , typename SpanningTreeOutputIterator >
bounded_degree_mst<Graph, DegreeBounds, CostMap, VertexIndex, SpanningTreeOutputIterator, Oracle> paal::ir::detail::make_bounded_degree_mst ( const Graph &  g,
const DegreeBounds &  deg_bounds,
CostMap  cost_map,
VertexIndex  vertex_index,
SpanningTreeOutputIterator  result_spanning_tree,
Oracle  oracle = Oracle() 
)

Creates a bounded_degree_mst object. Non-named version.

Template Parameters
Oracle
Graph
DegreeBounds
CostMap
VertexIndex
SpanningTreeOutputIterator
Parameters
g
degBoundMap
cost_map
vertex_index
result_spanning_tree
oracle
Returns
bounded_degree_mst object

Definition at line 268 of file bounded_degree_mst.hpp.

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

Creates a steiner_network object. Non-named version.

Template Parameters
Graph
Restrictions
CostMap
VertexIndex
ResultNetworkOutputIterator
Parameters
g
restrictions
cost_map
vertex_index
result_network
oracle
Returns
steiner_network object

Definition at line 231 of file steiner_network.hpp.

template<typename Graph , typename TreeMap , typename CostMap , typename VertexIndex , typename EdgeSetOutputIterator >
tree_aug<Graph, TreeMap, CostMap, VertexIndex, EdgeSetOutputIterator> paal::ir::detail::make_tree_aug ( const Graph &  g,
TreeMap  tree_map,
CostMap  cost_map,
VertexIndex  vertex_index,
EdgeSetOutputIterator  solution 
)

Creates a tree_aug object. Non-named parameters.

Template Parameters
Graph
TreeMap
CostMap
VertexIndex
EdgeSetOutputIterator
Parameters
g
tree_map
cost_map
vertex_index
solution
Returns
tree_aug object

Definition at line 464 of file tree_augmentation.hpp.

template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename CostMap , typename VertexIndex , typename ResultNetworkOutputIterator , typename IRcomponents = steiner_network_ir_components<>, typename Visitor = trivial_visitor>
IRResult paal::ir::detail::steiner_network_iterative_rounding ( const Graph &  g,
const Restrictions &  restrictions,
CostMap  cost,
VertexIndex  vertex_index,
ResultNetworkOutputIterator  result,
IRcomponents  components = IRcomponents(),
Oracle  oracle = Oracle(),
Visitor  visitor = Visitor() 
)

Solves the Steiner Network problem using Iterative Rounding. Non-named version.

Template Parameters
Oracle
Graph
Restrictions
CostMap
VertexIndex
ResultNetworkOutputIterator
IRcomponents
Visitor
Parameters
g
restrictions
cost
vertex_index
result
components
oracle
visitor
Returns
solution status

Definition at line 441 of file steiner_network.hpp.

template<typename Graph , typename TreeMap , typename CostMap , typename VertexIndex , typename EdgeSetOutputIterator , typename IRcomponents = tree_augmentation_ir_components<>, typename Visitor = trivial_visitor>
IRResult paal::ir::detail::tree_augmentation_iterative_rounding ( const Graph &  g,
TreeMap  tree_map,
CostMap  cost_map,
VertexIndex  vertex_index,
EdgeSetOutputIterator  solution,
IRcomponents  components = IRcomponents(),
Visitor  visitor = Visitor() 
)

Solves the Tree Augmentation problem using Iterative Rounding. Non-named parameters.

Template Parameters
Graph
TreeMap
CostMap
VertexIndex
EdgeSetOutputIterator
IRcomponents
Visitor
Parameters
g
tree_map
cost_map
vertex_index
solution
components
visitor
Returns
solution status

Definition at line 495 of file tree_augmentation.hpp.