Python Ordenamiento topológico
Realizar un ordenamiento topológico de un grafo acíclico dirigido (Directed Acyclic Graph, abreviado DAG) G es organizar todos los vértices de G en una secuencia lineal, de modo que para cualquier par de vértices u y v en el grafo, si la arista (u, v) ∈ E(G), entonces u aparece antes de v en la secuencia lineal. Normalmente, dicha secuencia lineal se denomina secuencia que satisface el orden topológico (Topological Order), abreviada como secuencia topológica. En pocas palabras, obtener un orden total a partir de un orden parcial sobre un conjunto es lo que se denomina ordenamiento topológico.
En teoría de grafos, una secuencia compuesta por los vértices de un grafo acíclico dirigido se denomina ordenamiento topológico (en inglés: Topological sorting) de dicho grafo si y solo si cumple las siguientes condiciones:
- Cada vértice aparece una y solo una vez;
- Si A está antes que B en la secuencia, entonces no existe un camino de B a A en el grafo.
Ejemplo
Al ejecutar el código anterior, el resultado de salida es:
拓扑排序结果: [5, 4, 2, 3, 1, 0]Otras extensiones
Ejemplos de Python3