étude de cas · projet phare
Optimisation de fonctions de Lyapunov pour l’analyse de stabilité
Recherche automatique de fonctions de Lyapunov et estimation de régions de stabilité dans des systèmes dynamiques non linéaires.
Le problème
Prenons un système qui évolue au cours du temps : un actionneur aéronautique, un robot, un réseau électrique ou encore une boucle de commande. Une faible perturbation l’éloigne de son point d’équilibre. Le système y revient-il ou commence-t-il à dériver, à osciller et, à terme, à provoquer une défaillance ?
Pour les systèmes linéaires, des outils généraux puissants permettent d’apporter des réponses relativement directes. La situation est beaucoup plus complexe pour les systèmes non linéaires. En pratique, la simulation est indispensable, mais elle n’évalue que les scénarios effectivement exécutés. L’analyse de stabilité pose une autre question : peut-on établir une propriété sur toute une région de l’espace d’état ?
Il existe une réponse plus forte, formulée il y a plus d’un siècle. Si l’on parvient à construire une fonction scalaire de l’état qui se comporte comme une énergie, strictement positive en dehors de l’équilibre et toujours décroissante le long des trajectoires du système, alors il est possible de démontrer la convergence du système. Cette fonction est appelée fonction de Lyapunov : il s’agit d’un certificat mathématique permettant d’établir la stabilité sur une région, sans avoir à simuler exhaustivement toutes les trajectoires possibles.
x' = f(x), f(0) = 0
# recherche de V : R^n -> R sur une région D contenant l’origine
V(0) = 0
V(x) > 0 pour tout x dans D, x != 0
dV/dt = grad V(x) . f(x) < 0 pour tout x dans D, x != 0
# version à temps discret
x[k+1] = f(x[k])
V(f(x)) - V(x) < 0 pour tout x dans D, x != 0
# sous les hypothèses de Lyapunov, un ensemble de sous-niveau adapté
# fournit une estimation intérieure de la région d’attraction
Toute la difficulté tient dans le mot construire. La théorie de Lyapunov décrit les propriétés que doit vérifier un certificat valide, mais elle n’indique pas comment l’obtenir. Dès que l’on dépasse les petits systèmes académiques, trouver une fonction V devient un exercice complexe, généralement réalisé manuellement par des spécialistes.
Pourquoi ce problème est difficile
- L’espace de recherche ne possède pas de structure facilement exploitable
- La recherche porte sur des fonctions, et non sur de simples points. Si la famille de fonctions considérée est trop restrictive, elle peut ne contenir aucun certificat valide. Si elle est trop expressive, le problème devient non convexe, de grande dimension et rempli de régions plates dans lesquelles le gradient n’apporte aucune information utile.
- Les contraintes doivent être satisfaites sur toute une région
- Les conditions doivent être vérifiées en chaque point d’une région, et non uniquement sur le nombre fini d’échantillons qu’il est possible d’évaluer. Un candidat peut satisfaire toutes les conditions sur une grille et néanmoins les violer entre deux points de cette grille.
- Le conservatisme peut limiter l’intérêt pratique
- Un certificat qui établit uniquement la stabilité dans un voisinage minuscule de l’équilibre peut présenter un intérêt pratique limité. L’enjeu n’est donc pas seulement de trouver un candidat valide, mais également d’identifier une région pertinente aussi étendue que possible.
L’approche proposée
La recherche d’un certificat est formulée comme un problème d’optimisation globale. Il s’agit de choisir une famille de fonctions candidates paramétrables, de définir une fonction de coût mesurant les violations des conditions de Lyapunov sur une région, puis de laisser un optimiseur global explorer l’espace des paramètres.
familles de candidats
Quelles formes la fonction V peut-elle prendre ?
- Formes quadratiques : V(x) = xTPx, avec P définie positive. Elles comportent peu de paramètres, sont rapides à évaluer et restent interprétables. Elles constituent également une référence naturelle : lorsqu’un candidat quadratique suffit, il est important de pouvoir l’identifier.
- Fonctions de Lyapunov neuronales : un petit réseau de neurones utilisant des activations tanh fournit une famille de candidats plus expressive. La paramétrisation impose les conditions d’équilibre V(0) = 0 et ∇V(0) = 0, tandis que la positivité et la décroissance sont vérifiées numériquement pendant la recherche et la validation.
recherche
Comment déterminer les paramètres ?
- Algorithmes génétiques : méthodes sans dérivées fondées sur une population, capables de tolérer les pénalités discontinues introduites par les violations de contraintes.
- Optimisation par essaim particulaire : autre méthode de recherche sans dérivées fondée sur une population, utilisée ici pour l’expérience neuronale de référence en temps discret.
- Validation du maillage grossier au maillage fin : les candidats sont optimisés sur une grille de 21 × 21 points, puis vérifiés sur des grilles de plus en plus fines de 101 × 101 et 201 × 201 points. Un audit indépendant à paramètres figés évalue ensuite 100 000 points générés de manière reproductible et échantillonne densément la frontière de la boîte de recherche.
Les dynamiques à temps continu et à temps discret sont traitées au sein d’un même cadre. Seule la condition de décroissance change : elle repose sur une dérivée dans le premier cas et sur une différence à un pas dans le second. Les mêmes familles de candidats et les mêmes optimiseurs peuvent donc être employés pour les deux types de systèmes.
Périmètre des expériences
Trois expériences de référence sont maintenues dans le dépôt. Chacune fait l’objet de dix exécutions suivant le même protocole de validation.
- Candidat neuronal en temps continu
- benchmark non linéaire à temps continu · fonction de Lyapunov neuronale candidate · algorithme génétique · Méthode 2 · 10 exécutions de référence
- Candidat neuronal en temps discret
- benchmark non linéaire à temps discret · fonction de Lyapunov neuronale candidate · optimisation par essaim particulaire · Méthode 2 · 10 exécutions de référence
- Méthode 1 contre Méthode 2
- benchmark non linéaire difficile à temps continu · fonctions de Lyapunov quadratiques candidates · algorithme génétique · protocole de référence identique sur 10 exécutions · comparaison de la région échantillonnée rapportée
La Méthode 1 évalue les candidats point par point, tandis que la Méthode 2 optimise directement l’ensemble de sous-niveau échantillonné. Les deux méthodes sont comparées sur le même benchmark, avec la même famille de candidats, le même budget de recherche, la même boîte de recherche et le même protocole de validation.
Résultats
L’ensemble des figures et des valeurs présentées ci-dessous provient directement du dépôt. La région rapportée correspond à la composante 4-connexe de l’ensemble de sous-niveau échantillonné contenant l’équilibre, mesurée sur la grille finale de 201 × 201 points. Aucune conclusion n’est formulée en dehors de cette région et son complément n’est jamais qualifié d’instable. L’audit à paramètres figés est volontairement plus strict : il évalue l’intégralité de l’ensemble de sous-niveau échantillonné, y compris ses éventuelles composantes déconnectées, et non uniquement la composante connexe rapportée sur la grille.
- Méthode 1 : objectif point par point
- fraction moyenne de la grille couverte par la région rapportée : 24,73 % · écart-type de population : 0,36 point de pourcentage · intervalle : 24,05–25,09 % · audit à paramètres figés : 10/10 · sampled-enclosed
- Méthode 2 : objectif direct sur l’ensemble de sous-niveau
- fraction moyenne de la grille couverte par la région rapportée : 47,19 % · écart-type de population : 0,74 point de pourcentage · intervalle : 45,19–47,79 % · audit à paramètres figés : 10/10 · sampled-enclosed
- Rapport entre les deux régions
- Dans le cadre exact de ce protocole Python, la Méthode 2 produit en moyenne une région rapportée sur la grille environ 1,91 fois plus grande que celle obtenue avec la Méthode 1. Ce résultat vaut uniquement pour ce benchmark et ce protocole ; il ne constitue pas une conclusion générale sur les deux objectifs.
Pour chacune des dix exécutions des expériences neuronales de référence en temps continu et en temps discret, les conditions testées sont satisfaites sur l’intégralité de la boîte de recherche échantillonnée. L’audit à paramètres figés est également réussi dans les dix cas. Ces exécutions sont donc qualifiées de limitées par la boîte de recherche (search-box limited) : l’expérience n’identifie aucune frontière à l’intérieur de la boîte testée et ne formule aucune conclusion en dehors de celle-ci.
Il s’agit d’une validation numérique fondée sur un échantillonnage fini, et non d’un certificat formel sur un domaine continu. La marge de 2 % appliquée au seuil affiné constitue une précaution numérique explicite, mais pas une borne sur l’erreur de discrétisation.
Reproductibilité
Un résultat impossible à reproduire n’est qu’une anecdote. Le dépôt est organisé de manière à permettre à toute personne qui l’évalue de passer d’un clone vierge aux figures présentées, sans avoir à me demander d’informations supplémentaires.
- Une interface en ligne de commande et des scripts de référence permettant de reproduire chaque expérience maintenue.
- Des tests unitaires couvrant les dynamiques, les conditions de Lyapunov, les optimiseurs, la différentiation automatique et la validation.
- Une intégration continue couvrant Python 3.10 à 3.13.
- Des exécutions de référence reproductibles et des sorties numériques versionnées.
- Des figures générées reliées à leurs fichiers JSON sources et aux paramètres des candidats par des empreintes SHA-256.
Ce que démontre ce projet
Ce projet se situe volontairement à l’intersection des domaines dans lesquels je travaille. Il relève des mathématiques : les conditions sous-jacentes sont précises et réfutables. Il relève du machine learning : un réseau de neurones paramètre l’objet recherché. Il relève de l’optimisation : la recherche est globale, non convexe et sans dérivées. Enfin, il relève de l’ingénierie : le projet est testé, reproductible et compréhensible par une personne qui ne m’a jamais rencontré.
Cette même logique se retrouve dans mes travaux appliqués : comprendre suffisamment le système pour définir ce que signifie un résultat « correct », rechercher la solution avec les méthodes réellement adaptées au problème, puis en faire un outil sur lequel d’autres personnes peuvent s’appuyer.
Limites et prochaines étapes
- L’échantillonnage n’est pas une vérification formelle
- Les conditions sont évaluées sur un ensemble fini de points. L’ajout d’une couche de vérification formelle sur un domaine continu, par exemple à l’aide de méthodes par intervalles ou de solveurs formels adaptés, permettrait d’aller au-delà du protocole actuel fondé sur l’échantillonnage. Il s’agit de la suite naturelle de ce travail.
- Passage à une dimension supérieure
- Les méthodes de recherche fondées sur des populations passent difficilement à l’échelle lorsque le nombre de paramètres augmente. Des systèmes plus grands nécessiteraient des familles de candidats mieux structurées ou une approche hybride intégrant une phase de raffinement fondée sur le gradient.
- Dynamiques connues
- La méthode suppose que le modèle de f est connu. Son extension à des dynamiques apprises ou partiellement connues rejoint les recherches actuelles sur la commande fondée sur l’apprentissage avec garanties de stabilité.
Pour aller plus loin
La méthodologie, les scripts de référence et les résultats sont disponibles dans le dépôt. Celui-ci est publié afin de pouvoir être lu et évalué, mais n’est pas proposé sous une licence autorisant sa réutilisation.