theochem / procrustes

Python library for finding the optimal transformation(s) that makes two matrices as close as possible to each other.
https://procrustes.qcdevs.org/
GNU General Public License v3.0
109 stars 20 forks source link

An alternative way of solving rotational Procrutes problem #143

Open FanwangM opened 2 years ago

FanwangM commented 2 years ago

An interesting paper proposed to solve the rotational Procrustes problem without SVD, J. Geom. Symmetry Phys., 53, 21–53, 2019. We can support this in the next major release.

PaulWAyers commented 2 years ago

@fwmeng88 is this different from: https://github.com/theochem/procrustes/issues/42 and https://github.com/theochem/procrustes/pull/16

It seems to be attempting something similar, but I didn't read the paper in detail.

FanwangM commented 2 years ago

I don't think the method proposed in this paper is related to #42 and #16. They provided an alternative way to solve rotational Procrustes problem 2D and 3D without doing SVD. page 17-28 in https://arxiv.org/pdf/1908.08824.pdf

@PaulWAyers

PaulWAyers commented 2 years ago

Ah, now I understand. The algorithm is interesting, but, as they note at the end, isn't really faster that SVD, so since the solution is the same we shouldn't expect anything different. It would be a sensible alternative algorithm that we could invoke when brute-force SVD is too costly, which would be interesting to have as a fallback in the long run. I think that in favorable cases, it seems, the new algorithm is faster.

FanwangM commented 2 years ago

Thanks for the clarification!