Optimisation de Boîtes Noires

Depuis 2011 Grâce au Post-Doc que j'ai effectué à l'Institut de Mathématiques de Toulouse et au GERAD à Montréal, j'ai pu élargir mon domaine de compétence en considérant des problèmes toujours plus généraux. En effet, de nos jours, de plus en plus de codes numériques de simulations et de modélisations sont utilisés par les chercheurs, mais également par les industriels. Or, après la modélisation et la simulation du problème, se greffe de plus en plus une étape d'optimisation, c'est-à-dire que l'on souhaite optimiser la fonction issue d'un calcul numérique qui peut prendre un certain temps et dans lequel on ne peut pas intervenir. Ce type de fonction est appelé boîte noire.

Ce domaine d'étude est actuellement en pleine expansion, nourri par les intérêts grandissants des entreprises.

Pour résoudre ce type de problème, des algorithmes génétiques sont souvent utilisés, car ils sont simples à implémenter et ne nécessitent pas de connaissances poussées en optimisation. Malheureusement, ce type d'approche n'apporte aucune garantie sur les résultats obtenus. D'autres approches peuvent donc être envisagée.

  • Un premier travail consiste à rendre plus abordables ces approches. Par exemple, les méthodes Derivative-Free Optimization (DFO) et Direct Search (MADS) sont des techniques qui ont prouvé leur efficacité et qui ont fait énormément de progrès ces dernières années. De plus, elles peuvent prouver l'optimalité locale des solutions trouvées et certaines versions peuvent minimiser le nombre d'appels à la fonction boîte noire. J'ai notamment travaillé sur un algorithme combinant les deux approches (MADS-DFO), en intégrant des approximations par modèles quadratiques dans un algorithme de Patern Search (NOMAD).

  • D'un autre côté, pour pallier cette difficulté de nombreux modèles analytiques ont été développés pour s'abstenir complètement ou partiellement des simulations numériques ou résolutions d'EDP. Un nouveau type d'algorithme peut être envisagé, combinant un algorithme MADS-DFO pour résoudre la partie boîte noire du problème et un algorithme d'optimisation globale pour résoudre la partie explicite.