Modèle de Schelling avec Kedama

From OFSET Wiki

Jump to: navigation, search

Contents

[edit] Introduction

Projet réalisé par Isabelle Chubilleau et Matthieu Vernier, dans le cadre des cours d'Intelligence Artificielle Distribuée de Master 1ère Année (Université de Caen).

Nous nous sommes intéressés à la modélisation décrite par Thomas Schelling, représentant la ségrégation de deux populations dans une tentative de "melting-pot". A la base, le monde décrit par Schelling est un échiquier de 8 cases sur 8 sur lequel peut se déplacer 2 types de population.

[edit] Le modèle de Schelling

[edit] Une affaire de voisinage

Notre programme propose d’observer le comportement d’agents dans une simulation du modèle de Schelling.

Le monde observé est peuplé d’un certain nombre d’individus de deux types :

  • des agents « bleus »
  • des agents « jaunes »

Ce modèle consiste à dire qu’un individu accepte un voisinage différent de lui, à condition de ne pas être trop minoritaire. Dans le cas contraire, un agent choisi de migrer et de chercher un emplacement plus propice à son « bien-être » et à sa bonne adaptation dans le monde.

Par conséquent, lorsqu’un individu « bleu » n’est entouré que de «jaunes», il se déplace aléatoirement jusqu’à trouver une terre d’accueil : il passe de l’état «pas content» à l’état «content» lorsqu’il est satisfait.

Chaque population est « réglable » (nous suggérons une population globale initiale comprise entre 100 et 1500 individus).

Nous avons choisi les règles de comportements suivantes pour les agents « jaunes » et « bleus » :

  • En présence de 1 ou 2 voisins, il reste sur sa case si au moins un voisin est de sa couleur.
  • En présence de 3 à 5 voisins, il reste si au moins deux voisins sont de sa couleur.
  • En présence de 6 voisins et plus, il reste si au moins quatre voisins sont de sa couleur.
  • Dans tous les autres cas, il déménage et se déplace aléatoirement.

NB : Dans la simulation, des agents peuvent se croiser sur le même emplacement. En revanche, un agent ne peut pas s’installer (devenir « content ») sur une case déjà occupée par un autre agent à l’état « content ». Si un agent « jaune » passe provisoirement sur une case occupée par un agent « bleu » « content », cela rend l’individu « bleu » temporairement mécontent (idem dans le cas inverse).

Image:ProjetModeleDeSchelling-1.PNG

[edit] Le seuil de tolérance

Dans la simulation, il est possible de choisir un indice de tolérance (ou d’intolérance plus précisément) pour chaque population. A tout instant de la simulation, cet indice est modifiable, faisant varier grandement l’état des agents.

Pour représenter cet indice, nous avons choisi d’ajuster le comportement de chaque agent de la façon suivante :

  • Précédemment, un individu ne prenait en compte que ces voisins directs : seuil d’intolérance par défaut égal à 1.
  • Avec un indice d’intolérance de 2 : un agent « bleu » dénombre également les voisins « jaunes » à 2 cases de lui (et réciproquement).
  • Avec un indice d’intolérance de 3 : même principe, mais avec un espionnage de voisins sur 3 cases.


Dans le projet, un graphique propose trois courbes représentant :

  • le pourcentage de population « bleue » satisfaite
  • le pourcentage de population « jaune » satisfaite
  • le pourcentage de satisfaction de la population totale (rouge)

On s’aperçoit ainsi facilement, que plus l’indice d’intolérance est élevé, plus les règles d’emménagement sont strictes et les possibilités réduites. Le taux de 100% de population heureuse est donc plus lent à atteindre.

[edit] Explications des scripts décrivant le comportement des populations

A chaque tour de simulation, un agent de type population1 ou population2 « regarde » sur les cases voisines s’il voit des traces de phéromones. Si des traces appartenant au patch « pop1 » sont « visibles », alors il considère qu’il a un voisin de type « population1 » en plus. Sur une autre case, s’il détecte des phéromones de type « patch pop2 », alors il a un voisin de type population2. De cette façon, à chaque instant un agent connaît :

  • son nombre de voisins
  • son nombre de voisins « amis »
  • son nombre de voisins « ennemis »

Ensuite, le script « déménagement » permet de décider quel comportement est le plus adapté à la situation (d’après les règles décrites dans le paragraphe 1.1)


De la même façon, on vérifie qu’un individu ne s’installe pas chez un autre individu à l’aide du script « ifEmplacementOccupe ». Si un agent perçoit des phéromones sur sa case courante, il est prié de trouver un autre endroit où vivre paisiblement, la place est prise.

Image:ProjetModeleDeShelling-3.PNG

[edit] Analyse des résultats obtenus

Nous avons mis en place un graphique permettant de mieux se rendre compte des différentes attitudes de nos agents lorsque l’on fait varier les variables suivantes :

  • population initiale « bleue »
  • population initiale « jaune »
  • et leur seuil d’intolérance respectif

Nous avons ainsi pu remarquer que :

Lorsque les populations initiales sont assez faibles (par exemple : 100 et 100), les « ghettos » « bleus » et « jaunes » sont relativement petits (de 5 à 10 individus) et assez dispersés dans le monde. Les agents (qui se déplacent aléatoirement) sont assez vite « contents » et sont rarement embêtés par la population adverse (le monde (ou la ville) est assez grand pour cohabiter sans heurt.), mais quelques habitants peinent à trouver un « ghetto » accueillant (on atteint très vite 98% de contents, mais le reste met plus de temps).

La taille des « ghettos » augmente proportionnellement à la population initiale. Pour une population initiale de 300, on trouve des ghettos de 10 à 20 individus. Le nombre de satisfaits atteint plus rapidement les 100% : on croise plus rapidement quelqu’un comme nous (« le monde est petit » ou semble plus petit …). Pour un seuil d’intolérance égal à 1, les amas de populations se côtoient sans problème majeurs. Ils se juxtaposent en trouvant un équilibre. Il est alors intéressant de faire augmenter brutalement ce seuil d’intolérance pour constater « l’explosion » de ces ghettos. Ils finissent par se reformer à une distance plus grande les uns des autres.

Dans un monde plus saturé (par exemple 700 « bleus » et 700 « jaunes »), l’équilibre est atteint de façon beaucoup plus chaotique. Les ghettos sont plus importants en nombre de personnes. On constate que beaucoup d’agents «contents» redeviennent «pas contents» et doivent émigrer. C’est d’autant plus vrai que le seuil d’intolérance est élevé.

[edit] Comment lancer la simulation ?

Voir et étudier le projet :


On choisit au départ, les populations initiales. On a également la possibilité d'ajuster l'indice d'intolérance à tout instant. Il faut ensuite cliquer sur le bouton « Simulation lancer ».

Personal tools