Bonjour,
Je dispose d'un ensemble de contraintes pour fmincon (A, Aeq, lb,ub, ...), y compris des contraintes non linéaires d'égalité et d'inégalité. Afin de trouver le min global, je génère plusieurs points initiaux puis appel fmincon.
Mon problème est: comment générer des points satisfaisant les contraintes. J'imagine qu'on a des méthodes efficaces pour A et Aeq, via des méthodes de projection conjuguées ou autres, mais c'est la partie non linéaires qui m'intéresse surtout.
Pour l'instant, j’agrège les contraintes linéaires et non linéaire dans une unique fonction [ce,ci]= nonlcon(), puis je cherche à minimiser phi= sum(ce.^2) + sum(ci). En général, ça marche (ie ca me trouve un point admissible), mais ça va souvent trouver le même point (car je minimise au lieu de m’arrêter des que la fonction phi est négative), alors que j'ai besoin de points les plus différents possible pour échapper aux extremums locaux du problème initial.
Puis-je dire à fminunc de s’arrêter des que l'objectif est négatif ? Voyez vous d'autres approches ? Pourquoi n'est-ce pas prévu par défaut dans le framework d'optimisation matlab ?
Merci d'avance
Partager