Table des matières - Gilles Daniel

Table des matières - Gilles Daniel Table des matières - Gilles Daniel

gillesdaniel.com
from gillesdaniel.com More from this publisher
01.01.2015 Views

272 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société. du programme (notre modèle informatique), avant de se diriger vers l'implémentation à proprement parler du programme. 12.4.3. Implémentation Une fois le modèle informatique conçu et son squelette défini sous la forme d'un diagramme de classes, il est temps de passer à l'implémentation du programme. Pour cela, il est toujours possible de partir de zéro, mais de nombreuses plateformes de simulation multi-agents sont disponibles, sous forme de logiciel libre [12], et mettent à disposition du modélisateur toute une gamme d'outils de programmation, visualisation et traitement des données. Des comparaisons entre différentes plateformes ont été publiées [GIL 02], [SER 02], [TOB 04] et aideront le lecteur à faire son choix. Le langage de programmation aura également son importance. Il est vivement conseillé d'utiliser un langage orienté-objet, très proche du paradigme multi-agents, comme C++ ou Java. La plupart des plateformes disponibles utilisent Java, un langage relativement simple à apprendre et utiliser, mais moins performant en terme de rapidité d'exécution que C++. Cela n'apparaît cependant que dans des cas extrêmes, avec des millions d'agents ou des agents très cognitifs. Pour notre exemple, nous avons choisi d'implémenter notre modèle sur Moduleco [4], une plateforme multi-agents conçue pour la modélisation de marchés, organisations, phénomènes sociaux et dynamique des populations. Nous reproduisons ici un extrait du code Java utilisé, à titre purement informatif. L'ensemble du code est disponible sur le Web à l'adresse suivante : http://www.cs.manchester.ac.uk/ai/public/moduleco/models/informationValue Lors de la phase d'implémentation du programme, le modélisateur est perpétuellement amené à s'interroger sur la manière de coder telle ou telle partie de son modèle informatique. En se penchant sur ces détails d'implémentation, il sera même parfois conduit à revoir son modèle conceptuel. C'est là un des bénéfices majeurs de la simulation, surtout lorsque le modélisateur participe lui-même à la phase d'implémentation. En effet, ce n'est qu'à ce moment qu'il se rendra compte des suppositions implicites de son modèle, qu'il doit expliciter nécessairement lors du passage à la simulation. C’est là une phase très riche d'exploration et de découverte du modèle, auquel le modélisateur devrait prendre part, même s'il est aidé par un informaticien pour la partie code.

Modélisation, implémentation et exploration d'un Système Multi-Agents. 273 /** * Class: Information.java * Model: informationValue * * @author Gilles Daniel (gilles@cs.man.ac.uk) * @version 1.0, August 8, 2005 */ package models.informationValue; /** * Classe Information */ public class Information { /** * Attributs */ protected int nombrePieces; proteted int[] pieces; protected double valeurFondamentale; /** * Methodes */ // Initialisation des attributs public Information() { nombrePieces = 10; pieces = new int[nombrePieces]; valeurFondamentale = 0; } // Effectue le tirage aleatoire. // Chaque piece prend la valeur 0 ou 1 public void tirageAleatoire() { for (int i=0; i

Modélisation, implémentation et exploration d'un Système Multi-Agents. 273<br />

/**<br />

* Class: Information.java<br />

* Model: informationValue<br />

*<br />

* @author <strong>Gilles</strong> <strong>Daniel</strong> (gilles@cs.man.ac.uk)<br />

* @version 1.0, August 8, 2005<br />

*/<br />

package models.informationValue;<br />

/**<br />

* Classe Information<br />

*/<br />

public class Information {<br />

/**<br />

* Attributs<br />

*/<br />

protected int nombrePieces;<br />

proteted int[] pieces;<br />

protected double valeurFondamentale;<br />

/**<br />

* Metho<strong>des</strong><br />

*/<br />

// Initialisation <strong>des</strong> attributs<br />

public Information() {<br />

nombrePieces = 10;<br />

pieces = new int[nombrePieces];<br />

valeurFondamentale = 0;<br />

}<br />

// Effectue le tirage aleatoire.<br />

// Chaque piece prend la valeur 0 ou 1<br />

public void tirageAleatoire() {<br />

for (int i=0; i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!