Comparaison de trois implémentations du modèle de Schelling

De
Publié par

Niveau: Supérieur

  • mémoire


Chapitre 17 Comparaison de trois implémentations du modèle de Schelling 17.1. Emergence d'une structure spatiale : le modèle de Schelling Le prix d'économie « de la banque de Suède à la mémoire d'Alfred Nobel » 2005 attribué à Thomas Schelling est, avec le prix Nobel chimie de 1977 attribué à Ilya Prigogine, pour ses travaux sur les structures dissipatives, un des rares prix qui interpelle directement la communauté des géographes modélisateurs. Parce qu'il a « contribué de façon significative à réduire le fossé entre l'économie et les autres sciences sociales et du comportement », Thomas Schelling est en effet largement cité en géographie, notamment par les chercheurs qui s'intéressent aux systèmes complexes géographiques. S'il doit principalement ce prix à ses travaux en théorie des jeux, c'est sa contribution à une question fondamentale - Comment les comportements individuels produisent-ils des phénomènes que la théorie pure ne peut prévoir ? - à laquelle nous nous rattachons. Au début des années 1970, Schelling tente de montrer comment des villes peuvent se structurer en blocs communautaires, où blancs et noirs se font face sans jamais se mélanger. Les enquêtes qu'il réalise démontrent pourtant que « les gens ne veulent pas être majoritaires dans un quartier, ils ne sont donc pas ségré- gationnistes », mais « la seule volonté de ne pas être trop minoritaires produit de la ségrégation. Autrement dit, il peut y avoir de la ségrégation sans volonté individuelle de ségrégation ».

  • ségrégation sans volonté individuelle de ségrégation

  • agent

  • travaux en théorie des jeux

  • phase d'implémentation informatique

  • schelling

  • simulation multi-agents pour les sciences de l'homme et de la société

  • décision individuelle

  • paradoxe de la ségrégation


