All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Classes | Namespaces | Typedefs | Functions
steiner_network.hpp File Reference
#include "paal/iterative_rounding/ir_components.hpp"
#include "paal/iterative_rounding/iterative_rounding.hpp"
#include "paal/iterative_rounding/steiner_network/prune_restrictions_to_tree.hpp"
#include "paal/iterative_rounding/steiner_network/steiner_network_oracle.hpp"
#include "paal/lp/lp_row_generation.hpp"
#include <boost/graph/kruskal_min_spanning_tree.hpp>
#include <boost/graph/named_function_params.hpp>
#include <boost/range/as_array.hpp>

Go to the source code of this file.

Classes

class  paal::ir::steiner_network< Graph, Restrictions, CostMap, VertexIndex, ResultNetworkOutputIterator, Oracle >
 The class for solving the Steiner Network problem using Iterative Rounding. More...
 
struct  paal::ir::steiner_network_init
 
struct  paal::ir::steiner_network_round_condition
 
struct  paal::ir::steiner_network_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 = steiner_network_init, typename RoundCondition = steiner_network_round_condition, typename RelaxContition = utils::always_false, typename SetSolution = steiner_network_set_solution, typename SolveLPToExtremePoint = row_generation_solve_lp<>, typename ResolveLPToExtremePoint = row_generation_solve_lp<>>
using paal::ir::steiner_network_ir_components = IRcomponents< Init, RoundCondition, RelaxContition, SetSolution, SolveLPToExtremePoint, ResolveLPToExtremePoint >
 

Functions

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. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename ResultNetworkOutputIterator , typename P , typename T , typename R >
auto paal::ir::make_steiner_network (const Graph &g, const Restrictions &restrictions, const boost::bgl_named_params< P, T, R > &params, ResultNetworkOutputIterator result_network, Oracle oracle=Oracle()) -> steiner_network< Graph, Restrictions, 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)), ResultNetworkOutputIterator, Oracle >
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename ResultNetworkOutputIterator >
auto paal::ir::make_steiner_network (const Graph &g, const Restrictions &restrictions, ResultNetworkOutputIterator result_network, Oracle oracle=Oracle()) -> decltype(make_steiner_network(g, restrictions, boost::no_named_parameters(), result_network, oracle))
 
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. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename ResultNetworkOutputIterator , typename IRcomponents = steiner_network_ir_components<>, typename Visitor = trivial_visitor, typename P , typename T , typename R >
IRResult paal::ir::steiner_network_iterative_rounding (const Graph &g, const Restrictions &restrictions, const boost::bgl_named_params< P, T, R > &params, ResultNetworkOutputIterator result, IRcomponents components=IRcomponents(), Oracle oracle=Oracle(), Visitor visitor=Visitor())
 Solves the Steiner Network problem using Iterative Rounding. Named version. More...
 
template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename ResultNetworkOutputIterator , typename IRcomponents = steiner_network_ir_components<>, typename Visitor = trivial_visitor>
IRResult paal::ir::steiner_network_iterative_rounding (const Graph &g, const Restrictions &restrictions, ResultNetworkOutputIterator result, IRcomponents components=IRcomponents(), Oracle oracle=Oracle(), Visitor visitor=Visitor())
 Solves the Steiner Network problem using Iterative Rounding. All default parameters. More...
 

Detailed Description

Author
Piotr Wygocki, Piotr Godlewski
Version
1.0
Date
2013-06-24

Definition in file steiner_network.hpp.