Stage : Détection et résolution de conflits de contraintes linéaires

L’équipe STEEP a développé un logiciel d’Analyse de Flux de Matières (AFM) de Filières qui permet de quantifier le bilan matière d’une filière donnée (production de matières premières, transformation, consommation, transport…) à partir des sources de données existantes par nature lacunaires et incohérentes entre elles. Le processus permettant de passer de ces données d’entrées à un bilan matière cohérent consiste en de l’optimisation sous contraintes : l’écart entre données d’entrées et de sortie est minimisé tout en assurant le respect de certains contraintes linéaires (conservation de la masse, rendement de transformation…). Lorsque les modèles de filières deviennent grands (une centaine de produits et de secteurs), il est très fréquent que le problème d’optimisation soit insoluble du fait de conflits entre plusieurs contraintes. Dans ce cas, il est difficile voire impossible de repérer ces conflits manuellement. Un premier algorithme de détection de conflits a été implémenté, qui retourne des sous-ensembles de contraintes incompatibles. Sur la base d’une revue de littérature plus poussée, il s’agira de proposer d’une part un algorithme plus performant, éventuellement de l’implémenter en C++, puis une méthode permettant de suggérer à l’utilisateur une solution pour rendre le problème soluble (quelle(s) contrainte(s) lever ou assouplir).

Compétences requises : Connaissances en optimisation sous contraintes, algèbre linéaire, algorithmique, Développement (python, C++ est un plus).

Pour comprendre les tenants et aboutissants des analyses de flux de matière que nous développons dans l’équipe STEEP, vous pouvez regarder les vidéos suivantes :
https://www.youtube.com/watch?v=Ssl7lP26IX0
https://www.youtube.com/watch?v=zHJ3NI2ilMY