Thèse soutenue

Programmation mathématique non convexe non linéaire en variables entières : un exemple d'application au problème de l'écoulement de larges blocs d'actifs

FR  |  
EN
Auteur / Autrice : David Nizard
Direction : Dominique Quadri
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 12/04/2023
Etablissement(s) : université Paris-Saclay
Ecole(s) doctorale(s) : École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire interdisciplinaire des sciences du numérique (Orsay, Essonne ; 2021-....)
référent : Faculté des sciences d'Orsay
graduate school : Université Paris-Saclay. Graduate School Informatique et sciences du numérique (2020-....)
Jury : Président / Présidente : Sylvain Conchon
Examinateurs / Examinatrices : Sonia Cafieri, Slim Hammadi, Houda Labiod, Agnès Plateau
Rapporteurs / Rapporteuses : Sonia Cafieri, Slim Hammadi

Résumé

FR  |  
EN

La programmation mathématique fournit un cadre pour l'étude et la résolution des problèmes d'optimisation contraints ou non. Elle constitue une branche active des mathématiques appliquées, depuis la deuxième moitié du XXème siècle.L'objet de cette thèse est la résolution d'un programme mathématique non convexe non linéaire en variables entières, sous contrainte linéaire d'égalité. Le problème proposé, bien qu'abordé dans cette étude uniquement pour le cas déterministe, trouve son origine en finance, sous le nom d'écoulement de larges blocs d'actifs, ou de liquidation optimale de portefeuille. Il consiste à vendre une (très large) quantité M donnée d'un actif financier en temps fini (discrétisé en N instants) en maximisant le produit de cette vente. A chaque instant, le prix de vente est modélisé par une fonction de pénalité qui reflète le comportement antagoniste du marché face à l'écoulement progressif.Du point de vue, de la programmation mathématique, cette classe de problème est NP-difficile résoudre d'après Garey et Johson, car la non-convexité de la fonction objectif impose d'adapter les méthodes classiques de résolutions (Branch and Bound , coupes) en variables entières. De plus, comme on ne connait pas de méthode de résolution générale pour cette classe de problèmes, les méthodes utilisées doivent être adaptées aux spécificités du problème.La première partie de cette thèse est consacrée à la résolution exacte ou approchée utilisant la programmation dynamique. Nous montrons en effet, que l'équation de Bellman s'applique au problème proposé et permet ainsi de résoudre exactement et rapidement les petites instances. Pour les moyennes et grandes instances, où la programmation dynamique n'est plus disponible et/ou performante, nous proposons des bornes inférieures via différentes heuristiques utilisant la programmation dynamique ainsi que des méthodes de recherche locale, dont nous étudions la qualité (optimalité, temps CPU) et la complexité.La seconde partie de la thèse s'intéresse à la reformulation équivalente du problème de thèse sous forme factorisée et à sa relaxation convexe via les inégalités de McCormick. Nous proposons alors deux algorithmes de résolution exacte du type Branch and Bound, qui fournissent l'optimum global ou un encadrement en temps limité.Dans une troisième partie, dédiée aux expérimentations numériques, nous comparons les méthodes de résolutions proposées entre elles et aux solvers de l'état de l'art. Nous observons notamment que les bornes obtenues sont souvent proches et mêmes parfois meilleures que celles des solvers libres ou commerciaux auxquels nous nous comparons (ex : LocalSolver, Scip, Baron, Couenne et Bonmin).De plus, nous montrons que nos méthodes de résolutions peuvent s'appliquer à toute fonction de pénalité suffisamment régulière et croissante, ce qui comprend notamment des fonctions qui ne sont pas actuellement pas prises en charge par certains solvers, bien qu'elles aient un sens économique pour le problème, comme par exemple les fonctions trigonométriques ou la fonction arctangente.Numériquement, la programmation dynamique permet de résoudre à l'optimum, sous la minute, des instances de taille N<100 et M<10 000. Les heuristiques proposées fournissent de très bonnes bornes inférieures, qui atteignent très souvent l'optimum, pour N<1 000 et M<100 000. Par contraste, la résolution du problème factorisé n'est efficace que pour N< 10, M<1 000, mais nous obtenons des bornes supérieures relativement bonnes. Enfin, pour les grandes instances (M>1 000 000), nos heuristiques à base de programmation dynamique, lorsqu'elles sont disponibles, fournissent les meilleures bornes inférieures, mais nous n'avons pas d'encadrement précis de l'optimum car nos bornes supérieures ne sont pas fines.