Publié le : mardi 29 mai 2012
Lecture(s) : 56
Source : univ-rouen.fr
Nombre de pages : 31
Voir plus Voir moins
Chapitre 17
Comparaison de trois implémentations du modèle de Schelling
17.1. Emergence dune structure spatiale : le modèle de Schelling Le prix déconomie « de la banque de Suède à la mémoire dAlfred Nobel » 2005 attribué à Thomas Schelling est, avec le prix Nobel chimie de 1977 attribué à Ilya Prigogine, pour ses travaux sur les structures dissipatives, un des rares prix qui interpelle directement la communauté des géographes modélisateurs. Parce quil a « contribué de façon significative à réduire le fossé entre l'économie et les autres sciences sociales et du comportement », Thomas Schelling est en effet largement cité en géographie, notamment par les chercheurs qui sintéressent aux systèmes complexes géographiques. Sil doit principalement ce prix à ses travaux en théorie des jeux, cest sa contribution à une question fondamentale - Comment les comportements individuels produisent-ils des phénomènes que la théorie pure ne peut prévoir ? - à laquelle nous nous rattachons. Au début des années 1970, Schelling tente de montrer comment des villes peuvent se structurer en blocs communautaires, où blancs et noirs se font face sans jamais se mélanger. Les enquêtes quil réalise démontrent pourtant que « les gens ne veulent pas être majoritaires dans un quartier, ils ne sont donc pas ségré-gationnistes », mais « la seule volonté de ne pas être trop minoritaires produit de la ségrégation. Autrement dit, il peut y avoir de la ségrégation sans volonté individuelle de ségrégation ». Schelling est ainsi capable de mettre en évidence des  Cha pitre rédigé par Eric DAUDE et Patrice LANGLOIS 
380 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société.
idées à la fois simples et compréhensibles, mais dune très grande profondeur, il le démontre entre autres avec sa « Tyrannie des petites décisions ». Dans «Micromotives and Macrobehavior» publié en 1978, Schelling propose un modèle pour explorer le paradoxe de la ségrégation. Il dispose pour cela sur un échiquier deN casesN1 pions gris,N2 pions noirs etN3 vides, où casesN1 =N2 et N1 +N2 +N3=N. La stratégie employée pour explorer la dynamique du paradoxe évoqué ci-dessus est relativement simple, elle est basée sur le degré de tolérance dun individu aux individus différents de lui, présents dans son voisinage. Chaque pion se préoccupe ainsi de son voisinage immédiat, définit par le nombre doccupants des 8 cases contiguës. Un pion ne changera de case que si le nombre de pions « étrangers » dans son voisinage dépasse le seuil de tolérance fixé, identique pour tous. Dans ce cas, il ira se positionner au hasard sur une case laissée vacante. Par exemple si un individu accepte pour voisins jusquà deux tiers de voisins différents (diff) et donc un tiers de voisins identiques (ident), il restera à sa place si son voisinage contient au moins 1 voisin identique à lui sil na qu1 ou 2 voisins ; au moins 2 voisins identiques sil y a entre 3 et 5 voisins et un minimum de 3 voisins identiques lorsque lindividu est entouré de 6 à 8 voisins. Remarquons que le taux doccupation est calculé ici par rapport au nombre dindividus présents dans le voisinage, et non par rapport au nombre de cellules du voisinage, qui vaut toujours 8 dans notre cas. Diverses règles sont testées par Schelling, qui sont des variantes du modèle précédent : Les groupes peuvent avoir des seuils de tolérance différents ; égalité ou pas du nombre dindividus par groupe etc. Une des variantes du modèle que nous allons explorer ici prend en compte une dimension laissée de côté par Schelling, la densité globale de la population. On peut en effet considérer que les décisions individuelles sont à la fois dictées par des exigences locales, à savoir la composition sociale du voisinage, mais quelles dépendent aussi en partie de contraintes plus globales comme la densité de population. On élargit ainsi la notion denvironnement social à la notion denvironnement spatial : lespace matériel, les cellules libres qui mentourent, joue un rôle non négligeable dans mon appréciation de la tolérance. Un individu définit ainsi ses exigences non plus seulement en rapport à la seule composition sociale de son environnement mais également en référence avec la densité dans ce voisinage : le seuil de tolérance se définit ainsi comme la proportion maximale détrangers que jaccepte dans mon voisinage composé de huit maisons (Tableau 17.1). Une fois posée la stratégie employée, il reste à implémenter et à explorer le comportement global du modèle selon les différents paramètres en jeu.
Comparaison de trois implémentations du modèle de Schelling381
 voisins diff 0 diff 1  6 diff 7 diff 4 diff 5 diffdiff 2 3 diff diff 8 ident 0 1  ident 1 ident 2  8 3 iiddeenntt 4moderbov eni si ident 5 s ident 6 0 ident 7  ident 8  Tableau 17.1. Configurations du voisinage dune cellule centre et action selon le seuil de tolérance (fixé ici à 66%) avec une règle prenant en compte la densité de population. 
