Template Class cycle_ratio_oracle

Nested Relationships

Nested Types

Template Parameter Order

  1. typename Graph

  2. typename Container

  3. typename Fn1

  4. typename Fn2

Class Documentation

template<typename Graph, typename Container, typename Fn1, typename Fn2>
class cycle_ratio_oracle

Oracle for minimum ratio cycle problem.

This example solves the following convex problem:

max     t
s.t.    u[j] - u[i] \le mij - sij * x,
        t \le x

where sij is not necessarily positive.

Template Parameters
  • Graph

  • Container

  • Fn1

  • Fn2

Public Functions

inline cycle_ratio_oracle(const Graph &G, Container &u, Fn1 get_cost, Fn2 get_time)

Construct a new cycle_ratio oracle object.

Parameters
  • G[in]

  • u[inout]

  • get_cost[in]

cycle_ratio_oracle(const cycle_ratio_oracle&) = delete
cycle_ratio_oracle &operator=(const cycle_ratio_oracle&) = delete
cycle_ratio_oracle(cycle_ratio_oracle&&) = default
inline auto operator()(const double &x, double &t) -> std::tuple<Cut, bool>

Make object callable for cutting_plane_dc()

See also

cutting_plane_dc

Parameters
  • x[in]

  • t[in] the best-so-far optimal value

Returns

std::tuple<Cut, double>