Bonjour,
je suis débutante en programmation, et je voudrais faire une fonction qui décompose un graphe en tout les sous graphes possible (structurellement). mon graphe n'est pas orienté.
c'est a dire si j'ai un graphe a 4 noeuds et 4 arc (graphe formant un carré), les sous graphes seront : un graphe a 1 noeud, un graphe a 2 noeud et 1 arc, un graphe a 3 noeuds et 2 arc.. tout les possiblités de sous graphes appartenant a mon graphe.
l'idée que j'ai eu c'est de partir du graphe complet et d'une liste vide ou je stocke mes sous graphes. je retire un arc a chaque fois, et je met le sous graphe dans la liste.
cela entraîne deux problèmes:
1. tester si un graphe appartient déjà a la liste et donc ne pas l'ajouter, mais comment comparer deux graphe ?????
2. en enlevant un arc je peux isoler deux sous graphes
????
une autre idée c'est de faire une approche par construction, c'est a dire de partir d'un seul noeud d'ajouter a la liste puis visiter ces voisin, ajouter un autre noeud et mettre dans la liste. mais cette deuxième idée je n'ai pas su mettre en place l'algorithme
Est ce que quelqu'un peut m'aider ?? existe t il un algo qui fait cette décomposition simplement ??
est ce qu'il y a un autre moyens pour décomposer un graphe??
quelqu'un pourrait m'aider a écrire l'algorithme ?
je suis perdue
Je vous remercie infiniment.
Anna
Partager