Évolution des opinions sur la planète Torus

Sur la planète Torus, planète qui, comme son nom l'indique, est en forme de tore, 200 personnes habitent chacune un territoire. Les habitants sont partagés entre deux courants politiques, le parti rouge et le parti jaune. Au début, les opinions politiques sont réparties au hasard sur la planète, comme le montre la carte géopolitique ci-dessous:


La planète Torus

Carte géopolitique

Une particularité des habitants de cette planète est qu'ils sont très influençables. Ainsi, chaque jour, un habitant va trouver un de ses huit voisins et se rallie aux convictions politiques de ce dernier.
Quand on fait évoluer ce système simpliste, il se passe des choses curieuses:


Après 1400 jours

Après 4900 jours

Après 10'500 jours

Après 24'500 jours

Après 27'300 jours

Après 33'360 jours

Après 34'300 jours

Évolution du nombre de rouges au cours du temps

On voit d'abord apparaître de grands fiefs politiques où tout le monde vote dans le même sens. On peut croire à un moment donné que les rouges vont complètement disparaître, mais la petite poignée de rouges fait des émules parmi les jaunes et les deux populations s'équilibrent. Puis, brutalement, les rouges deviennent très nombreux et, pour finir, ils occupent toute la planète.


Exercice

Écrivez d'abord un module voisin permettant de connaître l'opinion politique d'un des huit voisins de la case (i, j), choisi au hasard. N'oubliez pas que le tableau se "referme" de chaque côté, à la façon d'un tore. Vous allez simuler l'évolution des opinions sur la planète Torus de la façon suivante:

Algorithme

  1. Générer un tableau de n lignes et m colonnes et le remplir au hasard avec des 0 (rouges) et des 1 (jaunes).
  2. Poser jour = 1.
  3. Désigner une case au hasard en tirant au sort la ligne (i) et la colonne (j).
  4. Assigner à la case (i,j) la valeur de la case voisin(i,j).
  5. Si le jour est un multiple de n (à définir), dessiner la nouvelle carte géopolitique et compter le nombre de 0 (rouges).
  6. Poser jour = jour + 1.
  7. Tant que jour < nbr_jours_max (à définir), aller à 3.
  8. Dessiner la courbe de l'évolution du nombre d'habitants rouges.
Programmez en Mathematica l'algorithme décrit ci-dessus. Vous utiliserez la fonction Random de Mathematica. Grâce à SeedRandom, vous pourrez faire plusieurs simulations avec des configurations initiales différentes.

Fonctions Mathematica utiles: AppendTo, ColorFunction, Count, Flatten, For, Graphics, If, Length, ListPlot, Mod, Module, Print, Random, Raster, SeedRandom, Show, Table, While.

Le fichier Mathematica complet est disponible, mais seulement pour les visiteurs autorisés!
Mot de passe :

Questions ouvertes

Faites des expériences pour réfléchir aux questions suivantes:

Que se passe-t-il si...


Référence


Didier Müller, 25.1.03