01.01.2015 Views

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

384 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société.<br />

tolérance. Un habitant insatisfait tente ensuite de trouver une maison libre i. S’il en<br />

trouve une, il se déplace de sa maison j vers une nouvelle maison i non occupée.<br />

Pour accélérer la recherche de maisons, le système mémorise une liste <strong>des</strong> maisons<br />

non habitées qu’il met à jour après chaque déplacement.<br />

17.3.1.1. Modélisation algorithmique.<br />

Le diagramme UML se traduit assez simplement en un algorithme qui reprend<br />

les deux phases d’évaluation et d’action. Nous avons programmé cet algorithme<br />

sous Excel en langage VBA.<br />

Nous disposons les maisons sur un maillage cellulaire où chaque cellule est un<br />

carré (et aussi une cellule au sens Excel). L’indice de maison j du diagramme UML<br />

est alors remplacé par un double indice (i, j) qui indique les numéros de ligne et de<br />

colonne de la cellule carrée. Le numéro de ligne i varie de 1 à NL et le numéro de<br />

colonne j varie de 1 à NC, avec N = NC*NL.<br />

Densité de population<br />

Seuil de tolérance<br />

Occupations<br />

Maisons libres<br />

Un pas de temps de<br />

simulation<br />

Nouvelles occupations<br />

Nouvelles maisons libres<br />

Conventions SADT : à gauche les flux d’entrée (consommation), à droite les flux de<br />

sortie (production), en haut les contrôles. La boîte représente la fonction du système.<br />

Figure 17.2. Schéma systémique du modèle.<br />

L’algorithme prend deux tableaux en entrée : Occupation(i, j), et<br />

ListeHabitationsLibres(k) qui indiquent respectivement le type d’occupation de la<br />

cellule (i, j) et la position de la k-ième maison libre. Ces tableaux sont remplis<br />

durant la phase d’initialisation. Le tableau ListeHabitationsLibres n’est pas<br />

indispensable, il permet seulement de diminuer le temps de traitement lorsque le<br />

nombre de cellules est important devant le nombre de cases libres, en évitant une<br />

longue recherche à chaque itération. L’algorithme calcule le tableau Satisfaction(i, j)<br />

de chaque maison si elle est occupée, puis opère les déplacements d’individus non<br />

satisfaits en mettant à jour la liste <strong>des</strong> maisons vi<strong>des</strong>. Il fournit donc en sortie une<br />

nouvelle configuration d’habitants dans les maisons. Enfin deux paramètres de<br />

contrôle sont importants dans le comportement global du modèle : la densité de<br />

population et le seuil de tolérance, ils restent fixes au cours d’une simulation. On

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

Saved successfully!

Ooh no, something went wrong!