Simplifique su flujo de trabajo: Busque miniwebtool.
Añadir
> Calculadora de Ordenación Topológica
 

Calculadora de Ordenación Topológica

Calcule un orden topológico de un grafo acíclico dirigido (DAG) utilizando el algoritmo de Kahn o DFS. Detecta ciclos, informa la ruta del ciclo, crea una vista de capas de ejecución paralela, admite el orden lexicográfico más pequeño y anima cada paso en un grafo interactivo.

Calculadora de Ordenación Topológica
Formato de arista: A -> B (también acepta , =>, :). Máx. 80 vértices / 800 aristas.
El algoritmo de Kahn (lexicográfico) proporciona un orden único y reproducible. DFS post-orden es el método clásico de búsqueda en profundidad.

Embed Calculadora de Ordenación Topológica Widget

Calculadora de Ordenación Topológica

La Calculadora de Ordenación Topológica calcula un ordenamiento lineal de los vértices de un grafo acíclico dirigido (DAG) tal que cada arista dirigida de u a v coloca a u antes que v. Ingrese su grafo como una lista de aristas o lista de adyacencia y la herramienta devolverá el orden topológico utilizando el algoritmo de Kahn o DFS post-orden, detectará ciclos (con la ruta exacta del ciclo), agrupará tareas en capas de ejecución paralela, contará el número de ordenamientos válidos y animará cada paso en un grafo interactivo.

¿Qué es una ordenación topológica?

Dado un grafo dirigido G = (V, E), una ordenación topológica (o ordenamiento topológico) es una disposición lineal v₁, v₂, …, vₙ de sus vértices tal que para cada arista dirigida (u → v), u aparece antes que v en la disposición. Un ordenamiento topológico existe si y solo si el grafo no tiene ciclos dirigidos, es decir, si el grafo es un DAG. El ordenamiento rara vez es único: un grafo puede tener muchos ordenamientos topológicos válidos cuando varios vértices tienen grado de entrada cero al mismo tiempo.

Definición de orden topológico
Una permutación (v₁, v₂, …, vn) de V es topológica si y solo si
para cada arista (u → v) en E: posición(u) < posición(v)

Algoritmos utilizados por esta calculadora

Algoritmo de Kahn (basado en BFS, 1962)

El algoritmo de Kahn es la ordenación topológica más intuitiva. En cada paso, elige un vértice con grado de entrada cero (sin aristas entrantes), lo añade a la salida y lo "elimina" del grafo disminuyendo el grado de entrada de cada uno de sus sucesores. Cuando varios vértices tienen grado de entrada cero, el desempate puede utilizar un min-heap (dando el ordenamiento lexicográficamente más pequeño) o una cola FIFO (dando el orden de inserción). El algoritmo de Kahn se ejecuta en tiempo O(|V| + |E|) y funciona también como detector de ciclos: si algún vértice todavía tiene grado de entrada > 0 después de que la cola se vacíe, el grafo tiene un ciclo.

Algoritmo de Kahn (pseudocódigo)
Kahn(G):
  Q ← { v ∈ V : indeg(v) = 0 }
  L ← [ ]
  mientras Q no esté vacía:
    u ← Q.pop()
    L.append(u)
    para cada arista u → v:
      indeg(v) -= 1
      si indeg(v) = 0: Q.push(v)
  si |L| < |V|: informar ciclo
  sino: devolver L

DFS post-orden (Tarjan, 1976)

El algoritmo DFS ejecuta una búsqueda en profundidad y, cada vez que un vértice termina (es decir, todos sus sucesores han sido explorados por completo), se coloca en una pila. Invertir la pila al final produce un orden topológico válido. La detección de ciclos es natural: encontrar un vértice que todavía está en progreso (marcado como GRIS) significa que se ha encontrado una arista hacia atrás, por lo que el grafo no es un DAG. El DFS post-orden también se ejecuta en tiempo O(|V| + |E|).

DFS post-orden (pseudocódigo)
DFS-Topo(G):
  para cada vértice u en V: color[u] ← BLANCO
  L ← pila vacía
  para cada vértice u en V:
    si color[u] = BLANCO: visitar(u)
  devolver reverse(L)

