# 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)