jaxopt.projection.kl_projection_birkhoff

jaxopt.projection.kl_projection_birkhoff(sim_matrix, make_solver=None, use_semi_dual=True)[source]

Kullback-Leibler projection onto the Birkhoff polytope, the set of doubly stochastic matrices.

This function is a special case of kl_projection_transport.

Parameters
  • sim_matrix (Array) – similarity matrix, shape=(size, size).

  • make_solver (Optional[Callable]) – a function of the form make_solver(fun), for creating an iterative solver to minimize fun.

  • use_semi_dual (bool) – if true, use the semi-dual formulation in Equation (10) of https://arxiv.org/abs/1710.06276. Otherwise, use the dual-formulation in Equation (7).

Returns

doubly-stochastic matrix, shape=(size, size).

Return type

P