J'essaie de comprendre comment fonctionne la méthode d'optimisation basée sur l'adjoint pour une optimisation contrainte PDE. En particulier, j'essaie de comprendre pourquoi la méthode adjointe est plus efficace pour les problèmes où le nombre de variables de conception est grand, mais le "nombre d'équations est petit".
Ce que je comprends:
Considérez le problème d'optimisation contraint PDE suivant:
où est une fonction objective (suffisamment continue) d'un vecteur de variables de conception et d'un vecteur de variables de champ inconnues qui dépendent des variables de conception, et est la forme résiduelle de l'EDP.
De toute évidence, nous pouvons les premières variations de I et R comme
En introduisant un vecteur de multiplicateurs de lagrange , la variation de la fonction objectif peut s'écrire
En réarrangeant les termes, nous pouvons écrire:
Ainsi, si nous pouvons résoudre pour telle sorte que∂ I
Ensuite, le gradient est évalué uniquement en termes de variables de conception .β
Ainsi, un algorithme d'optimisation basé sur l'adjoint bouclerait sur les étapes suivantes:
- Compte tenu des variables de conception actuelles
- Résoudre pour les variables de champ (à partir de la PDE)
- Résoudre pour les multiplicateurs de lagrange (à partir de l'équation adjointe)
- Calculer les gradients
- Mettre à jour les variables de conception
Ma question
Comment cette «astuce» adjointe améliore-t-elle le coût de l'optimisation par itération dans le cas où le nombre de variables de conception est important? J'ai entendu dire que le coût de l'évaluation du gradient pour la méthode adjointe est «indépendant» du nombre de variables de conception. Mais comment est-ce vrai?
Je suis sûr qu'il y a quelque chose de très évident que j'oublie d'une manière ou d'une autre.