Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

librairie de minimisation : Passage d'une librairie en C++ standard

3 réponses
Avatar
meow
Bonjour,

Pour mes recherches je vais avoir besoin de faire des
minimisations, et comme je suis paresseux je cherche une librairie C++
qui m'=E9vite de recoder tous les algorithmes. J'ai vu GSL qui semble
correcte quoiqu'un brin spartiate, ainsi que Coool, qui pour le coup a
l'air d'etre un joli effort de design objet, doubl=E9 d'un ensemble
assez complet de techniques de minimisations parmi lesquelles faire
son march=E9. Petit soucis cependant, la biblioth=E8que en question a
l'air de ne plus etre maintenu depuis gcc 3.2 ...Du coup, =E0 la
premi=E8re compil, =E7a rue dans les brancars. D'o=F9 mes deux questions :
1. connaissez vous de bonnes biblioth=E8ques, facile d'emploi pour
faire de la minimisation de fonction ?
2. est-il facile et envisageable de rendre une biblioth=E8que (74
fichiers ) plus conforme =E0 la norme (d'apr=E8s la doc elle semblait
encore compiler sous gcc 3.2.7)... J'ai d=E9j=E0 commenc=E9 =E0 qualifier
certains noms =E0 grands coup de "this->", mais clairement il y a des
subtilit=E9s suppl=E9mentaires qui m'chappent.

Cordialement
--Ben

3 réponses

Avatar
Adrien Saladin
Bonjour,


1. connaissez vous de bonnes bibliothèques, facile d'emploi pour
faire de la minimisation de fonction ?


J'avais prévu à terme d'include Opt++ ( http://csmr.ca.sandia.gov/opt++/ )
dans mon programme. Pour l'instant j'utilise un minimiseur en fortran que
j'ai interfacé avec C++. Je t'en parle car il a été porté en C++ également.
http://en.wikipedia.org/wiki/L-BFGS
Ceci dit la version fortran fonctionne très bien.


Adrien

Avatar
meow
Bonjour Adrien, et merci pour ta réponse. Entre temps (et comme évoqué
sur un autre fil peut etre moins adapté en effet), j'ai trouvé (pas
encore testés) :
* Opt++ : C++ , hiérarchie objet, j'ai lu l'article de présentation et
ça a l'air correct et en plus y'a une doc !
* GSL : plutot du C, donc pour l'objet on repassera, mais couteau
suisse de calcul scientifique, avec entre autre de la minimisation.
Sur ce chapitre cependant ça n'a pas l'air très exhaustif, et en
particulier je n'ai pas l'impression que ça gère la minimisation sous
contraintes.
* Coool : plus maintenu, pas de doc, mais pour ce que j'ai testé ça a
l'air correct et facile d'emploi. Pour la petite histoire le
basculement en C++ standard a été rapide : une signature de fonction
(operateur + externe à la classe) à modifier dans les premires lignes
d'un fichier, et une flopée de this-> (on appelle bien ça "qualifier",
non ?) pour préfixer des attributs dans les 3 classes de matrice.
Rapide donc.

Sinon, dans la dernière publi concernant opt++ j'ai relevé un grand
nombre d'autres efforts dans le domaine, mais je n'ai pas été regarder
de plus près. Par soucis d'exhaustivité je liste tout de meme ici :
HCL, RVL, SCL , OOPS, OOQP, MOOCHO, rSQP++, TAO, NOMAD
Avatar
Adrien
meow wrote:


* GSL : plutot du C, donc pour l'objet on repassera, mais couteau
suisse de calcul scientifique, avec entre autre de la minimisation.


Je n'ai pas testé la GSL. A noter tout de même que la GSL étant sous licence
GPL, tu es obligé de distribuer ton code sous GPL aussi, donc avec les
sources. Ca pourrait ne pas te convenir, mais c'est quand même mieux que les
algorithmes de numerical recipes qui t'interdisent de publier ton code
source...

Opt++ est L-GPL, donc tu peux faire ce que tu veux avec ton programme.

Je n'ai pas testé les autres librairies dont tu parles, mais je vais les
noter au cas où.