Hello
j'ai une question un peu pointue en optimisation
déjà, je place le contexte :
je fais une optimisation du productible annuel d'une centrale Hydro éléctrique
ce que je fais est très inspiré de ca
pour faire bref, une optimisation via quadprog sous MATLAB (il faut que je m'arrange pour que mon problème soit quadratique) pour des raisons de rapidité et de mémoire (fmincon trop gourmand en l’occurrence)
mes inconnues sont le débit turbiné et le débit déchargé sur des pas de 8h sur 1 an
soit près de 2190 variables !
et à peu près autant de paramètres
un des avantages de quadprod c'est que je n'ai pas a écrire ma fonction à optimiser (fonction de 2200 variables et 2200 paramètres ... sic) mais sa matrice hessian H et un vecteur f. la symbolic math toolbox m'y aide bien
et maintenant arrive mon problème
j'utilise de préférence l'algorithme 'interior point convex' qui nécessite que mon problème soit convexe ... ce qui est en général le cas
cependant, parfois mon problème ne l'est pas (quadprog me retourne une erreur) et je passe alors en algo 'active set', qui prend plus de temps, qui me trouve une solution, un minimum local, dont je ne suis pas sur qu'il soit global (puisque mon problème n'est pas convexe). en fait je suis même sur que ce n'est pas un minimum global (de visu la solution ne peut pas être la meilleure)
et je passe d'un problème convexe à un problème non convexe en changeant juste un paramètre simple
ex : prix de l'énergie 50€/MWh -> pb convexe
prix de l'énergie 400€/MWh -> pb non convexe
sic
et voici ma question
comment déterminer que mon pb est convexe ou non (hors retour de quadprog), et comprendre pourquoi afin de mieux gérer mes paramètres de manière à toujours avoir un problème convexe (et donc de toujours trouver un minimum global)
H est toujours composée de réels positifs ou nuls, f de réels négatifs ou nul, à priori c'est pas par là que ça se passe
je re précise que j'ai la symbolic math toolbox. peut être contient elle des outils pouvant m'aider ?
si y a une pointure en optimisation qui passe par là ...
Fabien
Partager