-
Notifications
You must be signed in to change notification settings - Fork 21
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
More algorithms on PSDP
#194
Comments
For those who are interested, people can work with the following algorithms listed in Gillis, N., & Sharma, P. (2018). A semi-analytical approach for the positive semidefinite procrustes problem. Linear Algebra and its Applications, 540, 112-137.
This paper is mentioned in #98. |
More info about MATLAB implementation of the spectral gradient method is present in #189. |
Since, OptPSDP (from Oviedo's paper) seems to be performing better on average, I guess we will include that to our PSDP module as the third algorithm for now? |
Hi, I am Abhishek Mittal. @banrovegrie introduced me to this repository and I found the work really interesting. I would like to contribute by starting off with this issue. |
@abhishekmittal15 thanks for your help. I'll add you to the organization. |
@banrovegrie it is OK to use the Oviedo algorithm, but the performance does not seem much better than the PARATAN. In any event, I think the algorithm is quite similar to the algorithms from this issue, so there should be a single implementation that has all of these optimization-based strategies I think. I will assign you to this issue also. |
Yep, we are almost done with implementing OptPSDP (so we can benchmark it). I will push the code in a few minutes. I think tests might fail and we can debug them iteratively. |
Welcome on board! @abhishekmittal15 I will be working with both you and @banrovegrie. Feel free to tag me if there is anything you need. Thanks. |
@PaulWAyers @FanwangM What should be the next algorithm for us to plan on implementing? |
I'm not sure what @FanwangM thinks, but I think that if you want to implement more algorithms in Procrustes, I wouldn't focus on PDSP but instead something else. One possibility would be to extend the permutation Procrustes algorithms available: it's becoming clear that that is one of the most useful (and tricky) cases. |
I agree. Let's shift our focus to permutation Procrustes which are more interesting and practically useful. But I don't have any paper or algorithm in mind yet. I have tried to do some literature research on two-sided permutation Procrustes problem last weekend and didn't find any interesting y et. |
I think I have an interesting algorithm. Let me look through my notes. |
@FanwangM when the last pull requests on this issue are merged, please close it. |
Sure. I will do it. |
@abhishekmittal15 is contributing a new implementation for PSDP. Do you think we should shift our focus to permutation-related Procrustes problem? If so, do you have something in your mind? Thanks. @PaulWAyers I will close this issue once #198 is merged. |
I do think we should shift our focus to permutation methods. Let me write some notes. The other main outstanding issue is a bit of a larger refactoring so that we can treat multiple/mixed Procrustes problems more efficiently. But that probably should wait for other key methods to be implemented. The issue here is #76 but I'd do issue #49 (and maybe #32) first though. |
We have merged #198 and we are not adding more |
The original "algorithm 3" has been peer reviewed (I think; it is published in a conference proceedings and that is never a sure thing).
http://www.scielo.org.co/pdf/rcm/v55n1/0034-7426-rcm-55-01-109.pdf
However, I really like Fanwang's suggestion. The Oviedo paper (algorithm 3) performs similarly to what they call
PARATAN
and what the above reference callsPARTAN
. The above reference seems to have good performance, and has four closely related algorithms which could be implemented simulataneously, switching between the algorithms as specified by the user by a keyword. This is explained at the top of Section 5.Specifically, the
This gives a nice alternative to the first two algorithms, which focus on a more analytic approach (more like the other methods we have considered). This is a numerical approach, and perhaps might be faster (hard to know until we test).
Originally posted by @PaulWAyers in #189 (comment)
The text was updated successfully, but these errors were encountered: