Tri topologique

Tri topologique

En théorie des graphes, et plus spécialement en algorithmique des graphes, un tri topologique d'un graphe acyclique orienté (ou dag, de l'anglais directed acyclic graph) est une extension linéaire de l'ordre partiel sur les sommets déterminé par les arêtes, c'est-à-dire un ordre total compatible avec ce dernier. En d'autres termes, il s'agit d'un ordre de visite des sommets tel qu'un sommet soit toujours visité avant ses successeurs.

Pour un graphe représenté en mémoire sous une forme facile à parcourir, par exemple par listes d'adjacence, le calcul d'un tri topologique est simple. Il suffit d'effectuer un parcours en profondeur du graphe, au cours duquel on empile chaque sommet une fois ses successeurs visités. En dépilant, on obtient un tri topologique.

Sans dédier une procédure pour ce traitement (gros graphes), on peut se re-servir d'un parcours en profondeur déjà effectué pour déterminer directement un ordre topologique. En effet, la lecture des sommets dans l'ordre inverse de la numérotation postfixe du parcours en profondeur est un ordre topologique.

Une autre façon de procéder consiste à rechercher une racine (sommet sans prédécesseur), l'enlever, et répéter l'opération autant de fois que nécessaire. C'est facile si l'on peut facilement calculer le nombre de prédécesseurs d'un sommet ; en effet, les racines à une itération sont parmi les successeurs des racines à l'itération précédente, et un compteur des prédécesseurs permet de les reconnaître.

Exemple de tri topologique

Soit G=(S,A) \, un graphe orienté avec S=\{1,2,3,4,5,6,7,8,9\} \, et A=\{(1,2),(1,8),(2,8),(2,3),(3,6),(4,3),(4,5),(5,6),(9,8)\} \,

Un ordre topologique sur ce graphe peut donner par exemple la succession des sommets 7,1,2,9,8,4,3,5,6. En effet, chaque sommet apparait bien avant ses successeurs. Il n'y a pas unicité de l'ordre.

Représentation graphique du graphe G

Exemple d'utilisation


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Tri topologique de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Projet:Mathématiques/Liste des articles de mathématiques — Cette page n est plus mise à jour depuis l arrêt de DumZiBoT. Pour demander sa remise en service, faire une requête sur WP:RBOT Cette page recense les articles relatifs aux mathématiques, qui sont liés aux portails de mathématiques, géométrie ou… …   Wikipédia en Français

  • Liste des articles de mathematiques — Projet:Mathématiques/Liste des articles de mathématiques Cette page recense les articles relatifs aux mathématiques, qui sont liés aux portails de mathématiques, géométrie ou probabilités et statistiques via l un des trois bandeaux suivants  …   Wikipédia en Français

  • Grammaire S-attribuée — Une grammaire S attribuée est une grammaire ne contenant que des attributs synthetisés où chaque attribut ne dépend que des attributs fils. Sommaire 1 Généralités 2 Méthodes d évaluation des attributs 2.1 Méthode à plusieurs passes …   Wikipédia en Français

  • Algorithme de parcours en profondeur — L algorithme de parcours en profondeur (ou DFS, pour Depth First Search) est un algorithme de parcours de graphe qui se décrit naturellement de manière récursive. Son application la plus simple consiste à déterminer s il existe un chemin d un… …   Wikipédia en Français

  • Coreutils — GNU Core Utilities GNU core utilities Développeur Projet GNU Dernière …   Wikipédia en Français

  • GNU Core Utilities — Développeur projet GNU Dernière version …   Wikipédia en Français

  • Make — Cet article a pour sujet le logiciel intitulé make. Pour une définition du mot « make », voir l’article make du Wiktionnaire. make est un logiciel traditionnel d UNIX. C est un « moteur de production » : il sert à appeler …   Wikipédia en Français

  • Makefile — make Cet article a pour sujet le logiciel intitulé make. Pour une définition du mot « make », voir l’article make du Wiktionnaire. make est un logiciel traditionnel d UNIX. C est un « moteur de production » : il sert à… …   Wikipédia en Français

  • Graphe orienté acyclique — Un exemple de graphe orienté acyclique En théorie des graphes, un graphe orienté acyclique (en anglais directed acyclic graph ou DAG) est un graphe orienté qui ne possède pas de cycle. La notion est usuelle dans plusieurs domaines de… …   Wikipédia en Français

  • make — Cet article a pour sujet le logiciel intitulé make. Pour une définition du mot « make », voir l’article make du Wiktionnaire. make est un logiciel traditionnel d UNIX. C est un « moteur de production » : il sert à appeler …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”