Voici un exemple d’application pour l’apprentissage par renforcement sous forme d’une applet permettant de simuler le jeu de la voiture de course. Le principe est de diffuser parmi l’espace d‘état des récompenses correspondant aux buts à réaliser.

L’objectif étant d’atteindre l’arrivée en un minimum de coups, l’unique récompense ici est donc l’arrivée qui se répartit lors du calcul pour chaque position de la même façon que peut se déplacer la voiture à partir de cette position. On peut étudier deux types de problèmes : un sans vitesse et un avec vitesse accumulée du déplacement précédent. Dans les deux cas, le calcul est évidemment plus rapide si il y a moins de cases accessibles car ça réduit de la même façon l’espace d’états du problème.

 

 

-         Pour le problème sans vitesse (à chaque case, le véhicule se déplace juste d’une case dans la direction voulue), le niveau de gris représente la récompense correspondant à la case colorée, celle ci diminuant d’un coefficient  pour chaque états par lesquels il est nécessaires de passer  (pour ce problème, chaque ‘état’ est une case) . Après l’ évaluation, il suffit pour le véhicule de se diriger toujours vers la meilleure récompense. Pour éviter des résultats peu réalistes fournis par les distances de Manhattan, j’ai utilisé comme   pour les déplacements en diagonales .

 

 

 

-         Pour le problème avec vitesse, le véhicule choisi sa direction après avoir refait le déplacement précédent(Il y a donc bien accumulation ou perte de vitesse). Ici le niveau de gris correspondant est juste une indication de la vitesse maximale qui peut y être obtenue par rapport aux autres cases. Ca sert surtout à voir l’état d’avancement du calcul parce que, bien que assez simple, ce petit problème génère déjà un nombre d’état assez important. Chaque case ne représente plus un état car la vitesse ici est un paramètre à part entière. C’est aussi pour ça que c’est bien plus long même en ayant limité la vitesse de  -5 à +5 dans les deux dimensions car ça fait un espace 121 fois plus grand. (11*11). Pour remonter à l’arrivée, le principe est le même que sans vitesse en prenant en compte la vitesse en plus pour définir à chaque état l’ensemble de transitions possibles.

 

 

Exemple de situation :

 

La voiture à une vitesse de (4,-1) après le déplacement rouge. Les mouvements possibles sont montrés dans la deuxième image. La case bleue claire est la cases atteinte si on ne change pas la vitesse. Les huit autres cases sont les cases accessibles si on change de vitesse. Si on fait le choix (-1,1), on obtient un déplacement total de (4-1,-1+1)=(3,0) ce qui est représenté dans la troisième image. Un exemple de chemin possible est fait dans la dernière image.

   

 

 

 

 

 

 

 

 

 

 

 

 

 


L’intérêt de cette approche est de donner une solution à un problème sans tomber dans un algorithme de type NP. A titre de comparaison, j’ai implémenté un A* que l’on peut faire fonctionner sur des situations équivalentes, il est très vite dépassé même en ayant une heuristique efficace et en faisant appel à un tableau de chemins tabous pour élaguer d’avantage la recherche. 

 

Your browser does not support Java applets.