CVXOPT ne résout que les problèmes convexes (lisses et non lisses), donnant accès à plusieurs solveurs convexes tiers avec une complexité garantie dans le pire des cas. Vous pouvez poser des contraintes linéaires, quadratiques convexes, semi-définies linéaires et de nombreux autres types de contraintes convexes.
OpenOpt résout les programmes non linéaires généraux (lisses et non lisses), y compris les problèmes de contraintes entières. Contrairement à CVXOPT, il n'a pas de logiciel pour résoudre des programmes semi-définis. Les solveurs ont tous été écrits par Dmitrey Kroshko lui-même et n'ont pas une longue histoire, donc les tests étaient probablement limités. OpenOpt lui-même n'interface pas avec les solveurs tiers généraux.
Cependant, il existe le '' OpenOpt Framework '' (http://openopt.org/OOFramework) qui s'interface avec IPOPT (mentionné dans un autre commentaire; il ne peut pas résoudre les problèmes non lisses), CVXOPT et quelques autres solveurs disponibles en Python.
En dehors de cette interface, il n'y a aucune relation entre ces packages. Les méthodes sont complètement différentes; les seules choses courantes peuvent bien être le langage Python et l'accès à LAPACK.
Pour les problèmes convexes, je voudrais également recommander
CVX: Matlab Software for Disciplined Convex Programming
http://cvxr.com/cvx ,
pour lequel les auteurs ont obtenu le très prestigieux prix Beale-Hays-Orchard pour l'excellence en programmation mathématique computationnelle de cette année. . Il est cependant écrit en Matlab.
Ils ont également une `` version '' Python appelée CVXPY
http://www.stanford.edu/~ttinoco/cvxpy/ , mais CVXPY n'est en fait qu'une interface `` disciplinée '' très agréable et utile à CVXOPT, dans laquelle l'un peut s'assurer que lorsqu'un programme est syntaxiquement correct, il s'agit d'un problème d'optimisation convexe.
Arnold Neumaier
la source