Optimisation sous contrainte

Bonjour,

J'ai le problème suivant, (je précise avant tout que rien n'est convex, que tout est non linéaire et que $100>n>50$):

Je cherche a minimiser une fonction $f(X)$ avec $X \in \mathbb{R}^n_+$ sous la contrainte $h(X)\leq 1$.

$h$ est une fonction qui associe au vecteur $X$ le rayon spectral d'une matrice construite à partir des éléments de $X$.

Quelle méthode d'optimisation dois je utiliser à votre avis?

J'ai deux pistes:

1- Lancer des méthodes d'optimisation convexe à partir de différents points initiaux aléatoires. Le problème qui se pose ici c'est que je ne dispose pas du gradient de $h$ en plus du fait que je ne sais pas faire la projection sur l'espace des matrices à rayon spectral inférieur à $1$. J'ai l'impression que SQP n'est pas utilisable ici.

2- Algorithmes évolutionnaires: Algo génétique,Recuit simulé,.... Le problème est le même, comment faire pour imposer la contrainte autrement que de le faire à la main à chaque itération de l'algo?

Je précise enfin que je cherche une solution générale pour plusieurs $f$.

Merci d'avance pour votre aide.

Réponses

  • Bonjour,

    Une idée pour éviter d'avoir à projetter sur l'espace des contraintes à chaque étape serait de pénaliser la contrainte dans la fonctionnelle.
  • Bonjour,

    Une méthode SQP fonctionnera sans souci, dans le cas où le gradient n'est pas disponible il est en général estimé par différences finies. Des algos SQP sont disponibles à la pelle sur le net. Le seul souci, c'est que celà ne fournit qu'un minimum local. Lancer plusieurs minimisations locales à partir de points initiaux différents permet de limiter (et non de supprimer) cet effet.

    Amicalement,
Connectez-vous ou Inscrivez-vous pour répondre.