Le principe du maximum de Pontryagin (PMP) est l’opposant direct du principe d’optimalité de Bellman et de l’équation HJB.
Principes
Dans l’approche de Lev Pontryagin, on reste sur un système non linéaire dont la représentation est :
et on cherche à maximiser (ou minimiser) le critère :
Où :
- L(…) est le coût instantané : c’est le coût courant qui mesure la consommation d’énergie ou l’écart par rapport à une consigne.
- Φ(…) est le coût final / de bord : C’est la pénalité infligée si l’état final est trop éloigné de la cible.
Ceci dit, chercher une loi de commande u(t) qui respecte maximise (ou minimise) ce critère, c’est une H O R R E U R E. En effet, on cherche une fonction entière u(t) dans un espace de recherche qui est infini ! Alors, pour rendre le problème résolvable, Pontryagin introduit une sorte de super Lagrangien dopé : le Hamiltonien.
Hamiltonien
Pontryagin formule le Hamiltonien (pas exactement comme ça, mais… voilà quoi) :
Cette formulation est utilisée lorsque l’on veut maximiser le critère. Lorsque l’on veut le minimiser (cas d’un LQR classique par exemple), la formule s’inverse un peu :
Ça vient du fait que maximiser un critère revient finalement à minimiser sa négative :
Concrétement, le hamiltonien, c’est la somme de deux choses : ce que je paie tout de suite (L(x, u)) ; et ce que ce mouvement va me faire payer plus tard. Donc minimiser H par rapport à u, c’est trouver un juste milieu entre préférer réduire l’effort immédiat ou minimiser les conséquences futures de ce choix.
Nous n’avons donc plus à chercher u(t) en entière, mais à regarder à chaque instant quel u minimise H. Pontryagin a transformé un problème infini, en une suite de petites optimisations à une seule variable.
Vecteur adjoint
Dans la formule du Hamiltonien, il n’aura échappé à personne qu’un vecteur λ est présent. Il est appelé vecteur adjoint (ou co-état). Son utilité est, à dire vrai, assez difficile à caractériser.
Sens et utilité
Passez cette partie et allez directement aux formules, parce qu’elle est tarabiscotée.
Si x(t) se déplace dans le temps normal, du passé vers le présent, il en est un tout autre cas pour λ(t) : il se déplace du futur vers le présent. Il est le futur qui contraint le présent !
En fait, on peut voir λ comme une forme de téléoplexie au sens de Nick Land. Si vous avez déjà lu Meltdown1 de l’auteur , vous comprendrez ce que je veux dire. En économie, λ est souvent interprété comme un prix fictif, et, à dire vrai, ils ne s’y sont pas trompé. λ caractérise le fait de manquer la cible. Il est le futur qui plie les degrés de libertés du présent pour se rendre réel. Prions λ(t)…
Formules
Il représente la sensibilité de la fonction valeur le long de la trajectoire optimale.
il est défini par l’équation :
Ou posé d’une manière un peu moins ignoble :
Condition d’optimalité
Si (x*, u*) est une trajectoire optimale, alors il existe une fonction continue par morceau λ telle que :
- L’évolution de l’état est définie par :
- L’évolution du co-état est définie par :
La commande optimale u*(t) est donnée par :
Si la commande n’est pas bornée, ce qui veut dire que l’espace U des commandes u(t) admissibles est ouvert (= non borné)
Prise de tête
La principale difficulté de l’application du PMP est que l’obtention des paramètres est circulaire. Pour trouver λ(t), on a besoin du x à l’état final, pour trouver x à l’état final, on a besoin de connaître x en intégrant la dynamique en fonction de u*(t), qui nous est donné par λ(t).
Critère augmenté
Pour définir le hamiltonien …
Condition de transversalité terminale
La condition de transversalité terminale est importante dans 2 cas :
- La commande n’est pas exécuté sur un temps supposé infini (ex : asservir un segway), mais pour l’atteinte d’une cible finale imposée
- On veut optimiser le temps d’exécution
Commande pour l’atteinte d’une cible imposée
Ici, la contrainte est sur la variation de l’état à l’instant final δx(tf). Il faut que :
…
Application - Cas idéal : le LQR
Pour le cas de la commande à critère quadratique pour un système linéaire (LQR), la résolution est idéale et il n’y a pas de prise de tête.
En premier lieu, on définit notre Hamiltonien pour ce problème :
Notre commande n’est pas bornée dans le temps, nous n’avons donc pas de terme final et pas de condition de transversalité treminale. Puisqu’on minimise :
On connait R, on connait B, il ne reste qu’à déterminer λ(t). On suit l’hypothèse de Riccati telle que le co-état est proportionnel à l’état :
où P(t) est une matrice carré symétrique de la taille de A. On trouve alors facilement la dynamique du co-état :
On se rappelle que :
Donc :
On réinjecte notre hypothèse :
On retombe donc sur l’équation différentielle de Riccati (DRE), qui, quand on la traite sur un horizon infini, nous donne :
Pour plus de détails sur l’implémentation d’une telle commande, référez vous a cette fiche.
- Meltdown est traduit en français par RAGE dans le recueil Techno-Réalisme.