Création d'une matrice d'adjacence à partir d'un graphe
medfiras01
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, Je voudrais savoir comment créer une matrice d'adjacence avec Java (un code) à partir d'un graphe orienté ( graphe sous un fichier graphml)
A voir également:
- Création d'une matrice d'adjacence à partir d'un graphe
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Création d'un compte google - Guide
1 réponse
Bonjour,
Ci-dessous un exemple de fichier GraphML
Pour représenter un tel graphe il te faut une matrice de taille 2 (car il y a 2 noeuds : n0 et n1), toutes les valeurs de la matrice sont 0, sauf pour représenter l'arrête e1 (entre n0 et n1) où l'on place une valeur 1.
Remarque : la définition
Et des cas particuliers il y en a un certain nombre à gérer avec le format GraphML qui autorise par exemple des sous-graphe, des hypergraphes, etc.
Cela rend le fichier XML plus difficile à analyser de manière exhaustive, mais tu peux aussi te limiter aux usages les plus basiques selon le besoin.
Ci-dessous un exemple de fichier GraphML
<?xml version="1.0" encoding="UTF-8"?> <graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd"> <graph id="G" edgedefault="undirected"> <node id="n0"/> <node id="n1"/> <edge id="e1" source="n0" target="n1"/> </graph> </graphml>
Pour représenter un tel graphe il te faut une matrice de taille 2 (car il y a 2 noeuds : n0 et n1), toutes les valeurs de la matrice sont 0, sauf pour représenter l'arrête e1 (entre n0 et n1) où l'on place une valeur 1.
Remarque : la définition
<graph id="G" edgedefault="undirected">indique que l'on est dans le cas particulier d'un graphe non-orienté, donc par symétrie il faudra aussi mettre une valeur 1 entre n1 et n0.
Et des cas particuliers il y en a un certain nombre à gérer avec le format GraphML qui autorise par exemple des sous-graphe, des hypergraphes, etc.
Cela rend le fichier XML plus difficile à analyser de manière exhaustive, mais tu peux aussi te limiter aux usages les plus basiques selon le besoin.
pour savoir que c'est un graphe orienté (mais si c'est toujours le cas dans gephi on pourrait même s'en passer)
qui permet de connaître la taille de ta matrice, dans l'exemple tu as 24 nœuds, donc une matrice 24 lignes et 24 colonnes.
qui permet de savoir où tu dois mettre les 1 dans ta matrice (ici ligne 0, colonne 1).
Donc tu n'as qu'à lire le fichier ligne par ligne, créer ta matrice dès que tu connais sa taille et la remplir au fur et à mesure...