All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Classes | Namespaces | Typedefs | Functions
bounded_degree_mst.hpp File Reference
#include "paal/iterative_rounding/bounded_degree_min_spanning_tree/bounded_degree_mst_oracle.hpp"
#include "paal/iterative_rounding/ir_components.hpp"
#include "paal/iterative_rounding/iterative_rounding.hpp"
#include "paal/lp/lp_row_generation.hpp"
#include <boost/bimap.hpp>
#include <boost/range/as_array.hpp>
#include <boost/graph/connected_components.hpp>

Go to the source code of this file.

Classes

class  paal::ir::bounded_degree_mst< Graph, DegreeBounds, CostMap, VertexIndex, SpanningTreeOutputIterator, Oracle >
 The class for solving the Bounded Degree MST problem using Iterative Rounding. More...
 
struct  paal::ir::bdmst_round_condition
 
struct  paal::ir::bdmst_relax_condition
 
struct  paal::ir::bdmst_init
 
struct  paal::ir::bdmst_set_solution
 

Namespaces

 paal
 global namespace of project.
 
 paal::ir
 Iterative Rounding namespace.
 
 paal::ir::detail
 Detail of Iterative Rounding namespace.
 

Typedefs

template<typename Init = bdmst_init, typename RoundCondition = bdmst_round_condition, typename RelaxContition = bdmst_relax_condition, typename SetSolution = bdmst_set_solution, typename SolveLPToExtremePoint = ir::row_generation_solve_lp<>, typename ResolveLpToExtremePoint = ir::row_generation_solve_lp<>>
using paal::ir::bdmst_ir_components = IRcomponents< Init, RoundCondition, RelaxContition, SetSolution, SolveLPToExtremePoint, ResolveLpToExtremePoint >
 

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 > 
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. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename SpanningTreeOutputIterator , typename P , typename T , typename R >
auto paal::ir::make_bounded_degree_mst (const Graph &g, const DegreeBounds &deg_bounds, const boost::bgl_named_params< P, T, R > &params, SpanningTreeOutputIterator result_spanning_tree, Oracle oracle=Oracle()) -> bounded_degree_mst< Graph, DegreeBounds, decltype(choose_const_pmap(get_param(params, boost::edge_weight), g, boost::edge_weight)), decltype(choose_const_pmap(get_param(params, boost::vertex_index), g, boost::vertex_index)), SpanningTreeOutputIterator, Oracle >
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename SpanningTreeOutputIterator >
auto paal::ir::make_bounded_degree_mst (const Graph &g, const DegreeBounds &deg_bounds, SpanningTreeOutputIterator result_spanning_tree, Oracle oracle=Oracle()) -> decltype(make_bounded_degree_mst(g, deg_bounds, boost::no_named_parameters(), result_spanning_tree, oracle))
 
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. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename SpanningTreeOutputIterator , typename IRcomponents = bdmst_ir_components<>, typename Visitor = trivial_visitor, typename P , typename T , typename R >
IRResult paal::ir::bounded_degree_mst_iterative_rounding (const Graph &g, const DegreeBounds &deg_bounds, const boost::bgl_named_params< P, T, R > &params, SpanningTreeOutputIterator result_spanning_tree, IRcomponents components=IRcomponents(), Oracle oracle=Oracle(), Visitor visitor=Visitor())
 Solves the Bounded Degree MST problem using Iterative Rounding. Named version. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename SpanningTreeOutputIterator , typename IRcomponents = bdmst_ir_components<>, typename Visitor = trivial_visitor>
IRResult paal::ir::bounded_degree_mst_iterative_rounding (const Graph &g, const DegreeBounds &deg_bounds, SpanningTreeOutputIterator result_spanning_tree, IRcomponents components=IRcomponents(), Oracle oracle=Oracle(), Visitor visitor=Visitor())
 Solves the Bounded Degree MST problem using Iterative Rounding. All default parameters. More...
 

Detailed Description

Author
Piotr Godlewski
Version
1.0
Date
2013-06-03

Definition in file bounded_degree_mst.hpp.