17.2. Traduction des hypothèses dans un contexte AC et SMA Nous établissons dabord une métaphore de la réalité à travers un automate cellulaire (AC) et un système multi-agents (SMA). Le domaine (carré) de lautomate représente une ville (léchiquier pour Schelling) où chaque cellule (chaque case) représente une habitation. Un habitant est représenté par un agent (un pion pour Schelling). Une cellule accueille au plus un agent (au plus un pion par case de léchiquier). Limplémentation informatique de ce modèle nous oblige à expliciter des hypothèses et des paramètres qui sont souvent ignorées dans les présentations : - la taille du domaine joue un rôle important dans la combinatoire des réorganisations possibles des individus. On en discutera les effets dans la section suivante ; - Schelling utilise un échiquier qui est un domaine fini et limité. Pour éviter des effets de bords importants, on utilise ici une structure topologique globale de type toroïdale qui donne un domaine fini (N cellules) mais sans limite. La structure de voisinage est alors homogène pour toutes les cellules, il ny a plus deffet de bord ; - prise en compte dun paramètre de densité globale de population dans le  domaine, qui joue un rôle important dans la dynamique du modèle. Dans ce cas il est important de prendre en compte le nombre de cellules vides dans lévaluation de la proportion détrangers dans le voisinage. En dautres termes, on calculera les densités de populations voisines par rapport au nombre de maisons du voisinage, et non par rapport au nombre dhabitants de ce voisinage ; - on pourra aussi faire varier le nombre de groupes sociaux ce qui fera apparaître une dynamique plus complexe de regroupements ; - dans le cadre dun SMA, on distingue les cellules (habitations) et les agents  (habitants). Les cellules peuvent être habitées ou non par un agent, et un seul. La
382 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société. population dagents ne varie pas, tout agent non satisfait par son environnement se déplace vers une cellule inoccupée. On sera donc amené à gérer une liste dhabitations libres, sorte de journal des « petites annonces immobilières » consultable par les agents avant tout déplacement. Cette liste sera mise à jour après chaque déplacement ; - à la différence dun SMA, le mécanisme de déplacement dans un automate cellulaire strict nexiste pas. De ce fait, un stratagème sera utilisé pour le remplacer. Ce stratagème nous conduira à modifier le modèle : les déménagements et emménagements sont alors indépendants et se produisent respectivement vers et depuis lextérieur. Ainsi, dans ce cas, la population de chaque groupe nest plus fixe, elle ne peut dépasser le seuil fixé, mais peut fluctuer sous ce seuil.
17.3. Conception informatique du modèle Il est fondamental de circonscrire le domaine daction dun modèle avant de se lancer dans sa phase dimplémentation informatique : un programme informatique commence toujours par une réflexion préparatoire, qui peut être basée sur une méthodologie daide à la conception, comme UML1. Il sagit alors de décrire les différents objets manipulés, les variables détats et laction au cours dun pas de temps. Nous présentons dans les sections suivantes le diagramme dactivités et le schéma incrémental de ce modèle.
17.3.1. Modélisation orientée objet UML sous forme de diagramme dactivités Nous présentons ici le schéma concernant lactivité durant un pas de temps (Figure 17.1). Cette procédure sera répétée jusquà une condition darrêt pour produire la simulation complète. Il faudrait aussi définir lactivité au cours de la procédure dnoitainitialiscomprend la création de la configuration initiale : qui placement aléatoire desN1 de type A, des habitantsN2 de type B, habitants initialisation de la liste desN3habitations vides. Dans cette schématisation, deux types dobjets sont définis : les maisons et les habitants. Deux maisons (i et j) sont représentées et un habitant. Les maisons sont représentées par des objets de type « cellule » de lautomate cellulaire et les habitants par des objets de type « agent » du système multi-agents. Une cellule possède une variable détat interne « habitation » qui prend les valeurs « habitée » ou « non-habitée ». Un agent possède deux variables détat : son « type » (A ou B) qui indique le groupe social de lhabitant et sa « satisfaction » qui prend les valeurs « satisfait » ou « non-satisfait » selon les populations présentes dans son voisinage.                              1Unified Modeling Language.
Comparaison de trois implémentations du modèle de Schelling383 Le diagramme qui suit représente ainsi lactivité des objets au cours dun pas de temps (axe descendant).  Automate cellulaire Agent Maisoni Maison  Maisonsj habitant [non habitée] [habitée] [de type A]     Calcul des C lcul du nombre de maisons voaisins diffé de A voisines dejrents   nombre < Seuil ?  non oui  [non satisfait] [satisfait]    Recherche dune maison non habitée   non tr ée ouv maisoni  trouvée Déplacement dej versi 
        Consultation liste des maisons non habitées         départ   [non habitée]  Arrivée   [habitée]   Mise à jour de la liste des maisons non habitées  
