Le Jeu L`âne Rouge Algorithme Parcours en profondeur Intelligence
Transcription
Le Jeu L`âne Rouge Algorithme Parcours en profondeur Intelligence
Le Jeu L’âne Rouge Algorithme Parcours en profondeur Intelligence artificielle Groupe de travail : Soufiane AJDDIG Marouane EL HALLAOUI Issam SEGAOUI Mohammed TOUILI Mohammed TOUKRICHT Issam KHALIL Florant NICHIMWI Sommaire I- A propos .......................................................................................................................................... 2 II- Différents types de jeux .................................................................................................................. 3 III- Description de L’ANE ROUGE et algorithme de recherche en profondeur : ................................... 3 1- Introduction : ........................................................................................................................... 3 2- Algorithme de recherche en profondeur : .............................................................................. 4 IV- Réalisation de l’application : ........................................................................................................... 5 i. En utilisant le langage JavaScript ES6 .......................................................................................... 5 1- présentation du langage :........................................................................................................ 5 2- Outils utilisés : ......................................................................................................................... 5 3- Propriété de réalisation : ......................................................................................................... 6 4- Démonstration : ...................................................................................................................... 6 ii. V- En utilisant le langage JAVA......................................................................................................... 7 1- Présentation du langage.......................................................................................................... 7 2- Outils utilisés : ......................................................................................................................... 7 3- Réalisation : ............................................................................................................................. 7 4- Demonstration : ...................................................................................................................... 8 Conclusion ....................................................................................................................................... 9 I- A propos Intelligence artificielle : Partie de l'informatique qui a pour but la simulation de facultés cognitives afin de suppléer l'être humain pour assurer des fonctions dont on convient, dans un contexte donné, qu'elles requièrent de l'intelligence. Langages : Lisp, Prolog. => Reconnaissance de formes et de la parole, simulation, jeu, conduite de robots, apprentissage. L'intelligence artificielle (IA) comprend plusieurs domaines : le dialogue automatique : se faire comprendre d'un ordinateur en lui parlant ; la traduction automatique, si possible en temps réel ou très légèrement différé ; le traitement automatique des langues ; le raisonnement automatique (systèmes experts) ; l'apprentissage automatique ; la reconnaissance de formes, des visages et la vision en général ; l'intégration automatique d'informations provenant de sources hétérogènes l'aide aux diagnostics ; l'aide à la décision ; la résolution de problèmes complexes, tels que les problèmes d'allocation de ressources. l'assistance par des machines dans les tâches dangereuses, ou demandant une grande précision. L'intelligence artificielle est utilisée (ou intervient) dans une variété de domaines tels que : la banque, avec des systèmes experts d'évaluation de risque lié à l'octroi d'un crédit le militaire, avec les systèmes autonomes tels que les drones ; les jeux, domaine qui va plus particulièrement nous intéresser ici ; la médecine, avec les systèmes experts d'aide au diagnostic ; II- Différents types de jeux Un jeu est un terrain d'expérimentation idéal pour l'intelligence artificielle (IA). Les règles simples et peu nombreuses, les situations bien définies modélisent un mode simplifié mais quand même intéressant. Les jeux bien connu « Les Sim's » en est un bon exemple. Pour l'ordinateur, les choix sont réduits, les configurations faciles à analyser, les conséquences des choix sont calculables. Pensons à des jeux comme les échecs, les dames, mais aussi des jeux où le hasard intervient comme le backgammon, le poker, où l'ordinateur aura à calculer des probabilités. Le terme d' « intelligence artificielle » est très pompeux. Certains parlent en ce domaine de force brute et non pas d'intelligence artificielle. On verra en effet qu'il s'agira uniquement de calculs et d'exploration d'arbre de jeu. Il est vrai que l'ordinateur donne l'impression d'une certaine intelligence1 quand il joue contre un humain. L'auteur se souvient encore du choc qu'il a ressenti quand, dans les années 80, il a joué (et perdu) pour la première fois aux échecs contre une machine. Comment cet objet sans vie faisait-il ? C'est ce que nous allons étudier dans ce chapitre. III- Description de L’ANE ROUGE et algorithme de recherche en profondeur : 1- Introduction : L'âne rouge est un jeu où il faut faire coulisser des pièces de différentes formes. Il y a 4 types de pièces : 4 petits carrés 1 rectangle horizontal 4 rectangles verticaux 1 grand carré : c'est l'âne rouge Il y a 2 emplacements vides, correspondant à la surface de 2 petits carrés. Règle : Il s'agit de faire sortir l'âne rouge par le bas, au centre du plateau : Il peut arriver que 2 déplacements soient possibles. Dans ce cas, la case d'arrivée sera indiquée. Elle dépendra de la position du curseur sur la pièce. Plusieurs positions de départ sont proposées, classées par ordre de difficulté. Certaines sont des variantes de l'âne rouge. S'il y a bien 5 rectangles, la répartition horizontal/vertical est différente. Records : Si vous jouez en étant connecté, votre record de nombre de coups pour chaque position de départ est enregistré automatiquement. 2- Algorithme de recherche en profondeur : Construction de l'arbre ``en profondeur'', et recherche de la première solution ayant moins de K transitions. Schéma d'appel de l'algorithme: cherche(E_0,{E_0},K) fonctioncherche(E_i, Deja_vus, N) retourne un booleen -- cherche(Ei,Deja_vus,N) = vrai -- s'il existe une solution a (S,E_i,F,T) en moins de N transitions. -- Deja_vus est l'ensemble des etats par lesquels on est passe pour aller de E_0 a E_i. debut si E_i est un etat final de F alors retourner vrai finsi si N=0 alorsretourner faux finsi Pour tout couple (A_j,E_j) faisant partie de T(E_i) et tel queE_j n'appartienne pas a Deja_vus faire si cherche(E_j, Deja_vus U {E_j},N-1)=vrai alors afficher(A_j,E_j) retourner vrai finsi finpour retourner faux fin IV- Réalisation de l’application : Deux solutions : i. En utilisant le langage JavaScript ES6 1- présentation du langage : JavaScript est un langage de programmation de scripts principalement employé dans les pages web interactives mais aussi pour les serveurs3. C’est un langage orienté objet à prototype, c’est-à-dire que les bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des instances de classes, mais qui sont chacun équipés de constructeurs permettant de créer leurs propriétés, et notamment une propriété de prototypage qui permet d’en créer des objets héritiers personnalisés. En outre, les fonctions sont des objets de première classe. Ce langage, créé en 1995 par Brendan Eich, est actuellement à la version 1.8.2. C'est une implémentation de la troisième version de la norme ECMA-262 qui intègre également des éléments inspirés du langage Python. La version 1.8.5 du langage est prévue pour intégrer la cinquième version du standard ECMA4. 2- Outils utilisés : Editeur SUBLIMTEXT : Sublime Text est un éditeur de texte générique codé en C++ et Python, disponible sur Windows, Mac et Linux. Le logiciel a été conçu tout d'abord comme une extension pour Vim, riche en fonctionnalités1. Depuis la version 2.0, sortie le 26 juin 20122, l'éditeur prend en charge 44 langages de programmation majeurs, tandis que des plugins sont souvent disponibles pour les langages plus rares. 3- Propriété de réalisation : Block & Move : contiennent des entités de stockage de variables GamePuzzel : Recupere l’etat des composants du jeu et contrôle les entités GameSolver : Il s’occupe du traitement et de la resolution du jeu en utilisant un algorithme de recherche en profondeur. 4- Démonstration : Etat de départ avant le commencement de la procédure de résolution : Etat final : L’algorithme de recherche a pu résoudre le problème en trouvant un issu a l’extérieur pour la carré principal. ii. En utilisant le langage JAVA 1- Présentation du langage Le langage Java est un langage de programmation informatique orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le 23 mai 1995 au SunWorld. La société Sun a été ensuite rachetée en 2009 par la société Oracle qui détient et maintient désormais Java. La particularité et l'objectif central de Java est que les logiciels écrits dans ce langage doivent être très facilement portables sur plusieurs systèmes d’exploitation tels que UNIX, Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications. Pour cela, divers plateformes et frameworks associés visent à guider, sinon garantir, cette portabilité des applications développées en Java. 2- Outils utilisés : IDE Eclipse : C’est un éditeur de java. 3- Réalisation : Block & Move : contiennent des entités de stockage de variables GamePuzzel : Recupere l’etat des composants du jeu et contrôle les entités GameSolver : Il s’occupe du traitement et de la resolution du jeu en utilisant un algorithme de recherche en profondeur. Fenetre : Assure la partie vue puisque c’est la combinaison des composant destinés a l’utilisateur. 4- Demonstration : Normalement dans ce cas en se situe devant 12 etapes, et on a choisi comme etat initiale celle en dessous. L’etat initiale : 7 L’etat finale V- Conclusion Malgré le niveau de devemloppement du domaine informatique, que, l’intelligence artificielle est un outil indisponsable pour que l’informatique aie plus de credibilité et raisons d’existence, ses outils qui assure la resolution des problemes les plus complexes au cerveau humain, restent solevables en s’appuyant sur l’experience des autres.