Simplifiez votre flux de travail : Recherchez miniwebtool.
Ajouter
Outils connexes
Calculateur de Matrice d'AdjacenceCalculateur de plus court chemin de Dijkstra
Page d'accueil > Mathématiques > Opérations mathématiques avancées > Calculateur de Tri Topologique
 

Calculateur de Tri Topologique

Calculez un ordre topologique d'un graphe orienté acyclique (DAG) à l'aide de l'algorithme de Kahn ou du DFS. Détecte les cycles, signale le chemin du cycle, génère une vue par couches d'exécution parallèle, prend en charge l'ordre lexicographique le plus petit et anime chaque étape sur un graphe interactif.

Calculateur de Tri Topologique
Format arête : A -> B (accepte aussi , =>, :). Max 80 sommets / 800 arêtes.
L'algorithme de Kahn (lexicographique) donne un ordre unique et reproductible. Le post-ordre DFS est la méthode classique en profondeur.

Embed Calculateur de Tri Topologique Widget

Calculateur de Tri Topologique

Le Calculateur de tri topologique calcule un ordonnancement linéaire des sommets d'un graphe orienté acyclique (DAG) tel que pour chaque arête orientée de u vers v, u soit placé avant v. Entrez votre graphe sous forme de liste d'arêtes ou de liste d'adjacence et l'outil renvoie l'ordre topologique en utilisant l'algorithme de Kahn ou le post-ordre DFS, détecte les cycles (avec le chemin exact du cycle), regroupe les tâches en couches d'exécution parallèle, compte le nombre d'ordres valides et anime chaque étape sur un graphe interactif.

Qu'est-ce qu'un tri topologique ?

Étant donné un graphe orienté G = (V, E), un tri topologique (ou ordonnancement topologique) est une disposition linéaire v₁, v₂, …, vₙ de ses sommets telle que pour chaque arête orientée (u → v), u apparaisse avant v dans la disposition. Un ordonnancement topologique existe si et seulement si le graphe n'a pas de cycles orientés — c'est-à-dire que le graphe est un DAG. L'ordre est rarement unique : un graphe peut avoir de nombreux tris topologiques valides lorsque plusieurs sommets ont un degré entrant nul simultanément.

Définition de l'ordre topologique
Une permutation (v₁, v₂, …, vn) de V est topologique ssi
pour chaque arête (u → v) dans E : position(u) < position(v)

Algorithmes utilisés par ce calculateur

Algorithme de Kahn (basé sur BFS, 1962)