Figure 17.1.Diagramme dactivités UML correspondant à un pas de temps de simulation. On commence par évaluer pour chaque cellule habitée létat de satisfaction de son habitant. Un habitant est satisfait si le nombre de voisins de type différent de lui (quon appelle par la suitenombre détrangers) est inférieur ou égal à son seuil S de
384 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société. tolérance. Un habitant insatisfait tente ensuite de trouver une maison librei. Sil en trouve une, il se déplace de sa maisonj une nouvelle maison versi non occupée. Pour accélérer la recherche de maisons, le système mémorise une liste des maisons non habitées quil met à jour après chaque déplacement. 17.3.1.2. Modélisation algorithmique. Le diagramme UML se traduit assez simplement en un algorithme qui reprend les deux phases dévaluation et daction. Nous avons programmé cet algorithme sous Excel en langage VBA. Nous disposons les maisons sur un maillage cellulaire où chaque cellule est un carré (et aussi une cellule au sens Excel). Lindice de maisonjdu diagramme UML est alors remplacé par un double indice (i,j) qui indique les numéros de ligne et de colonne de la cellule carrée. Le numéro de ligneivarie de 1 àNLet le numéro de colonnejvarie de 1 àNC,avecN = NC*NL.  Densité de population Seuil de tolérance
Occupations Un pas de temps de Maisons libressimulation oouuvveelllleess  mocaicsuopnast iloibnrs es Conventions SADT : à gauche les flux dentrée (consommation), à droite les flux de sortie (production), en haut les contrôles. La boîte représente la fonction du système.  Figure 17.2.Schéma systémique du modèle. Lalgorithme prend deux tableaux en entrée :Occupation(i,j), et ListeHabitationsLibres(k) qui indiquent respectivement le type doccupation de la cellule (i,j) et la position de la k-ième maison libre. Ces tableaux sont remplis durant la phase dinitialisation. Le tableauListeHabitationsLibres nest pas indispensable, il permet seulement de diminuer le temps de traitement lorsque le nombre de cellules est important devant le nombre de cases libres, en évitant une longue recherche à chaque itération. Lalgorithme calcule le tableauSisatctfanio(i,j) de chaque maison si elle est occupée, puis opère les déplacements dindividus non satisfaits en mettant à jour la liste des maisons vides. Il fournit donc en sortie une nouvelle configuration dhabitants dans les maisons. Enfin deux paramètres de contrôle sont importants dans le comportement global du modèle : la densité de population et le seuil de tolérance, ils restent fixes au cours dune simulation. On
 
Comparaison de trois implémentations du modèle de Schelling385 peut schématiser globalement ces spécifications par une boîte (Figure 17.2) et décrire comme suit lalgorithme qui sera repris pour limplémentation sous Excel :  AlgorithmeUnPas Début  pour toutecellulei,j faire  siOccupation(i,j) nest pas Librealors    siNbrEtrangers(i,j) > Salors// lhabitant est insatisfait     siListeHabitationsLibres est non videalors//action  choisir une habitationmdans ListeHabitationsLibres  Calculer la localisation (ii, jj)dem  Déménager de (i, j) vers (ii, jj)  Mettre à jour ListeHabitationsLibres     fin si  fin si  fin si  fin our Fin Algorithme Lévaluation utilise la fonctionNbrEtrangers(i, j) calcule le nombre qui dindividus du voisinage de la cellulejdont le groupe social est différent de (i,j). La phase daction utilise la listesLonreibbiHatitaLetsis qui contient les positions des cellules libres. Cette liste nécessite deux procédures :oisiChabrHatitnio pour choisir une maison libre dans la liste etMettre à Jourla liste après un déplacement. Nous ne détaillons pas ici ces sous-programmes appelés dans lalgorithme principal, car ils sont détaillés dans limplémentation sous Excel et StarLogo.. Dans le cas dun maillage carré avec un voisinage de Moore (8 voisins pour un rayon de 1), lopérateur de voisinage contient un tableau V ayant nV = 8 cases, chaque case contenant un vecteur de décalage de la forme (x,y). Ainsi le tableau V contient les données suivantes : V = ((0, -1), (1, 0), (0, 1), (-1, 0), (-1, -1), (1, -1), (1, 1), (-1, 1)) Remarquons que dans un maillage carré de NL lignes et NC colonnes, les cellules peuvent être numérotées de 0 àN-1, la cellule de numérom a pour coordonnéesj(numéro de colonne), eti(numéro de ligne), qui se calculent de la manière suivante : j= (mmodNC)+1 i =(mdivNC)+1  où « mod » et « div » représentent le reste et le quotient entier de la division de lentierm lentier parNC. Réciproquement, si on connaîti etj, le numérom de cellule correspondant est :
386 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société. m= (i 1).NC+j 1 Cette méthode sert par exemple à mémoriser les numéros de cellules libres dans ListeHabitationsLibres, puis de revenir facilement aux coordonnéesietjassociées à ces numéros, par exemple pour calculer la localisation de la cellule de numérom.
17.4. Implémentations informatiques Pour pouvoir comparer différentes méthodes de programmation, nous avons implémenté ce modèle dans trois environnements très différents : StarLogo, Excel et SpaCelle. Nous discutons des différences en terme dobjets quimpliquent ces trois environnements.
17.4.1.Implémentation sous StarLogo StarLogo2 développé par le Media Laboratory (Cambridge), le MIT est (Massachusetts) avec le support du National Science Foundation et le groupe LEGO. Le langage utilisateur de StarLogo sappelle Logo. Il est traduit en code Java avant dêtre exécuté. Cette plate-forme est adaptée pour expérimenter des théories concernant les phénomènes émergents en se concentrant sur l'interaction d'un grand nombre d'agents autonomes, aux comportements simples (réactifs) et en interactions. La plate-forme se divise en deux unités, leControl Center qui est axé programmation et lunitéStarLogola fenêtre de simulation, de visualisation.qui est Ainsi les procédures qui sont écrites dans leControl Center sont simulées dans la fenêtreStarLogo. Commun à ces deux unités est lappellation des fondamentaux : les cellules appeléesPatchset les agents appelésTurtles. Enfin lObserver qui réalise, dans lidéal, tout ce qui ne relève pas dune logique agent tel que lordre denchaînement des méthodes, les opérations dagrégation, la réalisation et visualisation des graphiques etc. (dans lidéal car il peut exister une petite confusion entreObserver etPatchs, ceux-ci étant gérés dans le même onglet, alors que les méthodes propres aux agents seront écrites dans longletTurtle). Donc en résumé tout ce qui relève de lenvironnement de la simulation (graphiques, comptage, enchaînement des méthodes) et de lautomate cellulaire sera implémenté dans longletObserverduControl Center,tout ce qui relève du comportement des agents sera implémenté dans longletTurtleduControl Center(Figure 17.3).
                             2Téléchargement de la plateforme :http://education.mit.edu/starlogo/ 
