Gem-graph/readme.md

156 lines
11 KiB
Markdown

# **GE**o-**M**etric-**GRAPH** (gem-graph)
### Un graphe géométrique est un graphe dont les nœuds ont des coordonnées dans un espace.
### Les graphes géométriques peuvent être utilisés pour représenter une grande variété d'états. Ces états sont dessinés dans l'espace au moyen de liens allant d'un point de l'espace à un autre.
### Les réécritures successives de ces états par un automate permettent de modéliser des phénomènes complexes.
### 'gem-graph' est un logiciel qui permet d'éditer ces états et ces réécritures (ou transitions) et d'exécuter l'automate ainsi créé pour l'observer.
##### Des flèches, éventuellement superposées, peuvent être utilisées comme liens. On parle alors de multigraphes dirigés.
---
### Les phénomènes complexes peuvent être définis comme ceux où un grand nombre d'objets de formes et de propriétés très diverses interagissent d'un grand nombre de façons différentes.
Même si les interactions particulières entre certains de ces objets ont pu être isolées, étudiées expérimentalement et décrites au moyen d'un modèle simple, le fonctionnement de l'ensemble est difficile à modéliser pour au moins deux raisons:
1) - Certains phénomènes sont rapides et d'autres lents. Certains sont localisés et d'autres globaux.
> En essayant de les représenter tous simultanément, avec la même précision et à la même échelle, on est limité :
> * soit par la puissance de calcul s'il faut tout décrire en détail,
> * soit par des approximations qui ne permettent pas de décrire avec une précision suffisante certains phénomènes qui, bien que très rapides ou très localisés, ont des conséquences majeures sur l'évolution de l'ensemble.
> Ce problème est celui de la 'granularité' (temporelle et spatiale).
2) - Toute description non spatiale doit nommer les entités sur lesquelles elle opère pour pouvoir établir des relations entre elles.
> Or, lorsque le nombre de ces entités augmente, le nombre de leurs relations ou interactions augmente plus rapidement encore.
> Ce problème est celui de l'explosion combinatoire.
> * Il peut suffire, par exemple, d'une équation pour représenter une relation entre un petit nombre d'objets, mais le nombre d'équations nécessaires pour décrire toutes les relations en jeu dans l'ensemble du système est tel qu'il n'est plus possible de les résoudre simultanément.
> * Si l'on utilise un modèle numérique, un grand nombre de règles sera nécessaire. Il sera alors difficile de les écrire de façon homogène, de veiller à ce qu'elles ne se contredisent pas ou ne s'appliquent pas à des situations ou des objets pour lesquels elles n'avaient pas été conçues.
- Dans tous les cas, si deux calculs successifs partant du même état donnent des résultats différents, le modèle devient inexploitable.
---
##### gem-graph permet d'aborder ces deux difficultés en dessinant les objets au lieu de les nommer:
* L'espace et le temps sont les axes d'un référentiel discret, uniforme et cartésien.
* La topologie, la dimension et la magnitude de l'espace ne sont pas prédéfinies.
Ce sont des paramètres choisis par le concepteur du modèle.
* Dans cet espace peuvent être dessinés une multitude d'états.
Ces états sont tous des graphes géométriques.
Leurs liens peuvent être pondérés et orientés.
* Les états peuvent être interprétés comme:
- des objets (parties connexes isolées du graphe),
- des situations (positions relatives des objets) ou
- des annotations (décrites plus loin) qui écrivent, dans l'espace même,
des informations relatives aux objets ou aux situations auxquels elles sont connectées.
---
##### Un ensemble de transitions permet de réécrire chacun de ces états:
* Les objets et les situations dessinés sont réécrits sans qu'il soit nécessaire de les nommer.
* Ces réécritures (ou transitions) peuvent être locales, asynchrones et aléatoires.
* Le passage obligatoire par un état intermédiaire peut permettre de représenter une cause et un effet.
* Toutes les règles de réécriture, parcequ'elles n'opèrent que sur un seul symbole, ont le même format.
* L'ensemble des réécritures (ou versions) successives constitue l'histoire de la simulation.
---
##### Les informations statiques (états) et les informations dynamiques (transitions) sont toujours strictement séparées:
* Cette séparation permet d'écrire les règles de transition exclusivement comme des associations de transitions élémentaires.
* Une transition élémentaire associe:
- une seule condition (combien de liens y a-t-il à cet endroit? à comparer à un nombre prédéfini)
- une seule assignation (écrire un nombre 'n' de liens à cet endroit)
* Les règles de transition, ainsi écrites, peuvent ainsi être automatiquement évaluées, comparées, représentées, éditées et regroupées sous des formes diverses.
* Cette homogéneité d'écriture n'exclut cependant pas l'utilisation d'autres types de conditions et d'assignations élémentaires en cas d'association à d'autres modèles ou pour l'envoi de résultats de mesure (voir plus loin).
---
##### Les objets sont tous dessinés à la même échelle mais avec un niveau de détail variable:
* La réécriture de graphes géométriques permet donc d'associer dans un même espace des descriptions de granularité différente:
* Ces descriptions peuvent éventuellement être approchées par des représentations vectorielles. Des annotations sont possibles et facilitées.
* Les propriétés d'intérêt peuvent être détaillées sans qu'il soit nécessaire pour cela de détailler la totalité du reste.
* Il est donc possible de décrire simultanément des états et des phénomènes de complexité différente.
De nouvelles propriétés d'intérêt peuvent être ajoutées ou retranchées du modèle à tout moment.
---
##### Parceque le référentiel privilégie certaines directions, la symétrie de rotation est perdue:
* L'utilisation d'un référentiel introduit nécéssairement des directions privilégiées qui brisent la symétrie de rotation. Le dessin d'un objet n'est alors conservé que lorsqu'il est tourné d'un angle égal à celui qui sépare ces directions. Des approximations sont donc nécessaires pour restaurer l'isotropie.
* Elle peuvent être réalisées en associant à chaque objet un ensemble de dessins 'ad hoc' différemment orientés et/ou en produisant ces dessins à partir de représentations vectorielles.
* Elles nécéssitent qu'il y ait autant de règles de transition qu'il y a de dessins d'un même objet.
---
##### Des annotations peuvent être associés aux dessins des objets ou des situations:
* Elles sont écrites dans l'espace au moyen des mêmes symboles que les dessins qu'elles commentent ou précisent.
* Leur forme, leur étendue, le nombre de liens superposées utilisées pour les dessiner sont des paramètres choisis par le concepteur du modèle.
* Ces paramètres sont indépendants et peuvent donc être combinés de diverses manières. Le nombre d'annotations possibles est ainsi théoriquement illimité.
* Ces annotations peuvent donner accès à des informations difficiles à encoder par la simple description des formes:
identités, noms, adresses, pointeurs, liens, quantités, poids ou valeurs diverses concernant des propriétés d'intérêt.
* Le point important, ici, est que ces annotations sont écrites dans les états au moyen des mêmes symboles que les dessins.
Leur lecture et leur réécriture ne portent donc pas atteinte à l'homogénéité des règles.
---
##### Chaque réécriture est un cycle de calcul élémentaire effectué par un thread opérant indépendemment des autres dans un espace local préalablement préempté:
* Tous les espaces locaux ont la même étendue telle que toutes les règles de transition puissent y être exécutées.
* L'emplacement et l'orientation de chaque nouvel espace local sont choisis par le scheduler (au hasard ou par un autre algorithme) dans l'espace global.
Puis le scheduler crée le thread qui va effectuer le calcul.
* Chaque thread compare alors l'état de l'espace local où il opère aux conditions énoncées par les diverses règles de transition.
- Si toutes les conditions d'une règle sont satisfaites, elle s'applique.
- Si plusieurs règles partagent le même ensemble de conditions, l'une d'entre elles est choisie (au hasard ou par un autre algorithme).
- Si les conditions d'une règle sont satisfaites mais que les conditions d'une autre règle, qui en comporte davantage, sont également satisfaites, la règle la plus complète s'applique.
- Une fois la règle choisie, ses prescriptions s'appliquent à l'état global.
- Le thread qui a achevé l'ensemble de ce calcul est alors détruit et la préemption sur cet espace local est levée.
---
##### 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 choisie par l'utilisateur,...).
* Ils peuvent être édités.
* Ils peuvent servir à activer / désactiver des règles ou groupes de règles lors de la recherche d'erreurs durant la fabrication d'un modèle.
* Ils servent à représenter l'ensemble des conditions des règles dans le fichier XML où est enregistré un modèle.
* Ils permettent de transmettre au serveur un ordre de parcours optimisé des sites de l'espace local (ou espace des conditions).
---
##### 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 des gem-graph afin de faciliter leurs comparaisons et optimisations.
* Possible application de l'IA.
---
##### 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)
---
"""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."""