diff --git a/architecture.md b/architecture.md index d7237e9..de8c029 100644 --- a/architecture.md +++ b/architecture.md @@ -53,36 +53,7 @@ --- -chaque thread de calcul applique à un état local différent les mêmes règles de transition selon le même algorithme -il retourne un nouvel état local ou lève une exception - -l'espace local est défini par un centre, une orientation et un rayon - -(il peut être approché par un carré, un hexagone, un cube, ou toute autre forme le contenant) - -optimisation : le centre est une cellule contenant au moins une flèche - -L'algorithme de calcul de l'état local suit parallèlement un chemin partant du centre de l'espace local et un chemin allant de la racine de l'arbre des règles vers l'une des feuilles et il compare, à chaque itération: - - - le nombre de flèches présentes dans chaque site - - - au nombre de flèches requis pour que la condition qui s'applique à ce site soit satisfaite - (un parcours séquentiel ou aléatoire des règles est possible mais donnerait des résultats différents) - -Ce chemin parcourt l'ensemble de tous les sites de toutes les cellules de l'espace local dans un ordre prédéfini - -Ce parcours est optimisé de façon à maximiser la probabilité d'intersection entre: - - - les sites occupés dans l'état local - - - les sites définis par les règles de transition - -Pour pouvoir effectuer ce parcours, il faut que les coordonnées (locales) des conditions et des actions des règles soient préalablement superposées aux coordonnées globales (calculées d'après l'origine et l'orientation) de l'espace local - -le parcours s'interrompt dès qu'une condition est fausse: ceci veut dire qu'aucune règle ne décrit cet espace local (to do: renvoyer à l'utilisateur un message : "pas de règle s'appliquant à cet espace local") - -sinon, il se termine lorque toutes les conditions d'une règle ont été satisfaites: la région de l'espace global auquel cet espace local est superposé peut être modifié selon les indications de cette règle --- diff --git a/server/worker_thread.md b/server/worker_thread.md new file mode 100644 index 0000000..7538490 --- /dev/null +++ b/server/worker_thread.md @@ -0,0 +1,30 @@ +Chaque thread de calcul (worker thread) applique à un état local différent les mêmes règles de transition selon le même algorithme + +il retourne un nouvel état local ou lève une exception + +l'espace local est défini par un centre, une orientation et un rayon + +(il peut être approché par un carré, un hexagone, un cube, ou toute autre forme le contenant) + +optimisation : le centre est une cellule contenant au moins une flèche + +L'algorithme de calcul de l'état local suit parallèlement un chemin partant du centre de l'espace local et un chemin allant de la racine de l'arbre des règles vers l'une des feuilles et il compare, à chaque itération: + + - le nombre de flèches présentes dans chaque site + + - au nombre de flèches requis pour que la condition qui s'applique à ce site soit satisfaite + (un parcours séquentiel ou aléatoire des règles est possible mais donnerait des résultats différents) + +Ce chemin parcourt l'ensemble de tous les sites de toutes les cellules de l'espace local dans un ordre prédéfini + +Ce parcours est optimisé de façon à maximiser la probabilité d'intersection entre: + + - les sites occupés dans l'état local + + - les sites définis par les règles de transition + +Pour pouvoir effectuer ce parcours, il faut que les coordonnées (locales) des conditions et des actions des règles soient préalablement superposées aux coordonnées globales (calculées d'après l'origine et l'orientation) de l'espace local + +le parcours s'interrompt dès qu'une condition est fausse: ceci veut dire qu'aucune règle ne décrit cet espace local (to do: renvoyer à l'utilisateur un message : "pas de règle s'appliquant à cet espace local") + +sinon, il se termine lorque toutes les conditions d'une règle ont été satisfaites: la région de l'espace global auquel cet espace local est superposé peut être modifié selon les indications de cette règle