Mise à jour de la fonction de valeur en temps continu - HJB

1

Lors de la résolution (numérique, par itération de fonction de valeur), un problème de programmation dynamique en temps discret, tel que

$$ V_1 (a) = \ max_ {c} \ u (c) + \ dfrac {1} {1+ \ rho} V_0 (a ') $$

nous maximisons par rapport à la variable de contrôle et obtenons une condition de premier ordre que nous réintroduisons dans l'équation fonctionnelle présentée ci-dessus. Le résultat de cette étape, $ V (a) _1 $, sera ensuite utilisé sur le RHS d’une seconde itération

$$ V_2 (a) = \ max_ {c} \ u (c) + \ dfrac {1} {1+ \ rho} V_1 (a ') $$

et nous répétons ce processus jusqu’à ce que $ V (a) _n-V (a) _ {n + 1} & lt; \ epsilon $.

Ma question est la suivante: comment la mise à jour de la fonction de valeur fonctionne-t-elle en temps continu? J'ai travaillé sur un papier qui utilise une programmation dynamique en temps continu, donc l'équation de Bellman se présente comme suit

$$ \ rho V_n (a) = \ max_ {c} \ u (c) + \ dfrac {\ partial V_n (a)} {\ partial a} da_t \ quad (*) $$

où l'équation de transition est représentée par $ da_t $. D'après ce que j'ai vu, la mise à jour de la fonction value se fait en calculant $ \ Delta $:

$$ \ Delta = \ u (c (a ^ *)) + \ dfrac {\ partiel V_n (a)} {\ partiel a} da_t (a ^ *) - \ rho V_n (a) $$

où $ u (c (a ^ *)) $ et $ da_t (a ^ *) $ représentent l'équation de contrôle et de transition en tant que fonctions de la politique optimale. Autrement dit, nous maximisons le RHS comme dans l'exemple précédent (le cas de temps discret), mais nous soustrayons ensuite $ \ rho V (a) $ des deux côtés. Ensuite, la mise à jour de la fonction de valeur se fait comme suit:

$$ V_ {n + 1} (a) = V_n (a) + \ Delta $$

Comment cela peut-il être ainsi? J'aurais pensé que j'utiliserais simplement la RHS maximisée de (*) et me connecterais à une nouvelle itération. Comment se fait-il que l'autre méthode soit la bonne?

Sophie
la source
Vous demandez comment ce problème est résolu numériquement? Votre notation est déroutante et il est difficile de dire ce que vous demandez.
NickJ
Bonjour Nick, oui je demande comment il est résolu numériquement. L'itération de la fonction de valeur maximise généralement le RHS de l'équation fonctionnelle, obtient une règle de politique du FOC puis la rebranche sur le RHS. Cette étape est répétée jusqu'à ce que la fonction de valeur converge. Ceci est différent de la méthode montrée dans la dernière équation, vous pouvez voir que l'itération de la fonction de valeur est faite différemment: nous maximisons toujours le RHS mais utilisons ensuite la méthode additive où nous ajoutons un delta à la fonction de valeur avec laquelle j'ai commencé.
Sophie
1
Habituellement (toujours?) Lors de l'itération de la fonction de valeur, nous discrétisons l'espace d'états et maximisons numériquement, aucune condition de premier ordre n'est prise. Puis-je reformuler votre question comme suit? "Je sais comment utiliser l'itération de la fonction de valeur pour trouver une approximation numérique de l'équation de Bellman pour un problème de programmation dynamique en temps discret, mais comment approcher numériquement la solution lorsque le temps est continu?"
NickJ
Découvrez les trucs de Ben Moll. Très transparent avec les codes aussi. princeton.edu/~moll/HACTproject/HACT_Additional_Codes.pdf
clueless

Réponses:

1

Vous effectuez une itération vers un point fixe, vous voulez donc parvenir à une situation où le fait de brancher votre valeur itérée actuelle se produit lui-même. Maintenant, en utilisant votre notation, on nous dit que nous devrions calculer

$$ V_ {n + 1} (a) = V_n (a) + \ Delta $$

$$ \ Delta = \ u (c (a ^ *)) + \ dfrac {\ partiel V_n (a)} {\ partiel a} da_t (a ^ *) - \ rho V_n (a) $$

Insérez le second dans le premier pour voir quelle est la règle d'itération:

$$ V_ {n + 1} (a) = V_n (a) + \ u (c (a ^ *)) + \ dfrac {\ partiel V_n (a)} {\ partiel a} da_t (a ^ *) - \ rho V_n (a) $$

Lorsque vous atteignez un point où

$$ V_ {n + 1} (a) = V_n (a) $$

(ou $ \ epsilon $ -so)

Cela voudra dire

$$ \ rho V_n (a) = \ u (c (a ^ *)) + \ dfrac {\ partial V_n (a)} {\ partial a} da_t (a ^ *) $$

c'est ce que vous devez satisfaire.

Certaines étoiles, etc., devront peut-être être ajustées dans ce qui précède, pour une notation parfaitement cohérente.

Alecos Papadopoulos
la source