Gem-graph/readme.md

70 lines
5.7 KiB
Markdown

# GE-ometric D-irected M-ulti-GRAPH (gem-graph)
### (1) Un graphe géométrique est un graphe dont les nœuds ont des coordonnées dans un espace
### (2) Il est dirigé si ses liens sont des flèches
### (3) C'est un multigraphe si plusieurs flèches peuvent être superposées d'un même nœud à un autre
#### NB "dirigé" ne signifie pas "orienté": un graphe est orienté si l'un de ses nœuds est sa racine.
### Les multigraphes géométriques dirigés ont des propriétés qui les rendent aptes à représenter des phénomènes complexes. 'gem-graph' est un logiciel qui permet de modéliser de tels phénomènes par réécritures successives de l'un de ces graphes.
---
Face à la difficulté de calculer l'évolution des systèmes complexes définis par
- une grande diversité d'objets et
- une grande diversité d'interactions,
L'emploi des gem-graph est guidé par les choix suivants:
* Représenter l'espace
* Un espace discret (non continu)
* Un espace uniforme et cartésien
* La topologie, la dimension, la magnitude et la granularité de l'espace ne sont pas prédéfinies. Ce sont des paramètres choisis par le concepteur du modèle.
- Plusieurs granularités peuvent coexister localement dans un même espace. Elles peuvent être définies par des représentations vectorielles.
* A cet espace est superposé un graphe géométrique qui permet d'éditer des liens entre des unités de l'espace. Ces liens permettent de dessiner
- des objets (parties connexes isolées du graphe),
- des situations (positions relatives des objets) et
- des ensembles de symboles, appelés 'scripts', qui sont écrits dans l'espace en utilisant des flèches.
- L'utilisation de flèches plutôt que des lignes et la possibilité d'en superposer un nombre quelconque aident à optimiser ce graphe.
* Un automate (un ensemble d'états et de transitions) peut réécrire ce graphe et en gérer les versions successives (c-à-d: l'histoire de la simulation)
* Tous les états sont des états de l'espace, c'est à dire des représentations approximatives (ou 'dessins') d'un espace réel.
- Des scripts (ex: noms, balises, adresses,...) peuvent être associés aux dessins pour faciliter l'identification des objets et des situations.
* Les réécritures sont locales, asynchrones et aléatoires:
- Le calcul est effectué par des threads opérant chacun indépendemment dans un espace local préalablement préempté.
- L'étendue de cet espace local dépend des règles de transition: aucune flèche définie par ces règles ne peut sortir de cet espace.
- L'emplacement et l'orientation de chaque nouvel espace local sont choisis (au hasard ou par un autre algorithme) dans l'espace global.
- Si l'ensemble des conditions de plusieurs règles est identique, l'une d'entre elles est choisie (au hasard ou par un autre algorithme).
- Une fois le calcul effectué, son résultat est validé puis intégré à l'état global puis la préemption est levée.
* Les transitions sont toutes les combinaisons d'un seul type de transition élémentaire. Une transition élémentaire associe:
- Une seule condition (combien de flèches y a-t-il à cet endroit? à comparer à un nombre prédéfini)
- Une seule assignation (écrire un nombre 'n' de flèches à cet endroit)
* Les informations statiques (états) et les informations dynamiques (transitions) sont strictement séparées.
- Cette séparation permet d'écrire les règles de transition exclusivement comme des associations de transitions élémentaires.
- Cette conformité d'écriture et l'uniformité des règles qui en résulte est la condition de leur traitement algorithmique.
- Les règles de transition peuvent ainsi être automatiquement évaluées, comparées, représentées, éditées.
* Les règles de transition peuvent être regroupées en arbres.
- La structure de ces arbres diffère selon leur fonction (exécution du calcul, classification par l'utilisateur,...).
- Ces arbres peuvent être édités.
* Un gem-graph peut être associé à d'autres modèles représentant des bosons et/ou de fermions dans un espace en fonction du temps.
- Après superposition des temps et espaces de ces modèles à ceux du gem-graph,
leurs variables locales intensives (températures, pressions, concentrations, débits, flux, section efficace, etc ...)
peuvent être lues et écrites par le gem-graph au moyen de conditions et d'actions spécifiques.
- Ces lectures / écritures permettent la cohérence de l'ensemble des modèles pendant la durée du calcul.
* Plusieurs modèles de gem-graph peuvent être additionnés (états et transitions) si leurs paramètres d'espace et de temps sont compatibles.
- L'addition de leurs états et celle de leurs règles sont des processus distincts qui peuvent être assistés par des algorithmes de merging spécifiques.
* Des graphes non géométriques peuvent être extraits d'un gem-graph afin de faciliter son évaluation et son optimisation (ex: pour applications de l'IA)
---
> Locos, formas modumque cohérentiae omium rerum status depingit. Nihil Aliud comprend.
> Eas res praecepta movet aut transformat. Nihil aliud facit. Quaedam transforme en sua potestate sunt.
> Aliae transforme alii succedere debent.
> Interpositus status inter illas et istas jacet.
> Ab antecedente statu primarum ad sequentem statum secundarum iter nullius est nisi per suorum interpositum statum.
---
opérations sur les gem-graph:
- addition - soustraction (les états et transitions changent; les propriétés qui définissent le graphe demeurent inchangées)
- expansion: par association / combinaison à d'autres modèles (la nature des états et des transitions change)
- réduction: par extraction d'un sous-ensemble de propriétés (ex: > graphes non géométriques)