Merge branch 'jean-master-patch-82146' into 'master'

Update readme.md

See merge request gem-graph/gem-graph!1
This commit is contained in:
Jean Sirmai 2021-07-19 15:28:31 +00:00
commit 8fdde1f35c
1 changed files with 81 additions and 50 deletions

117
readme.md
View File

@ -6,75 +6,106 @@
#### 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.
### Les multigraphes géométriques dirigés peuvent être utilisés pour représenter une grande variété d'états complexes. Ces états peuvent être dessinés dans l'espace au moyen de combinaisons (juxtapositions et superpositions) de flèches allant d'une région de l'espace à une 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.
---
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,
Les phénomènes complexes peuvent être définis comme ceux où une grand nombre d'objets de formes et de propriétés très diverses interagissent d'un grand nombre de façons différentes.
Les interactions particulières entre certains de ces objets peuvent être isolées expérimentalement et décrites avec une approximation suffisante
mais il est difficile de calculer l'évolution de l'ensemble d'un système complexe pour au moins deux raisons:
L'emploi des gem-graph est guidé par les choix suivants:
- Il s'y produit simultanément des phénomènes rapides et d'autres lents ainsi que des phénomènes localisés alors que d'autres sont plus globaux.
S'il faut décrire tous les objets et tous les phénomènes avec la même précision, on est donc limité
* soit par la puissance de calcul s'il faut tout décrire en détail,
* soit par des approximations qui ne permettent plus de décrire avec une précision suffisante certains phénomènes rapides ou locaux.
Or, certains de ces phénomènes (rapides, locaux) ont des conséquences majeures sur l'évolution de l'ensemble et ne doivent donc pas être négligés.
Ce problème est celui de la 'granularité' (temporelle et spatiale).
- Un second problème vient de ce que la plupart des descriptions doivent nommer les entités sur lesquelles elles opèrent.
Or, lorsque le nombre de ces entités augmente, le nombre de leurs interactions augmente plus rapidement encore: on parle d'explosion combinatoire.
Si l'on utilise, par exemple, une équation pour représenter une relation entre un petit nombre d'objets,
le nombre d'équations nécessaires pour décrire tous les phénomènes en jeu dans l'ensemble du système est tel qu'il n'est plus possible de les résoudre toutes simultanément.
Si l'on utilise un modèle numérique, le nombre de règles et leur hétérogéneité rend leur application de plus en plus difficile:
certaines règles peuvent être en contradiction avec d'autres ou s'appliquer à 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.
Les multigraphes géométriques dirigés permettent d'aborder ces deux difficultés d'une manière nouvelle.
Ils se fondent sur 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
* Dans cet espace est inscrit un graphe géométrique fait de liens (des flèches) entre des unités de l'espace.
Les multiples combinaisons possibles de ce seul symbole (la flèche) 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.
- des annotations (syn: 'tags' ou balises) qui seront décrites plus loin.
Tous ces dessins ou graphes sont des états de l'espace. Ce sont des représentations approximatives et simplifiées du système à modéliser.
* Un ensemble de transitions permet de réécrire chacun de ces états.
Ces réécritures ou versions successives constituent l'histoire de la simulation.
* 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 flèches 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 être combinés de diverses manières. Ceci augmente le nombre d'annotations possibles qui n'est théoriquement pas limité.
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 mêmes et au moyen des mêmes symboles que les dessins.
Leur lecture et leur réécriture ne modifient donc pas l'homogénéité des règles.
* Les informations statiques (états) et les informations dynamiques (transitions) restent donc 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 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)
La conformité d'écriture des règles et l'uniformité 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.
* L'homogéneité de l'écriture des règles du gem-graph n'exclut pas l'utilisation de deux autres types de conditions qui leurs permettent d'être associés à d'autres modèles (voir plus loin).
Quatre autres types d'assignations peuvent aussi être utilisées pour écrire dans d'autres moèles ou envoyer des résultats de mesures (voir plus loin).
* 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.
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).
Si un ensemble de conditions est satisfait (règle courte) mais que d'autres conditions peuvent encore être évaluées (règle longue), la préférence est donnée à la règle la plus longue.
Une fois le calcul effectué, son résultat est validé puis intégré à l'état global puis la préemption 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 par l'utilisateur,...).
- Ces arbres peuvent être édités.
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.
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.
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.
---
La réécriture de multigraphes géométriques dirigés 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 réécritures de ces descriptions sont possibles sans qu'il soit nécessaire de nommer les objets ni les situations dessinés.
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.
---
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)
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 annotations, qui ne représentent pas les objets eux-mêmes ni les situations, sont supprimées ou converties.
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...)