Dear Experts, I need to solve some quadratic programs (and potentially other nonlinear programs). While scipy.optimize.fmin_cobyla seems like it can do this, it seems orders of magnitude slower than cvxopt. Are there plans to merge/include cvxopt in scipy or otherwise improve scipy's quadratic/nonlinear constrained optimization routines? I saw an old response to this question but the response pointed to a non-existent URL. Thanks, -Emin
Emin.shopper Martinian.shopper wrote:
Dear Experts,
I need to solve some quadratic programs (and potentially other nonlinear programs). While scipy.optimize.fmin_cobyla seems like it can do this, it seems orders of magnitude slower than cvxopt. Are there plans to merge/include cvxopt in scipy or otherwise improve scipy's quadratic/nonlinear constrained optimization routines?
Yes, eventually. I have talked to the author of CVXOPT at NIPS 2006. The plan is to move NumPy's matrix object into C and move CVXOPTs implementation over to use it, possibly integrating the cvxopt algorithms into at least a scikits library (of GPL code). But, I won't have time for that until April or May. -Travis
On 2/28/07, Travis Oliphant <oliphant@ee.byu.edu> wrote:
Emin.shopper Martinian.shopper wrote:
Dear Experts,
I need to solve some quadratic programs (and potentially other nonlinear programs). While scipy.optimize.fmin_cobyla seems like it can do this, it seems orders of magnitude slower than cvxopt. Are there plans to merge/include cvxopt in scipy or otherwise improve scipy's quadratic/nonlinear constrained optimization routines?
Yes, eventually. I have talked to the author of CVXOPT at NIPS 2006. The plan is to move NumPy's matrix object into C and move CVXOPTs implementation over to use it, possibly integrating the cvxopt algorithms into at least a scikits library (of GPL code).
That would be great! We're considering different a license also. Porting CVXOPT to Numpy/Scipy would require sparse matrices also - preferably implemented so that there's not much difference between dense and sparse matrices from the user's perspective. The sparse matrix class in SciPy looks nice, but it appears to "behave" different from a dense matrix wrt. to indexing, assignments, creation etc; although it's not essential, it would make a CVXOPT port easier if some of the differences between dense and sparse matrices were also ironed out when Travis revamps the Numpy matrix object. Please let me know if there's anything I can do to help in process. Joachim But, I won't have time for that until April or May.
-Travis
_______________________________________________ SciPy-user mailing list SciPy-user@scipy.org http://projects.scipy.org/mailman/listinfo/scipy-user
Joachim Dahl wrote:
On 2/28/07, *Travis Oliphant* <oliphant@ee.byu.edu <mailto:oliphant@ee.byu.edu>> wrote:
Emin.shopper Martinian.shopper wrote:
> Dear Experts, > > I need to solve some quadratic programs (and potentially other > nonlinear programs). While scipy.optimize.fmin_cobyla seems like it > can do this, it seems orders of magnitude slower than cvxopt. Are > there plans to merge/include cvxopt in scipy or otherwise improve > scipy's quadratic/nonlinear constrained optimization routines?
Yes, eventually. I have talked to the author of CVXOPT at NIPS 2006. The plan is to move NumPy's matrix object into C and move CVXOPTs implementation over to use it, possibly integrating the cvxopt algorithms into at least a scikits library (of GPL code).
That would be great! We're considering different a license also.
Porting CVXOPT to Numpy/Scipy would require sparse matrices also - preferably implemented so that there's not much difference between dense and sparse matrices from the user's perspective. The sparse matrix class in SciPy looks nice, but it appears to "behave" different from a dense matrix wrt. to indexing, assignments, creation etc; although it's not essential, it would make a CVXOPT port easier if some of the differences between dense and sparse matrices were also ironed out when Travis revamps the Numpy matrix object.
I'd like to move a the Sparse matrix representation into NumPy as well at that time. We will need some discussion on what exactly to move over and how that is to be done. There are some differences in indexing that CVXOPT uses for its matrix classes that we will need to discuss how to handle. For example, we could construct a separate matrix subclass with the CVXOPT-style indexing. I think it would be easier to just have one style of indexing, though and just make sure that sparse matrices also handle that style. The most important thing to me, though, is to expose more users to the great work that CVXOPT has done and integrate that work into the larger NumPy/SciPy world. -Travis
I'd like to move a the Sparse matrix representation into NumPy as well at that time. We will need some discussion on what exactly to move over and how that is to be done. There are some differences in indexing that CVXOPT uses for its matrix classes that we will need to discuss how to handle. For example, we could construct a separate matrix subclass with the CVXOPT-style indexing. I think it would be easier to just have one style of indexing, though and just make sure that sparse matrices also handle that style.
The most important thing to me, though, is to expose more users to the great work that CVXOPT has done and integrate that work into the larger NumPy/SciPy world.
that sounds great - I look forward to helping any way I can! - Joachim
participants (3)
-
Emin.shopper Martinian.shopper
-
Joachim Dahl
-
Travis Oliphant