# 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 'tags', 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 tags (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) Y a-t-il seulement deux extractions possibles (vers l'espace ou vers le graphe) ? Les graphes extraits seront-ils seulement des outils d'optimisation ou nous guideront-ils vers une classification ou des liens vers d'autres objets mathématiques ? Quelles seront leurs propriétés ? Que nous apprendront-t-ils sur les modèles ? Comment s'assurer qu'on a bien listé, énuméré toutes les opérations possibles ? Addition et soustraction peuvent être effectuées sur une partie seulement des états ou des règles ex: si on cherche à maintenir une propriété biologique (qui n'apparait que sur l'ensemble du modèle) il faut opérer sur cet ensemble. Sinon, pour la biochimie, des opérations sur un espace réduit seront sûrement utiles. En cas d'opération de réduction du gem-graph vers l'espace (sans graphe associé), les 'tags' ou balises devraient être traités à part (sinon, on se retrouve avec les lettres 'HOLLYWOOD' en béton sur la colline...)