Template Class optscaling_oracle

Nested Relationships

Nested Types

Template Parameter Order

  1. typename Graph

  2. typename Container

  3. typename Fn

Class Documentation

template<typename Graph, typename Container, typename Fn>
class optscaling_oracle

Oracle for Optimal Matrix Scaling.

This example is taken from [Orlin and Rothblum, 1985]:

min     \pi/\phi
s.t.    \phi \le u[i] * |aij| * u[j]^-1 \le \pi,
        \forall aij != 0,
        \pi, \phi, u, positive

Template Parameters
  • Graph

  • Container

  • Fn

Public Functions

inline optscaling_oracle(const Graph &G, Container &u, Fn get_cost)

Construct a new optscaling oracle object.

Parameters
  • G[in]

  • u[inout]

  • get_cost[in]

explicit optscaling_oracle(const optscaling_oracle&) = default

Construct a new optscaling oracle object.

inline auto operator()(const Arr &x, double &t) -> std::tuple<Cut, bool>

Make object callable for cutting_plane_dc()

See also

cutting_plane_dc

Parameters
  • x[in] (, ) in log scale

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

Returns

std::tuple<Cut, double>