diff --git a/readme.md b/readme.md index ea23ab6..e890520 100644 --- a/readme.md +++ b/readme.md @@ -1,12 +1,8 @@ -# GE-ometric D-irected M-ulti-GRAPH (gem-graph) +# **GE**o-**M**etric-**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 +### Un graphe géométrique est un graphe dont les nœuds ont des coordonnées dans un espace. -##### 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 peuvent être utilisés pour représenter une grande variété d'états. Ces états peuvent être dessinés dans l'espace au moyen de combinaisons de flèches allant d'un point de l'espace à un autre. +#### Les graphes géométriques dirigés peuvent être utilisés pour représenter une grande variété d'états. Ces états peuvent être dessinés dans l'espace au moyen de combinaisons de liens allant d'un point de l'espace à un autre. Ces liens peuvent être pondérés et orientés. #### 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. @@ -14,16 +10,16 @@ ##### 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. 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: -- Il s'y produit simultanément des phénomènes rapides et d'autres lents et certains phénomènes sont localisés alors que d'autres sont globaux. Ce problème est celui de la 'granularité' (temporelle et spatiale). +- Il s'y produit simultanément des phénomènes rapides et d'autres lents. Certains phénomènes sont localisés alors que d'autres sont globaux. Ce problème est celui de la 'granularité' (temporelle et spatiale). > 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 trop rapides ou survenant dans un espace trop petit. +> * soit par des approximations qui ne permettent plus de décrire avec une précision suffisante certains phénomènes trop rapides ou trop localisés. > Or, certains de ces phénomènes (rapides, locaux) peuvent avoir des conséquences majeures sur l'évolution de l'ensemble et ne doivent donc pas être négligés. - Un second problème vient de ce que la plupart des descriptions doivent nommer les entités sur lesquelles elles opèrent pour pouvoir établir une relation 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, 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. +> * Si l'on utilise un modèle numérique, un grand nombre de règles est nécessaire. Il devient 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 les deux cas, si deux calculs successifs partant du même état donnent des résultats différents, le modèle devient inexploitable. @@ -31,14 +27,14 @@ ##### gem-graph permet d'aborder ces deux difficultés en dessinant les objets au lieu de les nommer: -* L'espace et le temps sont représentés -* Ils sont discrets, uniformes et cartésiens. +* L'espace et le temps sont représentés par un référentiel discret, uniforme et cartésien. * La topologie, la dimension, 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 est inscrit un graphe géométrique fait de liens (des flèches) entre des unités de l'espace. - De multiples combinaisons (juxtapositions, superpositions) de ce seul symbole (la flèche) permettent de dessiner: +* Dans cet espace est inscrit un graphe géométrique. + Ainsi, au moyen de multiples combinaisons d'un seul symbole, il est ppossible de dessiner: - des objets (parties connexes isolées du graphe), - des situations (positions relatives des objets) et - - des annotations (syn: 'tags' ou balises) qui seront décrites plus loin. + - des annotations (décrites plus loin) qui écrivent, dans l'espace même, + des informations relatives aux objets ou situations auxquels elles sont connectées. Tous ces dessins ou graphes sont des états de l'espace. * Un ensemble de transitions permet de réécrire chacun de ces états. Ces réécritures sont locales, asynchrones et aléatoires. @@ -46,37 +42,37 @@ --- * 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. +* 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) + - 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 - utiles en cas d'association à d'autres modèles ou pour l'envoi de résultats de mesure (voir plus loin). +* 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 liens peuvent être pondérés et orientés. + --- * Les dessins peuvent représenter, de façon approximative, des états d'un système à modéliser. Les objets sont alors tous dessinés à la même échelle mais avec un niveau de détail variable. - Du fait de l'introduction de directions privilégiées, l'isotropie (les symétries par rotation) est perdue. - Pour compenser cet inconvénient, il est nécessaire d'associer à chaque objet un ensemble de dessins 'ad hoc' différemment orientés. - Des parties de ces dessins peuvent éventuellement être produites à partir de représentations vectorielles. +* L'utilisation d'un référentiel introduit nécéssairement des directions privilégiées. Le dessin d'un objet n'est alors conservé que lorsqu'il est tourné d'un angle égal à celui qui sépare ces directions. Une approximation est donc nécessaire pour retrouver l'isotropie. +* Elle peut être réalisée 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. --- * 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. + 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: +* 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. +* 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, définie par les règles de transition et telle qu'aucune flèche ne sorte de cet espace. - 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. + Tous les espaces locaux ont la même étendue, définie par les règles de transition et telle qu'aucun lien ne sorte de cet espace. +* 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. +* 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. @@ -93,11 +89,11 @@ * 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) --- -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. +* 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 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. --- @@ -110,15 +106,15 @@ Ab antecedente statu primarum ad sequentem statum secundarum iter nullius est ni --- 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 ? +> 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. +> 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.