User talk:GillesD

From ArmadeusWiki
Jump to: navigation, search

Page under construction... Construction.png Informations on this page are not guaranteed !!

Installation d'un agent JAM sur APF9328 avec DevFull


Présentation

L'architecture pour agents intelligents JAM est une preuve de concept associée à la thèse soutenue par Marcus James HUBER dans le domaine de l'intelligence artificielle.

figure 1 - Architecture JAM

Cette architecture est de type BDI (Belief-Desire-Intention), fondée sur un système PRS (Procedural Reasoning System). En fait, le code d'un agent JAM contient des beliefs (les faits connus par l'agent), des desires (les buts à réaliser par l'agent) et des aptitudes (les plans et actions élémentaires). Les intentions sont déterminées dynamiquement par l'agent, en cours d'exécution, en fonction des faits connus, des buts poursuivis et des plans disponibles.

Le code source et la documentation se trouvent en suivant le lien [1].


Prérequis

Pour la compilation du code Java des agents JAM, il faut avoir installé classpath et Jikes sur l'ordinateur de développement.

Pour faire fonctionner les agents JAM, il faut avoir installé classpath et jamvm sur l'APF (il faut cocher les cases correspondantes dans Buildroot). Compte tenu de l'étroitesse de la mémoire FLASH disponible sur l'APF (8 Mo seulement) il est utile de mettre en oeuvre une SDcard (2 Go c'est bien) suivant la procédure décrite ici [[2]]. Une autre solution est de réaliser un partage de fichiers NFS [[3]]. La seconde solution est plus souple, cependant, par facilité de mise en oeuvre, c'est la première solution qui est retenue dans cet article.

Compilation de JAM

Sur l'ordinateur de développement, il est conseillé de compiler les fichiers source (.java) car le fichier jam.jar fourni ne fonctionne pas dans l'utilisation présente.

L'archive Jam-01Nov01.zip est à décompresser dans le répertoire <JamParent> (ici /home/user/jamagent).

On obtient une arborescence commençant par <JamParent>/com/irs/jam/ (ici /home/user/jamagent/com/irs/jam/).

Ajouter la ligne suivante à la fin du fichier /etc/bash.bashrc (sous UBUNTU) :

export CLASSPATH="/usr/share/classpath/glibj.zip:/usr/share/classpath/tools.zip:/home/user/jamagent"

Se placer dans le sous répertoire jam :

 [  ] # cd /home/user/jamagent/com/irs/jam

Utiliser Jikes avec l'option de compilation pour Java 1.3 afin d'éviter les erreurs dues au nouveau mot réservé ASSERT. Ce mot est utilisé dans les programmes d'intelligence artificielle depuis très longtemps, les développeurs du langage Java auraient dû en choisir un autre !

 [  ] # jikes -source 1.3 *.java

Compiler également les primitives située dans le répertoire /home/user/jamagent/com/irs/jam/primitives.

 [  ] # cd primitives
[  ] # jikes -source 1.3 *.java

Utilisation d'un agent JAM sur l'APF

Copier l'arborescence com/irs/... sur la SDcard, dans le répertoire /home, en utilisant sa méthode préférée. La SDcard directement insérée dans l'ordinateur de développement est une solution simple (quand le partage NFS n'est pas utilisé).

Après réinsertion de la SDcard dans la DevFull puis démarrage, ajouter les lignes suivantes (après le PATH) dans le fichier /etc/profile :

export CLASSPATH=\
/usr/share/classpath/glibj.zip:\
/usr/share/classpath/tools.zip:\
/home

Se placer dans le répertoire jam :

 # cd /home/com/irs/jam

Essayer l'agent JAM avec l'exemple des tours de Hanoï :

 # jamvm -Xmx4M com.irs.jam.JAM ./examples/hanoi.jam

Les coups à jouer pour résoudre le problème des tours de Hanoï défilent.


L'option d'exécution -Xmx4M (merci Jorasse) permet de pallier au problème d'allocation de mémoire dans le tas (essayer sans l'option pour se rendre compte du problème).