Home

Modélisation d`un outil graphique d`aide à la compréhension de

image

Contents

1. 19 2 2 Description des g n rateurs d arbres de d rivation Comme mentionn pr c demment en faisant quelques recherches approfondies nous avons trouv quelques applications qui g n rent des arbres de d rivation pour diff rentes raisons Nous avons pu faire le tour de ces applications de leurs conceptions et explorer leurs avantages et inconv nients Nous avons conclu qu en conservant les aspects positifs de chacune d elles et en les fusionnant nous pouvons proposer une application int ressante pour notre contexte Une premi re application permettant la g n ration automatique d arbres de d rivation a vu le jour l an 2000 avec le d veloppement d une plateforme g n rale de LTAG Lexicalized Tree Adjoinning Grammar 27 C est un ensemble d outils de manipulation graphique de grammaires d arbres adjoints d velopp par Patrice Lopez un chercheur du centre allemand de recherche en intelligence artificielle German Research Center for Artificial Intelligence DFKI Cet outil est totalement cod en JAVA ce qui lui offre une assez grande portabilit et une int ressante r utilisabilit de ses propri t s L encodage des ressources et des r sultats se font avec le formalisme le plus portable XML Pour ce qui est du c t graphique Lopez a choisi de se baser sur un diteur g n ral d arbres d velopp par la soci t Francaise Thomson CSF maintenant connue sous le nom de Thales Lopez a
2. Colmerauer An introduction to Prolog Ill ii communications of the ACM July 1990 35 P Gloor AACE Algorithm Animation for Computer Science Education IEEE Workshop on Visual Languages 1992 36 M Procopiuc O Procopiuc et S Rodger Visualizationand Interaction in the Computer Science Formal Languages Course with JFLAP Frontiers in Education Conference Salt Lake City Utah 1996 37 P Bonhomme et P Lopez TagML XML encoding of resources for lexicalized tree adjoining grammars In Proceedings of LREC 2000 Athens 2000 38 P Lopez LTAG workbench A general framework for LTAG In Proceedings of the International Workshop on Tree Adjoining Grammars and Related Formalisms TAG 5 Paris May 2000 39 A Boyd M Dickinson et D Meurers Increasing the recall of corpus annotation error detection In Proceedings of the Sixth Workshop on Treebanks and Linguistic Theories Bergen Norway 2007 57 40 A K Joshi et Y Schabes Tree adjoining grammars Handbook of Formal Languages Volume 3 Beyond Words Springer New York 1997 41 J Hernandez Orallo and D L Dowe Measuring Universal Intelligence Towards an Anytime Intelligence Test Artificial Intelligence Journal 174 2010 42 TPE l intelligence artificielle 05 jan 2013 https sites google com site tpelintelligenceartificielle la reconnaissance facial 43 E Albert M Hanus F Huch J Oliver et G Vidal Operational Semantics for Declarative M
3. Diagramme de classe du prototype Chaque classe est d finie distinctement garce ces attributs et fonctions qui lui sont propres Arbre Cette classe repr sente un arbre de d rivation repr sent par un rang une racine et une listeDeNoeuds Le Rang entier permet de connaitre l tape d ex cution dans l arbre Il aura la valeur 0 au d but de n importe quelle ex cution et la valeur maximum quand l arbre atteint le r sultat final La racine Qui est un pointeur sur une instance de la classe Noeud repr sente quant elle le point de d part de l arbre La liste de noeuds Liste d entiers contient tous les noeuds composants l arbre courant Noeud La classe N ud est directement li e la classe Arbre qui est une composition de noeuds Les champs repr sentants cette classe sont valeur soit ce que va contenir le noeud dans une chaine de caract res Information des informations textuelles qui d crivent le n ud et voisins une liste d objets de type de noeud contenant le ou les noeuds avoisinant le noeud en question 36 Fonction Cette classe repr sente une fonction qui sera ex cut e pendant le traitement Elle est d crite par deux champs nom le nom de la fonction sous forme d une chaine de caract res et nombreParm le nombre de param tres qu elle utilise pour s ex cuter donc un entier Param tre C est la classe qui repr sente les param tres utilis s pour l
4. re l arbre final repr sentant la trace compl te Cependant nous gardons en m moire tous les sous arbres g n r s car ensemble ils repr sentent une trace compl te de la construction de l arbre final En donnant la possibilit l utilisateur de les parcourir il pourra suivre pas pas la logique derri re le r sultat de l ex cution Les donn es de la trace et les arbres g n r s sont ensuite tous envoy s au module d affichage Ce module commence par afficher sous forme de tableau une liste ordonn e des fonctions utilis es et de leurs param tres pour la r solution de la question pos e au programme Prolog Puis la demande de l utilisateur il affiche le sous arbre initial Il laisse la main pour offrir la possibilit d afficher un un les sous arbres suivants jusqu au dernier Les fichiers XML g n r s au d but du traitement sont gard s dans la m moire interne du prototype Leur sauvegarde est tr s utile pour la suite du traitement car elle facilite la gestion des donn es en plus de d offrir une possibilit de r utilisation assez efficace Un exemple de la structure de ces fichiers est pr sent dans la figure 11 42 lt xml version 1 0 encoding UTF 8 gt lt Trace_Exercice_3 gt lt Noeud gt lt fonction gt Call lt fonction gt 4 lt numero gt 6 lt numero gt 2 lt proc gt grandpere lt proc gt 3 lt parami gt _G2000 lt parami gt 4 lt param2 gt miguel lt param2 gt 5 lt param3
5. rence dans le domaine de la s curit Elle remplace les cl s des maisons et les codes num riques dans les t l phones portables coffres forts et ordinateurs Reconnaissance de l criture La reconnaissance de texte est moins en vue que celui de la reconnaissance vocale ou d imagerie Cependant elle est en train de devenir le moyen le plus important dans la num risation des uvres manuscrites Il s agit ici d un processus d intelligence artificielle plus complexe car interagissant avec des l ments r els c est dire que ce n est pas une simple image ou une s quence vocale qui est trait e mais du texte avec des lettres distinctes et des mots diff rents L aspect s mantique est prendre en compte Par exemple les nouveaux t l phones intelligents sont dot s de fonctionnalit s permettant de reconnaitre traduire et sauvegarder du texte rien qu en pointant la cam ra de l appareil sur ce texte gt Aide la d cision les jeux Le domaine d aide la d cision est celui qui est le plus utilis dans le monde professionnel et le monde de la recherche et optimisation parmi toutes les autres fili res de l intelligence artificielle H couvre de multiples domaines de recherche comme notamment les agents adaptatifs et les agents d cisionnels l apprentissage et la fouille de donn es l optimisation et la r solution de probl mes les bases de donn es intelligentes le traitement d informati
6. Prolog Edition TECHNIP 1992 53 G Palski La naissance de la democartographie analyse historique et semiologique Universit de Paris 1 54 J C Pouget Pr sentation du langage objets Java Mission au Cemagref Lyon 1998 58 55 C Baral et M Gelfond Logic programming and knowledge representation Journal of Logic Programming Vol 19 1994 56 M Alpuente F J Correa M Falaschi A Debugging Scheme for Functional Logic Programs Electronic Notes in Theoretical Computer Science vol 64 2002 57 P Blackburn J Bos et K Streignitz PROLOG tout de suite College Publications ao t 2007 58 J Legrand Le langage Prolog Exemples en Turbo Prolog Edition Technip 1992 59 Wikip dia Wikip dia 1 Histoire de l intelligence artificielle 12 mars 2013 http fr Wikip dia org wiki Histoire de l intelligence artificielle Wikip dia 2 Intelligence artificielle 12 mars 2013 http fr Wikip dia org wiki Intelligence artificielle Wikip dia 3 Diagramme tats transition 12 mars 2013 http fr wikipedia org wiki Diagramme C3 AQ9tats transitions Wikip dia 4 Diagramme des paquetages 12 mars 2013 http fr wikipedia org wiki Diagramme des paquetages Wikip dia 5 Diagramme de classes 12 mars 2013 http fr Wikip dia org wiki Diagramme de classes Wikip dia 6 Diagramme de cas d utilisation 12 mars 2013 http fr Wikip dia org wiki Diagramme des cas d utilisation 60
7. agr able utiliser Le mod le permet d offrir l utilisateur une interface assez fiable et tr s facile utiliser grace un nombre d l ments r duits mais efficaces Cette efficacit est bas e sur des boutons qui d crivent bien leurs fonctionnalit s des sections bien d finies et une structure assez claire des composantes de l interface La disposition de l interface fait en sorte de mettre en valeur le r sultat principal de l application l arborescence et offre une grande facilit interagir avec ce dernier une liste d tapes parcourus accompagne l arborescence ainsi son utilisateur peut suivre pas pas le d roulement de l ex cution Tous ces outils font que notre application envisag e soit id al pour faciliter la compr hension de l utilisateur Un deuxi me avantage qu offre notre mod le consiste en la persistance des donn es En effet notre mod le garde en m moire les arbres de d rivation g n r s dans le pass par l utilisateur lui permettant de pouvoir les consulter quand il le souhaite Ainsi il n aura pas besoin de redonner en entr e une trace d j ex cut e dans le pass afin de voir le r sultat Un autre avantage est que en g n rant un fichier XML partir de la trace texte fournie par l utilisateur et en sauvegardent une copie de ce dernier en m moire notre mod le offre l utilisateur l acc s ce fichier pour d ventuelles autres utilisations La structuration des donn es sous form
8. anciennes traces Ces derni res g n r es pr c demment ont t stock es dans une base de donn es et accessibles par les noms de fichier source Lorsque la premi re option est choisie l arbre de d rivation est g n r automatiquement et rendue accessible l affichage Une fois que l affichage d un arbre de d rivation est disponible que ce soit par l entr e d une nouvelle trace ou la s lection d une ancienne trace l utilisateur a la possibilit d interagir avec cette arborescence en parcourant les diff rentes tapes de la g n ration de l arbre ou en s lectionnant un des noeuds Bien s r la s lection d un noeud en particulier implique l affichage des informations concernant ce noeud Nous donnons en suivant la description des sept cas d utilisation identifi s soit en sp cifiant les acteurs les v nements les pr conditions et les post conditions de chacun des cas Cas d utilisation 1 Entrer une trace pour g n rer un arbre de d rivation Acteur Utilisateur v nement d clencheur Bouton Traiter appuy ou cliqu Pr conditions e Nom du fichier contenant la trace analyser e Nom du fichier pour sauvegarder la structure arborescente Post conditions Trace transform e en structure arborescente 31 Cas d utilisation 2 Dessiner l arbre extraire le r sultat Acteur Syst me v nement d clencheur Bouton Affichage de l arbre appuy Pr conditions T
9. clairement d finie comme concept Or l intelligence artificielle revient dans un sens d finir l intelligence en soit Voici quelques d finitions propos es par diff rentes personnes dans le domaine informatique e Le domaine de la science et de l ing nierie qui traite de la compr hension l aide de l ordinateur de ce qui est appel couramment le comportement intelligent et de la cr ation de syst mes artificiels qui reproduisent ces comportements 3 e Une branche de l informatique qui concerne l automatisation du comportement intelligent 4 e la recherche de moyens susceptibles de permettre une machine d ex cuter des fonctions normalement associ es l intelligence humaine compr hension raisonnement dialogue adaptation apprentissage 5 e recherche de moyens susceptibles de doter les syst mes informatiques de capacit s intellectuelles comparables celles des tres humains Wikip dia 2 Apr s avoir compl t notre recherche nous formulons notre propre d finition qui nous a guid tout au long de notre projet de recherche L intelligence artificielle peut tre pergue comme l automatisation du comportement humain travers la programmation logique une tentative de doter les machines d une capacit d apprentissage et d une facult de raisonnement logique et non pr tablie autrement dit la possibilit de r agir intelligemment ou par exp rience Nous avons choisi cet
10. d rivation peut fournir un ou plusieurs r sultats en sortie d pendamment des donn es du programme alors qu un r sultat ne peut correspondre qu un seul arbre dans une m me ex cution de l application EtapeEx cution 1 1 N ud 1 1 Une tape d ex cution est repr sent e par un n ud dans l arbre donc chaque tape d ex cution correspond un n ud et vice versa EtapeEx cution 1 1 R sultat 1 Une tape d ex cution peut repr senter un seul r sultat mais dans certains programmes nous pouvons avoir plusieurs r sultats sous forme de plusieurs tapes d ex cution EtapeEx cution 1 1 Fonction 1 Une tape d ex cution fait appel une fonction maximum la fois alors qu une m me fonction peut tre appel e dans plusieurs tapes pendant l ex cution d un programme Fonction 1 Param tre 1 Une fonction peut avoir besoin de un ou plusieurs param tres pour s ex cuter tout comme un param tre peut tre utilis par une ou plusieurs fonctions pendant l ex cution d un programme 37 Apr s avoir d taill les diff rentes classes qui composent notre mod le de prototype et les packages contenants ces classes La prochaine section servira pr senter les diff rents tats par les quels passe une trace d ex cution lors de son traitement dans notre futur application 3 2 4 Diagramme d tat de transition Ce diagramme sert repr senter des automates d tats finis sous for
11. de d rivation existants esses 24 2 4 Objectif g n ral et m thodologie ui 25 Chapitre 3 Mode le propose s t trees et eere o cosa re eu e ee EEN 27 3 1 Sp cification de l application envisag e ccceccccessececeessececeesseeecseaececseaeeeceesaeeeeeeaeeeeesaaes 27 32 Les diagrammes tilis s re ee det d eerte en Ree 30 3 2 1 Diagramme de cas d utilisation 30 3 2 2 Diagramme Inter package siens 34 3 2 3 Diagramme de Classes t ets tet teet t aet e Re TEE sede vheolest 35 3 2 4 Diagramme d tat de transition 38 Chapitre 4 R alisation du prototype iii 41 4 1 Environnement logiciel re E REEL RR TERRAE le TERR 41 4 2 Description g n rale du prototype Con 42 4 3 Description des fonctionnaltte s ss 44 4 3 1 E ent te de l interface rere rer ete hace a ees 45 4 3 2 Le r sultat et la liste d ex cution ener enne nnn 45 4 3 3 La Biblioth que de traces iii 49 4 4 DISCUSSION ER 50 4 4 1 Discussion des r sultats 0 nent een tene nnn ee nn en Eee eee Rn Pe Ia ERR Nd 50 4 4 2 Avantages t limites eet e dee aep e EE 52 Concl siong n rale acit etit ti ee ite tette e teh cies eed let 53 Bibliographie s n aui nut ui 55 Wikip dia eee ee eet Pere e e re Prae oe rra ei ted eiu aet e Pera NER rad SERRA UR 60 vi Ill Table des Figures Figure Arborescence uu p ee t ee e Ne E DU 18 Figure 2 Arbre de d rivation de aabbab ss 19 Figure 3 Interface de l
12. durant lesquelles je suis pass par deux grandes parties La premi re a t consacr e la recherche l exploration et la maitrise en surface de la notion d intelligence artificielle et en profondeur de la notion de programmation logique qui permet en partie de manipuler cette intelligence artificielle Mais cette premi re partie a surtout constitu e une base tr s solide sur laquelle je me suis appuy pour la deuxi me grande partie de mon projet de maitrise la conception et r alisation d un outil graphique pour la programmation logique Au bout de mon cursus je constate que ces deux ann es m ont permis d acqu rir une norme quantit d informations sur un domaine qui ne cesse de croitre et d apporter des innovations technologiques consid rables dans notre quotidien des informations s rement tr s utiles pour la suite de mon parcours tudiant et professionnel Le lecteur trouvera donc dans ce m moire le r sultat de deux ann es de recherche et de r alisation dans un cursus de maitrise que je qualifie la fois de formateur et de tr s enrichissant aussi bien sur le plan personnel qu ducatif xiii xiv Introduction Le pr sent projet de recherche concerne un domaine jeune et en pleine croissance dans le monde de l informatique soit l intelligence artificielle C est un domaine qui a de plus en plus de retomb es dans notre vie quotidienne gr ce aux nombreux apports qu il offre Cette branche de l informatique es
13. l interface de notre application travers des captures d crans de celle ci accompagn es de descriptions de toutes ces composantes 43 4 3 Description des fonctionnalit s Dans cette partie nous pr sentons un ensemble de captures d cran montrant les diff rentes fonctionnalit s de notre prototype Pour commencer nous pr sentons une vue globale de l interface du prototype voir figure 12 Entrez le nom du fichier sans l extension contenant la trace a traiter Trace3 Question grandpere X miguel R sultat R sultat 1 R sultat 2 R sultat 3 R sultat 4 Hm wm wm wm Liste d xecution Fondio Num ro Fondio Param Param Param Param Redo 8 parent _G2000 _G2074 A Exit 8 parent anne pierre Call 8 homme anne Fail 8 homme anne Redo 8 parent G2000 _G2074 Exit 8 parent vincent pierre Call 8 homme vincent Exit 8 homme vincent Exit fi pere vincent pierre Call 7 parent pierre miguel Fail 7 parent pierre miguel Redo 8 parent _G2000 _G2074 Exit 8 parent sally miguel Call 8 homme sally Fail 8 homme sally Redo 8 parent _G2000 62074 Exit 8 parent pierre sally Y Entrez le nom du fichier XML sans l extension que vous voulez g n rer XMLTrace3 Traiter Trace de r solution grand pere miguel parent sally miguel pere pierre sally Comme pe arent pierre sally Suivant gt Pr c dent Affichage de l arb
14. logiques Le langage CLIPS repose essentiellement sur un moteur d inf rences d ordre 1 fonctionnant en chainage avant associ un formalisme de repr sentation des connaissances ainsi qu un langage de programmation inspir de Lisp ll s agit avant tout d un outil de construction de syst mes base de connaissances syst mes qui raisonnent sur des connaissances d un domaine particulier ces connaissances tant repr sent es dans le cas de CLIPS par des r gles expertes et ou des objets 17 OZ 18 est un langage de programmation apparu la premi re fois en 1991 dans le laboratoire de programmation de l universit catholique de Louvain Le projet a ensuite volu travers diff rentes quipes de chercheurs Le langage OZ est actuellement pris en charge par le groupe Mozart Sa premi re impl mentation a vu le jour en 2008 avec le syst me de programmation Mozart Le langage OZ permet d employer et de combiner diff rents paradigmes de programmation Il fournit par d faut des variables logiques De m me l valuation est stricte par d faut mais l valuation paresseuse est possible La diff rence entre les deux types 11 d valuations est que la premi re se fait automatiquement d s qu elle peut tre li e une variable alors que pour la deuxi me les expressions sont valu es lorsqu on en fait explicitement la demande notamment lorsque l on cherche afficher un r sultat PYTHON 19 Cr en 199
15. n rer automatiquement des arbres de d rivation en vue d aider les utilisateurs mieux comprendre les traces de r solution en programmation logique 26 Chapitre 3 Mod le propos Ce chapitre a pour but de d crire en d tail le mod le de g n rateur automatique d arbres de d rivation que nous proposons afin d afficher dynamiquement une trace d ex cution de programmes logiques L id e est que les futurs g n rateurs construits partir de ce mod le puissent contribuer am liorer la compr hension de la r solution de programmes logiques par les utilisateurs Pour commencer nous allons proc der la description des sp cifications de l application envisag e nous expliquons les fonctionnalit s qu offrira cette application ses modules ainsi que les l ments en entr es sorties des modules Par la suite travers les diff rents diagrammes UML nous pr sentons plus en d tail les diff rentes facettes de la phase de conception Pour finir une description globale de l utilisation du mod le propos sera pr sent e 3 1 Sp cification de l application envisag e La figure 6 montre un sch ma des fonctionnalit s de l application envisag e L utilisateur interagit avec l application par l interm diaire d une interface d entr e sortie il rentre le nom de la trace qu il souhaite traiter demande l application d laborer l arbre de d rivation travers le clique sur un bouton Cette derni re lance le traite
16. nous avons construit un prototype que nous avons test et valid afin de montrer la faisabilit de la solution propos e Dans ce chapitre nous d crivons ce prototype en pr sentant d abord l environnement logiciel utilis pour le r aliser Ensuite nous expliquons les fonctionnalit s r ellement labor es Cette description est faite en partie l aide de captures d cran de l interface du prototype r alis Nous concluons ce chapitre par une analyse des r sultats obtenus avec la solution propos e 4 1 Environnement logiciel Pour l impl mentation de notre prototype nous avons eu recours aux divers logiciels et langages Nous avons utilis comme langage et environnement de programmation le langage Java Ce langage nous a sembl le plus ad quat car il se caract rise par sa portabilit et est souvent utilis pour la programmation orient e objet Comme langage de balisage nous avons utilis le langage XML Ce langage balises tendues ou extensibles permet de d finir des balises pour d crire un document textuel Il est consid r comme un m talangage pouvant d finir d autres langages Comme nous l avons indiqu dans notre mod lisation il est utilis pour mettre en forme la trace d ex cution en utilisant de nouvelles balises sp cifiques notre contexte Nous avons galement utilis l environnement de d veloppement int gr NetBeans logiciel libre offert par Sun partir de juin 2000 En plus de Ja
17. utilisateur Trois principaux points restent traiter dans notre liste v une meilleure repr sentation de l arborescence sous forme d animation au d part de notre projet nous voulions mettre en place un module qui g n rerait la repr sentation de l arbre de d rivation en sortie sous la forme d une animation Ceci permettrait de visualiser en boucle le d roulement de la r solution Suivant Pr c dent sans avoir cliquer sur les boutons suivant et pr c dent pour parcourir les diff rents tats de l arbre En effet ces deux boutons pourraient tre remplac s par un bouton D part qui lancerait l animation une fois la trace trait e et un autre bouton Stop qui arr terait l animation quand le d sire l utilisateur afin d avoir une image fixe sur une des tapes de l ex cution v Interaction directe avec les n uds c est la t che principale parmi celles qui reste accomplir En effet le fait d avoir g n r les arborescences sous forme d images vectorielles simples ne nous a pas permis de pouvoir donner l utilisateur la possibilit de cliquer sur un des noeuds pour en savoir plus sur son contenu C est une tape importante de notre projet que nous pourrions corriger en utilisant un logiciel de dessin graphique plus performent Il faudrait en effet localiser l emplacement le noeud sur lequel l utilisateur a cliqu afin de lui fournir les donn es ad quates qui aideraient c
18. 0 par Guido van Rossum pour la soci t Python Software Foundation Python est un langage de programmation multi paradigmes Il favorise la programmation imp rative structur e et orient e objet ll est dot d un typage dynamique fort d une gestion automatique de la m moire par ramasse miettes et d un syst me de gestion d exceptions Il n est pas d velopp pour la programmation logique en particulier mais gr ce une extension de ce logiciel il devient ouvert ce type de programmation MERCURY 20 est un langage de programmation logique orient objet qui a vu le jour en 1995 l universit de Melbourne d velopp pour la premi re fois par Fergus Henderson et Thomas Conway supervis par le professeur Zoltan Somogyi Ce langage est grandement influenc par les langages Prolog Hope 21 et Haskell 22 ll se distingue par sa combinaison de clart et sa grande expressivit de la programmation d clarative grace une analyse statique avanc e et sa d tection d erreurs dans les fonctions SCHEME 23 est un langage de programmation apparu en 1975 d velopp dans un des laboratoires du MIT Massachusetts Institute of Technology par Guy L Steele et Gerald Jay Sussman Scheme est l un des deux principaux dialectes du langage de programmation LISP Common Lisp tant l autre dialecte C est un langage qui a s duit diff rents types d utilisateurs programmeurs designers ducateurs etc RACKET 24 anciennement a
19. I est noter que la programmation logique est m me enseign e en dehors des sections informatiques car elle aide structurer la pens e humaine ce qui largit encore plus l impact de ce type de programmation dans notre vie de tous les jours En programmation logique ce n est pas le programmeur qui donne les tapes de la r solution de probl mes puisqu on se focalise sur le quoi Quels sont les outils la disposition du programmeur pour comprendre comment se passe cette r solution de probl mes Cette question est importante car il est difficilement concevable de dissocier la bonne programmation de la compr hension de la r solution Dans le prochain chapitre nous pr sentons les r sultats de notre tude des outils permettant d aider la compr hension de la r solution de probl mes en programmation logique De cette tude nous avons mis en vidence une probl matique que nous avons souhait r soudre en fixant des objectifs de recherche 16 Chapitre 2 Problematique et objectifs de recherche Apr s avoir d taill la programmation logique nous nous sommes attaqu dans ce chapitre au principe de la compr hension de cette programmation et de ses principes Nous allons voir qu elle est la meilleure facon de faciliter cette compr hension et ce qui a t d j propos dans la litt rature comme outils pour r pondre ce besoin En nous basant sur cette tude nous avons mis en vidence un certain nombre de lacunes Ce
20. Wieb UNIVERSIT Gm LAVAL Mod lisation d un outil graphique d aide la compr hension de r solution de programmes logiques M moire Mohamed Bouanane Maitrise en Informatique Maitre s sciences M Sc Qu bec Canada Mohamed Bouanane 2014 l R sum Ce projet de recherche traite du domaine de l intelligence artificielle plus pr cis ment de la programmation logique un type de programmation utilis e pour concevoir des syst mes dits intelligents Ce type de programmation est toutefois assez complexe assimiler et il n existe notre connaissance aucun outil interactif qui permette de montrer efficacement le processus d ex cution d un programme logique L objectif de cette recherche consistait donc proposer un mod le d outil facilitant la compr hension de la r solution d un programme logique Le mod le propos permet de repr senter graphiquement et dynamiquement la trace de r solution d un programme logique Un prototype a t construit pour valider ce mod le avec des programmes crits en langage Prolog L utilisateur peut ainsi suivre les tapes d ex cution travers l affichage dynamique d un arbre de d rivation Actuellement le mod le ne permet pas de prendre en compte des programmes crits avec diff rents langages de programmation une telle g n ralisation serait une bonne am lioration ll Table des mati res BR EE iii I Fable des mati res cu rem Eco ENEE ERR Ee AER ng e
21. a plateforme LTAG tir e de 27 essen 21 Figure 4 Interface de visualisation tir e de 29 enne 22 Figure 5 Interface de visualisation tir e de 30 seessssesssesesseeeeeee enne 23 Figure 6 Description globale de l application envisag e ccccccccccsssseceesscececssscececssssecessssaeeeesseaeees 28 Figure 7 Diagramme des cas d utilisation du prototype 4 31 Figure 8 Diagramme inter package de application 34 Figure 9 Diagramme de classe du prototype noede iieii esen ensi eene nennen ennt nnn nns ener nra 36 Figure 10 Diagramme d tats de transitions de l application envisag e nsssnenssenenssennesseeenssenne 38 Figure 11 Structure XML du prototype etta ertet er te a Sandee eee i 43 Figure 12 Interface de l application is 44 Figure 13 Ent te de l interface een 45 Figure 14 R sultats et liste d ex cution iii 46 Figure 15 L arbre de d rivation iii 48 Figure 16 volution d ulederivatiol s use decer ton ltem ab eii ne 49 vii viii A ma ch re m re Sana et Tous mes amis proches Qui ont tout le temps t l pour moi Je vous d die ce m moire IV Remerciements Je tiens remercier en premier Mme Laurence Capus qui m a accord sa confiance et m a offert l opportunit d int grer son quipe de recherche en ing nierie des connaissances ERICAE au d partement d informatique et de g nie logiciel de l Univers
22. age Java la simplicit d utilisation de l interface et surtout la clart des arbres de d rivations g n r s Nous ajoutons cela la n cessit d int grer une bonne interaction entre l utilisateur et le g n rateur 2 4 Objectif g n ral et m thodologie Nous avons explor la programmation logique ses apports et les diff rents langages qui la supportent Puis nous avons tudi les arbres de d rivation et l automatisation de la g n ration de ces arbres Nous avons constat que les outils existants pour la g n ration automatique de ces arbres offrent diff rentes fonctionnalit s mais qu aucun d entre eux n est vraiment concu pour faciliter la compr hension du d roulement des traces de r solution La majorit se contente simplement d afficher l arbre de r solution r sultant Nous avons donc propos de reprendre les bonnes fonctionnalit s existantes que nous avons identifi es dans notre tude puis de les enrichir avec d autres modules afin de concevoir un nouveau mod le d affichage graphique am lior Le but principal est de pr senter graphiquement une trace de r solution d un programme logique plus adapt notre contexte soit pour am liorer la compr hension de l utilisateur En d autres termes le prototype construit partir de ce mod le pourra pr senter en sortie un arbre de d rivation expliquant les tapes d ex cution Ainsi quand un utilisateur lance un programme il obtient un sch ma graphi
23. ait sous forme statique C est donc une simple image qui est projet e dans l interface de l application et ne permet pas d interagir avec elle Ce manque d interactions avec les arborescences est la source d un autre point faible dans la plupart de ces applications Les noeuds sont repr sent s simplement par leurs noms et il n y a aucune possibilit d avoir plus d information sur le noeud ou la fonction qu il repr sente 24 En r sum ce qui est propos actuellement consiste en des impl mentations efficaces de g n rateur automatique d arborescences Le r sultat est une fa on rapide et simple d obtenir un arbre descripteur du langage grammaire ou mot que nous voulons d couvrir Mais les affichages propos s n aident pas l utilisateur comprendre parfaitement et en temps r el le d roulement de l ex cution Par exemple l utilisateur ne peut pas obtenir des r ponses aux questions suivantes pourquoi avoir choisi ce sous arbre et pas un autre Pourquoi avoir vit ou choisi tel n ud ou tel autre Etc Ainsi nous souhaitons r pondre la question savoir comment afficher un arbre de d rivation de la trace de r solution de programmes logiques pour aider un utilisateur mieux la comprendre Pour r pondre cette question nous nous sommes fix un objectif qui porte notamment sur la r utilisation des fonctionnalit s pertinentes des g n rateurs existants comme la portabilit obtenue gr ce l utilisation du lang
24. bre et une arborescence informatique avec le sommet de l arbre comme tat initial et ses feuilles comme tant les diff rents chemins ou phases par lesquelles nous pouvons atteindre un but ou un tat donn Dans sa forme la plus simple cette repr sentation consiste avoir un triangle o le sommet de ce dernier repr sente un axiome autrement dit le symbole de d part de la grammaire repr sent e et les extr mit s du triangle repr sentent les deux choix possibles partir de l axiome en termes de symboles terminaux soit les mots donn s Pour des grammaires plus complexes l arborescence correspond la fusion de plusieurs arbres triangles Les extr mit s feuilles ou symboles non terminaux sont remplac s dans l arbre correspondant et ainsi de suite jusqu aux symboles terminaux soit les mots de la phrase Dans l exemple de la figure 1 le sommet du triangle identifie par S la repr sentation syntaxique d une phrase qui est compos e d un groupe nominal N et d un groupe verbal V qui sont pr sent s par les deux extr mit s du triangle Ensuite le groupe Verbal V devient son tour un sommet avec comme extr mit s un verbe V qui est dort et un adverbe ADV qui est norm ment Le groupe nominal N n a pas encore t d riv jusqu aux symboles terminaux Nj V d V ADV dort norm ment Figure 1 Arborescence La principale raison de l utilisation des arborescences graphiques est d expliquer l acheminemen
25. c demment L utilisateur fournit un fichier texte contenant la trace d une ex cution d un programme crit en langage Prolog Apr s traitement cette trace est affich e en une suite d arbres de d rivation qui d crivent chaque tape d ex cution de la trace donn e en entr e Ainsi l utilisateur peut parcourir les diff rents arbres dans l interface tout en faisant le lien avec chaque ligne de la trace et comprendre quoi correspond chaque op ration Notre prototype garde aussi en m moire les traces d j ex cut es afin de donner la possibilit l utilisateur de les consulter en tout temps Bien qu il soit fonctionnel ce prototype pourrait tre am lior par l utilisation d une animation et l affichage d informations relatives chaque noeud lorsque l utilisateur clique sur les noeuds Le mod le propos pourrait permettre de d velopper des outils qui serait int gr s aux diff rents environnements de programmation logique qui la place de la simple g n ration du r sultat sous forme textuelle offrirait une image anim e repr sentant l arbre de d rivation qui d crit le d roulement de l ex cution menant ce r sultat De plus de tels outils offriraient une description textuelle de chaque noeud de l arbre repr sentant un nouveau but r soudre la description graphique serait alors elle m me d crite Ceci dit pour pouvoir d velopper de tels outils il faudrait ajouter un module de traduction automatique de la trace e
26. ci nous a permis d identifier ce que nous pouvons apporter de plus et qui pourrait aider un programmeur d butant en programmation logique assimiler son fonctionnement et son ex cution plus facilement 2 1 Les moyens pour faciliter la compr hension de la r solution en programmation logique En programmation il n est jamais facile de d coder ou comprendre un algorithme ou un programme seulement en le parcourant Quelquefois m me travers des jeux d essais il existe des fonctionnalit s ou des choix qui peuvent nous chapper Plusieurs tudes ont t faites sur ce sujet L une d entre elles a t r alis e par un groupe de recherche de l universit Duke Durham NC aux d buts des ann es 90 26 Cette tude a permis de d montrer qu un tudiant apprenait plus facilement et comprenait mieux un algorithme apr s avoir visualis son effet ou impact en temps r el autrement dit en le regardant s ex cuter sous forme graphique c est ce qu on appelle avoir une trace de r solution Une trace de r solution peut tre d crite comme tant la pr sentation des diff rentes tapes de r solution d un probl me commen ant par les l ments du probl me jusqu arriver la solution trouv e Autrement dit la trace de r solution nous montre comment la solution a t trouv e Une trace de r solution peut tre facilement repr sent e sous forme d un texte ou d un tableau Un texte correspond une description textuelle d
27. ction d interface graphique de constitution de base de connaissances nous avions en sortie une base de connaissances logique relationnelle Cette m me base est envoy e en entr e la deuxi me phase qui gr ce aux syst mes inf rentiels d ductifs et interrogatifs g n re des d cisions Des d cisions qui se transforment en r sultats finaux ou services grace la troisi me phase qui se charge de l enrichissement de la g n ration textuelle et de la pr sentation graphique 12 Apr s avoir fait le tour des principaux impacts de la programmation logique sur l intelligence artificielle et d montr la diversit de cette derni re nous allons parcourir les diff rents langages de la programmation logique et les d cortiquer afin d en apprendre plus sur ce type de programmation 1 2 3 Les diff rents langages de programmation logique 10 Vu la large panoplie de possibilit s que la programmation logique offre de multiples langages de programmation logiques sont apparus au fil des ann es Certains semblent similaires mais la plupart offre un m lange distinct de fonctionnalit s facilitant ainsi le choix du langage et la programmation n cessaire la r alisation d un projet Nous vous pr sentons en suivant une liste de ces diff rents langages leurs caract ristiques et pour finir une comparaison de ces langages PROLOG 13 Le langage de programmation Prolog PROgrammation LOGique est n d un projet dont le but n tai
28. de l application envisag e En conclusion comme pour toute mod lisation dans un projet notre principal but tait de faciliter le travail pour la partie concr te du projet qui est la r alisation En m me temps nous avons bien expliqu notre vision du mod le de l application envisag e Nous avons atteint l objectif de ce chapitre qui tait de mod liser notre solution gr ce aux outils de mod lisation s lectionn s notamment avec les diff rents diagrammes du langage UML Un diagramme de cas d utilisation a t tr s utile afin de d crire les diff rentes taches que pourra r aliser l utilisateur dans l application envisag e Ensuite la paire de diagrammes inter package et de classes ont permis d offrir une bonne visibilit d taill e de la structure gr ce la pr sentation en premier lieu des packages puis des classes et enfin des liens entres toutes ces entit s Enfin travers un diagramme d tats de transition nous avons d taill les diff rents tats par lesquels passe notre principale entit la trace Suite cette tude conceptuelle qui a permis d claircir les d tails de la solution choisie nous allons maintenant le prototype que nous avons r alis partir de ce mod le 39 Chapitre 4 Realisation du prototype Dans le chapitre pr c dent nous avons sp cifi un mod le d application pour aider les utilisateurs comprendre la r solution de programmes logiques A partir de ce mod le
29. e XML est tr s utilis e dans le domaine de l informatique elle offre son d tenteur de multiples possibilit s de traitement de l information Un dernier avantage assez important dans notre prototype consiste dans le fait que les traces pouvant tre utilis es en entr e peuvent provenir que de diff rente sources donc l utilisateur n est pas oblig d utiliser un langage de programmation logique en particulier Il est possible de g n rer des arbres de d rivation partir de trace venant d autres langages de programmation logique comme Python OZ Et m me si la structure des traces g n r es par un langage ou un autre venait changer avec l volution des logiciels qui les ex cutent une l g re mise jour du module de traduction suffira adapter au nouveau format Comme tout prototype le notre montre aussi quelques limites La premi re est plus importante r side dans le manque d informations explicatives pour chaque noeud distinctement il aurait t int ressant d avoir une bulle 52 d information contenant des explications comme pourquoi le choix de ce param tre ou encore pourquoi l appel cette fonction et pas une autre qui apparaitrai quand l utilisateur clique sur l un des n uds de l arbre Une autre limite est que l utilisateur ne peut consulter la repr sentation graphique de l arbre r sultant en dehors de l application c est dire qu il lui est impossible d imprimer modifier ou ut
30. e la r solution en temps r el Les trois applications analys es offrent une arborescence claire et facile lire et une simplicit d affichage qui se base sur de simples droites comme liens entre le nom des noeuds parent et enfant aux deux extr mit s de ces droites Grace l utilisation de Java comme langage de programmation principal les applications existantes ce dotent d une grande portabilit une capacit fonctionner facilement dans diff rents environnements ce qui augmente le nombre d utilisateurs et offre une grande facilit d adaptation la clart de lecture des arborescences nous pouvons ajouter la simplicit d utilisation aux points forts de ces applications En effet gr ce une interface claire et bien d compos e nous pouvons utiliser l application sans avoir recours un manuel d utilisation Des boutons bien plac s permettent une manipulation ais e de l interface et de l arbre g n r Comme toute application celles ci ont des points forts mais aussi des points faibles La plupart des applications existantes offrent peu d interactions avec leurs utilisateurs Une fois l arborescence affich e il n est plus possible d interagir avec cette arborescence L utilisateur ne peut pas cliquer sur un noeud pour l analyser ou en arr ter l affichage afin de comprendre une tape d ex cution L une des raisons pour laquelle cette interaction n est pas possible est que l affichage des arbres se f
31. ee a I eae teases v Hl Table des Figures e rtr rte eere eb ee fav edes pobres adea s uu be eser vii IV REMeErcleMEeNtSs nea T ine e eS xi M Ela ele Tee EE xiii gel Deg ec EA 1 Chapitre 1 La programmation logique et ses diff rents langages sese 3 1 1 F intelligence artificielle rre ttr teet ta eee docena Eee a Ee Y ae ele 3 1 1 1 Origine de l intelligence artificielle ss 3 1 1 2 D finition de l intelligence artificielle ccc cccescececsssceceessseeeecssseeceesssseeeesssseesesseaeess 4 1 1 3 Les diff rents domaines de l intelligence artificielle 5 1 1 4 Le futur de l intelligence artiftcelle ss 7 1 2 La programmation logique inserer 8 1 2 1 Programmation imp rative et programmation d clarative 8 1 2 2 Impact de la programmation logique sur les diff rents domaines de l intelligence artificielle ei e a du e eder t etd sehe po et E ed eer dame io ATE pad 9 1 2 3 Les diff rents langages de programmation logique 10 1 2 4 Comparaison de diff rents langages de l intelligence artificielle 13 1 2 5 Analyse de la comparaison iii 14 Chapitre 2 Probl matique et objectifs de recherche nssssnnsseneessesenssenensserensseesnsserensserensserensseeeese 17 2 1 Les moyens pour faciliter la compr hension de la r solution en programmation logique 17 2 2 Description des g n rateurs d arbres de d rivation 20 2 3 Analyse des g n rateurs d arbres
32. elle fut provoqu e par une conf rence tenue sur le campus de Dartmouth Coll ge pendant l t 1956 Suite cette vague de recherche et jusqu aux ann es 1980 ce domaine a connu un cycle en dents de scie o durant des p riodes de gel et d gel des fonds de recherche s alternaient pour cause d absence de r sultats ou de nouvelles d couvertes Au d part deux approches se confrontent l approche logiciste ou symbolique qui vise recr er les lois universelles de la pens e et s inspirent du concept de machine de Turing et l approche neuronale incarn e par Frank Rosenblatt qui essaie d imiter les processus biologiques c r braux Si l approche logiciste inspir e des travaux de Russell Frege du cercle de Vienne de logique math matique etc l emporte la DARPA principal organisme finan ant les recherches en intelligence artificielle l approche neuronale refait surface dans les ann es 1980 inspirant les travaux sur le connexionnisme Wikip dia 1 1 1 2 D finition de l intelligence artificielle Lorsqu on cherche d finir l intelligence artificielle nous remarquons tout de suite une grande difficult dans le monde de l informatique unifier une d finition ce domaine Cependant apr s quelques recherches nous pouvons tomber sur certains chercheurs dans le domaine de la technologie qui ont propos leurs propres d finitions Cette difficult vient du fait que l intelligence elle m me n est pas assez
33. endre la logique de cette programmation Ceci est d autant plus important en programmation logique puisqu on ne d finit pas la m thode de r solution partir de ces constations nous avons pos notre probl matique savoir comment am liorer la pr sentation de l ex cution d un programme logique pour aider les utilisateurs mieux comprendre comment le r sultat a t trouv Nous avons tudi les projets existants semblables ce contexte d aide la compr hension de la programmation logique et nous en avons identifi les forces et les faiblesses Ces projets proposent g n ralement des repr sentations graphiques de la trace d ex cution sous la forme d arbres de d rivation plus visuelles qu une liste d instructions textuelles Nous avons retenu la clart et la simplicit des interfaces graphiques pour en faciliter l utilisation ainsi que la portabilit des outils par l emploi d un langage ouvert Nous avons not le manque d interactions disponibles entre l utilisateur et les outils propos s ainsi qu une absence d explications Dans ce contexte notre objectif tait donc de proposer un mod le d outil d aide la compr hension de r solution de programmes logiques par une repr sentation graphique et dynamique des traces d ex cution Cette repr sentation pr sente un arbre de d rivation la forme la plus repr sentative de l ex cution d un programme logique qui peut tre d couverte en fonction des besoins de l ut
34. es enfants de chaque noeud donc de connaitre le pr dicat qui a t utilis et ceux qui seront utilis s 48 La figure 16 repr sente un exemple de cheminement de g n ration et d affichage d un arbre de d rivation en utilisant le bouton 2727 Figure 16 Evolution d une d rivation La premi re copie d cran gauche correspond la racine de l arbre La deuwi me au centre repr sente la premi re d rivation effectu e La derni re montre une autre tape de la d rivation ll est aussi possible de revenir en arri re donc de droite gauche gr ce au bouton Pr c dent j 43 3 La Biblioth que de traces Librairie de traces Exercie3 pl A Examen pl Test pl Trace 1 pl Trace2 pl Transport pl Trace3 pl Trace3 Jeux pl Puissance4 pl e Een mm Autres Traces La derni re sous partie de notre interface repr sente la liste des traces qui ont t ex cut es auparavant Chaque fois que l utilisateur donne un nouveau fichier trace en entr e en g n rant le fichier XML le prototype fait aussi une copie de la trace dans sa biblioth que Nous pouvons voir apparaitre le nom du document dans la liste appel e Librairie de traces l extr me droite de l interface principale figure 14 49 Un bouton Autres Traces a t ajout pour pouvoir consulter d anciennes traces n apparaissant pas dans cette liste mais accessibles dans un autre r pertoire Apr s beaucoup de trava
35. eur n a pas besoin de mentionner l extension du fichier l application se chargera de l enregistrer sous la forme xml Lorsque les noms de fichiers ont t saisis l utilisateur clique sur le bouton L Water pour lancer le traitement de la trace Le but de ce traitement consiste en l affichage du r sultat celui du tableau de n uds et la pr paration de l arbre de d rivation 4 3 2 Ler sultat et la liste d ex cution La figure 14 montre plus pr cis ment cette partie de l interface Elle se d compose elle m me en trois sous parties qui sont la question ou le but r soudre point de d part de la trace le r sultat obtenu suite la r solution du but et la liste des tapes de cette r solution 45 Question grandpere X miguel R sultat R sultat 1 R sultat 2 R sultat 3 R sultat 4 Liste d xecution Fonctio Num ro Fonctio Param Param Param Param Redo 8 parent _G2000 _G2074 D Exit 8 parent anne pierre Call 8 homme anne Fail 8 homme anne Redo 8 parent _G2000 _G2074 Exit 8 parent vincent pierre Call 8 homme vincent Exit 8 homme vincent Exit 7 pere vincent pierre Call 7 parent pierre miguel Fail 7 parent pierre miguel Redo 8 parent _G2000 _G2074 Exit 8 parent sally miguel Call 8 homme sally Fail 8 homme sally Redo 8 parent _G2000 _G2074 Exit 8 parent pierre sally Figure 14 R sultats et liste d ex cuti
36. ex cution d une fonction elle a pour seul champ valeur soit une chaine de caract res tapeEx cution EtapeEx cution repr sente la classe principale de notre diagramme car une trace est compos e d une liste d tapes ex cut es afin d arriver la solution Cette classe est donc en lien avec la plupart des autres classes Les champs composants cette classe sont fctAppel une chaine de caracteres et rangExec un entier Le champ fctAppel repr sente la fonction d appel de l tape d ex cution il peut avoir comme valeurs appel refait sortie chec Le champ rangExec repr sente le rang d ex cution de l tape R sultat Comme son nom l indique cette classe repr sente les r sultats qui seront g n r s la sortie de chaque ex cution Son champ nom une chaine de caract res repr sente le nom de la trace Ce nom sera utile pour faciliter la recherche des r sultats stock s lorsque l utilisateur souhaitera consulter d anciennes traces Le champ r sultatsTrace contient une liste d arborescences qui repr sentent les diff rentes tapes de l ex cution Les diff rentes classes sont reli es entres elles par des liens travers les quelles se sch matise notre prototype Arbre 1 Noeud 1 1 Un arbre est compos de plusieurs noeuds alors qu un n ud ne peut appartenir qu un seul arbre pour dans une m me ex cution de l application Arbre 1 R sultat 1 1 Un arbre de
37. expert Consult le 03 mai 2012 http www hypergeo eu spip php article84 9 R Bartak Constraint Programming First Edition 1998 10 K C Santosh B Lamiroy et J P Ropers Inductive Logic Programming for Symbol Recognition Iniria Version 2009 11 R Quiniou E Fromont F Portet Reconnaissance d arythmie cardiaque Consult le 23 mars 2012 https interstices info icms c_16718 reconnaissance darythmies cardiaques 12 G Laurent A Tassadit et H Olivier Interaction Connaissances et Langage Naturel LERIA Consult le 23 mars 2012 http Avww info univ angers fr leria icln php 55 13 SWI Prolog Consult le 27 mars 2012 http www swi prolog org 14 Logtalk Consult le 20 mars 2012 http logtalk org 15 P Graham ANSI common LISP Prentice Hal 1995 16 NASA CLIPS RULE BASED LANGUGE Consult le 20 mars 2012 http www siliconvalleyone com founder clips index htm 17 Introduction au syst me CLIPS Consult le 20 mars 2012 http www lium univ lemans fr lehuen master2 webclips etape1 index html 18 The Mozart Programming System Consult le 23 mars 2012 http mozart github io 19 Python Programming Language Official Website Consult le 27 mars 2012 http www python org 20 Mercury Consult le 20 mars 2012 http Avww mercury csse unimelb edu au 21 HOPE Consult le 07 mars 2012 http www soi city ac uk ross Hope 22 Haskell Programming Language Consu
38. gence artificielle e le premier andro de commercialisation pr vue dans 10 ans par la communaut scientifique asiatique e l am lioration de la relation personne robot construction de robots qui pourront entrer en empathie avec l tre humain l couter et comprendre ces sentiments par la soci t Honda e a voiture intelligente commercialisation d un v hicule qui peut se d placer d un point un autre sans aucune intervention humaine et en garantissant une s curit routi re totale par la soci t Google Avec tous ces exemples nous pouvons dire que l intelligence artificielle commence prendre un aspect incontournable dans notre soci t Nous allons d couvrir dans la section suivante une des composantes de cette technologie innovatrice la programmation logique 1 2 La programmation logique La programmation logique se base sur un ensemble de faits l mentaires et de r gles logiques associ es des cons quences A la r ception d une question le moteur d inf rence exploite les faits et r gles d finis pr c demment pour r pondre la requ te Si la programmation logique est consid r e comme l un des principaux outils de l intelligence artificielle c est parce que ce type de programmation r pond parfaitement au besoin de cette derni re Ceci s explique par le fait que la programmation logique est consid r e comme une programmation d clarative plut t qu imp rative car elle r pond d a
39. gt 6 lt param4 gt 7 lt Noeud gt lt Noeud gt lt fonction gt Call lt fonction gt lt numero gt 7 lt numero gt lt proc gt pere lt proc gt parami G2000 parami lt param2 gt _G2074 lt param2 gt lt param3 gt lt param4 gt lt Noeud gt lt Noeud gt Figure 11 Structure XML du prototype Rappelons que le fichier XML est g n r partir de la trace textuelle qui est fournie l entr e par l utilisateur Ce fichier se compose de sept principales balises XML autour desquelles se fait la transformation de la trace en un arbre de d rivation La premi re balise fonction contient la fonction avec laquelle le langage Prolog r sout un probl me ou un but Elle correspond l action ex cut e une tape donn e Le langage Prolog utilise 4 fonctions qui sont Call appel Fail chec Redo refaire Exit termin La deuxi me balise numero indique le num ro de l tape d ex cution en cours La troisi me balise proc repr sente le but ou sous but ex cut Enfin les quatre autres balises param1 param2 param3 et param4 repr sentent les param tres du but ou sous but ex cut Dans le cas o les quatre param tres ne sont pas tous n cessaires ceux qui ne le sont pas prennent la valeur Null Apr s une description g n rale de notre prototype et de la logique derri re son fonctionnement nous allons dans la partie suivante faire description en profondeur de
40. hical Output juste en dessous permet l affichage de l arbre dans la fen tre principale de l interface ICH Brute Parser Untitled PTT 7 File Options GrammarPeek Help String to parse Clear Derivation Graphical Output abbcca is part of language The derivation tree contained 2114 nodes Figure 5 Interface de visualisation tir e de 30 Nous pouvons conclure que les travaux et projets existants dans le domaine sont peu nombreux et assez similaires Par cons quent ils ont les m me avantages et inconv nients 23 2 3 Analyse des g n rateurs d arbres de d rivation existants En analysant les trois applications d crites pr c demment nous remarquons que d une mani re g n rale leur conception est r alis e dans un but avant tout professionnel plus que formatif ce qui justifie le peu d interactions entre l utilisateur et l arborescence g n r e Les liens entre les noeuds et les noeuds eux m mes sont des objets statiques que l on ne peut explorer Dans le cas de la plateforme LTAG le chemin de la r solution choisi est trac par des lignes en gras Cela nous indique bien les nceuds choisis par la r solution mais cela ne nous permet pas de voir le parcours en temps r el de l ex cution de la fonction Autrement dit si par exemple il y a eu un retour arri re dans l ex cution l utilisateur ne pourra le remarquer l ment qui serait int ressant voir pour la compr hension du d roulement d
41. il nous pouvons conclure que nous avons r ussi g n rer un prototype affichant l ensemble des l ments n cessaires notre contexte L interface propos e est compl te simple utiliser et interactive comme nous allons l expliquer en suivant 4 4 Discussion Au d part de notre projet de recherche nous nous sommes fix comme but de mod liser programmer et donc concevoir une application vis e ducative qui serait fonctionnelle fiable et facile utiliser En d autres termes nous souhaitions d velopper une application qui permettrait son utilisateur de pouvoir suivre en temps r el le d roulement d une ex cution d un programme en Prolog travers la transformation d une trace textuelle en un arbre de d rivation Le but d une telle application tait de faire mieux comprendre le fonctionnement de la programmation logique Tout au long de la r alisation de notre projet nous avons rencontr certaines difficult s qui nous ont montr que l impl mentation d une telle application ne serait pas si facile Nous avons cependant r ussi surpasser ou contourner la plupart de ces difficult s Nous analysons dans cette section ce que nous avons r ussi accomplir ce qu il reste dans notre liste de t ches r aliser et finalement les avantages et inconv nients de notre solution 44 1 Discussion des r sultats Nous avons propos un mod le d outil graphique pour repr senter les traces d ex cution de programme
42. ilis e dans le package suivant pour la g n ration de l arbre 34 Package 2 Arborescence La g n ration de notre r sultat final passe par ce package il r cup re en entr e la liste de n uds cr e par le premier package et utilise les classes Arbre N ud et r sultat pour construire n ud par n ud les diff rentes tapes par lesquelles passe le programme pour r soudre le probl me la fin du traitement le package transf re les diff rents arbres au troisi me package afin de les afficher Package 3 Interface Ce package repr sente le lien entre l utilisateur et l application l ouverture de l application et par l interm diaire de ce package l utilisateur entre sa trace qui sera ensuite dirig e vers le package interpr teur de trace Le package Interface recoit en entr e du package Interpr teur de trace les diff rents l ments de l arbre repr sentants les tapes d ex cution Sa t che principale est de les afficher l utilisateur Ce package donne aussi la main l utilisateur pour s lectionner d anciennes traces que ce dernier voudrait consulter Lorsque la trace consulter a t s lectionn e l interface affiche les arbres et les r sultats correspondants cette derni re Apr s avoir fait le tour des diff rents packages de notre prototype nous allons dans la section suivante pr senter plus en d tail le contenue de ces packages les classes qui les composent et qui repr
43. ilisateur Nous avons construit un prototype qui prend en entr e une trace de l ex cution d un programme crit en langage Prolog un des principaux langages de programmation logique Cette trace sous forme textuelle est ensuite affich e sous la forme d un arbre manipulable L utilisateur peut d couvrir son rythme les diff rentes tapes de la r solution de la racine jusqu au r sultat Les diff rents l ments relatifs chaque tape sont affich s en fonction de cette d couverte Ce prototype nous a permis de valider notre mod le d un point de vue faisabilit Il resterait mener une exp rimentation avec des utilisateurs pour v rifier si la compr hension de la programmation logique est am lior e mais ceci d passe le cadre de ce projet de recherche Le mod le propos pourrait galement tre am lior s il tait possible d utiliser automatiquement des traces d ex cution de n importe quel langage logique Ce m moire est structur de la facon suivante Le premier chapitre permet de pr senter l intelligence artificielle ainsi qu une analyse des diff rents langages utilis s permettant la programmation logique Le deuxi me chapitre est d di l tude des projets ayant trait la repr sentation graphique des traces d ex cution La probl matique et les objectifs de recherche sont galement d crits dans ce chapitre Le troisi me chapitre porte sur le mod le propos pour repr senter graphiquement et dynamiq
44. iliser l arbre de d rivation dans une autre application Ainsi il serait possible d am liorer le mod le propos en ajoutant un processus pour sauvegarder la repr sentation graphique de l arbre dans un format standard comme JPEG ou GIF Conclusion g n rale Dans ce m moire de maitrise nous avons pr sent un projet de recherche concernant le domaine de l intelligence artificielle et plus pr cis ment la programmation logique Ce domaine est tellement vaste qu il touche directement ou indirectement presque tous les aspects de notre vie quotidienne C est aussi un domaine qui ne cesse de s agrandir et dans lequel des d couvertes et des avanc es spectaculaires sont r alis es de jour en jour Nos recherches nous ont permis de constater qu il est impossible de tout cerner de ce milieu tellement les retomb es sont immenses mais que plus on en apprend plus on se passionne pour ce domaine d tude jeune et r volutionnaire Nos recherches portaient en particulier sur les origines m me de ce jeune domaine qui est l intelligence artificielle ses impacts dans notre monde actuel et les ventuelles avanc es technologiques qu il nous am nera dans le futur Ensuite nous nous sommes tourn vers la programmation logique utilis en arri re de cette intelligence artificielle Nous avons explor les diff rents langages utilis s pour ce type de programmation et en avons effectu une comparaison Celle ci nous a permis de d couvr
45. ir quel point ces langages peuvent tre diff rents et efficaces quand ils sont utilis s pour des projets ad quats leurs caract ristiques En avan ant dans nos recherches nous avons constat que la probl matique dans ce type de programmation tait que la logique de fonctionnement et de r solution des algorithmes est assez d licate assimiler et que le simple fait de faire ex cuter des programme logique et voir le r sultat en sortie ne suffisait g n ralement pas a comprendre comment le compilateur est arriv ce r sultats Nous nous somme donc fix comme objectif de mod liser un prototype d application qui travers une repr sentation graphique de l ex cution d un programme logique faciliterai la compr hension de la r solution des programme logique Notre mod lisation repr sentait une application qui prend en entr e une trace g n r e par les compilateurs de programme logique et travers une s rie de traitements et de transformations elle offrait l utilisateur une description graphique sous forme d une image anim e qui parcourait l ensemble des tapes de r solution du 53 programme sous la forme d un arbre de d rivation Le graphique tait accompagn d une liste des ces tapes parcourus pour permettre l utilisateur de suivre le cheminement jusqu au r sultat Nous avons ensuite proc d la mise en place d un prototype qui avait pour but de valider la faisabilit du mod le d crit pr
46. it Laval afin d y effectuer mon projet de maitrise Je remercie de la m me facon mes deux encadreurs Mme Capus et Mr BenSta pour leurs encadrements leurs pr cieux conseils et leurs disponibilit s pendant toute la dur e de mon projet de maitrise Je remercie tous les membres de mon jury de maitrise pour leurs pr cieux conseils en vue d am liorer mon travail Je tiens exprimer mes sinc res remerciements tous les professeurs qui m ont enseign et qui par leurs encouragements m ont soutenu dans la poursuite de mes tudes Enfin je remercie tous ceux qui de pr s ou de loin ont contribu la r alisation de ce travail f a xi xii V Avant propos Le pr sent document a t labor dans le cadre d un travail de maitrise effectu au sein de l quipe de Recherche en Ing nierie des ConnAissancEs ERICAE au d partement d informatique et de g nie logiciel de l Universit Laval 1 l entame de mon cycle de maitrise j ai eu le choix entre de multiples domaines informatiques tr s int ressants mais mon attention tout de suite t port e vers celui de l intelligence artificielle et l ing nierie des connaissances Un domaine ou j ai eu quelques exp riences grace des cours dans des cycles inf rieurs et qui avait toujours attis ma curiosit gr ce aux grandes avanc es technologiques qu il provoquait de plus en plus dans le monde de l informatique Mon projet de ma trise aura dur deux ans
47. juste par commande vocale La technologie Siri utilis e par Apple pour ces t l phones intelligents en est un tr s bon exemple En effet en utilisant la commande vocale pour communiquer avec Siri nous pouvons demander oralement de trouver le meilleur chemin pour une destination particuli re d envoyer un message texte une personne ou m me de lire le bulletin d information de la journ e IN gt Reconnaissance et syst me d images Un exemple simple d utilisation de l IA dans ce domaine se trouve dans les appareils photo De nos jours tout appareil photo moderne est capable de d tecter les diff rentes formes se trouvant dans son champ de vision Un exemple tr s commun est le d tecteur de visage qui gr ce la d tection des yeux et d une forme arrondie du visage peut en conclure que c est un visage humain C est le m me principe pour le d tecteur de sourire Cette technologie peut tre plus pouss e pour offrir des services plus importants encore comme le syst me de reconnaissance de personnes d velopp par Acagi Inc en partenariat avec l universit du Maryland pour l arm e am ricaine Gr ce une cam ra plac e dans le casque ou le fusil du soldat le syst me concu permet de d tecter et identifier tous les visages qui passent devant l il de la cam ra ce qui permet de savoir si l individu en vue repr sente une menace ou non 6 La reconnaissance faciale ou digitale est aussi devenue une r f
48. lt le 27 mars 2012 http www haskell org haskellwiki Haskell 23 R K Dybvig The Scheme Programming Language Third Edition 2003 24 Racket Consult le 20 mars 2012 http racket lang org 25 O Caml Consult le 23 mars 2012 56 http ocaml org description html 26 A O Bilska K H Leider M Procopiuc O Procopiuc S H Rodger J R Salemme et E Tsang A Collection of Tools for Making Automata Theory and Formal Languages Come Alive Duke University Durham NC 27 P Lopez LTAG Workbench A General Framework for LTAG Saarbrcken Allemange 2000 28 LLP2 Loria LTAG Parser 2 18 oct 2012 http www loria fr azim LLP2 help fr 29 F Barth lemy P Boullier P Deschamp L Kaouane et E Villemonte Atelier ATOLL pour les grammaires d arbres adjoints Tours France 2001 30 A O Bilska K H Leider M Procopiuc O Procopiuc S H Rodger J R Salemme et E Tsang A Collection of Tools for Making Automata Theory and Formal Languages Come Alive Duke University Durham NC 1994 31 Clocksin F William Mellish Christopher S Programming in Prolog Berlin New York Springer Verlag 2003 32 Covington R Bagnara O Keefe J Wielemaker et S Price Coding guidelines for Prolog 2010 33 F Benhanou D McAllester et P Van Hentenryck Revisited ii proceedings of ILPS 94 International Logic Programming Symposium Rapport de recherche No 94 2 Ithaca USA MIT Press 1994 34 A
49. lts results un besStesa Llentement results results Oo E Partial L3 complete Crzrtisi results results results results results Figure 3 Interface de la plateforme LTAG tir e de 27 21 Plusieurs d veloppeurs ou chercheurs se sont inspir s de la plateforme de Lopez pr sent e pr c demment afin de d velopper leurs propres applications Par exemple Roussanaly a d velopp l application LLP2 Loria LTAG Parser 2 28 un analyseur LTAG bas sur les travaux de Lopez Nous pouvons citer un autre exemple celui d un groupe de chercheurs fran ais sp cialis s dans le domaine des grammaires d arbres adjoints En 2001 ce groupe a repris et enrichi l interface propos e par Lopez Ils lui ont ajout e comme principale innovation la possibilit d avancer et de reculer dans les tapes de d rivation en observant chaque pas l arbre partiel de d rivation et l arbre partiel d analyse 29 La capture d cran de l application pr sent e la figure 4 ci apr s nous confirme que l interface est bien inspir e de celle propos e par Lopez Si nous enlevons la partie qui g re le d coupage dans l interface de l application LTAG nous obtenons la m me interface propos e par 29 Input Sentence Yves donne un joli livre Sabine v File Load Forest Load Trees Saving Current Result Generated Forest Save 1 Results rc e SEHEN 4 Previous x Curre
50. me de graphes d tats reli s par des arcs orient s qui d crivent les transitions Les diagrammes d tats de transitions permettent de d crire les changements d tats d un objet ou d un composant en r ponse aux interactions avec d autres objets composants ou avec des acteurs Wikip dia 3 Fichier Texte Trace fournit par prolog Fichier Xmi Tableau de r sultats Tableau de donn es Arbre de d rivation Figure 10 Diagramme d tats de transitions de l application envisag e Le diagramme d tats de transitions d crit dans la figure pr c dente d montre que le cycle de transformation d une trace passe par quatre phases distinctes 38 La premi re phase du cycle de vie de notre trace consiste en la r cup ration de cette derni re a partir du logiciel de programmation sous la forme d un fichier texte La deuxi me phase sert r cup rer le fichier texte g n r juste avant pour ensuite le convertir en un fichier XML une extension qui offre beaucoup plus de flexibilit Dans la troisi me phase et partir du fichier XML de la phase pr c dente la trace sera repr sent e sous la forme de deux tableaux Un tableau contient le ou les r sultats de l ex cution et un deuxi me pour toutes les donn es qui composent la trace en entr e Dans la quatri me phase finalement le deuxi me tableau est utilis afin de g n rer l arbre de d rivation qui constitue l tat final et l objectif
51. ment qui va lire la trace en entr e la convertir et en g n rer un arbre de d rivation qu elle affichera ensuite dans le centre de l interface Par la suite l application redonne la main l utilisateur pour interagir avec l arbre g n r Cinq modules sont propos s pour r aliser les diff rentes t ches traduction traitement ex cution affichage et interaction Nous allons maintenant pr senter les fonctionnalit s de chaque module ainsi que les relations entre chacun d eux 27 dies prau np xepu pneu un p uonoere 29811 1814914 euuonoajes pneou e ns seag ST exe SEIL INBIES ININ 2e e uopoeiejut p epo D tails sur le n ud s lectionn uoneoidde ep egen Wx uononp amp i ep ampo uonnooxe ap jeynsoJ je uoneAuep ap e1qiy eBeuolye p ainpoyy euuonejes pneu e ANS SIIE 8Q WX 2814914 pnaoy np eoueJejey WX 2814914 sensy Tableau de Variables uonnaaxa p ainpoyy Juawayen ep ainpoyy WX 2814914 d i Figure 6 Description globale de l application envisag e Pour enclencher le m canisme d ex cution l utilisateur fournit l interface une trace d ex cution g n r e un langage de programmation logique celle ci ressemble une liste d it rations ex cut es partant du but pos au programme et finissant par le r sultat donc la r ponse au but Nous pouvons voir un exemple de cette trace en utilisant l appel trace lors de l ex cution d un
52. n de diff rents aspects de l application 31 Dans la section suivante nous exposons les quatre diagrammes UML que nous avons propos s pour d crire l application envisag e 3 2 Les diagrammes utilis s Nous avons eu recours diff rents diagrammes afin de repr senter notre mod le sous tous ses aspects Chaque type de diagramme fait le point sur une ou plusieurs caract ristiques de l application envisag e Ensemble ces diagrammes repr sentent une vue compl te de ce que nous d sirons r aliser comme application Dans cette section nous pr sentons les diagrammes appliqu s notre application future chacun accompagn d une description 3 2 1 Diagramme de cas d utilisation Les diagrammes de cas d utilisation sont utilis s pour donner une vision globale du comportement fonctionnel d un syst me logiciel Wikipedia 6 La figure 7 montre le diagramme de cas d utilisation de l application envisag e 30 Entrer une trace et g n rer un arbre de d rivation Dessiner l arbre et extraire le r sultat Include extends extends Int ragir avec K S lectionner un Afficher les l interface noeud informations du noeud User Include extends Ki Consulter bw d ancien nes traces Parcourir l arbre de d rivation NN a Figure 7 Diagramme des cas d utilisation du prototype L utilisateur deux options soit entrer une nouvelle trace dans l application soit consulter d
53. n format XML Pour l instant nous n avons pas propos de traducteur ind pendant du langage de programmation utilis ni m me de traducteur sp cifique pour tous les langages existants Enfin comme nous l avons soulign dans ce m moire il serait int ressant dans une prochaine tape de v rifier l efficacit d un tel outil pour aider comprendre la r solution de programmes logiques en recueillant l avis d utilisateurs 54 Bibliographie 1 Equipe de Recherche En Ing nierie des ConnaissAnEes http www ift ulaval ca ericae 2 B G Buchanan A Very Brief History of Artificial Intelligence Al Magazine 26 4 53 60 2005 3 D Defays R M French et J Sougn Apports de l intelligence Artificielle la Psychologie Facult de Psychologie et des sciences de l ducation 1997 4 D Lenat et R V Guha Building Large Knowledge Based Systems Addison Wesley Longman Publishing Co Inc Boston MA US 1989 5 Les robots industriels 05 jan 2013 http archive wikiwix com cache url http www gralon net articles materiel et consommables materiels industriels article les robots industriels 285 htm amp title C2 AB C2 A0Les 20robots 20industriels C2 A0 C2 BB 6 TPE sur l intelligence artificielle Consult le 03 mai 2012 https sites google com site int3llig3nc3artifici3ll3 7 P L vine et J C Pomerol Syst mes interactifs d aide la d cision et syst mes experts Hermes 1989 8 Syst me
54. nces 1 24 Comparaison de diff rents langages de l intelligence artificielle La comparaison qui suit a pour but de faciliter le choix tout d butant en programmation logique de faire correspondre ses attentes et ses besoins aux fonctionnalit s que peut offrir un des diff rents langages tudi s Pour y arriver nous avons commenc par choisir les crit res sur lesquels nous avons compar ces langages Nous avons ensuite indiqu dans un tableau les correspondances entre ces crit res et les langages Pour finir nous avons compar chacune des fonctionnalit s qu offre chacun de ces langages Crit res de comparaison Multi paradigme Le langage peut supporter plusieurs paradigmes de programmation programmation proc durale programmation orient e objet etc gt Interaction avec d autres langages Le langage de programmation peut tre fusionn avec un autre langage dans un m me programme gt Simplicit de la syntaxe et de la s mantique le niveau de difficult avec lequel un programmeur apprend maitriser un nouveau langage gt Possibilit de programmation fonctionnelle Ce langage peut tout aussi bien tre utilis pour la programmation fonctionnelle qui est un paradigme tr s utilis dans le monde de la programmation Le tableau suivant met en correspondance ces crit res avec les diff rents langages pr sent s dans la section pr c dente Multi Interaction Simplicit en Suppor
55. ne application un programmeur doit avoir une bonne id e sur la conception de cette derni re En fonction de cela il aura le choix d opter pour un langage comme Lisp ou comme CLIPS Le langage LISP offre un typage dynamique des donn es ainsi que le support de la programmation fonctionnelle Il se distingue surtout par sa gestion automatique de la m moire et sa facult de manipuler le code source en tant que structure de donn es LISP allie une grande pr cision une puissance consid rable quand il s agit de d velopper une application simple qui est con ue pour une t che pr cise Cependant son inconv nient majeur est la complexit de sa syntaxe Par contre le langage CLIPS qui en plus d tre rapide efficace et gratuit int gre un langage orient objet assez complet pour d velopper des syst mes base de connaissances gr ce ses diff rents paradigmes de programmation Contrairement Lisp il est fait pour les grosses applications complexes la preuve en est que Clips est largement utilis dans les gouvernements les industries et les acad mies Dans le m me type de langage ayant la caract ristique d tre plus global que centr sur un type pr cis de programmation SCHEME est un s rieux concurrent pour CLIPS gr ce son l gance et un design minimaliste Le langage SCHEME est devenu une excellente solution pour les designers de langages et les ducateurs Ce langage est d ailleurs utilis par de nombreuses c
56. ns la gestion des requ tes sous contraintes sur contraintes L absence de statut pour les param tres d un pr dicat cf r versibilit et le mod le d ex cution employ permet d un c t l emploi de requ tes sous contraintes exposant l ensemble des possibles et de l autre c t l emploi de requ tes sur contraintes permettant la v rification de propri t s particuli res sur les solutions exhib es ou le filtrage de ces solutions Cette m me absence de statut pour les param tres est consid r e par certains comme un important inconv nient dans la programmation C est pourquoi cette cat gorie de personnes est plus port e vers d autres langages comme Logtalk qui offre la possibilit de param trer les pr dicats il supporte les objets statiques et dynamiques avec private protected ou public Pour les sp cialistes du domaine Logtalk offre une plus grande facilit et efficacit pour ce qui est de la s paration entre l interface et l impl mentation et est meilleur en termes de portabilit que les modules de Prolog Cependant il est toujours possible de combiner les deux langages 14 Pour continuer avec les inconv nients de Prolog vu que c est un langage faiblement typ cela fait de lui un langage assez difficile d bugger Sans le typage les probl mes de d bogage se multiplient et il y a risque de violation de l int grit du domaine des bases de donn es Avant de commencer d velopper u
57. ns seulement des symboles terminaux et donc la d rivation est termin e Le mot aabbab a bien t d riv partir de la grammaire donn e Figure 2 Arbre de d rivation de aabbab L utilisation des arbres a beaucoup apport dans le domaine des automates tr s r pandu et utilis en math matiques et en informatique pour sa repr sentation ad quate de plusieurs quations math matiques ou solutions informatiques C est le cas du raisonnement de la programmation logique dont la structure se repr sente parfaitement sous la forme d une arborescence Les noeuds repr sentent les pr dicats et leurs enfants de possibles r sultats de chaque pr dicat Cette m thode de repr sentation a donc un grand impact dans le monde de la recherche Cependant la g n ration des arbres de d rivation a toujours t r alis e manuellement et tr s peu de chercheurs ou de d veloppeurs ont cherch l informatiser ou l automatiser II n existe aucun logiciel ou application d velopp e et mise sur le march par les grandes entreprises de d veloppement capable de r aliser ce type de traitement Cependant et apr s des recherches approfondies nous avons trouv des applications d velopp es en interne ou des fins personnelles traitant les arbres de d rivation Nous d crivons dans la prochaine section les applications trouv es dans la litt rature qui ont t d velopp es pour g n rer des arbres de d rivation et les afficher
58. nt gt Next D Step 6 donne C Sten_1 see me Step_2 y un 2 i i K i D step_s Yves joli un Sabine Step_4 3 Step 5 3 Step E m np NP VP V Dn NF PP YVES DONNE UN nr LIVRE A SABINE Figure 4 Interface de visualisation tir e de 29 22 D autres chercheurs ont aussi d velopp leur propre application Par exemple au d but des ann es 90 des chercheurs de l universit Duke Durham NC 30 ont d cid de d velopper une collection d outils qui vise expliquer graphiquement et en temps r el les modifications et les mises jour des graphes quand on travaille sur la th orie des automates et le langage formel Cet ensemble d outils a t d velopp principalement en Java Seuls les analyseurs ont t impl ment s en C Parmi les nombreux outils offerts on trouve un g n rateur d arbres de d rivation tr s int ressant nomm PumpLemma L utilisateur entre la grammaire puis le mot analyser et voit apparaitre un arbre de d rivation de cette grammaire avec les diff rentes possibilit s de retrouver le mot en coloriant les n uds concern s Une capture d cran de l interface de ce g n rateur est pr sent e dans la figure 5 Un champ texte est situ tout en haut de l interface dans lequel l utilisateur peut entrer le mot analyser Ensuite il lui suffit de cliquer sur le bouton Parse pour r aliser le d coupage Finalement le bouton Derivation Grap
59. ocessus de reconnaissance orient s s mantique Reconnaissance de probl mes maladies en m decine Un exemple de l utilit de la programmation logique dans des domaines tr s importants comme la m decine montre que la programmation logique inductive aide d tecter une arythmie cardiaque consid r e comme un danger pour le coeur humain 11 La programmation logique inductive permet de constituer automatiquement une base de sympt mes chroniques sous la forme d une formule logique de premier ordre qui permet de rep rer une dizaine d arythmies parmi les plus connues Traitement du langage naturel Plusieurs pistes ont taient explor es dans le traitement du langage naturel En fin de compte tout le monde S est mis d accord sur le fait que la meilleure combinaison pour ce domaine est la programmation logique associ e aux syst mes base de connaissances La programmation logique a pu dans ce domaine r soudre des probl mes non r solus avec d autres modes de programmation utilis s avant elle Une description int ressante est pr sent e dans un article du Laboratoire d tude et de recherche en informatique d Anger o il est expliqu qu travers un cycle de traitements compos de trois phases il est possible d avoir des r sultats tr s concluants La premi re phase du cycle prenait en entr e les donn es textuelles num riques et travers une analyse s mantique de textes de la fouille de donn es ou encore d indu
60. odule g n re son objectif final l arbre de d rivation En sortie le module d ex cution foumit l arbre de d rivation accompagn d un tableau contenant l ordre dans lequel les noeuds de ce dernier ont t appel s Une fois les donn es de sortie du module d ex cution re ues le module d affichage proc de la mise en place de l affichage dynamique de l arbre Un par un et suivant l ordre indiqu dans le tableau recu en entr e les l ments de l arbre apparaissent laissant derri re eux une trace qui indique l ordre d apparition afin que l on puisse le retracer m me apr s l affichage complet de l arbre Une fois l affichage compl t l utilisateur peut relancer l animation autant de fois qu il le souhaite Lorsque les r sultats sont affich s et les arbres g n r s l application donne la main l utilisateur pour interagir avec les n uds de l arbre final Si ce dernier souhaite consulter les d tails concernant un des noeuds il lui suffit de cliquer dessus Le module d interaction avec l utilisateur prend en param tre ce noeud et consulte le module d ex cution qui travers le tableau fourni par le module de traitement peut retourner la description du noeud en question Une fois la description obtenue les d tails sont publi s l utilisateur dans l interface de l application travers une bulle d information En acc dant l application envisag e l utilisateur peut aussi consulter d anciens arbres de d riva
61. oles d informatique travers le monde pour la simplicit de sa syntaxe entre autres Cette m me caract ristique qui a fait de SCHEME un langage populaire est aussi son principal point faible Son aspect global a comme cons quence une large diversit entre les impl mentations D autres caract ristiques importantes sont prises en compte lors du choix d un langage de programmation logique l une d entre elles est la s curit domaine ou le langage OZ excelle Toutes les entit s du langage sont cr es et introduites explicitement Une application ne pourra donc jamais cr er ou forger une r f rence qui ne lui a pas t pass e explicitement Plus encore le programmeur n a pas acc s la base des repr sentations des entit s du langage Ces concepts m lang s quelques autres sont essentiels pour assurer une tr s bonne politique de s curit un autre des avantages qu offre le langage OZ une bonne et transparente distribution Plusieurs sites OZ peuvent communiquer et se partager des variables objets ou classes comme si c tait une seule station et cela en toute s curit Certains d veloppeurs se basent sur des langages existants pour cr er de nouveaux langages C est ce que les programmeurs du langage Mercury ont fait Ils se sont bas s sur le langage Prolog et se sont fix s comme objectif de l am liorer Ils ont repris la m me syntaxe et les concepts de Prolog mais ont pr f r s parer la phase de compilation ce
62. omprendre pourquoi la r solution a suivi telle ou telle tape Une autre solution serait de remplacer la fen tre contenant l image de l arbre par une grille de noeuds chaque arbre g n r les noeuds prendraient l tat Visible et pourraient tre reli s par des droites Le reste des noeuds serait Invisible ce qui permettrait l utilisateur de ne voir que l arborescence voulue chaque fois v Mise en place d une interaction avec une base de donn es ce jour notre application permet un utilisateur de consulter la demande d anciennes traces d j g n r es auparavant dans une biblioth que de la m moire interne Les fichiers XML sont sauvegard s chaque ex cution d une nouvelle trace Afin d avoir plus d espace m moire et de faciliter la gestion de nos donn es gard es en m moire nous pourrions mettre en place un module qui se chargerait de la pertinence des donn es et communiquerait directement avec un serveur de base de donn es MySgql Apache ou encore Oracle 51 44 2 Avantages et limites Apr s avoir d crit l tat pr sent de notre prototype et celui qu il pourrait prendre dans le futur gr ce quelques am liorations nous allons ici discuter des avantages inconv nients et am liorations possibles de la mod lisation propos e En tant qu application vis e ducative notre mod le pr sente quelques avantages importants qui permettent d envisager une application plut t compl te et
63. on Laquestion Question grandpere X miguel Cette section affiche chaque fois la question ou la requ te pos e par l utilisateur Prolog qui a permis de g n rer la trace Ler sultat de la r solution R sultat R sultat 1 R sultat 2 R sutat3 R sultat4 pierre 200000000080 2000000000 2000000000 Cette section contient un tableau contenant les r sultats fournis par la r solution Prolog Une r solution Prolog peut g n rer en sortie un ou plusieurs r sultats soit vrai ou faux ou bien les valeurs des param tres de la question Le tableau est donc rempli en fonction de ce nombre et accepte jusqu quatre r sultats Lorsqu un champ r sultat n est pas utilis alors il prend la valeur XXXXXXXXXXXXXX 46 gt La liste d ex cution Liste d xecution Fonctio Num ro Fonctio Param Param Param Param _ Redo Exit Call Fail Redo Exit Call Exit Exit Call Fail Redo Exit Call Fail Redo Exit Co OO CO CO COO CO J nt nr CO CO CO CO CO CO CO CO parent parent homme homme parent parent homme homme pere parent parent parent parent homme homme parent parent _G2000 anne anne anne _G2000 vincent vincent vincent vincent pierre pierre _G2000 Sally Sally Sally _G2000 pierre _G2074 pierre _G2074 pierre pierre miguel miguel _G2074 miguel _G2074 sally a La troisi me et derni re sous
64. ons multim dia les interactions personne machine Ce concept se retrouve beaucoup aussi dans les jeux tendance intelligente comme les jeux d checs gt Apprentissage et adaptation les jeux Ce domaine est apparu grace l intelligence artificielle et est aussi appel apprentissage automatique Il est d fini comme la capacit d un syst me am liorer ses performances via des interactions avec son environnement Remarque La plupart des types de reconnaissances d images de textes de voix se basent sur un des domaines les plus connus de l intelligence artificielle soit la planification Syst mes base de connaissances Un syst me base de connaissances ou syst me expert selon la d finition propos e par Pomerol 7 est un outil informatique d intelligence artificielle concu pour simuler le savoir faire d un sp cialiste dans un domaine pr cis et bien d limit gr ce l exploitation d un certain nombre de connaissances fournies explicitement par des experts du domaine Une base de connaissances repr sente la fois le savoir faire et l expertise n cessaires pour r soudre un probl me Les unit s de raisonnement s crivent g n ralement sous la forme de r gles libell es de la facon suivante si situation alors action la situation correspondant l hypoth se de la r gle et l action la conclusion 8 En conclusion l intelligence artificielle gr ce aux nombreux et impor
65. partie de l interface repr sente ligne par ligne les tapes ex cut es jusqu la solution du probl me La diff rence que pr sente ce tableau par rapport une trace fournie en Prolog lui m me est que chaque l ment et sous la forme d une balise XML et non pas une chaine de caract re simple ce qui facilite la d composition de la trace et la transformation de chaque ligne en un n ud pour l arbre de d rivation et augmente la lisibilit de la trace Les diff rentes colonnes de ce tableau reprennent la structure du fichier XML g n r au d but du traitement Chaque colonne repr sente une des balises du fichier nous avons donc cinq colonnes obligatoires Fonction Prolog Num ro Fonction proc dure appel e param tre 1 et param tre 2 Fonction Prolog Il repr sente la fonction avec laquelle le langage Prolog ex cute la ligne qui suit Ce champ peut prendre seulement quatre valeurs possibles Call Redo Fail et Exit Num ro Ce champ indique quel niveau ou enfant de l arbre s ex cute cette tape Fonction proc dure Il repr sente le but ou sous but ex cut dans cette tape de la r solution Param tre 1 Param tre 2 Ils repr sentent les deux premiers param tres avec lesquels s ex cute le but ou sous but courant Si les param tres ne sont pas utilis s la cellule du tableau correspondante est laiss e
66. ppel PLT Scheme ce langage de programmation multi paradigme fait partie de la famille Lisp Scheme C est un langage assez autonome vu que tout son environnement est crit en Racket m me Ce langage est utilis pour diff rents types de programmation savoir la programmation web la programmation logique la g n ration de analyseurs lexicaux et syntaxiques et bien d autres O CAML 25 O Caml est la principale impl mentation du langage Caml Categorical Abstract Machine Language qui est un langage de programmation se distinguant en mati re de s ret et de fiabilit des programmes Ce langage a t invent en 1985 par l institut national de la recherche en informatique et en automatique INRIA de m me que O Caml en 1996 Afin d apporter Caml un tr s bon constructeur orient objet et la programmation modulaire comme objectifs principaux la gamme d outils O Caml inclut aussi un interpr teur de premi re qualit ainsi qu un compilateur de bytecode 12 Nous pouvons conclure que la popularit de la programmation logique ne cesse d augmenter avec comme preuve la vari t et le nombre de langages d velopp s pour ce mode Cependant il est relativement complexe pour un programmeur non encore exp riment de choisir le langage le plus ad quat pour l application impl menter Nous proposons donc dans les sections suivantes une comparaison de ces diff rents langages afin d aider mieux comprendre leurs diff re
67. programme en langage Prolog 28 Une fois que la trace a t fournie l application un module de traduction prend la rel ve afin de d composer cette trace textuelle en diff rentes balises qui composent en sortie un fichier XML bien structur Le choix du langage XML se base sur le fait que c est un langage standard concu pour l change automatis de contenus complexes arbres textes riches etc Le fichier XML sera sauvegard dans une base de donn es pour de futures utilisations Un module de traitement prend ensuite la main pour extraire les donn es structur es du fichier XML et les classer dans deux tableaux distincts Le premier tableau contient tous les faits et r gles de la trace soit les l ments du programme impliqu s dans cette trace Le deuxi me tableau repr sente le compl ment du premier tableau en fournissant les liens entre chaque ligne soit pour chaque entr e du tableau l entr e appelante et les autres entr es appel es Le traitement de ce module peut tre consid r comme une tape de pr paration des donn es pour le module d ex cution Le module d ex cution peut tre consid r comme le module principal de l application ce dernier va parcourir les deux tableaux que le module de traitement lui fournit en entr e pour transformer chaque entr e du premier tableau en un n ud et construire les liens entre ces n uds en utilisant le deuxi me tableau C est enfin en r unissant ces noeuds que le m
68. que travers lequel il peut suivre les tapes de l ex cution permettant d atteindre la solution L objectif de notre mod le est d offrir une interaction avec l utilisateur Chaque noeud de l arbre contient une tape dans l accomplissement de l ex cution avec laquelle l utilisateur peut interagir pour mieux comprendre le parcours d ex cution Afin d atteindre notre objectif nous avons commenc par mod liser l application envisag e en d finissant une structure des fonctionnalit s principales et les diff rentes classes qui la composent Nous avons utilis les diff rents diagrammes UML pour cette description Ensuite nous avons construit un prototype afin de montrer la faisabilit de notre mod le Nous avons eu recours une tude de la compatibilit des interfaces graphiques 25 avec le langage Prolog le langage de programmation logique retenu pour la r alisation de notre prototype Le prototype a t implant en langage Java choisi en grande partie pour sa grande portabilit Enfin nous avons test notre prototype afin de nous assurer de sa fonctionnalit et d ajuster notre mod le au besoin Afin de v rifier l efficacit du mod le propos il serait int ressant de le mettre disposition d un groupe d tudiants afin de recueillir leur avis Une telle exp rimentation d passe le cadre de ce travail de maitrise et ne sera donc pas trait e Nous pr sentons dans le prochain chapitre le mod le permettant de g
69. qui permet d identifier un plus grand nombre d erreurs avant l ex cution du programme Les d veloppeurs pr tendent que c est le successeur de Prolog et gr ce aux informations obtenues lors de la 15 compilation les programmes crits en Mercury gagnent significativement en rapidit par rapport ceux crits en Prolog Les auteurs du langage Mercury pr tendent m me que c est le langage de programmation le plus rapide au monde et de loin Un autre type de langage pourrait int resser les programmeurs ayant repr senter des types alg briques autrement dit hi rarchis s et possiblement r cursifs c est le langage O Caml En plus de son typage statique fort et inf r qui lui permet de manipuler ais ment des structures de donn es assez complexes c est un langage r put pour sa s ret un atout de plus surtout quand on manipule des donn es complexes En conclusion on ne peut dire que l un de ces langages est meilleur que les autres plus populaire peut tre mais pas meilleur L efficacit et la performance vont d pendre du contexte d utilisation Conclusion Suite cette tude de la programmation logique nous constatons que ce type de programmation a eu et a toujours un norme impact sur l intelligence artificielle dans tous ses domaines Ce type de programmation a permis non seulement d am liorer consid rablement les pratiques existantes mais aussi d apporter des innovations dans les diff rents domaines I
70. race trait e Post conditions Arbre dessin au centre de l interface Cas d utilisation 3 Consulter d anciennes traces Acteur Utilisateur v nement d clencheur Ancienne trace de la base de donn es s lectionn e Pr conditions Aucune Post conditions Affichage des r sultats et de l arbre de d rivation de la trace s lectionn e Cas d utilisation 4 Interagir avec l interface Acteur Utilisateur v nement d clencheur Aucun Pr conditions G n ration d un nouvel arbre de d rivation ou la s lection d un arbre appartenant une ancienne trace Post conditions D pendant du type d interaction Cas d utilisation 5 ou 6 Cas d utilisation 5 Parcourir l arbre de d rivation 32 Acteur Utilisateur Ev nement d clencheur Bouton Suivant ou bouton Pr c dent appuy Pr conditions Affichage de l arbre dans l interface Post conditions Affichage de l tat suivant ou de l tat pr c dent de l arbre Cas d utilisation 6 S lectionner un n ud Acteur Utilisateur v nement d clencheur Un des n uds de l arbre s lectionn Pr conditions Affichage de l arbre dans l interface Post conditions Recherche des donn es sp cifiques au nceud s lectionn Cas d utilisation 7 Afficher les informations du noeud Acteur Syst me
71. re Librairie de traces Exercie3 pl Examen pl Test pl Trace pl Trace2 pl Transport pl Trace3 pl Trace3 Jeux pl Puissance4 pl m t Tj Autres Traces ion t Ica Interface de l appl Figure 12 44 Pour mieux pr senter cette interface nous avons choisi de la d composer en quatre parties distinctes qui sont l ent te le r sultat sous forme de liste des op rations ex cut es la trace d ex cution ainsi que la biblioth que des traces Chacune des parties est d taill e sous la figure qui la repr sente 4 3 1 L ent te de l interface L ent te de l interface figure 13 repr sente la porte d entr e du prototype En effet afin de pouvoir g n rer le r sultat d une trace il faut avant tout entrer le nom du fichier texte contenant la trace et ceci dans le champ indiqu en haut gauche de l interface L utilisateur n a pas besoin d indiquer l extension du fichier le prototype se charge de le traiter comme un fichier txt Entrez le nom du fichier sans l extension contenant la trace a traiter Trace3 Entrez le nom du fichier XML sans l extension que vous voulez g n rer XML Trace3 Traiter Figure 13 Ent te de l interface Afin de pouvoir garder en m moire et localiser le fichier XML g n r par l application un deuxi me champ de saisi est offert l utilisateur pour qu il puisse nommer lui m me ce fichier Comme pour le fichier en entr e l utilisat
72. s logiques d une mani re dynamique ceci en vue d aider comprendre ce type de r solution Nous avons construit un prototype a partir de ce mod le afin d en montrer la faisabilit Ce prototype dispose de diff rents modules pour repr senter graphiquement et dynamiquement des traces d ex cution de programmes crits en langage Prolog Un premier module prend en entr e une trace d ex cution d un programme Prolog fournie par l utilisateur sous forme d un fichier texte Un deuxi me module convertit ce fichier texte en une repr sentation graphique soit un arbre de d rivation et en m morise les diff rentes tapes Ensuite un dernier module qui permet d afficher cet arbre en offrant la possibilit l utilisateur de suivre pas pas sa construction et donc le d roulement d ex cution de son programme Prolog 50 En permettant l utilisateur de naviguer entre les diff rentes tapes de la construction de l arbre nous ajoutons un aspect tr s important notre prototype compar aux travaux semblables L interaction entre l outil et l utilisateur est un aspect qui peut jouer un r le tr s important pour faciliter la compr hension de l ex cution des programmes logiques trait s car l utilisateur peut d couvrir cette repr sentation son rythme M me si l objectif principal de notre projet a t atteint il nous reste quand m me quelques aspects am liorer afin que notre prototype soit le plus performant possible pour son
73. s de l intelligence artificielle Apr s avoir parcouru les diff rents domaines de l intelligence artificielle dans notre vie de tous les jours nous devons aussi savoir que l intelligence artificielle elle m me d tient plusieurs diff rents domaine nous allons dans cette section mettre le point sur l impacte de la programmation logique sur ces derniers Reconnaissance des images symboles Un bel exemple a t donn dans l article Inductive Logic Programming for Symbol Recognition pr sent lors de la 10 me conf rence internationale sur l analyse et la reconnaissance de document en 2009 10 Cet exemple d crit un ensemble d exp riences autour de l utilisation de la programmation logique inductive pour l apprentissage automatique de descriptions de formes non triviales bas e sur une description formelle Cette approche consiste en une description des symboles graphiques par un ensemble de primitives de complexit quelconque et qui ne sont pas n cessairement des primitives habituellement rencontr es comme des lignes et des points A cet ensemble il est ajout des relations de positionnement relatif L extraction des primitives ainsi que l tablissement des relations se basent sur des algorithmes classiques de l tat de l art Cette repr sentation est ensuite fournie comme entr e un r solveur en programmation logique inductive qui en d duit des caract ristiques non triviales et qui pourront ensuite conduire des pr
74. sentent les entit s principales du projet 3 2 3 Diagramme de Classes Le diagramme de classes est un sch ma utilis en g nie logiciel pour pr senter les classes et les interfaces des syst mes ainsi que les diff rentes relations entre celles ci Ce diagramme fait partie de la partie statique d UML car il fait abstraction des aspects temporels et dynamiques Wikip dia 5 Comme nous l avons pr cis pr c demment notre projet comporte trois packages o chacun contient plusieurs diagrammes Cependant pour plus de clart et une meilleure facilit de description nous avons choisi de repr senter les diff rentes classes dans le m me diagramme la place de trois diagrammes distincts Ce sch ma est repr sent par la figure 9 35 valeur string information string voisin Noeud est compos de compose SU pprimerNoeud trouverNoeud ajouterinformation d finirRangArbre 1 fait parti est repr sent par 1 1 Contient Resultat nom string EtapeExecution resullatTrace fctAppel string construireTableauResultat rangExec int trierTableauResultat x T AjouterFonction g n rerTableauDeNoeud modifierRang extrairelnformationNoeud Contient plusieurs fait parti de repr sente 1 1 utilise m WS nom string vn sania on nombreParam int renommerParam modifierParam hercherParam Figure 9
75. t entre les donn es de bases d un probl me et la ou les solutions possibles de ce dernier Cette m thode d explication s est av r e la plus efficace gr ce son c t graphique car comme le disait William Playfair inventeur du concept de l histogramme dans son livre Political Atlas En fait de calculs et de proportion le plus s r moyen de frapper l esprit est de parler aux yeux L tre humain a g n ralement plus de facilit assimiler les concepts reli s entre eux quand ils sont repr sent es graphiquement plut t que d crits par des mots 18 Nous pouvons prendre un exemple simple afin visualiser cette transformation Soit une grammaire G avec un axiome S qui a pour r gles de production S aSbS et S Le symbole repr sente l tat nul c est dire que la branche le l arbre s arr te la En combinant toutes les possibilit s r alisables avec ces deux r gles de production nous obtenons la liste des mots que peut g n rer la grammaire G Par exemple pour obtenir le mot aabbab nous devons utiliser comme point de d part l axiome S puis d rivons cet axiome l aide des deux r gles production donn es La figure 2 pr sente le r sultat de cette d rivation Au premier niveau nous utilisons la r gle S aSbS Au deuxi me niveau nous d rivons les deux symboles S obtenus pr c demment Ensuite chaque nouveau symbole S obtenu est d riv en utilisant la r gle de production S Nous obteno
76. t maintenant en d veloppement continu et ses applications se retrouvent peu pr s partout dans nos soci t s comme par exemple dans le domaine bancaire avec des syst mes experts d valuation de risque li l octroi d un cr dit ou encore en m decine ou d autres syst mes experts d aide au diagnostic paule des m decins chaque jour Et afin de concevoir de tels programmes en intelligence artificielle diff rents outils sont utilis s mais l un des principaux outils reste la programmation logique qui permet de se lib rer de certaines contraintes de programmation En effet les instructions d ex cution ne sont pas d crire puisqu elles sont d j disponibles avec le langage sous forme d un d monstrateur de th or mes ou moteur d inf rences Cette forme de programmation est donc particuli rement adapt e aux besoins de l intelligence artificielle Au cours de nos recherches nous avons remarqu que toutes les applications qui utilisent la programmation logique se contentent d afficher le r sultat de l algorithme ex cut la demande de l utilisateur une trace de r solution du programme peut tre fournie mais ces traces sont r dig es diff remment d pendamment du langage et ne sont pas toujours videntes d chiffrer pour un d butant dans le domaine de la programmation logique Ceci ne permet pas un utilisateur de comprendre le raisonnement effectu par le r solveur pour arriver ce r sultat et donc de compr
77. t pas de faire un langage de programmation mais de traiter les langages naturels en l occurrence le frangais Ce projet a donn naissance une version du langage pr liminaire la fin 1971 et une version plus d finitive la fin de l ann e 1972 LOGTALK 14 est un langage de programmation logique orient objets apparu en 1998 Certains diraient qu il est issu de Prolog car il utilise la plupart des modules d impl mentation de ce dernier pour la compilation tant un langage multi paradigme il offre un support autant pour les classes que pour les prototypes Il inclut aussi la programmation multit ches et les interfaces LISP 15 ce langage dont le nom a t forg partir de l anglais ist processing traitement de listes est consid r comme tant l un des plus anciens langages de programmation en excluant le langage assembleur Apparu en 1958 il est bas sur le lambda calcul Il tait le choix par excellence pour la recherche en intelligence artificielle des ann es 70 et 80 De nos jours il est utilis dans plusieurs domaines tels que la programmation web et la finance CLIPS 16 C Language Integrated Production System est un environnement et un langage de programmation cr en 1985 par la section d intelligence artificielle de la NASA afin de pallier le manque de performance du langage LISP et son incompatibilit avec leurs contraintes CLIPS fait partie du paradigme des langages d claratifs et
78. tants domaines qu elle touche poss de un grand impacte dans notre quotidien mais les d couvertes et avanc es technologiques ne cessent de se manifester de jour en jour Jusqu au nous m nera ces avanc es quel point l intelligence artificielle impactera notre vie et ou que peut on esp rer comme invention futur gr ce cette technologie r volutionnaire 1 1 4 Le futur de l intelligence artificielle L intelligence artificielle est un domaine assez jeune par rapport aux autres branches de l informatique comme l algorithmique ou la cryptologie C est l une des raisons pour lesquelles elle est consid r e comme l un des domaines de l informatique avec le plus de recherches Par cons quent les d couvertes et am liorations de ce domaine n arr tent pas de progresser L intelligence artificielle prend de plus en plus de place dans notre quotidien et cela gr ce son impact dans diff rentes sph res comme la communication l ducation ou encore la s curit Mais jusqu o pourrons nous aller avec un rythme de progression aussi rapide C est une question laquelle nous ne pouvons r pondre L un des objectifs ultimes des scientifiques dans ce domaine reste celui de pouvoir simuler l intelligence humaine et le comportement d un tre humain dot de conscience et de sentiments Nous pouvons toutefois citer quelques exemples de projets futurs proches pr sent s par des firmes de technologie ou des chercheurs travaillant en intelli
79. te d finition car nous ne consid rons pas l intelligence comme une facult qu on poss de ou non la naissance mais comme une facult qui se construit gr ce notre exp rience et notre v cu Apprendre r agir et se d brouiller dans les diff rentes situations compliqu es ou quotidiennes vient de nos erreurs pass es ou du v cu de nos proches 1 1 3 Les diff rents domaines de l intelligence artificielle L utilisation de l intelligence artificielle ne cesse d augmenter de jour en jour dans notre quotidien Notre s curit en d pend nos moyens de transport y font appel et nos gadgets lectroniques ne jurent que par cette technologie Nous vous pr sentons ici quelques exemples des diff rents domaines touch s par l intelligence artificielle Reconnaissance et syst me de parole La reconnaissance vocale prend de plus en plus d ampleur dans notre quotidien Elle offre de multiples services allant de la simple distraction comme les technologies utilis es dans les jeux vid o o les personnages ob issent aux ordres vocaux du joueur un outil indispensable comme les supports num riques offerts aux handicap s moteurs qui travers leurs voix peuvent commander les diff rentes fonctionnalit s de leurs fauteuils roulants Cet apport de l intelligence artificielle se d veloppe de plus en plus de telles sortes qu avec les nouveaux t l phones intelligents il est possible d effectuer n importe quelle t che
80. te la paradigme avec les syntaxe et programmation Langages Crit res autres s mantique fonctionnelle langages Prolog LISP 13 CLIPS t LOGTALK z OZ PYTHON 2 E Mercury Scheme Racket O caml Tableau1 Comparaison des langages de programmation logique Afin d indiquer si un langage atteint un crit re nous avons indiqu le symbole et pour indiquer qu il ne l atteint 1 2 5 Analyse de la comparaison Il existe diff rents langages de programmation et s il en existe autant c est parce que chacun d entre eux a ces caract ristiques propres qui le distinguent des autres Selon les besoins du programmeur ce dernier peut en favoriser un plut t qu un autre Prenons comme exemple le langage Prolog vu que le but original de ce langage tait de procurer un outil pour les linguistes ignorant l informatique sa syntaxe et sa s mantique sont consid r es comme tr s simples et claires C est donc un parfait outil pour quelqu un qui n est pas encore expert en programmation ou qui veut simplement impl menter un programme sans beaucoup de difficult Nous pouvons en dire autant pour le langage Mercury qui utilise la m me syntaxe que Prolog ainsi que Lisp qui a la r putation de se distinguer par une syntaxe simple Pour en revenir au langage Prolog sa r versibilit lui donne un s rieux avantage da
81. tion d j g n r s auparavant En effet les fichiers XML sauvegard s apr s l tape de traitement chaque fois que l utilisateur entre une nouvelle trace sont stock s dans une base de donn es Cette base repr sente une biblioth que accessible tout moment Il suffit de cliquer sur le nom du fichier XML dans la liste propos e par le g n rateur pour que le traitement se lance automatiquement et g n re l arbre L application offre ensuite la main l utilisateur pour effectuer les m mes op rations qu il ferait avec un arbre nouvellement g n r 29 A partir des besoins de notre projet d taill s dans les chapitres pr c dents nous avons pr sent les fonctionnalit s de l application envisag e Nous expliquons maintenant la conception de cette application afin de bien sp cifier notre mod le Pour d velopper une application de qualit qui r pond aux attentes et aux exigences il est n cessaire d adopter une m thode de conception Pour cela nous avons utilis des diagrammes fournis par le langage de mod lisation unifi UML afin de d crire les sp cifications Notre choix s est port vers le langage UML car c est un langage couramment utilis dans les projets logiciels pour sp cifier visualiser modifier et construire les documents n cessaires au bon d veloppement d un logiciel orient objet UML est un langage qui gr ce ses diff rents types de diagrammes une grande souplesse permettant la mod lisatio
82. u parcours exact des l ments de la solution choisie dans programme tape par tape On peut galement utiliser un tableau deux dimensions repr sentant d un c t les diff rentes tapes jusqu la solution choisie et de l autre l volution des diff rentes variables de la solution tout au long du programme Pour ce qui est de la forme graphique on fait g n ralement appel aux arborescences Il existe de multiples types d arborescences dans le monde de l informatique Chaque type est utilis selon ses caract ristiques dans un m me domaine ou dans diff rents domaines Nous avons limit notre int r t aux arbres de d rivation car c est le seul type d arborescence appropri pour notre projet de recherche Les arbres de d rivation ou arbres syntaxiques sont surtout utilis s dans le domaine du langage automate et celui de la compilation Un arbre de d rivation peut tre d fini comme tant une repr sentation graphique d une phrase ou 17 d un ensemble de mots d une grammaire donn e c est dire qu il d crit graphiquement et sous la forme d un arbre invers comme son nom l indique les diff rentes possibilit s d obtenir cette phrase ou cet ensemble de mots donn partir d une grammaire d finie Tant que le r sultat la solution ou l approche d crire est d composable en phases ou tapes nous pouvons les repr senter travers une arborescence La figure 1 ci dessous repr sente la similarit entre un ar
83. uement les traces d ex cution Dans le quatri me chapitre nous pr sent le prototype construit pour valider le mod le Nous discutons galement les r sultats obtenus et proposons des am liorations Nous terminons ce m moire par une conclusion Chapitre 1 La programmation logique et ses diff rents langages Notre domaine de recherche se situant dans le domaine de l intelligence artificielle nous avons consacr ce chapitre la pr sentation de ce domaine Nous avons ensuite pr sent une des formes de programmation utilis e en intelligence artificielle qui est la programmation logique Nous avons fait une tude des diff rents langages utilis s en sp cifiant les avantages et les inconv nients de chacun d entre eux 1 1 L intelligence artificielle Nous avons essay d acqu rir le plus d information possible sur un domaine qui ne cesse de se d velopper et de s enrichir de jour en jour Nous allons pr senter dans cette section les trois tats temporels de l intelligence artificielle le pass travers les origines de cette technologie et certains noms connus ayant particip son apparition le pr sent avec tous les domaines touch s et les apports que nous offre l intelligence artificielle et le futur avec ce que nous attendons comme avanc e technologique gr ce au d veloppement croissant de cette derni re 11 1 Origine de l intelligence artificielle ll faut remonter jusqu la fin du 17 me si cle pour a
84. ulti Paradigm Languages Journal of Symbolic Computation 40 2005 44 S Antoy et M Hanus Set Functions for Functional Logic Programming In Proceedings of the 11th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming ACM Press 2009 45 B Brassel M Hanus F Huch J Silva et G Vidal Run Time Profiling of Functional Logic Programs LNCS vol 3573 Springer Heidelberg 2005 46 C Ferri Ramirez J Hernandez Orallo et M J Ramirez Quintana Incremental Learning of Functional Logic Programs FLOPS 2001 LNCS vol 2024 Springer Heidelberg 2001 47 S Fischer A Functional Logic Database Library In Proc of the ACM SIGPLAN 2005 Workshop on Curry and Functional Logic Programming ACM Press 2005 48 A J Fern ndez M T Hortal Gonz lez F S enz P rez et R del Vado V rseda Constraint Functional Logic Programming over Finite Domains Theory and Practice of Logic Programming 7 2007 49 J Straub et J Huber A Characterization of the Utility of Using Artificial Intelligence to Test Two Artificial Intelligence Systems Computers 2013 50 J Straub et J Huber A Characterization of the Utility of Using Artificial Intelligence to Test Two Artificial Intelligence Systems Computers 2013 51 D Defays R M French et J Sougn Apports de l Intelligence Artificielle a la Psychologie Maison d dition 1997 52 J Legrand Le langage Prolog Exemple en Turbo
85. utilis dans sa plateforme certains principes int ressants appuyant l apprentissage par visualisation savoir l exploitation des principales ressources virtuelles afin de simplifier la manipulation et la gestion de toute grammaire Cet outil offre aussi la possibilit d encoder la redondance des sous structures afin de pouvoir afficher les sous arbres les caract ristiques de leurs structures et celles des quations Comme nous pouvons le voir dans la figure 3 l application est compos e de trois sections v up ent te qui traite le d coupage des donn es donc les unifications la strat gie de d coupage et les r sultats afficher v une deuxi me section gauche qui donne la main l utilisateur pour choisir le fichier traiter v une fen tre principale dans laquelle se fait l affichage des arborescences finales 20 Lexicon Input Parsing Lexicon home lopez java lekiconm test omi Input ra partie supelrieure spheirique de la surface un enfant intelligent de sa fille comprend lentement que sa mezre est beste la fille aime le joueur de football ametricain la partie supetrieure sphetrique de la surface Unification Strategy Results GM after parsing D bottum up complete parses ignore features r eft to jt oe EP partia and 4 no top bottom unif gt r 1 E na 211 partial parses BF resuits e Ca Co compiete TY results Oo f Partia e m Co complete resu
86. utomatique qui consiste a parcourir l ensemble des repr sentations possibles d un concept afin de d couvrir celles qui d crivent le mieux l ensemble des exemples instances positives ou n gatives de ce concept La programmation logique inductive est particuli rement utile pour le traitement de la langue naturelle La programmation par contraintes est un paradigme de programmation apparu dans les ann es 1980 permettant de r soudre des probl mes combinatoires de grandes tailles tels que les probl mes de planification et d ordonnancement Constraint Programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming the user states the problem the computer solves it E Freuder 1997 9 Le principal avantage ou apport de la programmation logique par rapport aux langages plus classiques tels que Pascal est que ces derniers sont de nature imp rative En effet il faut d crire le probl me r soudre selon un algorithme alors que les langages logiques sont de nature d clarative Cela signifie qu il suffit d indiquer au syst me les donn es du probl me traiter Ainsi avec cette nouvelle vision nous pouvons r soudre des probl mes complexes sans avoir besoin de recourir des techniques algorithmiques qui peuvent s av rer difficiles voire impossibles mettre en ceuvre ou encore trop co teuses 1 2 2 Impact de la programmation logique sur les diff rents domaine
87. v nement d clencheur Aucun Pr conditions N ud s lectionn Post conditions Affichage des donn es sp cifiques au n ud s lectionn travers les diff rents cas d utilisation nous avons pu parcourir les fonctionnalit s de l application future et ses interactions avec l utilisateur ainsi que les conditions qui rendent ces interactions possibles Nous allons maintenant passer une description plus profonde de l application celle de l organisation des classes et packages qui composent cette derni re 33 3 2 2 Diagramme Inter package Les packages sont consid r s comme une m thode d organisation efficace qui vise a regrouper diff rents types de classe ayant un rapport quelconque dans un m me paquet Les packages forment une repr sentation globale du projet Wikip dia 4 La figure 8 repr sente le diagramme inter package de l application envisag e Elle se compose de trois principaux packages qui sont l interface l interpr teur de trace et l arborescence Chacun de ces packages est expliqu en suivant ainsi que les liens qui les relient Interface Traitement Trace Arborescence Figure 8 Diagramme inter package de l application Package 1 Interpr teur de trace Ce package peut tre d crit comme le coeur de l application il permet la conversion de la trace en entr e en un fichier XML Ensuite il analyse ce dernier pour en extraire une liste de noeuds qui sera ut
88. va l environnement NetBeans permet galement de supporter d autres langages comme Python C C JavaScript XML Ruby PHP et HTML II comprend toutes les caract ristiques d un environnement de d veloppement int gr moderne diteur en couleurs projets multi langages r usinage de codes diteur graphique d interfaces et de pages Web Tout ces langages et environnements ajout s un mod le bien con u nous ont permis ce concevoir un prototype r pondent la plus part de nos attentes et remplissant l objectif principal de notre prototype La section suivre contient une description g n rale de ce que nous avons concu un r sum simplifi de l utilisation de notre application et de son fonctionnement interne et externe 41 4 2 Description g n rale du prototype concu Nous avons concu un prototype capable de r cup rer en entr e un fichier texte contenant la trace g n r e par l ex cution d un programme Prolog Dans un premier temps et travers un module de traduction le prototype traduit le fichier texte en format XML et g n re le fichier correspondant Ce fichier est enregistr en m moire Dans un deuxi me temps le module de traitement extrait du fichier XML les informations requises pour la construction d un arbre de d rivation Gr ce son module d ex cution notre prototype construit l arbre attendu Pour chaque tape d ex cution du programme un sous arbre est g n r La derni re tape g n
89. vantage au quoi qu au comment 1 2 1 Programmation imp rative et programmation d clarative Afin de mieux comprendre ce qu est la programmation logique et son fonctionnement qui traite du quoi plut t que du comment nous allons pr senter une vue globale des deux types de programmation existants la programmation imp rative et la programmation d clarative e La programmation imp rative est la forme de programmation rattach e trois concepts fondamentaux qui sont le test l ordre et l it ration Elle est appliqu e par les langages dits proc duraux La caract ristique principale de cette programmation est de n cessiter l expression pas le d tail du comment Elle est la traduction d une d marche algorithmique au sens de la recherche d automatisme et d conomie de pens e o le passage des donn es vers les r sultats est d crit comme une suite d actions 8 e La programmation d clarative est appel e plus commun ment programmation logique Elle a comme principale caract ristique la d l gation de la charge du comment au langage lui m me Dans ce type de programmation le probl me est d crit partir des objets concern s leurs propri t s et bien s r les relations entre elles En programmation logique deux extensions sont mises en vidence la programmation logique inductive et la programmation par contraintes La programmation logique inductive est une technique d apprentissage a
90. vide Si un but ou sous but a besoin de plus de deux param tres pour s ex cuter deux autres colonnes facultatives ont t rajout es afin de r pondre aux besoins de ce type de situations 47 La figure 15 repr sente un exemple d arbre de d rivation que notre prototype a pour but de g n rer Une fois que l utilisateur a d fini les noms des fichiers en entr e et en sortie et cliqu sur le bouton eer l interface lui donne la possibilit de g n rer l arbre correspondant et l afficher en cliquant sur le bouton Affichage de l arbre Trace de r solution grandpereccmidguel parent sally miguel pere pierre sally homme piech arent pierre sally Affichage de l arbre Suivant gt Pr c dent Figure 15 L arbre de d rivation En dessous de cette arborescence notre prototype offre deux boutons Suivant et Pr c dent qui permettent de parcourir les diff rents tats de l arbre de d rivation afin de suivre son cheminement d s la cr ation du premier noeud jusqu la construction de l arbre complet L utilisateur a la possibilit de naviguer entre les diff rentes tapes de construction de l arbre Il peut suivre pas pas la r solution du probl me et m me revenir en arri re pour choisir d aller vers un noeud diff rent de celui choisi pr c demment Contrairement la simple lecture d une trace la description graphique sous forme arborescente permet de voir les anc tres et l
91. voir le premier aper u de la notion d une machine pensante En 1642 Blaise Pascal parvient construire une machine capable de r soudre des additions et des soustractions au moyen d engrenages Un certain Gottfried Leibnitz parvient quelques ann es plus tard y ajouter les op rations de multiplications et de divisions avant de s attaquer son plus grand projet connu sous le nom de Characteristica Universalis un syst me de r gles formelles destin es r soudre tous les probl mes auxquels taient confront s les humains Un demi si cle plus tard La Mettrie crit L Homme machine aboutissement logique voire in luctable de la pens e newtonienne le comportement physique et mental de l homme pourrait tre enti rement d crit l aide de r gles d terministes et par cons quent l homme ne serait rien d autre qu une machine d une complexit extraordinaire certes mais une machine tout de m me 2 Quant la notion d intelligence artificielle comme nous la connaissons actuellement il faudra remonter aux ann es 1940 1950 Une poign e de scientifiques d une large gamme de domaines math matiques psychologie ing nierie conomie et science politique ont commenc discuter de la possibilit de cr er un cerveau artificiel suite l invention de l ordinateur programmable en 1940 ordinateur bas sur les descriptions d Alan Turing en 1936 Une grande fr n sie sur la recherche en intelligence artifici

Download Pdf Manuals

image

Related Search

Related Contents

コロナエコキュート HEMSに対応した寒冷地向け機種を新発売(PDF  User Manual    User & Setup Guide  

Copyright © All rights reserved.
Failed to retrieve file