Bibliothèque de graphes en C#
-
Que sont les graphes en
C#
-
Qu’est-ce que la bibliothèque
QuickGraph
enC#
-
Désérialisation dans les graphes en
C#
-
Visualisation dans les graphes en
C#
Supposons que vous obteniez un projet dans lequel vous devez travailler sur une représentation réseau des dépendances d’activité maintenant ; quelle serait la meilleure façon de travailler sur ce projet ? La réponse à cela est un graphique.
Dans de tels cas, les graphiques sont très pratiques et comportent également plusieurs fonctionnalités essentielles, ce qui simplifie grandement votre travail.
Que sont les graphes en C#
Quand vous pensez à un Graph
, vous pensez probablement à ces longues barres verticales qui représentent une valeur numérique, le genre que vous aviez l’habitude de voir dans votre livre de mathématiques à l’école (et que vous voyez peut-être encore).
Mais ce ne sont pas les graphiques dont nous parlons ici; pensez plutôt à une structure en forme de toile d’araignée avec des parties interconnectées qui représentent un tout.
Alors, approfondissons ce que sont les graphiques ; généralement, un graphe a deux composants de base appelés Nodes
et Arêtes
. Les Nodes
sont connectés à l’aide de Edges
; les deux premiers Nodes
sont connectés à l’aide de Edges
; ensuite, les Nodes
peuvent être connectés en n’importe quel nombre.
Ainsi, les graphiques sont excellents en raison de la façon dont ils sont structurés lorsque vous souhaitez représenter une relation entre certains concepts ou entités. Vous avez différents types de représentation, algorithmes et structures de données avec lesquels travailler.
Il n’y a pas qu’un seul type de graphique ; il existe plusieurs types de graphiques. Les types dépendent de nombreux facteurs de distinction, la façon dont les arêtes et les nœuds fonctionnent dans un graphe définit généralement son type.
Par exemple, un type est appelé Arbres
, dans lequel n’importe quel nœud peut être connecté à n’importe quel autre nœud par un chemin.
La complexité de nombreux systèmes ne s’explique qu’à travers les réseaux en informatique ; par conséquent, la théorie des graphes est très utile.
Structures de données en C#
Maintenant que vous avez défini et identifié votre projet comme nécessitant l’utilisation de graphes, il ne vous reste plus qu’à choisir une structure de données pour votre projet.
Étant donné que les structures de données varient en fonction de vos demandes, déterminez soigneusement vos structures de données pour une utilisation plus efficace des graphiques. Les facteurs les plus importants pour décider des structures de données à utiliser sont la complexité de la mémoire et du temps.
Algorithmes en C#
Deuxièmement, vous devez inclure des algorithmes dans vos graphiques ; cela simplifiera grandement votre tâche. Vous n’aurez probablement jamais besoin de créer de nouveaux algorithmes, alors souvenez-vous des algorithmes habituels dont vous auriez besoin et utilisez-les dans vos graphiques.
Familiarisez-vous avec les bibliothèques de graphes existantes. Les algorithmes que vous trouverez dans les bibliothèques de graphes sont bien optimisés pour les complexités de temps et de mémoire.
Par conséquent, ils sont votre meilleur pari lorsque vous travaillez avec des graphiques !
Outils utilisés dans les graphiques en C#
Les outils suivants seront utilisés dans les graphiques, alors familiarisez-vous bien avec eux.
- Interroger et muter à l’aide d’algorithmes
- Sérialiser / Désérialiser
- Visualisez
Qu’est-ce que la bibliothèque QuickGraph
en C#
Créée par Jonathan ‘Peli’ de Halleux en 2003, QuickGraph
est une bibliothèque .NET
de structures de graphes et d’algorithmes pour C#. Il fournit des structures de données de graphe direct/indirect.
Ses algorithmes sont la recherche profondeur d'abord
, la recherche souffle d'abord
, la recherche A*
, le chemin le plus court
, le chemin le plus court k
et le débit maximal
.
Certaines des plateformes qu’il utilise sont .NET Standard 1.3+
, .NET Core 1.0+
, .NET Framework 3.5+
(et autres).
QuickGraph
est un logiciel gratuit et open-source qui vous permet de construire des structures de données et des algorithmes dans .NET
. Il fournit également une prise en charge de base de la sérialisation/désérialisation et certaines fonctionnalités de visualisation, bien qu’elles ne soient pas stables.
La bibliothèque d’algorithmes de QuickGraph
est assez polyvalente et comprend pratiquement tout ce dont vous auriez besoin ; il est rarement insuffisant en termes de convivialité, et les structures de données couvrent de nombreux territoires et vous fourniront ce dont vous avez besoin dans la plupart des circonstances.
Le principal défaut de QuickGraph
est sa documentation extrêmement incorrecte ; il est à peine utilisable et, dans certains cas, simplement incorrect, très simple et manquant de diversité. L’API change alors que la documentation n’adhère pas à ce changement dans de nombreux cas.
Cela compliquera le processus en vous obligeant à vérifier manuellement la source de la bibliothèque ; donc c’est assez frustrant.
La principale raison en est probablement la mauvaise maintenance, car le projet est toujours bloqué à sa version 3.6, et cette mise à jour est arrivée à la mi-2011, soit il y a plus d’une décennie ! Beaucoup d’appréciations au développeur ; cependant, l’entretien doit être meilleur.
Néanmoins, malgré ses inconvénients, c’est toujours la meilleure option.
Désérialisation dans les graphes en C#
La désérialisation signifie changer le format du graphe de l’un à l’autre ; ceci est important lorsque vous devez exporter le graphique vers une autre application, mettre à jour son contexte et l’utiliser en fonction de vos besoins.
Bien que QuickGraph
vous offre la possibilité de sérialiser en GraphML
, vous devrez coder vous-même la sérialisation pour de nombreux autres formats car il existe de nombreux formats tels que XML et CSV.
GraphDB
dans Graphs en C#
GraphDB
vous permet de traiter les nœuds et les arêtes comme des enregistrements ou des valeurs au lieu de relations implicites entre les tables, comme dans le cas d’une base de données relationnelle.
Cela vous donne un traitement de données graphique plus naturel et plus fonctionnel.
Visualisation dans les graphes en C#
La visualisation est l’un des aspects les plus vitaux de tout processus, car donner une représentation graphique à un code le rend beaucoup plus facilement compréhensible et interactif. Cela rend le travail beaucoup plus fluide et rapide.
Il existe différents outils de visualisation dont l’un est le yEd Graphic Editor
. Cette application est fantastique, et c’est encore mieux car elle est disponible gratuitement !
Son moteur de mise en page, ainsi que les outils de personnalisation qui l’accompagnent, sont fantastiques.
Ensuite, il y a GraphViz
, qui est open-source et largement utilisé dans les milieux académiques pour la visualisation de graphes ; Des scripts en langage DOT sont utilisés. Il vous permet d’enregistrer des schémas sous forme d’images (SVG, par exemple).
Ensuite, il y a Microsoft Automatic Graph Layout
. Celui-ci est similaire à GraphViz
mais plus basique et compatible avec l’écosystème Windows et .NET
.
Enfin, Gephi
est un outil extrêmement sophistiqué qui peut être utilisé pour bien plus que la simple visualisation. C’est aussi gratuit et open-source.
Il offre une prise en charge étendue des plug-ins. C’est l’outil de visualisation le plus efficace.
I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.
LinkedIn