Iterative Rounding namespace. More...
Namespaces | |
| detail | |
| Detail of Iterative Rounding namespace. | |
Classes | |
| class | bounded_degree_mst |
| The class for solving the Bounded Degree MST problem using Iterative Rounding. More... | |
| struct | bdmst_round_condition |
| struct | bdmst_relax_condition |
| struct | bdmst_init |
| struct | bdmst_set_solution |
| class | bdmst_violation_checker |
| Violations checker for the separation oracle in the bounded degree minimum spanning tree problem. More... | |
| struct | ga_relax_condition |
| struct | ga_set_solution |
| class | ga_init |
| class | generalised_assignment |
| The class for solving the Generalised Assignment problem using Iterative Rounding. More... | |
| class | default_round_condition |
| Default column rounding condition component. More... | |
| class | round_condition_equals |
| Column rounding component. Rounds a column if its value is equal to one of the template parameter values. More... | |
| class | round_condition_equals< arg, args...> |
| Column rounding component. Rounds a column if its value is equal to one of the template parameter values. More... | |
| class | round_condition_equals<> |
| Column rounding component. Rounds a column if its value is equal to one of the template parameter values. Edge case (no template parameter values). More... | |
| class | round_condition_to_fun |
| Column rounding component. Rounds a column if its value satisfies a fixed condition. The column is rounded to a value defined by a fixed function. More... | |
| class | cond_bigger_equal_than |
| Checks if a variable is greater or equal than a fixed bound. More... | |
| struct | round_condition_greater_than_half |
| Column rounding component. A variable is rounded up to 1, if it has value at least half in the solution. More... | |
| struct | default_solve_lp_to_extreme_point |
| Finds an extreme point solution to the LP. More... | |
| struct | default_resolve_lp_to_extreme_point |
| Finds an extreme point solution to the LP. More... | |
| class | default_stop_condition |
| Default stop condition component. More... | |
| class | relaxations_limit_condition |
| Checks if the relaxations limit was reached. More... | |
| struct | trivial_visitor |
| Default Iterative Rounding visitor. More... | |
| class | default_solve_lp_in_row_generation |
| struct | row_generation_solve_lp |
| class | min_cut_finder |
| Class for creating and modifying directed graphs with edge capacities and finding directed minimum cuts between given vertices. More... | |
| class | steiner_network |
| The class for solving the Steiner Network problem using Iterative Rounding. More... | |
| struct | steiner_network_init |
| struct | steiner_network_round_condition |
| struct | steiner_network_set_solution |
| class | steiner_network_violation_checker |
| Violations checker for the separation oracle in the steiner network problem. More... | |
| class | steiner_component |
| Class represents k-components of Steiner Tree. Component is a subtree whose terminals coincide with leaves. More... | |
| class | steiner_components |
| class | steiner_tree_all_generator |
| class | steiner_tree_graph_all_generator |
| class | steiner_tree_random_generator |
| class | steiner_tree_smart_generator |
| class | steiner_tree |
| The class for solving the Steiner Tree problem using Iterative Rounding. More... | |
| struct | steiner_tree_init |
| class | steiner_tree_round_condition |
| struct | steiner_tree_stop_condition |
| struct | steiner_tree_set_solution |
| class | steiner_tree_violation_checker |
| Violations checker for the separation oracle in the steiner tree problem. More... | |
| class | steiner_utils |
| struct | ta_round_condition |
| struct | ta_set_solution |
| class | ta_init |
| class | tree_aug |
| This is Jain's iterative rounding 2-approximation algorithm for the Generalised Steiner Network Problem, specialized for the Tree Augmentation Problem. More... | |
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 | bdmst_ir_components = IRcomponents< Init, RoundCondition, RelaxContition, SetSolution, SolveLPToExtremePoint, ResolveLpToExtremePoint > |
| template<typename Init = ga_init, typename RoundCondition = default_round_condition, typename RelaxContition = ga_relax_condition, typename SetSolution = ga_set_solution> | |
| using | ga_ir_components = IRcomponents< Init, RoundCondition, RelaxContition, SetSolution > |
| using | components = data_structures::components< Init, data_structures::NameWithDefault< RoundCondition, default_round_condition >, data_structures::NameWithDefault< RelaxCondition, utils::always_false >, data_structures::NameWithDefault< SetSolution, utils::skip_functor >, data_structures::NameWithDefault< SolveLP, default_solve_lp_to_extreme_point >, data_structures::NameWithDefault< ResolveLP, default_resolve_lp_to_extreme_point >, data_structures::NameWithDefault< StopCondition, default_stop_condition >, data_structures::NameWithDefault< RelaxationsLimit, utils::always_false >> |
| template<typename... Args> | |
| using | IRcomponents = typename components::type< Args...> |
| Iterative rounding components. | |
| using | IRSolutionCost = boost::optional< double > |
| Iterative Rounding solution cost type. Solution cost only makes sense if the LP has been solved to optimal value. | |
| using | IRResult = std::pair< lp::problem_type, IRSolutionCost > |
| 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 | steiner_network_ir_components = IRcomponents< Init, RoundCondition, RelaxContition, SetSolution, SolveLPToExtremePoint, ResolveLPToExtremePoint > |
| 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 | steiner_tree_ir_components = IRcomponents< Init, RoundCondition, RelaxCondition, SetSolution, SolveLPToExtremePoint, ResolveLPToExtremePoint, StopCondition > |
| template<typename Init = ta_init, typename RoundCondition = ta_round_condition, typename RelaxContition = utils::always_false, typename SetSolution = ta_set_solution> | |
| using | tree_augmentation_ir_components = IRcomponents< Init, RoundCondition, RelaxContition, SetSolution > |
Functions | |
| template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename DegreeBounds , typename SpanningTreeOutputIterator , typename P , typename T , typename R > | |
| auto | make_bounded_degree_mst (const Graph &g, const DegreeBounds °_bounds, const boost::bgl_named_params< P, T, R > ¶ms, 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 | make_bounded_degree_mst (const Graph &g, const DegreeBounds °_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 SpanningTreeOutputIterator , typename IRcomponents = bdmst_ir_components<>, typename Visitor = trivial_visitor, typename P , typename T , typename R > | |
| IRResult | bounded_degree_mst_iterative_rounding (const Graph &g, const DegreeBounds °_bounds, const boost::bgl_named_params< P, T, R > ¶ms, 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 | bounded_degree_mst_iterative_rounding (const Graph &g, const DegreeBounds °_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... | |
| template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator > | |
| generalised_assignment < MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator > | make_generalised_assignment (MachineIter mbegin, MachineIter mend, JobIter jbegin, JobIter jend, const Cost &c, const ProceedingTime &t, const MachineAvailableTime &T, JobsToMachinesOutputIterator jobs_to_machines) |
| Creates a generalised_assignment object. More... | |
| template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator , typename Components = ga_ir_components<>, typename Visitor = trivial_visitor> | |
| IRResult | generalised_assignment_iterative_rounding (MachineIter mbegin, MachineIter mend, JobIter jbegin, JobIter jend, const Cost &c, const ProceedingTime &t, const MachineAvailableTime &T, JobsToMachinesOutputIterator jobs_to_machines, Components components=Components(), Visitor visitor=Visitor()) |
| Solves the Generalised Assignment problem using Iterative Rounding. More... | |
| template<typename... Args> | |
| auto | make_IRcomponents (Args &&...args) -> decltype(components::make_components(std::forward< Args >(args)...)) |
| Returns iterative rounding components. | |
| template<typename Problem , typename IRcomponents , typename Visitor = trivial_visitor, typename LP = lp::glp> | |
| IRResult | solve_iterative_rounding (Problem &problem, IRcomponents components, Visitor visitor=Visitor()) |
| Solves an Iterative Rounding problem. More... | |
| template<typename Problem , typename IRcomponents , typename Visitor = trivial_visitor, typename LP = lp::glp> | |
| IRResult | solve_dependent_iterative_rounding (Problem &problem, IRcomponents components, Visitor visitor=Visitor()) |
| Solves an Iterative Rounding problem with dependent rounding. More... | |
| template<typename Oracle = lp::random_violated_separation_oracle, typename Graph , typename Restrictions , typename ResultNetworkOutputIterator , typename P , typename T , typename R > | |
| auto | 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 | 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 ResultNetworkOutputIterator , typename IRcomponents = steiner_network_ir_components<>, typename Visitor = trivial_visitor, typename P , typename T , typename R > | |
| IRResult | 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 | 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... | |
| template<typename Vertex , typename Graph , typename Terminals > | |
| steiner_tree_graph_all_generator < Graph, Vertex, Terminals > | make_steiner_tree_graph_all_generator (const Graph &graph, const Terminals &terminals, int K=4) |
| template<typename Oracle = lp::random_violated_separation_oracle, typename OrigMetric , typename Terminals , typename Result , typename Strategy > | |
| steiner_tree< OrigMetric, Terminals, Result, Strategy, Oracle > | 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 | 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. | |
| template<typename Graph , typename EdgeSetOutputIterator , typename P , typename T , typename R > | |
| auto | make_tree_aug (const Graph &g, const boost::bgl_named_params< P, T, R > ¶ms, EdgeSetOutputIterator solution) -> tree_aug< Graph, decltype(choose_const_pmap(get_param(params, boost::edge_color), g, boost::edge_color)), 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)), EdgeSetOutputIterator > |
| template<typename Graph , typename EdgeSetOutputIterator > | |
| auto | make_tree_aug (const Graph &g, EdgeSetOutputIterator solution) -> decltype(make_tree_aug(g, boost::no_named_parameters(), solution)) |
| template<typename Graph , typename EdgeSetOutputIterator , typename IRcomponents = tree_augmentation_ir_components<>, typename Visitor = trivial_visitor, typename P , typename T , typename R > | |
| IRResult | tree_augmentation_iterative_rounding (const Graph &g, const boost::bgl_named_params< P, T, R > ¶ms, EdgeSetOutputIterator solution, IRcomponents components=IRcomponents(), Visitor visitor=Visitor()) |
| Solves the Tree Augmentation problem using Iterative Rounding. Named parameters. More... | |
| template<typename Graph , typename EdgeSetOutputIterator , typename IRcomponents = tree_augmentation_ir_components<>, typename Visitor = trivial_visitor> | |
| IRResult | tree_augmentation_iterative_rounding (const Graph &g, EdgeSetOutputIterator solution, IRcomponents components=IRcomponents(), Visitor visitor=Visitor()) |
| Solves the Tree Augmentation problem using Iterative Rounding. All default parameters. More... | |
Iterative Rounding namespace.
| using paal::ir::IRResult = typedef std::pair<lp::problem_type, IRSolutionCost> |
Iterative Rounding result type: Pair consisting of LP problem type and IR solution cost.
Definition at line 294 of file iterative_rounding.hpp.
| 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.
| Oracle | |
| Graph | |
| DegreeBounds | |
| SpanningTreeOutputIterator | |
| IRcomponents | |
| Visitor | |
| P | |
| T | |
| R |
| g | |
| deg_bounds | |
| result_spanning_tree | |
| params | |
| components | |
| oracle | |
| visitor |
Definition at line 582 of file bounded_degree_mst.hpp.
| 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.
| Oracle | |
| Graph | |
| DegreeBounds | |
| SpanningTreeOutputIterator | |
| IRcomponents | |
| Visitor |
| g | |
| deg_bounds | |
| result_spanning_tree | |
| components | |
| oracle | |
| visitor |
Definition at line 621 of file bounded_degree_mst.hpp.
| IRResult paal::ir::generalised_assignment_iterative_rounding | ( | MachineIter | mbegin, |
| MachineIter | mend, | ||
| JobIter | jbegin, | ||
| JobIter | jend, | ||
| const Cost & | c, | ||
| const ProceedingTime & | t, | ||
| const MachineAvailableTime & | T, | ||
| JobsToMachinesOutputIterator | jobs_to_machines, | ||
| Components | components = Components(), |
||
| Visitor | visitor = Visitor() |
||
| ) |
Solves the Generalised Assignment problem using Iterative Rounding.
| MachineIter | |
| JobIter | |
| Cost | |
| ProceedingTime | |
| MachineAvailableTime | |
| JobsToMachinesOutputIterator | |
| Components | |
| Visitor |
| mbegin | begin machines iterator |
| mend | end machines iterator |
| jbegin | begin jobs iterator |
| jend | end jobs iterator |
| c | costs of assignments |
| t | jobs proceeding times |
| T | times available for the machines |
| jobs_to_machines | found assignment |
| components | IR components |
| visitor |
Definition at line 363 of file generalised_assignment.hpp.
| 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> |
Creates a bounded_degree_mst object. Named version. The returned object can be used to check input validity or to get a lower bound on the optimal solution cost.
| Oracle | |
| Graph | |
| DegreeBounds | |
| SpanningTreeOutputIterator | |
| P | |
| T | |
| R |
| g | |
| deg_bounds | |
| params | |
| result_spanning_tree | |
| oracle |
Definition at line 304 of file bounded_degree_mst.hpp.
| 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)) |
Creates a bounded_degree_mst object. All default parameters. The returned object can be used to check input validity or to get a lower bound on the optimal solution cost.
| Oracle | |
| Graph | |
| DegreeBounds | |
| SpanningTreeOutputIterator |
| g | |
| deg_bounds | |
| result_spanning_tree | |
| oracle |
Definition at line 340 of file bounded_degree_mst.hpp.
| generalised_assignment<MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator> paal::ir::make_generalised_assignment | ( | MachineIter | mbegin, |
| MachineIter | mend, | ||
| JobIter | jbegin, | ||
| JobIter | jend, | ||
| const Cost & | c, | ||
| const ProceedingTime & | t, | ||
| const MachineAvailableTime & | T, | ||
| JobsToMachinesOutputIterator | jobs_to_machines | ||
| ) |
Creates a generalised_assignment object.
| MachineIter | |
| JobIter | |
| Cost | |
| ProceedingTime | |
| MachineAvailableTime | |
| JobsToMachinesOutputIterator |
| mbegin | begin machines iterator |
| mend | end machines iterator |
| jbegin | begin jobs iterator |
| jend | end jobs iterator |
| c | costs of assignments |
| t | jobs proceeding times |
| T | times available for the machines |
| jobs_to_machines | found assignment |
Definition at line 323 of file generalised_assignment.hpp.
| 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> |
Creates a steiner_network object. Named version. The returned object can be used to check input validity or to get a lower bound on the optimal solution cost.
| Oracle | |
| Graph | |
| Restrictions | |
| ResultNetworkOutputIterator | |
| P | |
| T | |
| R |
| g | |
| restrictions | |
| params | |
| result_network | |
| oracle |
Definition at line 266 of file steiner_network.hpp.
| 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)) |
Creates a steiner_network object. All default parameters. The returned object can be used to check input validity or to get a lower bound on the optimal solution cost.
| Oracle | |
| Graph | |
| Restrictions | |
| ResultNetworkOutputIterator |
| g | |
| restrictions | |
| result_network | |
| oracle |
Definition at line 300 of file steiner_network.hpp.
| 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() |
||
| ) |
Makes steiner_tree object. Just to avoid providing type names in template.
Definition at line 333 of file steiner_tree.hpp.
| steiner_tree_graph_all_generator<Graph, Vertex, Terminals> paal::ir::make_steiner_tree_graph_all_generator | ( | const Graph & | graph, |
| const Terminals & | terminals, | ||
| int | K = 4 |
||
| ) |
Makes a graph_all_generator object.
Definition at line 239 of file steiner_strategy.hpp.
| auto paal::ir::make_tree_aug | ( | const Graph & | g, |
| const boost::bgl_named_params< P, T, R > & | params, | ||
| EdgeSetOutputIterator | solution | ||
| ) | -> tree_aug< Graph, decltype(choose_const_pmap(get_param(params, boost::edge_color), g, boost::edge_color)), 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)), EdgeSetOutputIterator> |
Creates a tree_aug object. Named parameters. The returned object can be used to check input validity or to get a lower bound on the optimal solution cost.
| Graph | |
| EdgeSetOutputIterator | |
| P | |
| T | |
| R |
| g | |
| params | |
| solution |
Definition at line 527 of file tree_augmentation.hpp.
| auto paal::ir::make_tree_aug | ( | const Graph & | g, |
| EdgeSetOutputIterator | solution | ||
| ) | -> decltype(make_tree_aug(g, boost::no_named_parameters(), solution)) |
Creates a tree_aug object. All default parameters. The returned object can be used to check input validity or to get a lower bound on the optimal solution cost.
| Graph | |
| EdgeSetOutputIterator |
| g | |
| solution |
Definition at line 563 of file tree_augmentation.hpp.
| IRResult paal::ir::solve_dependent_iterative_rounding | ( | Problem & | problem, |
| IRcomponents | components, | ||
| Visitor | visitor = Visitor() |
||
| ) |
Solves an Iterative Rounding problem with dependent rounding.
| Problem | |
| IRcomponents | |
| Visitor | |
| LP |
| problem | IR problem |
| components | IR problem components |
| visitor | visitor object used for logging progress of the algoithm |
Definition at line 342 of file iterative_rounding.hpp.
| IRResult paal::ir::solve_iterative_rounding | ( | Problem & | problem, |
| IRcomponents | components, | ||
| Visitor | visitor = Visitor() |
||
| ) |
Solves an Iterative Rounding problem.
| Problem | |
| IRcomponents | |
| Visitor | |
| LP |
| problem | IR problem |
| components | IR problem components |
| visitor | visitor object used for logging progress of the algoithm |
Definition at line 308 of file iterative_rounding.hpp.
| 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.
| Oracle | |
| Graph | |
| Restrictions | |
| ResultNetworkOutputIterator | |
| IRcomponents | |
| Visitor | |
| P | |
| T | |
| R |
| g | |
| restrictions | |
| params | |
| result | |
| components | |
| oracle | |
| visitor |
Definition at line 483 of file steiner_network.hpp.
| 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.
| Oracle | |
| Graph | |
| Restrictions | |
| ResultNetworkOutputIterator | |
| IRcomponents | |
| Visitor |
| g | |
| restrictions | |
| result | |
| components | |
| oracle | |
| visitor |
Definition at line 522 of file steiner_network.hpp.
| IRResult paal::ir::tree_augmentation_iterative_rounding | ( | const Graph & | g, |
| const boost::bgl_named_params< P, T, R > & | params, | ||
| EdgeSetOutputIterator | solution, | ||
| IRcomponents | components = IRcomponents(), |
||
| Visitor | visitor = Visitor() |
||
| ) |
Solves the Tree Augmentation problem using Iterative Rounding. Named parameters.
| Graph | |
| EdgeSetOutputIterator | |
| IRcomponents | |
| Visitor | |
| P | |
| T | |
| R |
| g | |
| params | |
| solution | |
| components | |
| visitor |
Definition at line 591 of file tree_augmentation.hpp.
| IRResult paal::ir::tree_augmentation_iterative_rounding | ( | const Graph & | g, |
| EdgeSetOutputIterator | solution, | ||
| IRcomponents | components = IRcomponents(), |
||
| Visitor | visitor = Visitor() |
||
| ) |
Solves the Tree Augmentation problem using Iterative Rounding. All default parameters.
| Graph | |
| EdgeSetOutputIterator | |
| IRcomponents | |
| Visitor |
| g | |
| solution | |
| components | |
| visitor |
Definition at line 623 of file tree_augmentation.hpp.
1.8.5