glsid 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/rapport-projet-aner... · étapes...
TRANSCRIPT
Département Mathématiques et Informatique
Cycle Ingénieur «Génie du Logiciel et des Systèmes Informatiques Distribués»
GLSID 2
Année universitaire : 2015 - 2016
Université Hassan II de Casablanca Ecole Normale Supérieure de l’Enseignement Technique
ENSET - Mohammedia
Analyse, conception et développement du jeu ‘‘l’Ane
rouge’’ en java
Réalisé par :
AGRRAM Brahim SALHAOUI ABDLEMONAIM
BEROUAIN NAOUFAL YOUSFI SOUFIANE
OUAHIDI Hicham Année universitaire : 2015-2016
ENSET Av. Hassan II - B.P. 159 - Mohammedia - Maroc
0523322220/0523323530 Fax: 0523322546 Site Web: www.enset-media.ac.ma E-mail:[email protected]
Introduction
Dans le cadre de notre formation en Génie du Logiciel et des Systèmes Informatiques
Distribués (GLSID) à l’Ecole Normale Supérieure de l’Enseignement Technique (ENSET)
de Mohammedia nous étudions un module intitulé "Intelligence Artificiel" qui est
souvent abrégé par le sigle « IA », ce module porte sur une science qui date d'une
trentaine d'années, elle consiste à construire à l'aide des moyens artificiels (machines
et ordinateurs) des raisonnements et des actions intelligentes.
Afin de concrétiser nos acquis nous sommes amenés à réaliser des projets portent sur
des algorithmes de l’IA, ce rapport traitera un projet qui permet de réaliser des
déductions intelligentes toutes en résoudront un problème posé sous forme une
énigme en sous basent sur un ensemble de données variables.
La première partie contiendra une description brève de quelques concepts de base de
l’intelligence artificielle.
La deuxième partie du rapport sera réservée pour la présentation du langage Lisp et
l’environnement de développement utilisée. La dernière partie présentera en détail les
étapes de réalisation du projet, notamment le travail demandé, la solution proposée
et les résultats obtenus.
Sommaire Introduction ....................................................................................................... 2
Chapitre 1 : Présentation & analyse du projet .................................................... 4
L’intelligence artificielle .................................................................................. 5
Problématique ................................................................................................ 6
Principe du jeu ................................................................................................ 6
Chapitre 2 : Outils & Environnement de travail .................................................. 7
Le langage LISP ................................................................................................ 8
Outil de développement : CLISP ...................................................................... 9
Chapitre 3 : Mise en œuvre .............................................................................. 11
Architecture du projet : ................................................................................. 12
L’interface Du jeu : ........................................................................................ 13
Conclusion ........................................................................................................ 15
Chapitre 1 :
Présentation & analyse du projet
Ce chapitre présente une phase indispensable pour l’étude et l’analyse de notre solution. C’est
grâce à cette phase nous avons pu mettre le doigt sur la problématique, et nous avons pu
présenter le principe du jeu, mais avant de présenter ces deux axes, nous aimerons de vous
présenter d’abord l’histoire de l’intelligence artificielle, et comment cette séance a pu
résoudre une multitude de problèmes.
L’intelligence artificielle
Le terme « Intelligence Artificielle » est né en août 1956 lors d'un congrès à l'université de
Dartmouth (ville de Hanover, état du New Hampshire, USA). Une communauté d'été réuni un
groupe de jeunes chercheurs doués d'un projet exaltant : celui de fonder un nouvel
enseignement scientifique: l'Intelligence Artificielle. Sont présents, à cette conférence, le
mathématicien John MC Carthy, inventeur du terme IA, Herbert A. Simon, théoricien des
organisations et futur prix Nobel d'économie, ainsi que les mathématiciens Allen Newel et
Marvin Minsky ; et Claude Shannon, le père de la théorie de l'information.
Dans les années 1950, naissent les premiers programmes d’Intelligence Artificielle
1956 : "Logic Theorist", un programme de démonstration de théorèmes fondé sur une
recherche sélective, de Newell et Simon
1959 : Programme de jeu de dames d’A.Samuel
1959 : GTP (Système de démonstration de théorèmes géométriques) de Gelernter:
programme qui, à partir du théorème à démontrer, remonte par des raisonnements
intermédiaires à des théorèmes ou des axiomes connus (proposition évidente en soi)
Dans cette continuité, au cours des années 1960, les scientifiques ont développé un
Certain nombre de programmes capables de résoudre des problèmes d'algèbre, de prévoir la
structure des composés de produits chimiques ainsi que de prouver des théorèmes de la
géométrie.
Les années 1980 marquent un changement important dans l'utilisation de l'IA. En effet, alors
que les applications pratiques de l'IA étaient limitées, elles deviennent rapidement très utiles
dans les entreprises : analyse de rayons X, réparation d'autres systèmes experts…, En outre,
le terme apparaît de plus en plus souvent dans le vocabulaire du grand public.
Au début de la décennie suivante, on observe la généralisation des ordinateurs de bureau, des
réseaux de télécommunications et des matériels incorporant de plus en plus de solutions IA
liées à des besoins. De nouvelles techniques de programmation ont évolué ou se sont
développées grâce à l'IA. Le but étant de simuler l'intelligence, certains programmes
s'inspirent du fonctionnement des neurones dans le cerveau humain.
Problématique
L’IA est notamment reconnu par sa forte aptitude à la résolution des problématiques
complexes, dont l’univers pouvait être arbitrairement réduit et simplifié par des
algorithmes intelligeant.
Alors dans notre cas, on va se baser sur l’IA pour savoir Comment on va amener l'âne,
représenté par le grand carré rouge, en bas du plateau par glissements successifs des
éléments. La grille est constituée uniquement de petits carrés, de rectangles, et de
l'âne.
Principe du jeu
L'Âne Rouge est un jeu solitaire formé d'un plateau et de 10 planchettes représentant
un grand carré, cinq rectangles congruents dont l'aire vaut la moitié de celle du carré,
et quatre petits carrés congruents qui ont ensemble la même aire que le grand carré.
On déplace les pièces comme au taquin en les faisant glisser dans les espaces libres
sans franchir la bordure du plateau. Le but est de faire glisser la grande pièce carrée
pour qu'elle se retrouve près de l'ouverture placée à l'autre extrémité.
Chapitre 2 :
Outils & Environnement de travail
Dés de que nous n’avons pas encore acquis un grand savoir sur cette science, nous avons essayé la
première fois de développer notre solution en se basent sur le langage LISP, mais lorsque nous avons
affronté une multitude d’obstacles, nous avons émigrer vers le langage JAVA où nous savons bien
comment interagir avec les bugs.
Alors dans ce chapitre nous allons présenter les différents outils utilisés durant notre parcours de
développement :
Le langage LISP
LISP est un des plus anciens langages de programmation : ses premières implémentations ont
vu le jour à la fin des années 60, quelques années seulement après FORTRAN.
LISP a été conçu par John McCarthy pour le traitement d’expressions symboliques. Dès son
origine, il a été utilisé pour écrire des programmes de calcul symbolique différentiel et intégral,
de théorie des circuits électriques, de logique mathématique et de la programmation de jeux.
LISP est également un des langages de programmation les plus répandus : il existe
pratiquement sur tous les ordinateurs, de toute taille et de toute origine. LISP est un des
langages de programmation les plus vivants. Le nombre étonnant de versions différentes,
telles que MACLISP, INTERLISP, Common-LISP, VLISP, LE_LISP, etc, en témoigne. De plus,
signalons l’apparition de machines utilisant une architecture spécialement conçue pour
l’implémentation de LISP, par exemple les ordinateurs de Symbolics ou de la LISP-Machine
Company, ou l’ordinateur Maia, actuellement en développement à la CGE.
En LISP, de même que dans les langages-machine, la représentation des données et la
représentation des programmes sont identiques : ainsi un programme LISP peut construire
d’autres programmes LISP ou se modifier au fur et à mesure.
Outil de développement : CLISP
Common Lisp est un dialecte de Lisp standardisé par l'ANSI X3.226-1994. Développé
pour standardiser les variantes divergentes de Lisp qui l'ont précédé, ce n'est pas une
implémentation mais une spécification à laquelle les implémentations Lisp essayent de
se conformer.
Il est fréquemment abrégé en CL. Common Lisp est un langage de programmation à
usage général, a contrario de dialectes de Lisp comme Emacs Lisp et AutoLisp, qui sont
des langages d'extension embarqués dans des produits particuliers. Contrairement à
de nombreux Lisp plus anciens, mais comme Scheme, Common Lisp utilise la portée
lexicale par défaut pour les variables.
Common Lisp est un langage de programmation multi-paradigmes qui :
Accepte des techniques de programmation impérative, fonctionnelle et
orientée objet (CLOS).
Est typé dynamiquement, mais avec des déclarations de type optionnelles qui
peuvent améliorer l'efficacité et la sûreté,
Dispose d'un système de gestion d'exceptions puissant, nommé Condition
System (système de gestion de conditions),
Est syntaxiquement extensible à travers des fonctionnalités comme les macros
et les macros de lecture
JAVA :
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 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.
Chapitre 3 :
Mise en œuvre
Dans ce chapitre, on va traiter l’architecture du projet ainsi que la démonstration du
jeu exécuté sous le logiciel ECLIPSE.
Architecture du projet :
La structure du projet est définie comme suivant :
Après avoir exécuté l’algorithme de recherche, un fichier Texte est généré contient les
mouvements possible du jeu.
L’interface Du jeu :
-En appuyant sur le bouton Start, l’interface va interpréter le fichier texte qui décrit les
différents mouvements
-Après un bout de temps, L’algorithme trouve la solution et affiche une fenêtre
« GAME IS OVER »
Conclusion
Pour pouvoir réaliser ce travail nous avons dû apprendre un nouveau langage de
programmation, Lisp qui est un langage très fort dans le traitement des listes est
capable de déployer des algorithmes et des programmes de l’intelligence artificielle
malgré qu’on a échoué et qu’on n’a pas pu concrétiser le projet avec lisp Ce projet
nous a permis de concrétiser nos acquis en termes de l’IA et nous a donné l’opportunité
pour réaliser un travail concret, malgré les difficultés que nous avons rencontré qui
sont plutôt liés aux syntaxes du langage Lisp qu’aux principes de l’IA. Finalement nous
avons pu atteindre l’objectif et obtenir le résultat recherché.