visitar(u):
  color[u] ← GRIS
  para cada arista u → v:
    si color[v] = GRIS: informar ciclo
    si color[v] = BLANCO: visitar(v)
  color[u] ← NEGRO; L.push(u)

Capas de ejecución paralela

Una vista estratificada de un DAG divide sus vértices en niveles de modo que cada arista vaya de un nivel con número menor a uno con número mayor. Los vértices de la misma capa son independientes entre sí, por lo que pueden ejecutarse en paralelo. El número de capas es igual a la longitud de la ruta más larga más uno; esta es la ruta crítica del DAG, el número mínimo de rondas secuenciales necesarias para terminar todas las tareas incluso con paralelismo ilimitado. Esta calculadora produce la vista de capas automáticamente siempre que la entrada sea un DAG.

Detección de ciclos

Si el grafo contiene un ciclo dirigido, no es posible realizar una ordenación topológica. Nuestra calculadora informa la ruta exacta del ciclo (por ejemplo, A → B → C → A) y resalta las aristas del ciclo en rojo en la visualización. Eliminar cualquier arista del ciclo es suficiente para restaurar la aciclicidad.

Formatos de entrada

Lista de aristas

Escriba cada arista dirigida como origen -> destino, separada por comas o saltos de línea. Variantes de flecha aceptadas: ->, , =>, -->, :. También puede encadenar aristas: A -> B -> C es una forma abreviada de A->B y B->C. Las etiquetas de los vértices pueden ser letras, dígitos, guiones bajos, guiones y puntos.

A -> B, B -> C, A -> C
C -> D
Camisa -> Corbata -> Chaqueta

Lista de adyacencia

Escriba cada vértice, dos puntos y sus sucesores directos (vértices a los que apunta). Un vértice sin sucesores sigue necesitando su línea, como D:.

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

Cómo usar esta calculadora

  1. Elija un formato: Alterne entre lista de aristas y lista de adyacencia con los botones de opción.
  2. Ingrese el grafo: Pegue sus datos o haga clic en uno de los ejemplos rápidos (orden de vestimenta, prerrequisitos de cursos, objetivos de compilación, un grafo con un ciclo y más).
  3. Elija un algoritmo: Kahn lexicográfico para un orden único y reproducible; orden de inserción para preservar el orden de entrada; DFS post-orden para el método clásico de búsqueda en profundidad; o Mostrar todo para ver cada ordenamiento uno al lado del otro.
  4. Haga clic en "Ordenar Topológicamente": El ordenamiento, la detección de ciclos, la vista de capas, la longitud de la ruta crítica, el número total de ordenamientos válidos y un grafo interactivo aparecerán debajo.
  5. Explore: Presione Reproducir para ver cómo se emite cada vértice paso a paso. Las insignias de grado de entrada se actualizan en vivo. Arrastre cualquier nodo para reorganizar el diseño.

Aplicaciones en el mundo real

Sistemas de compilación y compiladores

Herramientas como make, Bazel, Gradle y npm ordenan topológicamente sus objetivos de compilación para que cada objetivo se compile solo después de todas sus dependencias. Un ciclo en el grafo de dependencias generalmente se informa como un error fatal: el sistema de compilación no puede decidir por dónde empezar.

Programación de tareas

Los gestores de proyectos utilizan DAGs para capturar las dependencias de las tareas. La ordenación topológica proporciona un orden de ejecución válido y la vista de capas indica el número mínimo de rondas bajo paralelismo ilimitado. La cadena más larga es la ruta crítica que determina la duración del proyecto.

Planificación de prerrequisitos de cursos

Un catálogo de cursos universitarios es un DAG: las aristas son relaciones de prerrequisitos. Un orden topológico es un plan de estudios válido y las capas indican a los estudiantes qué conjuntos de cursos pueden tomar en paralelo durante cada semestre.

Recálculo de hojas de cálculo

Cuando una celda cambia, una hoja de cálculo debe volver a calcular cada celda dependiente en el orden de dependencia, lo que supone una ordenación topológica del DAG de dependencia de celdas. La aplicación rechaza las referencias circulares (ciclos).

Gestores de paquetes y cargadores de complementos

