All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Classes | Namespaces | Macros | Typedefs | Functions
steiner_tree.hpp File Reference
#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.
 

Typedefs

template<typename Init = steiner_tree_init, typename RoundCondition = steiner_tree_round_condition, typename RelaxCondition = utils::always_false, typename SetSolution = steiner_tree_set_solution, typename SolveLPToExtremePoint = row_generation_solve_lp<>, typename ResolveLPToExtremePoint = row_generation_solve_lp<>, typename StopCondition = steiner_tree_stop_condition>
using paal::ir::steiner_tree_ir_components = IRcomponents< Init, RoundCondition, RelaxCondition, SetSolution, SolveLPToExtremePoint, ResolveLPToExtremePoint, StopCondition >
 

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.
 

Detailed Description

Author
Maciej Andrejczuk, Piotr Godlewski, Piotr Wygocki
Version
1.0
Date
2013-08-01

Definition in file steiner_tree.hpp.