Les fichiers plats et les bases de données relationnelles nous donnent un mécanisme pour sérialiser les données structurées. XML est superbe pour sérialiser des données arborescentes non structurées.Comment sérialiser une structure de graphe?
Mais de nombreux problèmes sont mieux représentés par des graphiques. Un programme de simulation thermique fonctionnera, par exemple, avec des nœuds de température connectés les uns aux autres à travers des bords résistifs.
Alors, quel est le meilleur moyen de sérialiser une structure de graphe? Je sais que XML peut, dans une certaine mesure, le faire --- de la même manière qu'une base de données relationnelle peut sérialiser un web complexe d'objets: cela fonctionne habituellement mais peut facilement devenir laid.
Je connais la langue des points utilisée par le programme graphviz, mais je ne suis pas sûr que ce soit la meilleure façon de le faire. Cette question est probablement le genre de chose sur laquelle le monde universitaire pourrait travailler et j'adorerais avoir des références à des articles traitant de cela.
J'ai essayé d'utiliser la sérialisation Java pour sérialiser un graphe. Mais j'ai des exceptions de débordement de pile. Apparemment, c'est une plainte courante, et la solution recommandée est d'écrire du code de bas niveau pour surcharger "readObject()/writeObject()". Y a-t-il un meilleur moyen? –
Je n'ai pas vu ça. Il est important de ne pas sérialiser vous-même chaque noeud, mais de laisser Java sérialiser le graphe entier en un seul appel, car Java empêche le même objet d'être enregistré deux fois. Pouvez-vous donner un petit échantillon de code dans une autre question? –