Activité et topologie

Sujet de thèse

Biblio

Motivations

Dans ce travail, nous nous intéressons à la détection de zone d'activité dans les simulations MGS. L'implantation actuelle des transformations ne distinguent pas les parties de la collection où les règles sont susceptibles de s'appliquer : le filtrage s'effectue sur la collection entière. Une perte importante de performances poussent à s'interroger sur les moyens qui permettraient de détecter où une règle va s'appliquer ou ne pas s'appliquer.

Une autre façon plus profonde de justifier ces travaux repose sur une façon naturelle (bien que d'ordre 0) de considérer une propriété globale sur un système : elle peut être identifiée comme la frontière entre un type de collection particulier (i.e., où seul un sous-ensemble spécifique de règles est utilisé) et un autre.

La spécification des règles est malheureusement trop arbitraire pour pouvoir en tirer une information pertinente. Plusieurs options sont possibles :

  1. restreindre l'ensemble des règles (en considérant un sous-ensemble de la syntaxe des motifs par exemple)
  2. typer les règles afin de déterminer ce qu'on enlève et ce qu'on rajoute

Quelques exemples

Les trois exemples suivant cherchent à montrer la diversité des règles que l'on souhaite considérer pour détecter des zones d'activités. La complexité des exemples est croissante :

  1. le feu de forêt : deux règles avec motif de taille 1 et un neighborfold
  2. la propagation d'une onde : comme le feu de forêt mais avec plus de règles et des symétries
  3. le regroupement d'amibe : fusion de 2 automates (déplacement des agents + réaction/diffusion) avec des motifs d'arité 2

Tous les exemples sont considérés sur la topologie suivante :

gbf NEWS = < sw, se, east, south  ; se = south + east, sw = south - east > ;;
moore := |sw>, |se>, |east>, |south>, <sw|, <se|, <east|, <south| ;;

En fait, la topologie choisie importe peu ; cependant, le choix de la grille carré 2D statique facilite la présentation des mouvements de données et des opérateurs différentiels.

Feu de forêt

Transformation

trans forest = {
  `Forest as x / member(`Fire,neighbors(x)) => `Fire;
  `Fire => `Ashes;
} ;;

Et la vidéo.

Onde

Transformation

trans wave = {
  `Fe as x / member(`We,neighbors(x)) => `Fi;
  `Fi as x / member(`Wi,neighbors(x)) => `Fe;
  `Wh as x / member(`Fe,neighbors(x)) => `Fe;
  `Fe => `Bl;
  `Bl as x / member(`Fi,neighbors(x)) => `Fi;
  `Fi => `Wh;
} ;;

Et la vidéo.

Regroupement

Transformation

trans gathering = {

  x:neutral:notEmpty, y:excited:free => { env = 3, pop = x.pop-1 }, { env = y.env-1, pop = y.pop+1 };

  x:neutral / exists(excited,neighbors(x)) => x + { env = 3 };

  x:neutral:notEmpty / not(exists(excited,neighbors(x))) => if (rng_uniform()<0.5) then x + { env = 3 } else x fi;

  x:neutral:empty / not(exists(excited,neighbors(x))) => x;

  x:refractory => x + { env = x.env - 1 };

} ;;

Et la vidéo.

Définition

Dans cette section, on retrouve les définitions des différentes notions sur lesquelles reprochent l'approche.

Zone d'activité

De façon générale, une zone d'activité est une partie d'un système fonctionnant sur un sous-ensemble de règle bien déterminées.


Personal Tools