<https://github.com/ytheohar/koptim>
# mathematics
b
a
It seems to be dead. By the way, I've started porting my optimization codes to the multiplatform (it includes Commons-maths fitters, a fork of JMinuint package and unique implementation of Fyodor Tkachev's QOW method). I do not think it will be a part of Kmath since it is too complicated and relies on other my libraries. Sadly, I currently do not have time to work on it properly.
👍 2
But in order to make it multiplatform, I will need eigenvalue decomposition...
b
I've heard OpenBLAS is pretty fast/portable, ex. JBlas recently switched to OpenBLAS without much trouble: https://github.com/jblas-project/jblas/blob/main/RELEASE_NOTES
р
I have experience with constrained optimisation working in finance. My outcome is that: if you can afford a commercial licenise you should go for Gurobi. Otherwise, in open source for continuous problems I recommend https://kul-forbes.github.io/scs/, for mixed-integer https://www.scipopt.org/
Regrading BLAS: if on Intel machine you are better of with MKL (than OpenBlas or Atlas), if you have Nividia go for cuBLAS
Regarding power methods and multiplatform implementation: well yeah that would be awesome to see.
b
Yeah, someone else recommended Gurobi and apparently they provide an academic license so that also looks like a good option. Another OSS alternative I looked at is MiniCP www.minicp.org
р
Yes, Gurobi is the best optimiser by a mile for constrained problems, especially for MILP. The academic license should cover most of the functionality for free. Please note as well that, depending on your use case, a powerful optimiser is not always enough. You need also a good pre-solver for the modelling language you use. The best one I believe is AMPL (again from personal experience). However, this is again commercial software (but probably accessible for academics).
I am scared MiniCP wouldn't be able to handle anything beyond toy problems.
b
Re: Semirings, I really like the way they're implemented in Torch-Struct: https://github.com/harvardnlp/pytorch-struct/ https://github.com/harvardnlp/genbmm Implementing an algorithm like Viterbi with semiring algebras might be a good intern project, I know Maria already has some code for this: https://www.mariakhalusova.com/posts/2021-03-08-pos-tagging-with-hmm/
👍 1
р
Looking at genbmm implementation I really find PyTorch to have grown up into an amazing computational platform. The integration with Python, C/C++ & CUDA is as seamless as it gets.
that's exactly what one needs writing numerical code
a
We've just added boolean algebra and I thinkg we can add anything without breaking the compatibility, so PRs are welcome.