#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. | |
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 > ¶ms, 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 > ¶ms, 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... | |