Messages from list : cormas@cirad.fr

Choose a topic among the following archives :

RE : Manipulation des messages avec Cormas

New Message Reply Date view Thread view Subject view Author view

Subject: RE : Manipulation des messages avec Cormas
From: Christophe Le Page (christophe.l@chula.ac.th)
Date: Tue Apr 25 2006 - 06:42:52 CEST

 

Bonjour,

 

En fait les deux problèmes mentionnés se confondent.

Un diagramme de classes UML permet de bien comprendre la logique des
associations entre entités au niveau du modèle (boîtes bleues) et au niveau
de la plateforme Cormas (boîtes rouges).

Les lignes « simples » reliant 2 entités (sans triangle blanc à l’une des
extrémités) représentent des associations simples.

Lors de l’implémentation, les noms situés aux extrémités de ces associations
simples doivent apparaître comme attributs des classes concernées

(« monBerger » pour la classe « Troupeau », « monTroupeau » pour la classe «
Berger »), au même titre que les attributs « classiques » type « energie »
de la classe « Vegetation ».

Ne pas oublier à chaque fois de définir le couple de méthodes d’accès (en
lecture et écriture).

 

Les lignes terminées par un triangle blanc représentent des associations
particulières (généralisation/spécialisation).

Ainsi, les entités spécifiques au problème étudié (en bleu) « héritent » des
entités génériques de Cormas (en rouge).

En particulier, toutes les associations définies entre entités génériques
(lignes reliant les boîtes rouges) sont prédéfinies et donc directement
utilisables pour les entités spécifiques qui en héritent.

 

Pour répondre plus précisément à la première question, au niveau du modèle,
la méthode de création des agents « Berger » et « Troupeau » devrait
ressembler à ceci :

 

initAgents

| nouveauTroupeau nouveauBerger |

    nouveauTroupeau := self newEntity: Troupeau.

    nouveauBerger := self newEntity: Berger.

    nouveauTroupeau monBerger: nouveauBerger.

    nouveauBerger monTroupeau: nouveauTroupeau

 

Quant à la seconde question, s’il s’agit pour le berger d’accéder à la
valeur de l’energie de l’entité de végétation de la portion d’espace sur
laquelle il est situé, il faut se référer à l’attribut « patch » de la
classe générique « AgentLocation » et à la méthode « myOcupants: » de la
classe générique « SpatialEntity ».

Ainsi, une méthode de la classe Berger pourrait ressembler à ceci :

 

energieDisponibleLocalement

| vegetationLocale |

vegetationLocale := (self patch myOccupants: #Vegetation) isEmpty

ifTrue: [nil]

ifFalse: [(self patch myOccupants: #Vegetation) first].

^vegetationLocale isNil

ifTrue: [0]

ifFalse: [vegetationLocale energie]

 

Bonne modélisation !

Clp

 

PS : Les exemples décrits dans les tutoriaux (en particulier le second)
disponibles sur le site Internet http://cormas.cirad.fr/fr/outil/outguid.htm

permettent de rentrer dans les détails de l’implémentation des associations
entre entités avec la plateforme Cormas

 

 

-----Message d'origine-----
De : owner-cormas@cirad.cirad.fr [mailto:owner-cormas@cirad.cirad.fr] De la
part de Fadimata Abdou
Envoyé : samedi 22 avril 2006 20:39
À : cormas@cirad.fr; cormas@cirad.fr
Objet : Manipulation des messages avec Cormas

 

Bonjour,

 

Je suis une étudiante en master Informatique. Je suis en train d'implémenter
un modèle qui va simuler la mobilité des troupeaux en pâturage tout en
suivant l'évolution de la végétation (biomasse produite et biomasse
consommée). Ce projet à pour but d'étudier la dégradation des sols causée
par une sur-exploitation de certains parcours de pâturage par rapport à
d'autres.

Dans notre modèle, on doit tenir compte de plusieurs entités comme le
berger, le troupeau, la végétation, les ressources en eau (puit, citerne
sous-terraine), le climat...

Mon premier problème se situe maintenant au niveau des messages. Je sais
établir une communication pour un seul type d'agent, c'est à dire une
communication entre bergers seulement. Mais, je ne sais pas comment établir
une communication entre deux agents differents, c'est à dire entre le berger
et le troupeau.

Mon deuxième problème est comment acceder à un attribut ou une méthode d'une
entité X à partir d'une entité Y? Par exemple lorsque un berger veut acceder
à l'attribut Energie de l'entité Végétation.

 

Abdou Fati

Etudiante en Master informatique à l'Institut Supérieur de Gestion de
Tunis(ISG). Laboratoire SOIE

Encadreur: Raggad Nasr Agronome INRAT Tunisie

                 Ben Saïd Lamjed Maître Assistant lSG

Titre Projet: Modélisation et Simulation Multi-agents pour la gestion
durable des ressources pastorales

mail: abdoufadi@yahoo.fr

Tel: 00(216)22696585

image001.gif

New Message Reply Date view Thread view Subject view Author view
 

Back to home