L'algorithme de Kahn est le tri topologique le plus intuitif. À chaque étape, il choisit un sommet avec un degré entrant nul (aucune arête entrante), l'ajoute à la sortie et le "supprime" du graphe en décrémentant le degré entrant de chacun de ses successeurs. Lorsque plusieurs sommets ont un degré entrant nul, la résolution des égalités peut utiliser un min-heap (donnant l'ordonnancement lexicographique le plus petit) ou une file FIFO (donnant l'ordre d'insertion). L'algorithme de Kahn s'exécute en temps O(|V| + |E|) et sert également de détecteur de cycle : si un sommet a encore un degré entrant > 0 après que la file s'est vidée, le graphe possède un cycle.

Algorithme de Kahn (pseudocode)
Kahn(G):
  Q ← { v ∈ V : degré_entrant(v) = 0 }
  L ← [ ]
  tant que Q n'est pas vide :
    u ← Q.pop()
    L.append(u)
    pour chaque arête u → v :
      degré_entrant(v) -= 1
      si degré_entrant(v) = 0 : Q.push(v)
  si |L| < |V| : signaler un cycle
  sinon : retourner L

Post-ordre DFS (Tarjan, 1976)

L'algorithme DFS exécute une recherche en profondeur, et chaque fois qu'un sommet est terminé (c'est-à-dire que tous ses successeurs ont été entièrement explorés), il est poussé sur une pile. Inverser la pile à la fin produit un ordre topologique valide. La détection de cycle est naturelle : rencontrer un sommet qui est encore en cours (marqué GRIS) signifie qu'une arête arrière a été trouvée, donc le graphe n'est pas un DAG. Le post-ordre DFS s'exécute également en temps O(|V| + |E|).

Post-ordre DFS (pseudocode)
DFS-Topo(G):
  pour chaque sommet u dans V : couleur[u] ← BLANC
  L ← pile vide
  pour chaque sommet u dans V :
    si couleur[u] = BLANC : visiter(u)
  retourner inverse(L)

visiter(u):
  couleur[u] ← GRIS
  pour chaque arête u → v :
    si couleur[v] = GRIS : signaler un cycle
    si couleur[v] = BLANC : visiter(v)
  couleur[u] ← NOIR ; L.push(u)

Couches d'exécution parallèle

Une vue par couches d'un DAG partitionne ses sommets en niveaux de sorte que chaque arête passe d'un niveau inférieur à un niveau supérieur. Les sommets d'une même couche sont indépendants les uns des autres, ils peuvent donc être exécutés en parallèle. Le nombre de couches est égal à la longueur du chemin le plus long plus un — c'est le chemin critique du DAG, le nombre minimum de tours séquentiels nécessaires pour terminer toutes les tâches, même avec un parallélisme illimité. Ce calculateur produit automatiquement la vue par couches chaque fois que l'entrée est un DAG.

Détection de cycle

Si le graphe contient un cycle orienté, aucun tri topologique n'est possible. Notre calculateur rapporte le chemin exact du cycle (ex: A → B → C → A) et met en évidence les arêtes du cycle en rouge sur la visualisation. La suppression d'une seule arête sur le cycle suffit à restaurer l'acyclicité.

Formats d'entrée

Liste d'arêtes

Écrivez chaque arête orientée sous la forme source -> cible, séparée par des virgules ou des retours à la ligne. Variantes de flèches acceptées : ->, , =>, -->, :. Vous pouvez également enchaîner les arêtes : A -> B -> C est un raccourci pour A->B et B->C. Les étiquettes de sommets peuvent être des lettres, des chiffres, des underscores, des tirets et des points.

A -> B, B -> C, A -> C
C -> D
Chemise -> Cravate -> Veste

Liste d'adjacence

Écrivez chaque sommet, deux-points, et ses successeurs directs (sommets vers lesquels il pointe). Un sommet sans successeur a toujours besoin de sa ligne, telle que D:.

A: B, C
B: D
C: D
D:

Comment utiliser ce calculateur

  1. Choisir un format : Basculez entre liste d'arêtes et liste d'adjacence avec les boutons radio.
  2. Entrer le graphe : Collez vos données ou cliquez sur l'un des exemples rapides (ordre d'habillage, prérequis de cours, cibles de construction, un graphe avec un cycle, etc.).
  3. Choisir un algorithme : Kahn lexicographique pour un ordre unique et reproductible ; ordre d'insertion pour préserver l'ordonnancement d'entrée ; post-ordre DFS pour la méthode classique en profondeur ; ou Tout afficher pour voir chaque ordre côte à côte.
  4. Cliquez sur "Trier topologiquement" : L'ordre, la détection de cycle, la vue par couches, la longueur du chemin critique, le nombre total d'ordres valides et un graphe interactif apparaissent ci-dessous.
  5. Explorer : Appuyez sur Lecture pour voir chaque sommet être émis une étape à la fois. Les badges de degré entrant se mettent à jour en direct. Faites glisser n'importe quel nœud pour réorganiser la disposition.

Applications dans le monde réel

Systèmes de construction et compilateurs

Des outils comme make, Bazel, Gradle et npm trient topologiquement leurs cibles de construction afin que chaque cible soit compilée seulement après toutes ses dépendances. Un cycle dans le graphe de dépendance est généralement signalé comme une erreur fatale — le système de construction ne peut pas décider par où commencer.

Planification de tâches

Les gestionnaires de projet utilisent des DAG pour capturer les dépendances des tâches. Le tri topologique donne un ordre d'exécution valide, et la vue par couches donne le nombre minimum de tours sous un parallélisme illimité. La chaîne la plus longue est le chemin critique qui détermine la durée du projet.

Planification des prérequis de cours

Un catalogue de cours universitaires est un DAG : les arêtes sont des relations de prérequis. Un ordre topologique est un plan d'étude valide, et les couches indiquent aux étudiants quels ensembles de cours ils peuvent suivre en parallèle au cours de chaque semestre.

Recalcul de feuilles de calcul

Lorsqu'une cellule change, un tableur doit recalculer chaque cellule en aval dans l'ordre des dépendances — un tri topologique du DAG de dépendance des cellules. Les références circulaires (cycles) sont rejetées par l'application.

Gestionnaires de paquets et chargeurs de plugins

Apt, pip, Homebrew, Maven et d'innombrables frameworks de plugins résolvent l'ordre d'installation ou de chargement en triant topologiquement leurs DAG de dépendance.

Résolution de symboles et ordonnancement d'instructions

Les compilateurs utilisent le tri topologique pour ordonner les déclarations, et les CPU utilisent des DAG de dépendance de données pour planifier les instructions dans le tampon de réordonnancement sans violer les hasards de données.

Compter les ordonnancements topologiques

Pour un DAG avec n sommets, le nombre de tris topologiques valides distincts peut varier de 1 (pour une chaîne totalement ordonnée) à n! (pour un graphe sans arêtes). Calculer le compte exact est un problème #P-complet en général, mais pour les graphes allant jusqu'à 16 sommets, ce calculateur les énumère en utilisant une formulation de programmation dynamique par masque binaire : f(S) = Σ f(S ∪ {v}) pour tous les v ∉ S dont les prédécesseurs sont tous dans S.

Complexité et performance

Foire aux questions

Qu'est-ce qu'un tri topologique ?

Un tri topologique d'un graphe orienté acyclique est un ordonnancement linéaire de ses sommets tel que chaque arête orientée de u vers v place u avant v. Il représente un ordre valide pour traiter des tâches respectant leurs dépendances.

Quel algorithme ce calculateur utilise-t-il ?

Le calculateur exécute l'algorithme de Kahn et le post-ordre DFS. L'algorithme de Kahn supprime de manière répétée un sommet de degré entrant nul et décrémente les degrés entrants de ses successeurs. Le post-ordre DFS exécute une recherche en profondeur et inverse l'ordre de fin. Les deux s'exécutent en temps O(|V| + |E|).

Et si mon graphe a un cycle ?

Un graphe avec un cycle orienté n'a pas de tri topologique. Le calculateur détecte le cycle, le met en évidence en rouge sur la visualisation et rapporte le chemin exact du cycle afin que vous puissiez voir quelles arêtes supprimer pour transformer le graphe en DAG.

Qu'est-ce que l'ordre topologique lexicographique le plus petit ?

Lorsque de nombreux ordres topologiques sont valides, le plus petit lexicographiquement est obtenu en choisissant toujours le sommet le plus petit par ordre alphabétique parmi ceux dont le degré entrant est nul à chaque étape. Le mode Kahn par défaut de ce calculateur renvoie cet ordre unique, stable et facile à reproduire.

Qu'est-ce que la vue par couches ou par niveaux ?

La vue par couches regroupe les sommets par la longueur du chemin le plus long depuis n'importe quelle source. Les sommets d'une même couche n'ont pas de dépendance entre eux, ils peuvent donc fonctionner en parallèle. Le nombre de couches est égal à la chaîne de dépendance la plus longue plus un et donne le nombre minimum de tours parallèles nécessaires pour terminer toutes les tâches.

Un graphe peut-il avoir de nombreux ordres topologiques valides ?

Oui. Si à n'importe quelle étape l'algorithme de Kahn possède plusieurs sommets de degré entrant nul, n'importe lequel d'entre eux peut être choisi ensuite. Ce calculateur compte le nombre exact d'ordres topologiques distincts pour les graphes allant jusqu'à 16 sommets.

Quelle est la différence entre l'algorithme de Kahn et le post-ordre DFS ?

Kahn travaille de haut en bas : il choisit de manière répétée les sources (degré entrant 0) et les émet en premier. Le post-ordre DFS travaille de bas en haut : il termine d'abord les puits et les ajoute au début de l'ordre. Les deux sont en O(|V| + |E|) et produisent des tris topologiques valides, mais généralement différents. Kahn est plus facile à paralléliser et à adapter pour l'ordre lexicographique ; DFS est plus facile à combiner avec d'autres analyses basées sur DFS comme les composantes fortement connexes.

Quelle est la taille maximale de graphe supportée par cet outil ?

Le calculateur prend en charge jusqu'à 80 sommets et 800 arêtes. Le comptage du nombre total d'ordres topologiques valides est limité à 16 sommets car le problème est #P-complet et l'espace d'état croît en 2ⁿ. La visualisation interactive et l'animation de l'algorithme fonctionnent de manière fluide jusqu'à la taille maximale.

Lectures complémentaires

Citez ce contenu, cette page ou cet outil comme suit :

"Calculateur de Tri Topologique" sur https://MiniWebtool.com/fr/calculateur-de-tri-topologique/ de MiniWebtool, https://MiniWebtool.com/

par l'équipe miniwebtool. Mis à jour le : 20 avr. 2026

Vous pouvez également essayer notre Résolveur Mathématique IA GPT pour résoudre vos problèmes mathématiques grâce à des questions-réponses en langage naturel.

Opérations mathématiques avancées:

Outils en vedette:

Calculateur de Position du SoleilGénérateur de Carte de Crédit AléatoireCalculatrice de Compatibilité AmoureuseCalculateur du Jour de l'Année - Quel jour de l'année sommes-nous aujourd'hui ?Convertisseur cm en pieds et poucesCalculateur de Signe Solaire, Lunaire et Ascendant 🌞🌙✨Extracteur d'Images de VidéoRecherche d'Identifiant InstagramGénérateur de mots aléatoires en anglaisSélecteur de Films Aléatoirerecherche-d-adresse-MACconvertisseur ppm en pourcentageGénérateur de chaînes aléatoiresConvertisseur de Pieds et Pouces en CentimètresCalculatrice de SommeRecherche d'identifiant FacebookConvertisseur de décimales en tempsGénérateur de Couleurs AléatoiresConvertisseur de Pourcentage en PPMStatistiques de Chaîne YouTubeSupprimer des accents du texteConvertisseur de Calendrier HébraïqueCalculatrice d'escalierFusionner des vidéosCalculateur d'âgeCalculateur de percentile de tailleQuelle est mon adresse IP ?👙 Calculateur de Taille de Soutien-GorgeConvertisseur HEX en CMJNCompteur de lignescalculatrice-des-exposants-haute-précisionGénérateur de Cartes à Jouer AléatoireCalculateur de Numéro MaîtreGénérateur d'Action ou Vérité AléatoireCalculateur de nombres angéliquesGénérateur de cartes de bingoCalculatrice de MédianeOutil en ligne pour supprimer la ponctuationParaphraseur IARandomiseur de listeGénérateur d'heure aléatoireGénérateur de LabyrinthesGénérateur de Code MorseCalculateur de BarbecueCalculateur de vitesse de cyclismeCalculateur de Numéro de SemaineCalculatrice Modulocalculatrice-de-hba1cConvertisseur de Temps en DécimalSupprimer les sauts de ligneJour d'équinoxe de printempsConvertisseur d'AngleGénérateur de patron de cône à platDiviseur AudioGénérateur de points à relierPivoter la vidéoGénérateur d'adresse MACDécoupeur de vidéoGénérateur de personnage RPG aléatoireGénérateur de Repas AléatoireCalculateur d'ArctangenteCompresseur VidéoGénérateur de Sujets de Débat Aléatoiresconvertisseur de mot à numéro de téléphoneCalculateur d'équilibre des éléments astrologiquesExtracteur AudioCalculatrice de test du khi-deuxCalculatrice du Nombre d'ÂmeConvertisseur FPSGénérateur de Nonogrammes (Picross)Vérificateur de Nombre Pair ou Impair🔍 Vérificateur de PlagiatConvertisseur de taille de fichierVérificateur de Nom d’Utilisateur sur les Réseaux SociauxBoule Magique 8Calculateur de Revenus TwitchCompter le nombre de caractèresCompteur de SyllabesCalculateur d'autonomie de batterie🖱️ Compteur de ClicsFormateur de TexteGénérateur de tableau de tournoi aléatoireSupprimer les espacesCalculateur de Probabilité de DésConvertisseur DMS en Degrés DécimauxCalculatrice de DuréeCalculatrice de numérologie🎮 Convertisseur de Monnaie de JeuGénérateur de lettres aléatoiresCalculateur de Retour de SaturneCalculateur de temps de refroidissement de bièreCalculatrice de conversion de levureGénérateur de mots mêlésListe des Années BissextilesSélecteur de Nom AléatoireCalculateur de Coût de CarburantCalculateur de résistance pour LEDCalculatrice de terrasseCalculatrice du Pourcentage d'AugmentationConvertisseur de Codes Couleur Tous Formats🌡️ Calculateur d'Indice de ChaleurGénérateur de Distribution GaussienneExtracteur d'e-mailGénérateur d'IMEI AléatoireGénérateur de Prompt d'Écriture AléatoireHumaniseur de Texte IACalculateur de PressionCalculateur d'espérance de vie📅 Calculatrice de DateCalculateur de LevainConvertisseur de Livres en KilogrammesGénérateur d'adresse IP aléatoireCalculer les jours entre deux datesLanceur de DésCalculateur de Rapport de Vitesses de VéloConvertisseur de Fréquence et de Longueur d'OndeGénérateur de Carré MagiqueGénérateur de clé WPA en ligneGénérateur de Coordonnées AléatoiresTrier les lignes par ordre alphabétiqueVisualiseur de Cercle Unité InteractifCalculateur de Conversion d'Échelle de MaquetteCalculateur nutritionnel de recettesCalculatrice de CombinaisonGénérateur d'Activités AléatoiresGénérateur d’excuses aléatoiresCalculateur de TangenteCalculatrice de Circonférence d'EllipseCréateur de mots croisésCalculateur de CosinusCalculatrice HexadécimaleFusion de SRTGénérateur d'anagrammesInverser la VidéoSuppresseur de Caractères InvisiblesCalculateur de Compost (Rapport C:N)Calculateur de dilatation du tempsCalculatrice de numéro de nomCompte à Rebours de la RetraiteConvertisseur Décimal en BCDInverseur de couleursTesteur de Robustesse de Mot de PasseCalculateur d'écart-typeCalculateur de Chute LibreCalculateur de dépréciation de voitureCalculateur de Mélange Huile 2 TempsCalculateur de Temps de LectureCalculatrice d'Écart-Type RelatifCalculatrice de fertilitéCalculatrice de Fonction GammaCalculatrice de la diminution en pourcentageCalculatrice de Rectangle d'OrDécodeur JWTgénérateur-de-texte-à-l-enversTrier les NombresCalculateur de Modèle de TricotCalculateur de soude pour savon (SAP)Calculateur de sous-réseau IPCalculateur du Test Exact de FisherConvertisseur de pressionGénérateur d'adresses fictives aléatoiresGénérateur de Texte StyliséCalculateur de Coefficient BinomialCalculateur de Débit en TuyauterieCalculateur de Taille de TVGénérateur de Date AléatoireGénérateur de KakuroListe des Nombres de FibonacciRandomiseur de nombresSupprimer l'audio d'une vidéoCalculateur d'ArmatureCalculateur de Décibels (dB)Combien Dois-je Peser ?Convertisseur d'adresse IP en binaireConvertisseur de Taille de BagueGénérateur de Texte BarréGénérateur d'Anniversaire AléatoireGénérateur de mots mélangésGénérateur de numéros de loterieSélecteur de commentaires YouTubeAjouter ou Remplacer l'Audio dans une VidéoCalculateur d'âge biologiqueCalculateur de Taille de Ventilateur de PlafondConvertisseur de Cuillères à Soupe en TassesGénérateur aléatoire d'animauxGénérateur d'ouverture d'échecs aléatoireGénérateur de PaletteCalendrier du Jour de l'AnnéeCalculateur de Foin pour Chevaux💧 Calculateur de Point de RoséeCalculateur de récupération de la fréquence cardiaqueCalculatrice de racine carréeCalculatrice du coefficient de variationCalculatrice du Nombre d'ExpressionDétecteur de contenu IAGénérateur de Word LadderQuel est mon signe du zodiaque ?Supprimer les lignes vides du texteCalculateur de Coûts Publicitaires FacebookCalculateur de filCalculateur de taille de véloChronomètre de splits de speedrunCalculateur de StablefordCalculateur de checkout de fléchettesCalculateur d’économie au bowling de cricketCalculateur de Strike Rate au CricketCalculateur de Net Run RateCalculateur de ratio K/DCalculateur de classement EloCalculateur de temps de randonnéeCalculateur d'allure d'avironCalculateur de Performance Ajustée à l'Âge en CourseCalculateur de FTP et Zones de PuissanceCalculateur de test BeepCalculateur de score ACFTCalculateur Wilks & DOTSCalculateur d'offset de janteRecherche d’indice de charge et d’indice de vitesse des pneusCalculateur de coût par mileCalculateur de rachat de leasingCalculateur de Mélange d'OctaneCalculateur de Cylindrée MoteurCalculateur de Passage de CanapéCalculateur de Cordes de Bois de ChauffageCalculateur de CADR de Purificateur d'AirCalculateur de taille de déshumidificateurCalculateur de Taille de RideauxCalculateur de Taille de TapisCalculateur de hauteur pour accrocher un tableauCalculateur de hauteur de fixation TVCalculateur de volume et bâche de bassinCalculateur de Sel pour PiscineCalculateur de Volume de PiscineCalculateur de Taille de Chauffe-EauCalculateur de Résine ÉpoxyCalculateur d'espacement des balustresCalculateur de plinthes et mouluresCalculateur de bardageCalculateur de lasure pour terrasseCalculateur de Semences de GazonCalculateur de gazonCalculateur d'AsphalteCalculateur de Yards CubesCalculateur de Longueur d'AntenneCalculateur de Remplissage de ConduitCalculateur de condensateurs en série et parallèleCalculateur de Reactance InductiveCalculateur d'Éclairage de PièceCalculateur de Lux en LumensConvertisseur Lumens en WattsCalculateur de Taille de GénérateurConvertisseur mAh en WhCalculateur de Puissance TriphaséeCalculateur kVACalculateur Ampères en WattsCalculateur de Watts en AmpèresCalculateur de Résistances en SérieCalculateur de FrottementCalculateur de Plan InclinéCalculateur d'Avantage MécaniqueCalculateur de vitesse du sonCalculateur de vitesse d’ondeCalculateur de flottabilitéCalculateur de Vitesse TerminaleCalculateur de longueur d'onde de de BroglieCalculateur d'énergie du photonCalculateur E=mc²Calculateur de la Troisième Loi de KeplerCalculateur de vitesse de libérationCalculateur de Force GravitationnelleCalculateur de la Loi de Beer-LambertCalculateur d'équation de NernstCalculateur de Pression OsmotiqueCalculateur d'élévation du point d'ébullitionCalculateur d'Abaissement du Point de CongélationCalculateur de Composition CentésimaleCalculateur de NormalitéCalculateur de MolalitéConvertisseur pKa en KaCalculateur de Henderson-HasselbalchCalculateur de Rendement ThéoriqueCalculateur de Réactif LimitantCalculateur de Configuration ÉlectroniqueTableau périodique interactifGénérateur de Plan de Cours IAGénérateur de Quiz IAGénérateur de Citations (APA/MLA/Chicago)Calculateur de Pourcentage de PrésenceCalculateur de Score APCalculateur de Score ACTCalculateur de Score SATConvertisseur Pourcentage en CGPAConvertisseur CGPA en PourcentageCorrecteur de Notes Facile (EZ Grader)Calculateur du Coût d'un EnfantCalculateur de Consommation de Lait pour BébéCalculateur de taille de couchesGénérateur de prénoms de bébéPrédicteur de la couleur des yeux de bébéCalculateur de Percentile IMC pour EnfantCalculateur de Taille Adulte de l'EnfantCalculateur du Temps de Doublement de hCGCalculateur de date d'accouchement FIVCalculateur d'ImplantationPrédicteur de Sexe ChinoisFormateur de date ISO 8601Convertisseur de date julienneCalculateur de siesteCalculateur de Phase de la LuneCalculateur de lever et coucher du soleilHorloge mondialeConvertisseur de Date en Chiffres RomainsCalculateur de SobriétéCalculateur de demi-anniversaireCalculateur d’anniversaireCalculateur de Répartition des PourboiresCalculateur de ROI Email MarketingCalculateur de Coût Par LeadCalculateur de Fonds de RoulementEstimateur de revenus YouTube