Création d’un graphe

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()

# Ajout d’arêtes (edge) :
G.add_edge(1,2)
G.add_edges_from([(1, 3), (1, 4), (2, 3)])
G.add_edge(1, 5) # Même si le noeud n’existe pas encore

# # Ajout de sommets (node) :
# G.add_node(1)
# G.add_nodes_from([5])

nx.draw(G, with_labels=True)
plt.show() # plt.savefig("graphe.png")

def is_regular(G):
    return len(set([G.degree(k) for k in G.nodes()])) == 1

print(is_regular(G))

Ce code est écrit en Python et utilise les bibliothèques NetworkX et Matplotlib pour créer et visualiser un graphe non orienté. Voici une explication détaillée de chaque partie du code :

  1. import networkx as nx : Cela importe la bibliothèque NetworkX sous l'alias nx. NetworkX est utilisé pour la création, la manipulation et l'étude de la structure, de la dynamique et des fonctions des réseaux complexes.
  2. import matplotlib.pyplot as plt : Cela importe le module pyplot de la bibliothèque Matplotlib sous l'alias plt. Matplotlib est une bibliothèque de traçage utilisée pour la visualisation de données en Python.
  3. G = nx.Graph() : Initialise un nouveau graphe non orienté et le stocke dans la variable G.
  4. G.add_edge(1,2) : Ajoute une arête entre les sommets (nodes) 1 et 2.
  5. G.add_edges_from([(1, 3), (1, 4), (2, 3)]) : Ajoute plusieurs arêtes à partir d'une liste de tuples, créant des arêtes entre les paires de sommets spécifiées dans les tuples.
  6. G.add_edge(1, 5) : Ajoute une arête entre les sommets 1 et 5. Si les sommets n'existent pas déjà, ils seront créés automatiquement.
  7. G.add_node(1) : Ajoute un sommet au graphe avec l'étiquette 1. C'est redondant ici puisque le sommet 1 a déjà été ajouté en ajoutant des arêtes.
  8. G.add_nodes_from([5]) : Ajoute un sommet 5 au graphe. C'est aussi redondant car le sommet 5 a déjà été créé lors de l'ajout de l'arête (1, 5).
  9. nx.draw(G, with_labels=True) : Utilise NetworkX pour dessiner le graphe G. L'argument with_labels=True indique que les sommets doivent être étiquetés avec leurs identifiants correspondants.
  10. plt.show() : Utilise Matplotlib pour afficher le graphe dessiné à l'écran. La fonction plt.savefig("graphe.png") est commentée et pourrait être utilisée pour enregistrer le graphe dessiné dans un fichier PNG au lieu de l'afficher.
  11. La fonction is_regular(G) est définie pour vérifier si le graphe est régulier, c'est-à-dire si tous les sommets ont le même degré (le même nombre d'arêtes). Il le fait en créant un ensemble des degrés de tous les sommets et en vérifiant si la taille de cet ensemble est égale à 1 (ce qui signifierait que tous les degrés sont identiques).

En résumé, ce code crée un graphe non orienté simple avec cinq sommets et plusieurs arêtes entre eux, puis il le dessine avec des étiquettes sur les sommets. Ensuite, il définit une fonction pour tester si le graphe est régulier, bien que cette fonction ne soit pas appelée dans le code présenté


import networkx as nx
import matplotlib.pyplot as plt

# Création d'un graphe normal
G = nx.Graph()

# # Création d'un graphe orienté (dirigé):
# G = nx.DiGraph()

# # OU création d'un graphe autorisant des arêtes multples entre deux noeuds (dirigés ou non)
# G = nx.MultiGraph()
# G = nx.MultiDiGraph()

G.add_edges_from([(1, 2), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (2, 6), (3, 6), (3, 5), (3, 4), (4, 6), (4, 5)])

nx.draw(G, with_labels=True)
plt.show()

Commandes création de graphe

list(G.edges(mon_noeud))
list(G.in_edges(mon_noeud)), list(G.out_edges(mon_noeud))  # orienté