Ce programme met en jeu plusieurs fonctions d'optimisation pour résoudre les problèmes de programmation non linéaire.
Le but est de trouver un minimum local dans la fonction à optimiser.
Différentes fonctions ont été implémentées. Toutes laissent le choix à l'utilisateur du nombre de paramètres à optimiser. Dans notre cas, nous nous situons en dimension 2 pour des problèmes de visualisation. On optimisera alors les coordonnées x et y de différentes fonctions:
Voici la déclaration mathématique de ce problème :
(x_Optimale,y_Optimale) = argmin f(x,y)
Puissance 2 : f(x,y) = x^2+y^2
Puissance 4 : f(x,y) = x^4+y^4
Rosenbrock : f(x,y) = (1-x^2)^2+100(y-x^2)^2
et d'autres fonctions...
Les fonctions d'optimisation utilisées sont les suivantes:
Descente de gradient, linéaire, suivant la méthode de Wolfe, BFGS, Levenberg-Marquadt (LM), Fletcher-Reeves avec relance périodique et Polack-Robiere
Ces fonctions utilisent toutes le gradient de la fonction f(x,y). Une dernière méthode a été implémenté pour la résolution de ce problème sans la connaissance du gradient de f: la méthode du simplexe (Nelder-Mead)
IHM : La navigation sur la carte a été facilité au maximum: (Manière Google Earth)
Click gauche/déplacé permet de se déplacer suivant x et y.
Mollette de la souris permet de zoomer/dé zoomer à l'endroit où se situe la souris.
Click droit, permet d'adapter l'échelle des couleurs à la fenêtre de visualisation.
Click gauche/déplacé sur le point initial permet de le déplacer et de lancer à nouveau la fonction d'optimisation sélectionnée.