Apt, pip, Homebrew, Maven y un sinfín de marcos de complementos (plugins) resuelven el orden de instalación o carga mediante la ordenación topológica de sus DAGs de dependencia.

Resolución de símbolos y programación de instrucciones

Los compiladores utilizan la ordenación topológica para ordenar las declaraciones y las CPUs utilizan DAGs de dependencia de datos para programar las instrucciones en el búfer de reordenamiento sin violar los riesgos de datos.

Contar ordenamientos topológicos

Para un DAG con n vértices, el número de ordenamientos topológicos válidos distintos puede variar desde 1 (para una cadena totalmente ordenada) hasta n! (para el grafo sin aristas). El cálculo del recuento exacto es #P-completo en general, pero para grafos de hasta 16 vértices, esta calculadora los enumera utilizando una formulación de programación dinámica con máscara de bits: f(S) = Σ f(S ∪ {v}) sobre todos los v ∉ S cuyos predecesores están todos en S.

Complejidad y rendimiento

Preguntas frecuentes

¿Qué es una ordenación topológica?

Una ordenación topológica de un grafo acíclico dirigido es un ordenamiento lineal de sus vértices tal que cada arista dirigida de u a v coloca a u antes que v. Representa un orden válido en el que procesar tareas respetando sus dependencias.

¿Qué algoritmo utiliza esta calculadora?

La calculadora ejecuta tanto el algoritmo de Kahn como el DFS post-orden. El algoritmo de Kahn elimina repetidamente un vértice con grado de entrada cero y disminuye los grados de entrada de sus sucesores. El DFS post-orden ejecuta una búsqueda en profundidad e invierte el orden de finalización. Ambos se ejecutan en tiempo O(|V| + |E|).

¿Qué pasa si mi grafo tiene un ciclo?

Un grafo con un ciclo dirigido no tiene ordenación topológica. La calculadora detecta el ciclo, lo resalta en rojo en la visualización e informa la ruta exacta del ciclo para que pueda ver qué aristas eliminar para convertir el grafo en un DAG.

¿Cuál es el orden topológico lexicográficamente más pequeño?

Cuando hay muchos ordenamientos topológicos válidos, el lexicográficamente más pequeño se obtiene eligiendo siempre el vértice alfabéticamente menor cuyo grado de entrada es cero en cada paso. El modo predeterminado de Kahn de esta calculadora devuelve este ordenamiento único, que es estable y fácil de reproducir.

¿Qué es la vista de capa o nivel?

La vista de capas agrupa los vértices según la longitud de la ruta más larga desde cualquier origen. Los vértices en la misma capa no tienen dependencia entre sí, por lo que pueden ejecutarse en paralelo. El número de capas es igual a la cadena de dependencia más larga más uno y representa el número mínimo de rondas paralelas necesarias para terminar todas las tareas.

¿Puede un grafo tener muchos ordenamientos topológicos válidos?

Sí. Si en cualquier paso el algoritmo de Kahn tiene múltiples vértices con grado de entrada cero, cualquiera de ellos puede ser elegido a continuación. Esta calculadora cuenta el número exacto de ordenamientos topológicos distintos para grafos de hasta 16 vértices.

¿Cuál es la diferencia entre el algoritmo de Kahn y el DFS post-orden?

Kahn funciona de arriba hacia abajo: elige repetidamente fuentes (grado de entrada 0) y las emite primero. El DFS post-orden funciona de abajo hacia arriba: termina primero los sumideros y los antepone al orden. Ambos son O(|V| + |E|) y producen ordenamientos topológicos válidos, pero normalmente diferentes. Kahn es más fácil de paralelizar y de adaptar para el ordenamiento lexicográfico; DFS es más fácil de combinar con otros análisis basados en DFS, como los componentes fuertemente conectados.

¿Cuál es el tamaño máximo de grafo que admite esta herramienta?

La calculadora admite hasta 80 vértices y 800 aristas. El conteo del número total de ordenamientos topológicos válidos está limitado a 16 vértices porque el problema es #P-completo y el espacio de estados crece como 2ⁿ. La visualización interactiva y la animación del algoritmo escalan sin problemas hasta el tamaño máximo.

Lecturas adicionales

Cite este contenido, página o herramienta como:

