#include "paal/data_structures/metric/basic_metrics.hpp"
#include "paal/iterative_rounding/ir_components.hpp"
#include "paal/iterative_rounding/iterative_rounding.hpp"
#include "paal/iterative_rounding/steiner_tree/steiner_components.hpp"
#include "paal/iterative_rounding/steiner_tree/steiner_strategy.hpp"
#include "paal/iterative_rounding/steiner_tree/steiner_tree_oracle.hpp"
#include "paal/iterative_rounding/steiner_tree/steiner_utils.hpp"
#include "paal/lp/lp_row_generation.hpp"
#include "paal/utils/assign_updates.hpp"
#include <boost/random/discrete_distribution.hpp>
#include <boost/range/join.hpp>
#include <boost/range/algorithm/unique.hpp>
#include <boost/range/algorithm/sort.hpp>
#include <boost/range/algorithm/copy.hpp>
#include <boost/range/algorithm/find.hpp>
#include <random>
#include <vector>
Go to the source code of this file.
Classes | |
class | paal::ir::steiner_tree< OrigMetric, Terminals, Result, Strategy, Oracle > |
The class for solving the Steiner Tree problem using Iterative Rounding. More... | |
struct | paal::ir::steiner_tree_init |
class | paal::ir::steiner_tree_round_condition |
struct | paal::ir::steiner_tree_stop_condition |
struct | paal::ir::steiner_tree_set_solution |
Namespaces | |
paal | |
global namespace of project. | |
paal::ir | |
Iterative Rounding namespace. | |
Functions | |
template<typename Oracle = lp::random_violated_separation_oracle, typename OrigMetric , typename Terminals , typename Result , typename Strategy > | |
steiner_tree< OrigMetric, Terminals, Result, Strategy, Oracle > | paal::ir::make_steiner_tree (const OrigMetric &metric, const Terminals &terminals, const Terminals &steiner_vertices, Result result, const Strategy &strategy, Oracle oracle=Oracle()) |
template<typename Oracle = lp::random_violated_separation_oracle, typename Strategy = steiner_tree_all_generator, typename OrigMetric , typename Terminals , typename Result , typename IRcomponents = steiner_tree_ir_components<>, typename Visitor = trivial_visitor> | |
lp::problem_type | paal::ir::steiner_tree_iterative_rounding (const OrigMetric &metric, const Terminals &terminals, const Terminals &steiner_vertices, Result result, Strategy strategy=Strategy{}, IRcomponents comps=IRcomponents{}, Oracle oracle=Oracle{}, Visitor visitor=Visitor{}) |
Solves the Steiner Tree problem using Iterative Rounding. | |