Markov Reward Process (MRP)
Un Markov Reward Process (MRP) est un processus de Markov avec une fonction qui indique combien on gagne (ou perd) à chaque transition.
Définition
Un MRP est défini par le quadruplet :
ou (, ) est un MP
- : récompense associée à l’état ou à la transition
- : facteur d’actualisation (plus est proche de 1, plus les récompenses futures comptent)
Autrement dit :
Un MRP = Processus de Markov + Récompenses + Facteur d’actualisation.
Récompense
Etant donné un MRP :
- = Valeur aléatoire = R( - 1, ), gain récolté en faisant la transition ->
- par = + 1 + + ...
PAS FINIT
Valeur d’un état
La valeur d’un état mesure la récompense totale attendue à long terme, en partant de cet état :
- = récompense immédiate obtenue en étant dans l’état
- = qualité long terme de l’état
C’est ce qui indique si un état est bon ou mauvais à long terme. Ainsi, un état avec une grande valeur est considéré comme bon, car il mène en moyenne à beaucoup de récompenses futures.
Équation de Bellman
La fonction V vérifie l'équation de Bellman :
Cette équation exprime que :
- on reçoit immédiatement
- puis on se déplace vers un état futur
- avec probabilité
- tout en tenant compte de la valeur de cet état futur
Exemple
On a deux états :
Transitions :
-
Depuis Normal :
-
Depuis Bonus :
Récompenses :
Facteur d’actualisation :
Interprétation
- L’état Bonus rapporte +5, mais ne dure pas.
- Depuis Normal, on peut atteindre Bonus, mais ce n’est pas garanti.
- La valeur permet de savoir si ça "vaut le coup" d’être dans un état.
Calcul de la valeur d'un MRP
Valeurs des variables sur les exemples :
P = np.array([[0.7, 0.3],
[0.4, 0.6]])
R = np.array([5, 10])
gamma = 0.9
FORME VECTORIELLE
Fonction Bellman_Vector_Forme(P, R, gamma):
n ← nombre de lignes de P
I ← matrice identité de taille n × n
A ← I - gamma × P
A_inv ← inverse de A
V ← A_inv × R
Retourner V
Données :
Méthode vectorielle :
I une matrice d'identité donc :
donc :
Il faut maintenant calculer l’inverse de cette matrice, pour résoudre cela on applique cette formule :
FORME RECURSIVE
Fonction Bellman_Forme_Récursive(P, R, gamma):
V ← vecteur nul de même taille que R
seuil ← 0.0000001
max_iterations ← 10000
Pour k allant de 1 à max_iterations faire:
V_nouveau ← R + gamma × P × V
SI max(|V_nouveau − V|) < seuil alors:
Sortir de la boucle
FIN SI
V ← V_nouveau
FIN Pour
Retourner V
Pour ( R, P ) et ( ), on prendra les mêmes données que la forme vectorielle.
Méthode récursive :
On commence la 1ʳᵉ itération avec un vecteur nul :
1ʳᵉ itération
2ᵉ itération
3ᵉ itération
On répète ces itérations jusqu’à atteindre un point de convergence lorsque la différence entre deux itérations devient minime.
Dans notre exemple, la convergence se fera à l’itération 172.
Itération 171 :
Itération 172 :
Donc :
Traces écrites :
Conclusion
Un Markov Reward Process est :
- une chaîne de Markov
- avec une récompense
- et une notion de gain à long terme via la valeur
C’est une étape essentielle entre :
- Chaînes de Markov (pas de choix)
- MDP (prise de décision et recherche de meilleure politique)