rime.metrics.linprog

` max vec(p) @ vec(s) s.t. p @ 1 = 1 p = pT `

Vectorized conditions ` vec(p)[i * n + j] = p[i, j] sum_j p[i, j] = vec(p) @ [0...0,1...1,0...0] = vec(p) @ (I * 1) comm_mat @ vec(p) = vec(p) `

Example: >>> score_mat = np.array([[0, 1, 0], [1, 0, 0], [0, 0, 0]]) >>> score_mat = np.triu(score_mat, 1) >>> score_mat = score_mat + score_mat.T >>> assignments = LinProg(score_mat).fit(score_mat).transform(score_mat) >>> print(np.round(assignments, 2)) array([[0., 1., 0.],

[1., 0., 0.], [0., 0., 1.]])

Functions

comm_mat(m, n)

wikipedia

setup_linprog(scores[, use_triu, noise_ratio])

triu_to_mat(n)

# upper array([[0, 1, 2], [1, 3, 4], [2, 4, 5]])

Classes

LinProg(score_mat[, device, use_triu, ...])