Policy Improvement
Définition de l’environnement
Valeurs des variables sur l’exemple :
states = ["North", "South", "East", "West"]
actions = ["clock", "anti-clock", "stay"]
gamma = 0.9
horizon = 10 # noté H dans les diapositives
États et actions possibles
On considère un cercle découpé en 4 directions principales :
Nord, Est, Sud, Ouest, avec 3 actions possibles :
clock(sens horaire)anti-clock(sens antihoraire)stay(rester sur place)
Chaque action entraîne une transition déterministe vers un nouvel état :
Probabilités de transition
Récompenses associées ( R(s,a) )
Étape 1 — Politique initiale
On commence avec une politique arbitraire (non optimale) :
Étape 2 — Évaluation de la politique
On estime la valeur des états sous la politique courante :
L’algorithme procède par itérations successives (approche approchée sur un horizon (H = 10)) :
V = {s: 0 for s in states}
for _ in range(horizon):
new_V = V.copy()
for s in states:
a = policy[s]
new_V[s] = R[(s,a)] + gamma * sum(P[(s,a)][s2] * V[s2] for s2 in P[(s,a)])
V = new_V
À la fin de cette boucle, on obtient une estimation stable de $$ (V^{\pi}) $$.
Étape 3 — Amélioration de la politique
Pour chaque état (s), on calcule la valeur d’action (Q(s,a)) :
et on met à jour la politique en choisissant l’action optimale :
Code correspondant :
for s in states:
Q_values = {}
for a in actions:
Q_values[a] = R[(s,a)] + gamma * sum(P[(s,a)][s2] * V[s2] for s2 in P[(s,a)])
policy[s] = max(Q_values, key=Q_values.get)
Étape 4 — Vérification de la stabilité
Si la politique ne change plus , on a atteint une politique optimale :
Sinon, on retourne à l’étape d’évaluation et on répète jusqu’à convergence.
Résultat final
Après convergence :
et les valeurs d’état associées maximisent les retours attendus sous cette politique optimale.
Formule générale de la Policy Iteration
Évaluation :
Amélioration :
On alterne ces deux étapes jusqu’à convergence.