"Calculadora de Ordenación Topológica" en https://MiniWebtool.com/es// de MiniWebtool, https://MiniWebtool.com/

por el equipo de miniwebtool. Actualizado: 20 de abril de 2026

También puede probar nuestro Solucionador de Matemáticas AI GPT para resolver sus problemas matemáticos mediante preguntas y respuestas en lenguaje natural.

Herramientas destacadas:

Calculadora de Signo Solar, Lunar y Ascendente 🌞🌙✨Calculadora de día del año - ¿Qué día del año es hoy?📅 Calculadora de FechaGenerador de IMEI AleatorioCalculadora de Compatibilidad AmorosaSelector de Nombre AleatorioConvertidor de Pies y Pulgadas a CentímetrosConvertidor de cm a pies y pulgadasCalendario del Día del AñoCalculadora de Número del NombreExtractor de Imágenes de VideoConvertidor de kPa a psibúsqueda-de-direcciones-MACCalculadora de Promedio - Alta Precisióncalculadora-de-hba1cCalculadora de SumaCalculadora de Duración de TiempoCalculadora de CombinaciónCalculadora de Desviación Estándar RelativaEliminar acentos del textoCalculadora de MóduloCalculadora Hexadecimalconvertidor ppm a porcentajeCalculadora de NumerologíaGenerador Aleatorio de ListasConvertidor de Porcentaje a PPMSelector de Películas AleatorioGenerador de Código MorseCalculadora BinariaCalculadora OctalGenerador de Palabras DesordenadasEliminar espaciosGenerador de cartones de bingoGenerador de Nombres Aleatorios📅 Calculadora de Diferencia entre FechasConvertidor de Decimal a TiempoBúsqueda de ID de usuario de FacebookConvertidor de FPSSelector AleatorioBúsqueda de ID de Usuario de InstagramCalculadora de Aumento PorcentualCalculadora de Número MaestroCalculadora del Signo de VenusCalculadora CPMConvertidor de dirección IP a binarioGenerador de Superpoder AleatorioBola Mágica 8Convertidor de Número a PalabraGenerador de sopa de letrasContador de líneasPrimeros n Dígitos de Pi¿Cuál es mi número de la suerte?Ordenar NúmerosCalculadora de cociente y residuoCreador de CrucigramasConvertidor de números romanosGenerador de Cumpleaños AleatorioLanzador de MonedasCalculadora de PermutaciónCalculadora de Distribución NormalGenerador de números de loteríaCalculadora de pendiente y gradoConvertidor de fracción a número mixtoCalculadora de Error PorcentualConvertidor de Notación Científica a DecimalCalcular tiempo entre dos fechasCalculadora de reducción porcentualCalculadora de Retorno de SaturnoCalculadora de Coeficiente de VariaciónConvertidor de Decimal a BCDCalculadora de Percentil de EstaturaCalculadora del Signo de Marte¿Cuál es mi signo del zodiaco?Divisor de AudioConvertidor hexadecimal a binarioVerificador de Nombre de Usuario en Redes SocialesGraficador de FuncionesCreador de Diagramas de Caja y BigotesDivisor de imágenesCalculadora de Descuento PorcentualConvertidor de Tiempo a DecimalCalculadora de media, mediana y modaCalculadora de la Conjetura de CollatzGenerador de LaberintosConvertidor de BaseAnalizador Avanzado de Compatibilidad ZodiacalCalculadora de Cambio PorcentualCalculadora de RedondeoConversor de HTML a TextoConvertidor Decimal a HexadecimalConvertidor de decimal a notación científicaCalculadora de Mínimo Común MúltiploDecodificador de Código MorseCalculadora de Log Base 10Formateador de TextoConvertidor octal a binarioCalculadora de Promedio de BateoSolucionador de InecuacionesDescargador de Miniaturas de YouTubeGenerador de Unir los PuntosCalculadora de Matriz de AdyacenciaCalculadora de Ordenación TopológicaCalculadora de Coloración de GrafosSimulador de Puertas LógicasSolucionador de Mapa de Karnaugh (K-Map)Simplificador de Álgebra BooleanaCalculadora de Función de ParticiónCalculadora de Raíz DigitalVerificador de Número de FibonacciCalculadora de Fracciones EgipciasCalculadora de Función de MöbiusVerificador de la Conjetura de GoldbachVerificador de Primo de MersenneBuscador de Primos GemelosVerificador de Números AmigosVerificador de Números PerfectosCalculadora de Exponenciación ModularCalculadora de Permutaciones con RepeticiónCalculadora de Tamaño del EfectoCalculadora de Riesgo RelativoCalculadora de Razón de MomiosCalculadora de Tabla de ContingenciaCalculadora de la Prueba Exacta de FisherCalculadora de Correlación de Rangos de SpearmanCalculadora de Distribución BetaCalculadora de Distribución de WeibullCalculadora de Distribución ExponencialCalculadora de Distribución GeométricaCalculadora de Distribución Binomial NegativaCalculadora de Distribución HipergeométricaCalculadora de Prueba F y Distribución FCalculadora del Teorema de BayesCalculadora de Polinomio CaracterísticoCalculadora de Potencia de MatrizCalculadora de Descomposición de CholeskyCalculadora de Descomposición QRCalculadora de Diagonalización de MatricesCalculadora de la Regla de CramerCalculadora de Espacio ColumnaCalculadora de Espacio NuloCalculadora del Ángulo entre VectoresCalculadora de Vector UnitarioCalculadora de Magnitud de VectorCalculadora de Producto VectorialCalculadora de Producto EscalarCalculadora de Multiplicación de MatricesCalculadora de Matriz InversaCalculadora RREF (Forma Escalonada Reducida por Filas)Calculadora del Método de NewtonCalculadora de Matriz JacobianaCalculadora de Integral de SuperficieCalculadora de Integral de LíneaCalculadora de RotacionalCalculadora de DivergenciaCalculadora de Gradiente MultivariableCalculadora de Optimización (Cálculo)Solucionador de Tasas RelacionadasCalculadora de Tasa de Cambio InstantáneaCalculadora de Tasa de Cambio PromedioCalculadora de Suma de Series InfinitasCalculadora de Prueba de Convergencia de SeriesCalculadora de Series de PotenciasCalculadora de Series de MaclaurinCalculadora de la Regla de L'HôpitalCalculadora de Integral ImpropiaCalculadora de la Regla de SimpsonCalculadora de la Regla del TrapecioCalculadora de Suma de RiemannGraficador de Curvas ParamétricasCalculadora de Superficie de RevoluciónCalculadora de Volumen de RevoluciónCalculadora de Distancia de Geometría CoordenadaCalculadora de la Fórmula de HerónCalculadora de Línea Tangente al CírculoCalculadora de Bisectriz del ÁnguloCalculadora de Círculo Inscrito (Incirculo)Calculadora de Círculo Circunscrito (Circuncentro)Calculadora de Distancia del Círculo MáximoCalculadora de Distancia 3DCalculadora de ToroCalculadora de Tronco de ConoCalculadora de Área de Polígono IrregularCalculadora de Polígono RegularIdentificador de Sección CónicaCalculadora de HipérbolaCalculadora de ParábolaCalculadora de Expansión del Teorema BinomialGenerador del Triángulo de PascalCalculadora de Notación de Producto (Notación Pi)Calculadora de Notación Sigma (Sumatoria)Calculadora del Teorema de la Raíz RacionalCalculadora de la Regla de los Signos de DescartesCalculadora de Líneas Paralelas y PerpendicularesCalculadora de Ecuación de la RectaConvertidor de Forma Estándar a Pendiente-OrdenadaCalculadora de Forma Punto-PendienteResolvedor de Sistema de Ecuaciones No LinealesSolucionador de Ecuaciones RacionalesResolvedor de Ecuaciones LiteralesSolucionador de Ecuaciones TrigonométricasResolvedor de Ecuaciones ExponencialesSolucionador de Ecuaciones LogarítmicasCalculadora de Ecuación CuárticaCalculadora de Ecuación CúbicaCalculadora de EstimaciónConvertidor de Número a FracciónGenerador de Conteo SalteadoCalculadora de Precio UnitarioCalculadora de Techo y PisoCalculadora de Valor AbsolutoBuscador de Patrones NuméricosGenerador de Tabla de Valor PosicionalCalculadora de Orden de Operaciones (PEMDAS)Calculadora de Suma y Resta LargaCalculadora de Multiplicación LargaGenerador de Tablas de Multiplicar🎮 Conversor de Moneda de Juego🎲 Calculadora de Probabilidad de Loot🎰 Calculadora de Pity Gacha⚔️ Calculadora de DPS🎮 Convertidor de Sensibilidad de Juegos❄️ Calculadora de Día de Nieve🚚 Estimador de Costos de Mudanza🔍 Verificador de Plagio📷 OCR / Imagen a Texto📈 Creador de Gráficos de Líneas🥧 Creador de Gráfico Circular📊 Creador de Gráficos de Barras🔊 Generador de Tonos🖱️ Contador de ClicsBloc de Notas en Línea⬛ Calculadora de Relación de Aspecto🌍 Calculadora de Huella de Carbono👙 Calculadora de Talla de SujetadorCalculadora de Tamaño de NeumáticosCalculadora de Costo de Combustible💧 Calculadora de Punto de Rocío🌡️ Calculadora de Índice de Calor🌬️ Calculadora de Sensación Térmica por Viento⏰ Despertador en Línea⏰ Calculadora de Tarjeta de Tiempo🕐 Conversor de Hora Militar⏱️ Calculadora de Horas⏱️ Cronómetro en Línea⏱️ Temporizador de Cuenta Regresiva🌐 Convertidor de Zona HorariaCalculadora de AlfombrasCalculadora de Muro de ContenciónCalculadora de Dimensionamiento HVACCalculadora de AislamientoCalculadora de AdoquinesCalculadora de VarillaCalculadora de MaderaCalculadora de Pies CuadradosCalculadora de Multiplicación CruzadaCalculadora de Resumen de Cinco NúmerosCalculadora de PercentilCalculadora de Valor pCalculadora de ProporcionesCalculadora de Completar el CuadradoCalculadora de División LargaCalculadora CientíficaTemporizador de Estudio PomodoroCalculadora de Cifras SignificativasCalculadora de Calificaciones de ExamenCalculadora de Calificaciones PonderadasCalculadora de Nota FinalCalculadora de CalificacionesCalculadora de Frecuencia de ResonanciaCalculadora de ImpedanciaCalculadora de Decibelios (dB)Calculadora de Factor de PotenciaCalculadora de constante de tiempo RCCalculadora de TransformadoresCalculadora de Calibre de CableCalculadora de Temporizador 555Calculadora de CondensadorCalculadora de Resistencias en ParaleloCalculadora de Divisor de VoltajeCalculadora de Resistencia para LEDConvertidor de Mol/Gramo/PartículaCalculadora de TitulaciónCalculadora de Punto de EbulliciónCalculadora de Fórmula EmpíricaCalculadora de Rendimiento PorcentualCalculadora de EstequiometríaBalanceador de Ecuaciones QuímicasCalculadora de DiluciónCalculadora de Caballos de FuerzaCalculadora de TorqueCalculadora de Caída LibreCalculadora de la Ley de los Gases IdealesCalculadora de PresiónCalculadora de DensidadCalculadora de Trabajo y PotenciaCalculadora de Energía PotencialCalculadora de Energía CinéticaCalculadora de Movimiento de ProyectilCalculadora de MomentoCalculadora de VelocidadCalculadora de AceleraciónCalculadora de FuerzaCalculadora de ROI de InfluencersCalculadora de ROASCalculadora de CTROptimizador de Horarios de Publicación en Redes SocialesCalculadora de ROI de Redes SocialesCalculadora de Costos de Anuncios de FacebookCalculadora de Monetización de YouTube ShortsCalculadora de Ganancias de TwitchCalculadora de Tiempo de Reproducción de YouTubeConversor de Marca de Tiempo de Twitter/XEstadísticas del Canal de YouTubeCalculadora de Dinero de TikTokGuía de Tamaños de Imagen para Redes SocialesGenerador de Fuentes para InstagramContador de Caracteres Twitter/XSelector de Comentarios de YouTubeExtractor de Etiquetas de YouTubeEstimador de Ganancias de YouTubeGenerador de personaje RPG aleatorio