Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimization over doubly-stochastic matrices #80

Open
PaulWAyers opened this issue Mar 14, 2021 · 0 comments
Open

Optimization over doubly-stochastic matrices #80

PaulWAyers opened this issue Mar 14, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@PaulWAyers
Copy link
Member

Analogous to what was done with k-opt, we should add functionality to optimize a user-specified function over the set of doubly-stochastic matrices. (Doubly stochastic matrices are nonnegative matrices that have row-sum and column-sum equal to 1.)

  • scipy.opt could be used for the (local) optimization starting from a user-specified starting point. This is a classic problem for the slsqp algorithm but the trust-constr is also appropriate. Which algorithm could be a user option. Or just choose one; this is intended as a useful utility and should not be confused with a cutting-edge treatment for this problem.
  • The default starting point could be constructed as (1) take a random orthogonal matrix; (2) square all the elements).
  • as a user option, the function could return the permutation matrix that is closest to the doubly-stochastic matrix that is found.

This sort of problem showed up in @wilhadams work. For an objective function of the form in one-sided permutation Procrustes, it amounts to a (slow, iterative) alternative to the Hungarian algorithm for the assignment problem.

Note that in Procrustes problems of a quite general (tensor-ish) sense, it is usually important to maximize (or minimize the negative of) the cosine/overlap between the optimizee and the target, as direct minimization of the error doubles the degree of the optimization.

@FarnazH FarnazH added the enhancement New feature or request label Mar 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants