1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Conception et développement d’un moteur d’intelligence artificielle pour un jeu d’échecs multiplateformes

65 33 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 5,85 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

C’est qu’il doit générer tous les mouvements légaux du jeu - lesmouvements possibles pour l’équipe rouge et pour l’équipe bleue - pour que l’on puisse comparer etchoisir le meilleur mouv

Trang 1

MEMOIRE DE FIN D’ETUDES MASTER D’INFORMATIQUE

Conception et Développement

d’un moteur d’intelligence artificielle pour un jeu

d’échecs multiplateformes

NGUYEN Duc Thinh

Trang 2

Hanoi, Juin 2014

Trang 3

Table de matières

Table de matières

Table de figures

Remerciements

Résumé

Introduction

1.Contexte du stage

1.1IFI

1.2Société Newwave

1.3Projet du jeu vidéo Jingci

2.Motivation et objectif du stage

3.Contribution

Chapitre 1 État de l’art : Epreuves générales de la programmation de jeux d’échecs .

1.Représentation des données

2.Gestion des mouvements

2.1Génération des mouvements

2.2Evaluation de mouvements

2.3Recherche de mouvements

3.Algorithmes de recherche (Minimax, Alpha-Beta)

3.1Algorithme Minimax

3.2Algorithme Elagage Alpha-Beta (Alpha-Beta pruning)

Chapitre 2 Épreuves du projet

1.Description générale du jeu

2.Spécifications d’exigences fonctionnelles

3.Spécifications d’exigences non-fonctionnelles

4.Capacité de réfléchir du noyau d’Intelligence artificielle

5.Difficultés de calcul

Chapitre 3 Solutions proposées

1.Arbres de positions

2.Equation d’évaluation

3.Stratégies de décisions

3.1Tactique défensive

Trang 4

3.2 Tactique offensive

Chapitre 4 Réalisation et résultats

1.Ingénierie de développement

1.1 Méthode de développement

1.2 Langage de programmation et plateformes

1.3 Gestion de code et de changement

2.Conception et Développement

2.1 Représentation des données

2.2 Implémentation de règles et de contrains

2.3 Implémentation de la recherche de mouvement

2.4 Améliorations

3.Résultat & évaluation

3.1 Test

3.2 Évaluation

Conclusion

1.Conclusion

2.Perspectives

Bibliographies

Trang 5

Table de figures

Figure 1-1 Arbre de positions du jeu Tictactoe [8] 11

Figure 1-2 Exemple de l’évaluation de l’heuristique [15] 12

Figure 1-3 Jeux de deux à somme nulle: Echecs[16], Echecs chinoises[17], Tictactoe[18], Go[19], Othello[20], Gomoku[21] 13

Figure 1-4 Illustration de l’algorithme Minimax [9] 14

Figure 1-5 Algorithme Minimax pour trouver la solution de Tictactoe [8] 15

Figure 1-6 Algorithme Alpha-Beta [9] 16

Figure 2-1 Terrain du football [13] 19

Figure 2-2 Tablier de jeu 20

Figure 2-3 Pièces de jeu: Ballon, Joueurs, Gardiens (de goal) 20

Figure 2-4 Portée de courses: pour le ballon et pour le joueur 20

Figure 2-5 Portée de pièce et de ballon selon le cas 21

Figure 2-6 Illustration du cas de répétition de jeu 21

Figure 2-7 Illustration du cas de ballon bloqué 1 22

Figure 2-8 Illustration du cas de ballon bloqué 2 22

Figure 2-9 Initiation du jeu 23

Figure 3-1 Elagage Alpha-Beta [14] 27

Figure 3-2 Exemple de la coupure Alpha [14] 28

Figure 3-3 Facteurs d’évaluation d’une position de jeu 29

Figure 3-4 Tactique défensive 31

Figure 3-5 Tactique offensive 31

Figure 4-1 Diagramme Gantt du projet Jingci 34

Figure 4-2 Plan de réalisation du Jingci 35

Figure 4-3 Architecture de l’application NDK [12] 37

Figure 4-4 Structure de codage du projet Jingci 38

Figure 4-5 Diagramme de classes du noyau IA 39

Figure 4-6 Représentation de tablier dans le mémoire 40

Figure 4-7 Représentation de tablier et des sentinelles 41

Figure 4-8 Représentation de la surface de but 41

Figure 4-9 Représentation de la zone de gardien de but 42

Figure 4-10 Classe Piece 42

Figure 4-11 Classe d’une position du jeu JingciNode 43

Figure 4-12 Algorithme de trouver les carres disponibles 44

Figure 4-13 Algorithme de décision 46

Figure 4-14 Tactique offensive 47

Figure 4-15 Tactique défensive 48

Figure 4-16 Ecran du programme Jingci et écran d’étape d’initiation 51

Figure 4-17 Ecrans d’étape de préparation 52

Figure 4-18 Ecrans de mouvement du jeu 52

Figure 4-19 Ecrans du tir au goal 53

Figure 4-20 Ecrans de la victoire et de l’échec 53

4

Trang 6

Je remercie mes collègues dans la société Newwave, pour m’avoir permis d’effectuer ce stage dans lesmeilleures conditions possibles, qui ont pris du temps pour me guider dans mon stage J’ai eul’opportunité de pouvoir travailler pendant 6 mois en tant que stagiaire au sein de la société Newwave

ó j’ai reçu un accueil chaleureux de la part de toutes les personnes présentes dans cette entreprise

Je remercie également mes professeurs d’informatique à l’IFI pour m’avoir enseigné les connaissancesnécessaires

Mes sincères remerciements à mes professeurs de français pour m’avoir accompagné dansl’apprentissage du français nécessaire pour mes études à l’IFI en particulier et mon métier en général

Je remercie également M Nguyen Van Tuan et Mme Nguyen Thi Hong Loan pour leurs aides concernantles procédures administratives pendant mon Master a l’IFI

Je tiens à remercier mes parents pour leur mobilisation, l’encouragement constant et pour leur aidefinancière Ils m’ont permis de réaliser mes études et mon stage dans de bonnes conditions

Enfin, je remercie amicalement mes amis vietnamiens et mes amis français qui sont toujours à cơté demoi pour partager des difficultés et m’encourager à effectuer les études à IFI et ce stage

Trang 7

Malgré la croissance des performances des appareils portables, la programmation de jeux d’échecs esttournée vers la recherche de solution dans un espace contenant énormément de positions Desalgorithmes ont été inventés pour résoudre le problème, par exemple Minimax, Alpha-Beta, etc Enévaluant les contraintes de temps de traitement et la limitation de ressource des appareils portablespendant la durée de réalisation, nous avons décidé d’appliquer l’Alpha-Beta pour implémenter un jeuvidéo qui soit déployé sur la plateforme mobile.

Dans le cadre de ce mémoire, nous allons exposer les problématiques, l’analyse et les solutionsd’application l’algorithme d’élagage Alpha-Beta et les tactiques de football Enfin, nous allons présenter

le résultat et l’évaluation de la bonne efficacité en appliquant l’élagage Alpha-Beta pour réduire l’espace

de recherche de solution et des stratégies de réflexion pour le moteur d’intelligence artificiel proposépendant la réalisation

Mots-clés : intelligence artificielle, moteur de jeu vidéo, jeux mobiles, jeux d’échecs, jeux à somme nulle, élagage alpha-beta

6

Trang 8

Introducti on

1 Contexte du stage

1.1 IFI

L’Institut de la Francophonie pour l'Informatique [23] est un institut international d’études supérieures

en informatique située à Hanoi (Vietnam) et appuyée par l’Agence Universitaire de la Francophonie(AUF) et par l’Université Nationale du Vietnam

L’Université de La Rochelle [24] est partenaire depuis plusieurs années avec l’IFI L’IFI offre deuxformations Master et une double diplomation franco-vietnamienne pour ses étudiants: SystèmesIntelligence & Multimédia et Réseaux & Systèmes Communiquant

Pour ma part j’ai suivi le Master Systèmes Intelligences & Multimédia qui est enseigné totalement enfrançais

Newwave est une jeune société vietnamienne [25] Elle a été créée en 2011 par un groupe d’ingénieurschaleureux et ambitieux Ils étaient 3 ingénieurs au début En développement constant, la société secompose en ce moment de plus de 30 jeunes membres Plusieurs projets ont été menés avec lasatisfaction du client Etant membre de l’association de logiciel du Vietnam, la société se concentre sur ledomaine informatique, particulièrement dans le service outsourcing pour le marché japonais et lemarché à domicile Dans son élan de développement, la société est en train de chercher le chemin afin

de participer au marché européen avec des solutions et des productions techniques de hauts niveaux

Trang 9

7

Trang 10

Android), l’orientation en terme de développement est tourné vers des services informatiques principaux:

- Développement de Logiciels personnalisés ;

- Développement d’Applications Mobiles ;

- Externalisation de Logiciels (Software Outsourcing) ;

- Maintenance de Logiciels

1.3 Projet du jeu vidéo Jingci

Jingci est un jeu du type stratégique qui a été inventé par un auteur japonais il y a quelques années C’est

un jeu du type jeu d’échecs simulant le football avec deux adversaires qui essayent toujours de marquer

le but l’un de l’autre adversaire Actuellement, ce jeu n’est pas connu au Japon ou dans le monded’entier Pour intéresser les joueurs aux caractéristiques et au potentiel, notre client décide dedévelopper un jeu vidéo sur la plateforme mobile, particulièrement sur iOS et sur Android Pour ce fait,

la difficulté de l’intelligence artificielle du programme est une grande épreuve, mais c’est aussi uneoccasion pour la société Newwave de surmonter cette épreuve pour prouver au client son efficacité Cestage a été effectué dans le cadre du projet Jingci, plus précisément dans le développement du noyau del’intelligence artificielle

2 Motivation et objectif du stage

Jingci est un nouveau jeu qui est maintenant en période d’être commercialisé La motivation principale

du projet est d’élargir l’utilisation du jeu Autrement dit, on veut populariser le jeu Jingci C’est pourquoi

on construit la première version du jeu vidéo ayant pour le but de présenter les règles, les contraintes etcomment on joue à ce jeu pour montrer les intérêts du jeu Le défi du projet est que l’on doit construire

un programme complet qui doit avoir le noyau ayant capacités humaines :

- Capacité de réagir : déplacer les pièces d’échecs suivant les règles ;

- Capacité de réfléchir : calculer les mouvements les plus dangereux (qui peuvent vaincre

l’utilisateur)

Le processus de développement de ce jeu vidéo se compose en plusieurs étapes: analyse des exigences,conception, implémentation de GUI, implémentation de noyau IA, intégration du noyau IA au GUI etdéploiement

L’objectif principal du stage se concentre sur l’implémentation du noyau d’intelligence artificielle Pour réaliser ce but, on doit passer plusieurs étapes:

- Evaluer et choisir une plateforme utile de développement de jeux vidéo pour périphériques portables ;

- Evaluer et choisir une approche efficace de la programmation du jeu d’échecs ;

- Implémenter d’un noyau IA qui a la capacité de réfléchir ;

- Tester et améliorer le noyau IA ;

- Participer à la publication du jeu sur la plateforme mobile (l’intégration au GUI, le déploiement sur iOS et sur Android, etc.)

3 Contribution

En participant au développement d’un projet complet, à partir de zéro jusqu’à un programme accompli, mes contributions vont se porter sur plusieurs points :

Trang 11

 Premièrement, j’ai effectué une étude des langages et des moteurs de développement de jeux vidéo.

 Deuxièmement, j’ai étudié des solutions et des algorithmes actuels dans le domaine de

programmation de jeux d’échecs

 Troisièmement, j’ai implémenté le noyau IA

 Finalement, j’ai collaboré avec notre équipe pour intégrer notre noyau IA à notre GUI et puis déployer une application complète

9

Trang 12

Chapitre 1 État de l’art : Épreuves

générales

de la programmation de jeux d’échecs

Dans ce chapitre, on va faire des études sur les approches connues dans le domaine de programmation

de jeux d’échecs

1 Représentation des données

Représentation des données est une mission importante de développement de jeux vidéo car si on peutbien modéliser le monde du jeu par des types utiles de données, le programme peut être marcheefficacement et peut économiser mieux les ressources du système Pour un jeu d’échecs, lareprésentation de données concerne directement la représentation du tableau de jeu, des pièces de jeu

et des états de jeu Dans cette partie, on va concentrer sur l’analyse de la représentation de tableau dejeu car elle influence indirectement la présentation des caractères de pièces et d’états du jeu

Cette partie va aborder le problème suivant : comment le tablier de jeu est représenté dans la mémoire

du programme La structure de données qui présente le tableau de jeu et les pièces, est un facteurimportant pour l’efficacité de traitement du programme

En réalité, il y a deux approches principales de la représentation de données qui sont les plus populaires

du domaine de programmation de jeux d’échecs :

- Utiliser le tableau en une ou deux dimensions (le tableau d’entier ou le tableau de bits) pour présenter les carrés et les pièces

- Utiliser une liste des carrés ou des pièces

Trang 13

Chaque approche a ses avantages et ses inconvénients, par exemple, pour une liste de carrés, l’espace demémoire utilise pour le stocker est plus petite que pour un tableau, mais en utilisant la liste (listechaînée, etc.), on perd plus d’efficacité pour examiner tous les carrés.

Trang 14

2 Gestion des mouvements

Le noyau de jeu a une autre mission C’est qu’il doit générer tous les mouvements légaux du jeu - lesmouvements possibles (pour l’équipe rouge et pour l’équipe bleue) - pour que l’on puisse comparer etchoisir le meilleur mouvement Si le programme n’a pas la capacité de générer tous les mouvementslégaux, alors, pendant le processus de détermination, le programme choisit un mouvement illégal quiprovoque une erreur ou il ne peut pas choisir le meilleur mouvement

Figure 1-1 Arbre de positions du jeu Tictactoe [8]

On peut observer la génération de mouvements par l’illustration ci-dessus : pour le jeu tictactoe, à partir

d’une position au début, on peut avoir un arbre de toutes positions possibles en fin La mission du noyau

IA pour la génération de mouvements est de construire l’arbre complet à partir d’une position du jeu

Trang 15

Par exemple dans l’illustration ci-dessous [15], on voit que :

Figure 1-2 Exemple de l’évaluation de l’heuristique [15]

Les pièces de l’équipe Noir : le roi, la dame et 3 pions

Les pièces de l’équipe Blanche : le roi, le tour, le cavalier et 2 pions

Si on assigne une valeur de poids pour chaque pièce, on peut calculer la valeur de la fonctiond’évaluation simple par la somme de poids des pièces sur le tablier :

f(h) = (100*1 + 20*1 + 1*3) – (100*1 + 7*1 + 6*1 + 1*2) = 8

La valeur de f(h) est de 8 > 0, cela veut dire que l’équipe noire a plus de supériorité que l’équipe blanche.

Grace à cette fonction d’évaluation, quand on évalue une position, on peut comparer la supériorité despositions pour que l’on puisse choisir la plus grande

En réalité, l’équation d’évaluation d’une position n’est pas simple que celle-ci Dans le cas particulier, on

doit choisir plusieurs facteurs pour calculer et évaluer la fonction f(h).

Pour un jeu d’échecs, le nombre de mouvements est énorme Le choix d’une solution dans un espacegéant de recherche est une tâche très compliquée En combinant l’équation d’évaluation, on doitchercher une stratégie de recherche efficace pour que la réflexion du programme devienne assez rapide

et faisable Pour la modélisation d’espace de jeu, on peut considérer les mouvements du jeu commel’arbre de décision À partir de la racine – le mouvement d’initiation du jeu, chaque nœud fils de l’arbremanifeste de mouvements possibles pour réagir contre le nœud parent Par conséquent, le faitd’examiner chacun des nœuds d’un jeu d’échec est impossible On doit restreindre l’espace de recherchepour laisser passer les mouvements évalués faibles

12

Trang 16

Nous abordons ici les jeux de type « Somme nulle » (Zero-sum) : il s’agit des gains d’un joueur qui est l’opposé des gains des autres joueurs Autrement dit, si un joueur a gagné, tous les autres ont perdus.Pour le jeu de deux à somme nulle, il y a deux adversaires, l’un joueur qui gagne les gains positifs et par contre, l’autre qui gagne les gains négatifs La somme totale de gains est nulle.

Quelques jeux à deux à somme nulle connus dans le monde sont : le jeu d’Echecs, le jeu d’Echecs

chinois, le Tictactoe, le Go, l’Othello, le Godoku :

Figure 1-3 Jeux de deux à somme nulle: Echecs[16], Echecs chinoises[17], Tictactoe[18], Go[19], Othello[20], Gomoku[21]

Les jeux d’échecs sont les jeux du type somme nulle :

- Dans le cas ó il n’y a pas de vainqueur, ils font partie nulle

- Dans le cas, il y a un vainqueur, il gagne les gains +G, par contre, le perdant gagne les gains –G, la somme est nulle

Les jeux d’échecs ont un caractère unique : car on fait la guerre alors pour le joueur ami, on essayetoujours de chercher le mouvement qui entraine les gains les plus positifs et au contraire, les gains lesplus négatifs pour le joueur ennemi

Grace à ce caractère, on peut chercher une solution pour mesurer le poids de chaque mouvement parles gains En fait, les gains d’un jeu d’échecs sont de victoire ou d’échec Si on considère le gain devictoire est de 1, alors le gain d’échec est de -1, le gain d’un match nul est de 0 Mais pour un jeucomplexe, il y a beaucoup de mouvements qui peuvent être exécutés avant le finit du jeu, alors, si onmesure les gains seulement par -1, 0, 1, c’est difficile d’évaluer les poids des mouvements intermédiaires.L’un des problèmes de la programmation du jeu d’échecs est de chercher une façon efficace d’attribuer lepoids pour un mouvement qui va être abordé plus précise dans la partie « Solutions proposées » Pour leprobleme de recherche de mouvements, il y a des œuvres [1], [2], [3], [5], qui abordent des algorithmes,par exemple MiniMax, NegaMax, AlphaBeta, etc Et dans le cadre de ce stage, je vais

Trang 17

presenter l’algorithme Minimax et l’AlphaBeta et leur application dans notre projet dans les parties suivantes.

3 Algorithmes de recherche (Minimax, Alpha-Beta)

Dans [1], Stuart Russell et Peter Norvig ont présenté de facon précisée les algorithmes Minimax etAlphaBeta et on peut rappeler des caractères principaux de ces deux algorithmes

L'idée fondamentale, appliquée dans tous les logiciels d'échecs, est qu'il faut faire parcourir par leprogramme un espace de recherche constitué des positions futures potentiellement atteintes par lesjoueurs pour anticiper la meilleure séquence à jouer On modélise cet espace de recherche avec destechniques issues de la théorie des graphes (arbres, graphes sans cycles, etc.) et on utilise des systèmes

de production pour générer leurs états (les positions) et les transitions entre les états (les coupspermettant de passer d'une position à l'autre)

Figure 1-4 Illustration de l’algorithme Minimax [9]

Le pseudocode de l’algorithme MiniMax [9] :

minimax(level, player) // player may be "computer" or "opponent"

if (gameover || level == 0)

return score

children = all legal moves for this player

if (player is computer, i.e., maximizing player)

/ find max

bestScore = -inf

for each child

score = minimax(level - 1, opponent)

14

Trang 18

if (score > bestScore) bestScore = score return

bestScore

else (player is opponent, i.e., minimizing player)

// find min

bestScore = +inf

for each child

score = minimax(level - 1, computer)

if (score < bestScore) bestScore = score

Figure 1-5 Algorithme Minimax pour trouver la solution de Tictactoe [8]

Le facteur de branchement dans une partie d'Echecs équilibrée étant d'environ 30 et le nombre de coupsenviron 40, on ne peut générer, dans un temps limité, la totalité de l'arbre On doit donc limiter laprofondeur de la procédure Une fois atteinte cette profondeur, les feuilles (par opposition à la racine)

Trang 19

de l'arbre ainsi construit sont évaluées par une fonction d'évaluation Le programme peut, à partir de laracine, jouer le coup de niveau 1 qui lui garantit le gain maximal contre toute défense de son adversaire,

en supposant que celui-ci utilise également une stratégie optimale, c'est-à-dire qu'il joue lui-même àchaque coup le gain qui lui garantit le gain maximal contre toute défense Ce mécanisme est appeléprincipe Minimax

L’algorithme d’élagage Alpha-Beta conduit à une économie de temps de calcul et mémoire, en renonçant

à l’évaluation des sous arbres dès que leur valeur devient inintéressante pour le calcul de la valeurassociée aux nœuds père de ces sous arbres

Pour réaliser l’algorithme Alpha-Beta on va associer à chaque nœud n de type MAX une valeur auxiliaire appelée Alpha(n) égale à la valeur de f(n) si n est un nœud terminal, ou à la meilleur

valeur de ses fils trouvée jusqu`ici;

une valeur Beta(m) pour les nœuds MIN, valeur égale à f(m), si m est un nœud terminal, ou à la

valeur minimum de ses successeurs trouvés jusqu`ici

Figure 1-6 Algorithme Alpha-Beta [9]

Dans les cas généraux ci-dessus, on peut voir que l’élagage Alpha-Beta peut nous aider à couper dessous branches inutiles pour diminuer l’espace de recherche

Le pseudocode de l’algorithme Alpha-Beta [9] :

alphabeta(level, player, alpha, beta)

//player may be "computer" or "opponent"

if (gameover || level == 0)

return score

children = all valid moves for this "player"

if (player is computer, i.e., max's turn)

/ Find max and store in alpha

for each child

score = minimax(level - 1, opponent, alpha, beta)

if (score > alpha) alpha = score

if (alpha >= beta) break; // beta cut-off

16

Trang 20

return alpha

else (player is opponent, i.e., min's turn)

// Find min and store in beta

for each child

score = minimax(level - 1, computer, alpha, beta)

if (score < beta) beta = score

if (alpha >= beta) break; // alpha cut-off

return beta

/ Initial call with alpha=-inf and beta=inf

alphabeta(2, computer, -inf, +inf)

Trang 21

Chapitre 2 Épreuves du projet

Ce chapitre vise à présenter concrètement les exigences du jeu : les exigences fonctionnelles et les exigences non-fonctionnelles Ensuite, on va évaluer les difficultés prépondérantes pour la réalisation

1 Description générale du jeu

Jingci est un jeu stratégique simulant le football Il se compose d’un tableau de 9x9 cellules quireprésente le terrain de jeu Comme au football, on est divisé en deux équipes les rouges et les bleus etchacun a 8 joueurs et un gardien de but L’objectif des adversaires est d’essayer de marquer le but endéplaçant les joueurs, le ballon et les gardiens Pour atteindre cet objectif, les utilisateurs doivent choisirune stratégie par eux-mêmes L’utilisateur est maintenant un entraineur qui va décider comment sonéquipe joue au football : sur un terrain d’herbes virtuelles sur l’écran d’un appareil portable, on vadéplacer les joueurs dans leurs portées de courses ou passer le ballon à un autre joueur ou tirer le ballon

au but pour terminer le match si possible L’intérêt du jeu est qu’il y a plusieurs stratégies pour jouer :stratégie de défense, stratégie d’offense, défense passive, défense active ou offense passive ou offenseactive, etc

De plus, un jeu vidéo ne peut pas simuler totalement le football donc on doit proposer des règles et descontraintes pour éviter les méthodes négatives de jouer et augmenter les intérêts d’un jeu sportif Dans

Trang 22

le cadre de ce jeu, on applique des règles du football mais on les modifie pour adapter l’environnement

du jeu

2 Spécifications d’exigences fonctionnelles

Pour obtenir un programme avec succès, on doit analyser attentivement le jeu et puis, définir toutes lesexigences concrètes du côté technique ou du côté utilisation Tout d’abord on va définir tous les termes

et les règles du jeu Jingci

Les termes et les caractéristiques :

Le terrain de jeu (le tablier de jeu, l’échiquier) : c’est un tableau de taille 9x9 carrés comme l’illustration suivante :

Figure 2-1 Terrain du football [13]

Trang 23

Surface de réparation

ligne médiane

colonne médiane

Surface de but

Figure 2-2 Tablier de jeu

Les pièces d’échecs : Il y a 3 types de pièces : Ballon, Joueur, Gardien de but (Player, Goal Keeper, Ball)

Figure 2-3 Pièces de jeu: Ballon, Joueurs, Gardiens (de goal)

La portée de course : Chaque pièce peut se déplacer dans une zone de 2 carrés Elle ne peut pas passer

ou aller à un carré occupé

Figure 2-4 Portée de courses: pour le ballon et pour le joueur

De plus, pour chaque type de pièce, il y a les contraintes suivantes :

20

Trang 24

Le ballon : la pièce Ballon peut aller à tous les carrés en direction déterminée par le point de vue de lapièce Joueur adjacent.

Figure 2-5 Portée de pièce et de ballon selon le cas

Le gardien de goal : La pièce Gardien (de but) peut aller à tous les carrés dans la surface de réparation

Le joueur : la pièce Joueur peut aller à tous les carrés sur le tableau sauf que sur la surface de but

Le PASS : c’est un droit spécial Il s’agit de la passe du ballon Normalement on peut passer ou tirer leballon sur un segment de 2 carrés Si on applique le droit PASS, après que le Joueur P1 passe le ballon auJoueur P2 alors le P2 peut encore passer ou tirer le ballon plus d’une fois

Le BOUND : c’est un droit spécial Il s’agit de la passe au mur du ballon : le ballon est tiré au mur et puis,

il est réverbéré en direction inverse Dans ce jeu, on peut utiliser le droit BOUND pour la ligne de but et

la ligne de touche

La répétition : on appelle la répétition du jeu quand chaque équipe déplace la même pièce pendant 3mouvements Autrement dit, pour chaque côté du jeu, on applique 3 mêmes mouvements Dans ce cas-

là, on doit redémarrer le jeu

Figure 2-6 Illustration du cas de répétition de jeu

L’état du ballon bloqué : Différemment du football réel, le jeu vidéo peut provoquer des situationsnégatives : le ballon va dans un carré, ensuite, les pièces vont aux carrés autour du ballon Enfin, on nepeut plus déplacer le ballon de toute façon Les illustrations suivantes montrent quelques situationsbloquées Dans ce cas-las, on doit aussi redémarrer le jeu

Trang 25

Figure 2-7 Illustration du cas de ballon bloqué 1

Figure 2-8 Illustration du cas de ballon bloqué 2

Le redémarrage du jeu : pour le redémarrage du jeu, le ballon doit être déplacé sur le carré du centre.Dans le cas ó il existe déjà une pièce au carré du centre, alors l’équipe à laquelle la pièce appartient doit

la déplacer à un autre carré disponible avant de déplacer le ballon

Le but : On dit qu’une équipe marque le but quand il peut tirer le ballon à un des carrés du but de

l’adversaire

La victoire et l’échec : la fin d’un match est quand une équipe marque le but et la victoire appartient à cette équipe Au contraire, l’échec est pour l’autre équipe

Le mouvement : un mouvement du jeu est un mouvement d’une pièce (ballon, joueur, gardien)

La préparation : c’est une étape de préparation de position pour chaque pièce C’est pour arranger la formation de l’équipe avant le match

L’initiation du jeu : L’initiation est le premier mouvement du jeu Pour cette étape, on doit suivre les contraintes suivantes :

- Le ballon doit être sur le carré du centre

- Le ballon peut aller à un des carrés dans la zone 5x5 autour de celui-ci

- Le ballon peut être tiré même s’il n’y a pas de pièce Joueur adjacente

- Les pièces Joueurs doivent ne pas être sur la ligne médiane et la colonne médiane

- Les pièces Joueurs doivent ne pas être dans les carrés de but

22

Trang 26

- Le gardien de but doit être au carré I5 (pour l’équipe bleue) ou A5 (pour l’équipe rouge)

- Chaque ligne doit avoir maximum 3 pièces

- Les carrés autour d’un goal doit avoir maximum 4 pièces (en comprenant la pièce Gardien de goal)

Figure 2-9 Initiation du jeu

L’adjacence : les deux pièces sont adjacence si elles sont dans les deux carrés à côté Autrement dit, les deux carrés ont ensemble au minimum un point

3 Spécifications d’exigences non-fonctionnelles

Le temps de calcul : le temps de calcul d’un mouvement, pour le noyau AI doit ne pas passer 10

secondes Cette exigence concerne la capacité de réfléchir du noyau IA : Il a besoin du temps pourpenser à un mouvement mais il ne faut pas être trop long pour éviter d’ennuyer les utilisateurs

La multiplateforme : on veut jouer ce jeu sur plusieurs plateformes : PC, Web, mobile, etc Mais onchoisit les plateformes mobiles Android, iOS pour la première période de déploiement Pour ledéveloppement d’une application sur plusieurs plateformes, la différence de matériel est un grandproblème : comment un programme peut marcher de façon identique (le temps de réponse, l’affichaged’écran de taille différente, etc.)

La difficulté (le niveau du noyau AI) : elle n’est pas très forte pour éviter l’ennui des utilisateurs

La facilité de compréhension à jouer : le jeu doit être facile à comprendre, on doit construire le GUI avecdes boutons, des messages précis qui peuvent montrer l’état du programme (par exemple, laconfirmation de décision, l’affichage du réfléchir de noyau IA, etc.) pour éviter de mal comprendre le jeu

4 Capacité de réfléchir du noyau d’Intelligence artificielle

Jingci est un jeu de sport du type stratégique alors quand on prend en compte la capacité de noyau d’IA,

on doit analyser le jeu sous tous les côtés Par exemple, il faut construire le jeu pour que les utilisateurspuissent jouer comme ils jouent avec un partenaire réel – un humain réel De ce côté, on peut alleranalyser la spécification d’un humain réel quand il s’agit de football Un humain réel peut avoir des

Trang 27

calculs, des plans d’actions actives qui peuvent être variées et dépendants le contexte actuel du jeu.L’utilisateur, maintenant, joue au rôle d’un entraineur d’équipe : il doit disposer la formation de sonéquipe : Son équipe va jouer avec combien d’attaquants ? Son équipe va jouer avec combien dedéfenseurs ? Quelle est la stratégie utile de l’équipe pour chaque match ?

De plus, dans la période d’analyse et de conception du jeu, on doit aussi prendre en compte la capacitéd’élargir le jeu Cela veut dire que, pour au moment de la conception, on va aussi se préparer pour un jeuavec plusieurs niveaux de difficultés

Pour répondre à ces questions, le noyau IA du jeu doit avoir la capacité d’organiser l’équipe, de choisir lafaçon dont il joue : comment il peut offenser ? Comment il peut défendre ? Autrement dit, le noyau IAdoit avoir capacité de réfléchir et de réagir comme un humain

5 Difficultés de calcul

En analysant le jeu, on doit être en face au problème de limitation du matériel sur la plateforme mobile

En sachant que le matériel se développe rapidement, mais même si pour les plateformes originales (lesordinateurs optimisés, les ordinateurs fixes, etc.), le calcul de recherche du chemin optimisé est toujourscomplexe On doit calculer pour choisir une solution parfaite dans un nombre gigantesque de solutionspossibles

Des études de programmation de jeux d’échecs ont été réalisées [12], [13], [14], [15], [16] Les auteursont presentés des estimations de la grandeur de calcul pour les jeux d’échecs Par exemple, suivantl’étude de Shannon [12] (le nombre Shannon) pour le Jeu d’Echecs, il y a environ en moyenne 40mouvements pour chaque match Cela veut dire que l’on a 40 mouvements pour le Noir et 40mouvements pour le Blanc De plus, on estime qu’il y a environ 30 mouvements légaux possibles àchoisir pour chaque mouvement Alors, on a environ (30^40)*(30^40) ~ 30^80 ~ 10^120 mouvementspossibles

Pour le jeu d’échecs Jingci, on peut calculer brièvement les calculs possibles :

Il y a 19 pièces (1 ballon, 2 gardiens de but, 16 joueurs)

Chaque pièce peut aller à environ 5x5 carrés = 25 carrés

En fait, le calcul d’un mouvement du jeu Jingci n’est pas égal à 19*25 = 475

- Pour le gardien de but : le nombre maximum est de 3*5 carrés (car il est limite dans la zone de goal)

- Pour le ballon : le nombre maximum est de 5*5

- Pour les joueurs : le nombre maximum est de 16*5*5

En théorie, le nombre maximum de solutions est de 3*5 + 5*5 + 16*5*5 = 440

Mais il faut faire attention que, le nombre 440 ci-dessus a des positions qui se répètent

- Le tableau de jouer est de 9*9 = 81 carrés

Trang 28

Le nombre total de solutions possibles pour un mouvement maintenant est plus serré, environ de 72.

- Le nombre de calcul pour le profondeur N = (72)N

- Par exemple, pour le profondeur N = 1 : il y a 72 solutions possibles

- Pour le profondeur N = 2 : il y a 72*72 = 5184 solutions possibles

- Pour le profondeur n = 3 : il y a 72*72*72 = 373248 solutions possibles

On peut voir que le nombre de solutions est de taille spectaculaire On peut essayer de prendre lenombre moyen de carrés pour chaque pièce sur l’échiquier :

Nmoyen = 81 / 19 = 4 carrés

On considère que, pour chaque mouvement d’un adversaire, on a environ (9 pièces + 1 ballon)*4 = 40carrés Cela veut dire que l’on peut choisir un des 40 solutions possibles Autrement dit, pour l’arbre dejeu, le nombre de branches est environ de 40

Dans le cas ó on utilise le nombre moyen de 40 solutions possibles pour chaque mouvement, alors, on

a le nombre de calcul N = (40)N Pour éviter le phénomène d’explosion combinatoire, on peut seulementchercher les solutions pour quelques premiers niveaux de profondeur de l’arbre du jeu car les appareilsportables ont besoin de long temps pour trouver une solution positive

Devant ces difficultés, on doit chercher les approches qui sont les meilleures pour le calcul de plusieurstypes d’appareils Dans les parties suivantes, on va discuter des solutions pour diminuer l’espace derecherche et des tactiques de jouer pour le noyau IA

Trang 29

Chapitre 3 Solutions proposées

Dans le paragraphe de spécifications des exigences non-fonctionnelles, les demandes présentées duprojet de la réalité sont très serrées :

- le temps de réponse n’est pas trop long (plus c’est rapide mieux c’est) ;

- le programme peut bien fonctionner sur plusieurs types d’appareils portables ;

- l’intelligence n’est pas très forte et aussi n’est pas très stupide

On sait que toutes les exigences fonctionnelles doivent évidemment être satisfaites Mais les exigencesnon-fonctionnelles sont vraiment les facteurs les plus importants qui influencent directement lefonctionnement du programme et en fait les choix de solutions On ne peut pas toujours chercher unesolution absolue car dans la plupart de cas, il fait beaucoup de temps de traitement et perd aussibeaucoup de performance et de ressources Notamment pour les téléphones portables de générationsprécédentes (qui ont moins de l’espace de stockage et de mémoire vive), la considération de cesdemandes va faire que le jeu peut être exécuté ou non Alors, en face des difficultés réelles, on doitproposer des applications de l’algorithme Alpha-Beta et des tactiques de football (pour diminuer l’espace

de recherche) et optimiser l’équation d’évaluation (pour augmenter l’efficacité de calcul) qui vont êtreprésentées aux suivants

Trang 30

On a abordé la difficulté de calcul dans la partie précédente et pour ce jeu, pour chaque mouvement, onpeut calculer environ des milliers fois de l’équation heuristique Si on illustre le jeu par un arbre dedécision, alors, on a un l’arbre en général comme celui ci-dessous Mais le facteur de branchementmaintenant n’est pas de 3 comme l’arbre ci-dessous, on doit imaginer d’un arbre de 40 branches pourchaque niveau de profondeur (il faut faire attention que le premier mouvement a maximum de 25 sous-branches car la règle de l’initiation, pour les mouvements suivants, chaque nœud a maximum de 40 desous-branches – le nombre moyen de solutions):

Figure 3-1 Elagage Alpha-Beta [14]

L’arbre de positions se compose de 2 composants : la racince et les nœuds Un nœud dans notre arbreest une position du tablier d’un match Autrement dit, un nœud est un etat actuel du jeu pendant unmatch particulier En fait, la racine est un nœud special : le nœud d’initation Pour representer l’arbre depositions, on propose la structure d’un nœud JingciNode qui se compose des attributs :

- La liste des pieces

- La matrice de positions des pieces sur le tablier

- La matrice de couleurs des pieces pour distinguer des pieces (numero, couleur de chaque piece)

- L’etat de jeu :

o Le tour du jeux

o Le ballon est blocqué ou non

o L’equipe noir a utilisé le droit Bound ou non

o L’equipe blanc a utilisé le droit Bound ou non

o L’equipe noir a utilisé le droid Pass ou non o

L’equipe blanc a utilisé le droid Pass ou non

Trang 31

o Est-ce que on a executé un mouvement répetitif

Chaque attribut a un rôle particulier et son importance différente pour calculer l’heuristique d’unmouvement On doit utiliser ces attributs de façon flexible pour que le calcul de l’heuristique pourchaque mouvement ne soit pas très complexe et soit assez efficace

Pour examiner l’arbre de positions, si on utilise l’algorithme Minimax, on doit calculer et comparer tousses nœuds Ce fait rend un gros problème de la performance du programme car notre arbre est vraimenténorme On doit chercher un autre algorithme qui nous permet de couper intensément les branchesinutiles Dans le cas de Jingci, on choisit l’algorithme Alpha-Beta qui a deux seuils alpha et beta Cesseuils sont mis à jour pour chaque fois quand on calcule l’heuristique d’un mouvement

Pour faciliter comprendre le mécanisme de l’Alpha-Beta, on va analyser le sous arbre de A ci-dessus :

Figure 3-2 Exemple de la coupure Alpha [14]

On voit que le nœud A est du type MAX (cela veut dire que l’on va choisir la valeur du nœud ayant lavaleur maximum parmi ses fils (B et C) Pour le nœud B (du type MIN), on va choisir la valeur minimumparmi ses fils (c’est de 5) Pour le nœud C (du type MIN), on va choisir la valeur minimum parmi ses fils(D, E, F) Sachant que l’on a examiné tous les nœuds A, B, C, D, E et la valeur de B(5) > C(4) > E(4) Alors,

on est sûr que l’on n’a pas besoin d’examiner le nœud F car :

- On va choisir A par la valeur maximum entre B et C

- Pour choisir C, on va choisir la valeur minimum parmi D, E, F, même si on ne sait pas F, on sure que F <= E (F <=4) 

C <= F <= 4

A cause de ces deux conditions, on voit que la valeur de A est la maximum de deux nœuds B(5) et C(<=4)

 A = B = 5 mais on ne doit pas examiner le F (et sous arbre de F s’il existe).

C’est l’exemple simple pour un petit arbre, pour un grand arbre de positions d’un jeu d’échecs, le nombredes nœuds inutiles comme le nœud F ne sont vraiment pas petit Le mécanisme de la coupure Beta estpresque pareil, mais pour appliquer calculer pour les nœuds du type MIN

En appliquant l’élagage Alpha-Beta, on peut diminuer efficacement l’espace de recherche Comme dansl’image illustrée [11] (figure 15 ci-dessus), les branches de l’arbre sont coupés car l’évaluation de cesbranches n’est pas nécessaire En réalité, pour notre arbre de positions pour un jeu d’échecs comme

28

Trang 32

Jingci, chaque niveau de profondeur peut avoir environ 40 sous arbres Alors l’élagage Alpha-Beta est une solution efficace pour éviter d’examiner l’arbre d’entier.

2 Equation d’évaluation

D’un autre côté, on doit considérer aussi de l’heuristique d’un mouvement – d’une position du jeu Cardans le processus de réflexion de ordinateur, on doit parcourir toutes les solutions possibles, alors, lafonction d’évaluation pour calculer l’heuristique (qui peut bien séparer la meilleure solution des autres)est plus simple, la meilleure Dans le domaine de la programmation de jeux d’échecs, on a des facteurspour évaluer une solution, par exemple de la position des pièces, des poids des pièces ou des piècesexistants encore sur le tableau du jeu (dans quelques jeux on peut tirer les pièces de l’adversaire et celuiqui a plus de pièces que l’autre, a l’avantage) Par exemple, pour le jeu d’échecs, le poids de roi est plusgrand que de la dame (qui est plus grand que du fou, du tour, du cavalier et du pion) Le jeu Jingci n’a pas

de règles qui permettent à l’utilisateur de tirer les pièces de l’adversaire alors, pour notre jeu, on peutanalyser ses caractéristiques pour que l’on puisse choisir entre eux les meilleurs facteurs qui peuventnous aider à évaluer le mouvement

Les facteurs qui peuvent influencer l’évaluation du jeu seraient :

- La distance entre les pièces Joueurs et le ballon

- La distance entre les gardiens de goal et le ballon

- La distance entre le ballon et le goal

- Les droits possibles (le PASS et le BOUND)

Figure 3-3 Facteurs d’évaluation d’une position de jeu

Pour calculer l’heuristique pour une position, on considère que le noyau IA et l’équipe Noir, l’adversaire est l’équipe Blanc et on définit les facteurs précises :

Ngày đăng: 30/10/2020, 21:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w