.. blogpost::
:title: Optimisation avec contraintes, cvxopt, pulp, NLopt, ...
:keywords: optimisation, contrainte, cvxopt, pulp, NLopt, picos
:date: 2015-07-17
:categories: optimisation, machine learning
:lid: blog-optimisation-contrainte
Mon premier réflexe pour faire de l'optimisation avec contrainte était
de me tourner vers
`cvxopt `_, de trouver la fonction
qui correspondait à mon problème puis à renseigner
construire les différentes matrices.
Le module
`pulp `_ est plus intuitif
dans la manière de définir le problème. On a quasiment
plus besoin de lire la documentation mais pour une utilisation
occasionnelle. Je suggère la lecture de
ces deux articles :
* `Decision Making Under Uncertainty: An Introduction to Robust Optimization (Part 1) `_
* `Decision Making Under Uncertainty: An Introduction to Robust Optimization (Part 2) `_
Cette approche est très proche de celle proposée par
`cvxpy `_. La logique est la même, la syntaxe de *cvxpy*
utilise des méthodes, celle de *pulp* des opérateurs.
Il exite d'autres options comme `picos `_
et encore d'autres proposées à
`Python optimization frameworks `_.
Pour le non linéaire, il faut voir avec `nlopt `_.