Vous êtes ici >> Accueil/Les Dossiers/Magazine/Articles/développement d’une IA Formule Dé

développement d’une IA Formule Dé

02/08/2006 - Lu 1678 fois
Le premier article sur le développement d’un logiciel de FD commencera par la fin : l’Intelligence Artificiel.

On ne peut pas approcher FD par la force brute comme les autres jeux de réflexion (Echecs, Othello, Puissance 4) même la méthode statistique (Backgammon, Monopoly) est trop limitée.

FD fait parti des jeux de stratégie chaotique (Médina, Dames Chinoises) qui empêche une analyse à long terme mais est assez riche pour pouvoir choisir des stratégies de jeux différentes comme «  Le Lièvre et la Tortue  » ou «  Les colons de Catanes  ».

 

 Les essais

Le temps des essais doit être dépendant du record du circuit plus pondération suivant l’écart type des essais joueurs (avec un record initial à un peu plus de 2 minutes). Comme le programme choisira les meilleures cases de placement grâce à l’analyse des essais [Analyse combinatoire que j’expliquerais dans un prochain article. Ce qui permettra d’avoir un premier résultat utile avant même la fin du développement du logiciel], ce système permettra de donner du fil à retordre aux bons joueurs d’essais.

Prévoir la possibilité de prise de risque pour certaines IA qui rechercheront plus la pole à tout pris que d’assurer une bonne place sur la grille.

Soit trois réglages :

- 0% : aucune prise de risque de sortie.

- 10% : prise de risque limitée à des sorties sur 20 ou 30.

- 17% : prise de risque de sortie sur un 12 en quatrième.

 

 La construction de voiture

Essayons d’analyser le raisonnement humain :

A) Le premier point est l’analyse du circuit pour la création de sa voiture.

B) On détermine le Type des pneus utilisés pour déterminer sa stratégie de course.

C) Choix des stands, second paramètre de la stratégie de course.

Nota : Le choix des pneus est prépondérant car les pilotes de FD ont un style de jeu dépendant leur maîtrise d’un certain type de pneu.

D). Choix des moteurs suivant la formule adéquate.

E).Choix des Carro suivant position de la grille.

F) Choix des Tdr suivant la météo.

Choix très standardisés donc de niveau élevé.

G). Choix des consommations/Freins.

Le choix le plus difficile.

H) Affinement : points stands suivant choix B pour avoir plus que le nombre de Pneu et donc réajustement pour avoir un nombre impair pour les pneus tendres.


L’IA va utiliser un tableau de ce type :

 

0

1

2

3

4

5

6

7

8

Pneu                    
Frein                    
Conso                    
Carro                    
Moteur                    
Tdr                    
Stands                    

Pour chaque caractéristique, l’IA va donner une note de 100 (aucun risque) à 0 (aucune chance de finir la course).

Une formule mathématique sera développer spécialement pour chaque caractéristique qui devra être paramétrable suivant le style de jeu de l’IA.

 

Ensuite l’ordinateur prendra le nombre qui aura la meilleure note dans l’ordre de priorité déterminé à son style de jeu.

Ordre classique : Moteur, Carro, Tdr, Conso, Frein, stand.

Le nombre de pneus sera obtenu par différence à 22.

 

On calcul la note de la config.

Ensuite il suffit de faire varier une caractéristique par rapport à une autre (+1/-1). Si le la note est strictement supérieure on prend comme référence la nouvelle config et on recommence la procédure à zéro.

Prévoir des cas particuliers de modification comme le –1/–1/+1 St/+1 Pneu.

 

Nota : prévoir le raisonnement spécial pour la stratégie « Singe » (voir plus loin).

 

 IA Pur

Nous allons voir ici le fonctionnement général, pour le développement spécifique nous verrons plus tard.

 

- Création de règles stratégiques/tactiques.

Ici se trouve le cœur de l’IA. Et c’est la programmation de cette partie qui est la plus importante. Le reste n’est là que pour personnaliser les IA des unes par rapport aux autres.

 

- Croyance.

La croyance aux règles stratégiques suivant le profil de l’IA permet de gérer les antagonismes entre certaines règles stratégiques (croyance = degré de crédibilité en %).

La croyance permet aussi de paramétrer et de classer les différentes règles suivant le style recherché.

 

Règles stratégiques antagonistes :

- Entrer dans le prochain virage.

- Ne pas trop sortir du virage.

 

- Plus on descend en niveau récursif d’analyse et plus on garde les grandes croyances.

Prévoir l’analyse à 2 ou 3 coups en début de circuit avec réflexion plus intense vers la fin du tour.

 

- Evolution des croyances.

L’évolution se fait suivant la réussite de celles-ci. Système d’expérience du style : jet sous (Nb de Réussite de la croyance / Nb d’utilisation de celle ci – Croyance + 50%).Pour éviter que toutes les IA jouent de la même manière au bout d’un certain temps, prévoir un frein à l’évolution dépendant entre la croyance initiale et la croyance actuelle du style : Gain = Evolution*(1-(|Croyance Initiale – Croyance actuelle|)).

L’évolution peut se faire aussi sur des échecs critiques à une croyance.

 

- L’expérience.

La croyance initiale est la base imposé (Inné).

La croyance actuelle est l’expérience sur le circuit (Acquis).

Cela donnera une expérience à l’IA spécifique suivant le nombre de fois qu’elle aura joué le circuit, paramètre non négligeable à Formule Dé.

 

 Attribut secondaire : Le Caractère

Le caractère peut être utilisé pour créer une ambiance autour de la table électronique, élément fondamental à FD.

Suivant le style de conduite du pilote et de sa position dans la course, l’IA pourra faire des réflexions gentilles, désagréables, compatissantes, admiratives …

Dans un premier temps, il suffit d’utiliser des phrases type mais si quelqu’un se sent à développer un fichier AIML de type ALICE (programme de chatboot).

 

 Conclusion

Nous avons ici fait le tour des grandes lignes d’un développement d’une IA pour Formule Dé.

Pour un premier article, nous n’avons pas trop mis nos mains dans le cambouis car le développement d’une IA est l’une des dernières priorités du développement d’un logiciel de jeu de Formule Dé.

Mais plus pour indiquer des pistes de recherche pour les développeurs.

Des articles sur le principe de croyance peuvent être trouvés ici et là.

Pour le principe d’expérience, je pense que cela est plus difficile à trouver mais ne pose pas trop de problème pour mettre en place, il suffit de sauvegarder les croyances suivant les circuits. Le plus difficile est de trouver la bonne formule pour la variation d’une partie à l’autre et de l’inertie à celle-ci.

Le problème de l’expérience sera surtout comment faire pour faire évoluer les règles de construction qui devra être baser sur les stats, car ce n’est pas parce qu’on casse quatre moteurs sur dix tests que la formule du choix des moteurs est mauvaise.

 

 

Zuff