Comparaison de trois implémentations du modèle de Schelling387
PlateformeStarLogo: Agents - Cellules - Contrôle Observer / Contrôle Représentation (Op)
Communication (Op)
?
Cellule (e) Action (Op) : agent (a) objet déplacer (o) agent (o)  Figure 17.3. Schéma général de la plateforme StarLogo. Un nombre relativement important de primitives (mots du langage) sont associées auxTurtles, auxPatches à l etObserver permettent décrire des et procédures qui, par combinaison, définissent lunivers du phénomène à simuler. Nous présentons ici les procédures fondamentales au fonctionnement du modèle de Schelling, la procédure dinitialisation [setup] qui définit les groupes [breeds], leur nombre [NbGroup], le calcul de la densité [Densité(%)], le seuil de tolérance [ToleranceMax] ainsi que la localisation initiale des agents peut être consultée en 3 téléchargeant lapplication . Une question essentielle qui doit être posée porte sur le choix entre un mode synchrone ou asynchrone du déroulement du programme. En mode synchrone, les agents insatisfaits par leur voisinage déménagent au même moment, on obtient donc une vague de migration au cours dune itération. En fait la nature séquentielle des ordinateurs personnels oblige à simuler ce mode en utilisant des variables temporaires qui mémorisent la situation au début de litération. Les agents se déplacent les uns après les autres mais le font en fonction de leur satisfaction calculée à partir de cette « image », commune à tous : ils ne prennent donc pas en compte les effets éventuels des déplacements de leurs prédécesseurs. Au contraire, en mode asynchrone, les agents se déplacent formellement les uns après les autres et peuvent modifier des variables locales ou globales, la non utilisation de variables temporaires permet ainsi de prendre en considération les effets de ces micro-changements. En résumé, en mode synchrone sur une itération, un départ ou une arrivée dans le voisinage dun habitant na pas dincidence sur ses choix alors quen mode asynchrone, ce changement est pris en compte par lhabitant et peut modifier sa satisfaction.                              3 http://www.univ-rouen.fr/MTG/EricDaude.htm 
388 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société. Dun point de vue technique, le déroulement dune itération ne peut seffectuer totalement en mode synchrone. Seule lévaluation de la situation peut se faire dans ce mode : - création de la liste des habitations vacantes, non habitées [procédure CréerListeHabitationsLibres, listesreibLibaHetsilsnoitat] ; - chaque agent observe son voisinage, lopération consiste à dénombrer le nombre détrangers dans un voisinage dordre 1 [procédureObserveVoisinage] ; - chaque agent compare le seuil de tolérance à ses observations afin de décider si oui ounon il doit déménager [procédureDemenage ?]. Si la réponse est oui, son nom vient sajouter à la liste des agents qui doivent partir [listesisatitfaIesniLts] ; Les déplacements ne peuvent sexécuter en mode synchrone, car plusieurs habitants insatisfaits pourraient alors se déplacer sur une même cellule libre. Tout agent dans la listeLiisfaitssteInsatsélectionne au hasard une habitation libre dans la listeerslsbiitnoibatteHaLis et sy rend. Il sort alors de la liste des insatisfaits, supprime sa nouvelle adresse de la liste des habitations libres et rajoute dans cette liste son ancienne adresse, qui est maintenant vacante. Lorsque la liste ListeInsatisfaitest vide, litération est terminée, on répète la procédure. En mode asynchrone, la procédure est légèrement différente : - création de la liste des habitations vacantes, non habitées [procédure CréerListeHabitationsLibres,listeListeHabitationslibres] ; - création de la liste de tous les agents présents dans lunivers [liste ListeAgents] ; - on répète les procédures suivantes jusquà ce quegeeAsntstLisoit vide : sélection au hasard dun agent dans la liste,  il observe son voisinage [procédureObserveVoisinage], et en fonction de sa satisfaction reste ou part [procédureDemenage ?]. La différence entre ces deux variantes est donc que dans la première, au cours dune itération, seuls se déplacent les individus qui ne sont pas satisfaits, critère défini par une « image de la réalité » à un moment donné, identique pour tous. Dans la deuxième, en mode asynchrone, on traite tous les individus les uns après les autres, à des instants distincts, et lévaluation de lenvironnement se fait sur une « image de la réalité » à cet instant, valable pour lindividu sélectionné. Cest ce dernier mode qui a été choisi, les différentes procédures sont détaillées dans les paragraphes qui suivent4.                              4Les termes engrasreprésentent les primitivesStarLogo, en « normal » les mots du langage auteur.
Comparaison de trois implémentations du modèle de Schelling389 La procédurerbiLeatibnoitetaHLsipermet de créer la liste complète des cellules qui ne sont pas habitées : tooisntitaHebaiLtses LibrerréC  setse LeiHsatbitationslibr[ ]; La liste est vide au départ  ask-patches [  if count-turtles-here = 0 [; sil ny a pas dhabitant  let [:k(((xcor + screen-half-height) * screen-width ) + (ycor + screen-half-width) )];on calcule le numéro de cellule  setioatitabeHstLiserbilsnlput:k ListeHabitationslibres]] ]; et on linsère dans la liste end La procédureObserveVoisinage permet à chaque agent de comptabiliser le nombre détrangers dans le voisinage, on utilise ici lopérateur de voisinage présenté précédemment. TonigaoVsireevO sbe  setidem 0; remise à zéro en t pour ne pas cumuler avec (t  n) let [:abreed-at 0 1]; on commence par observer au nord  if (:a != breed) and ; si lhabitant nest pas du même groupe      (:a!= 0); et quil y a un habitant  [setdiff diff+ 1]]; alors jincrémente la variable détat  let [:abreed-at 1 1] ; même opération, pour la cellule au nord-est   if (:a != breed) and (:a!= 0) [setdiff diff+ 1] ] let [:abreed-at 1 0]  ; idem, pour la cellule à lest   if (:a != breed) and (:a!= 0) [setdiff diff ]+ 1] let [:abreed-at 1 -1]  ;cellule au sud-est   if (:a != breed) and (:a!= 0) [setdiff diff+ 1] ] let [:a breed-at 0 -1]  ; cellule au sud   if (:a != breed) and (:a!= 0) [setdiff diff ]+ 1] let [:abreed-at -1 -1]  ; cellule au sud-ouest   if (:a != breed) and (:a!= 0) [setdiff diff+ 1] ] let [:abreed-at -1 0]  ; cellule à louest   if (:a != breed) and (:a!= 0) [setdiff diff ]+ 1] let [:abreed-at -1 1]  ; cellule au nord-ouest   if (:a != breed) and (:a!= 0) [setdiff diff ]+ 1] end La procédureDemenage?détermine si lagent doit quitter ou non la cellule en fonction du seuil de tolérance fixé.  toDemenage?   ifdiff> ((Tolerance/ 100) * 8) [noibaHrtatiChoisi] end La procéduresioiCahbrHatitnioest appelée par tout individu répondant « vrai » au test précédent (procédureDemenage?). Lagent tire au hasard une cellule non habitée dans la liste des habitations libres, la supprime de la liste et y rajoute le
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.

Diffusez cette publication

Vous aimerez aussi