Simplifique su flujo de trabajo: Busque miniwebtool.
Añadir
Herramientas relacionadas
Calculadora de Matriz de AdyacenciaCalculadora de Camino más Corto de DijkstraCalculadora de Coloración de GrafosValidador de secuencia de grados de grafoVerificador de Camino HamiltonianoCalculadora de Árbol de Expansión MínimoCalculadora de Flujo de Red (Flujo Máximo)Verificador de Grafo PlanarSolucionador del Problema del Matrimonio EstableCalculadora de Números de Stirling
Página de inicio > Matemáticas > Operaciones matemáticas avanzadas > 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/calculadora-de-ordenacion-topologica/ 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.

Operaciones matemáticas avanzadas:

Herramientas destacadas:

Calculadora de Signo Solar, Lunar y Ascendente 🌞🌙✨Calculadora de día del año - ¿Qué día del año es hoy?Generador de IMEI Aleatorio📅 Calculadora de FechaCalculadora de Compatibilidad AmorosaCalculadora del Signo de VenusEliminar acentos del textoConvertidor de cm a pies y pulgadasConvertidor de Pies y Pulgadas a CentímetrosSelector de Películas AleatorioSelector de Nombre AleatorioCalendario del Día del AñoBúsqueda de ID de Usuario de InstagramConvertidor de kPa a psi📅 Calculadora de Diferencia entre FechasBúsqueda de ID de usuario de FacebookCalculadora de Número del Nombrecalculadora-de-hba1cCalculadora de Desviación Estándar RelativaCalculadora de NumerologíaCalculadora de SumaCalculadora de Número MaestroCalculadora de Duración de TiempoDescargador de Miniaturas de YouTubeExtractor de Imágenes de Videobúsqueda-de-direcciones-MACBola Mágica 8Eliminar espaciosSelector AleatorioGenerador de Cartas de Baraja Aleatorioconvertidor ppm a porcentajeConvertidor de Porcentaje a PPMCalculadora HexadecimalGenerador de Código MorseCalculadora de Promedio - Alta PrecisiónConvertidor de psi a kPaOrdenar Números¿Cuál es mi signo del zodiaco?Generador de Palabras DesordenadasCalculadora de CombinaciónDivisor de AudioCalculadora CPMDivisor de imágenesCalculadora de CírculosCalcular tiempo entre dos fechasConvertidor de Decimal a TiempoCalculadora de reducción porcentual¿Cuál es mi número de la suerte?🖱️ Contador de ClicsConvertidor de Tiempo a Decimal🌐 Convertidor de Zona HorariaGenerador de Superpoder AleatorioGenerador Aleatorio de ListasCalculadora de Número del AlmaCalculadora de Coeficiente de VariaciónCalculadora de Aumento PorcentualCalculadora del Signo de MarteCalculadora de cociente y residuoCalculadora de Área de Polígono IrregularGenerador de números de loteríaCalculadora de pendiente y gradoContador de líneasCalculadora de Número de DestinoCalculadora de notación científicaCalculadora de Edad GestacionalCalculadora de Percentil de EstaturaConvertidor de FPSCalculadora de Posición del SolConvertidor de Tamaño de ArchivoEstadísticas del Canal de YouTubeLanzador de MonedasGenerador de Verdad o Reto AleatorioCalculadora de Promedio de BateoDivisor de videoGenerador de Plantilla de Cono DesarrolladoPrimeros n Dígitos de PiCalculadora de Retorno de SaturnoGenerador de Nombres AleatoriosGenerador de Números Decimales AleatoriosGenerador de Cumpleaños AleatorioCalculadora de Error PorcentualCalculadora de PermutaciónVerificador de Nombre de Usuario en Redes SocialesCalculadora del día de la semana de nacimientoGenerador de Fechas AleatoriasFormateador de TextoGenerador de LaberintosCalculadora de Duración de BateríaCalculadora de MóduloConvertidor de fracción a número mixtoCalculadora de Log Base 10Calculadora OctalCalculadora de media aritméticaCalculadora de Número de Trayecto de VidaGenerador de sopa de letrasCalculadora de Grupo SanguíneoConvertidor de Decimal a BCDConvertidor de Número a PalabraLista de Años BisiestosCalculadora de ERAGenerador de Dirección IP AleatoriaCalculadora de Compatibilidad de Signos LunaresConversor de Calendario HebreoCalendario de Mercurio RetrógradoCalculadora de Ganancias de TwitchGenerador de Hash SHA256Validador XMLGenerador de Texto Pequeño ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾Calculadora de ProporcionesGenerador de Versículos Bíblicos AleatoriosRotar VideoCalculadora de Cambio PorcentualGenerador de cartones de bingoGenerador de ContraseñaCalculadora de Número de SemanaConvertidor de Lista de Texto a SQLGenerador de PIN AleatorioCalculadora de números de ángelesGenerador de hora aleatoriaCalculadora de EscaleraConversor de HTML a TextoCalculadora de edadCalculadora de Monetización de YouTube ShortsGenerador de Texto InvisibleEliminar saltos de líneaExtractor de AudioCalculadora de número de dígitosVerificador de Número Par o ImparCalculadora de SenoCalculadora de RedondeoCalculadora del signo de mercurioCalculadora de Log (Logaritmo)Graficador de funciones trigonométricasConvertidor octal a binarioGenerador de direcciones MACDecodificador de Código MorseGenerador de anagramasConvertidor de Notación Científica a DecimalFusionar vídeosAnalizador Avanzado de Compatibilidad ZodiacalCalculadora de Consumo de AguaGenerador de Coordenadas AleatoriasCalculadora de Porcentaje de AsistenciaCalculadora de media, mediana y modaConvertidor de dirección IP a binarioGenerador aleatorio de animalesGraficador de FuncionesGenerador de Números Enteros AleatoriosAnalizador de Direcciones MACCalculadora de Horas de TrabajoConvertidor de CMYK a hexadecimalConvertidor de tazas a gramosCalculadora de Tasa de Interés EfectivoConvertidor de Número a FracciónCalculadora de Tamaño de TVCalculadora de Tipo CorporalConvertidor Decimal a OctalGenerador de cadenas aleatoriasGenerador de Tarjeta de Crédito AleatorioCalculadora de Proporción ÁureaConvertidor hexadecimal a binarioGenerador de letras aleatoriasGraficador de Campo de Direcciones e InclinacionesCalculadora de Dinero de TikTokConvertidor de dirección IP a hexadecimalGenerador de CriptogramaHerramienta en línea para eliminar puntuaciónCalculadora de Flujo en TuberíasCalculadora de Prueba tconvertidor de palabras a números de teléfonoConvertidor de VTT a TXTGenerador de País AleatorioCalculadora de ComisionesCalculadora de Rectángulo ÁureoCalculadora de TechadoGenerador de ítems aleatoriosRepetición de TextoCalculadora de CosenoCalculadora de Diferencia de ListasConvertidor de Porcentaje a DecimalGenerador de Números AleatoriosSolucionador de InecuacionesCalculadora de la Ecuación de BernoulliConvertidor Binario a Código GrisCreador de CrucigramasExtractor de URLGenerador Aleatorio de Nombres en LíneaGenerador y Verificador de Hash BcryptEliminador de Caracteres InvisiblesCalculadora de la Ley de SnellGenerador de Unir los PuntosSimulador de Puertas LógicasCalculadora de Período de RecuperaciónContar el número de caracteresConvertidor de números romanosGenerador de acordes aleatoriosCalculadora Binaria🎰 Calculadora de Pity GachaGenerador de Killer SudokuCalculadora de Hace Cuánto TiempoCalculadora de Puntuación ACFTCalculadora de Wilks y DOTSCalculadora de Offset de LlantasBuscador de Índice de Carga y Código de Velocidad de NeumáticosCalculadora de Costo por MillaCalculadora de Compra de LeasingCalculadora de Mezcla de OctanajeCalculadora de Mezcla de Aceite 2 TiemposCalculadora de Cilindrada del MotorCalculadora de Sofá en la PuertaCalculadora de Cuerdas de LeñaCalculadora de CADR de Purificador de AireCalculadora de Tamaño de DeshumidificadorCalculadora de Tamaño de Ventilador de TechoCalculadora de Tamaño de CortinasCalculadora de Tamaño de AlfombraCalculadora de Altura para Colgar CuadrosCalculadora de Altura de Montaje de TVCalculadora de Volumen y Lámina de EstanqueCalculadora de Sal para PiscinaCalculadora de Volumen de PiscinaCalculadora de Tamaño de Calentador de AguaCalculadora de Resina EpoxiCalculadora de Espaciado de BalaustresCalculadora de Zócalos y MoldurasCalculadora de RevestimientoCalculadora de Tinte para TerrazasCalculadora de Semillas de CéspedCalculadora de CéspedCalculadora de AsfaltoCalculadora de Yardas CúbicasCalculadora de Longitud de AntenaCalculadora de Llenado de ConductoCalculadora de Condensadores en Serie y ParaleloCalculadora de Reactancia InductivaCalculadora de Iluminación de HabitacionesCalculadora de Lux a LúmenesConversor de Lúmenes a VatiosCalculadora de Tamaño de GeneradorConversor de mAh a WhCalculadora de Potencia TrifásicaCalculadora de kVACalculadora de Amperios a VatiosCalculadora de Vatios a AmperiosCalculadora de Resistencias en SerieCalculadora de FricciónCalculadora de Plano InclinadoCalculadora de Ventaja MecánicaCalculadora de Velocidad del SonidoCalculadora de Velocidad de OndaCalculadora de flotabilidadCalculadora de Velocidad TerminalCalculadora de Longitud de Onda de de BroglieCalculadora de Energía del FotónCalculadora E=mc²Calculadora de Dilatación del TiempoCalculadora de la Tercera Ley de KeplerCalculadora de Velocidad de EscapeCalculadora de Fuerza GravitacionalCalculadora de la Ley de Beer-LambertCalculadora de la Ecuación de NernstCalculadora de Presión OsmóticaCalculadora de Elevación del Punto de EbulliciónCalculadora de Descenso del Punto de CongelaciónCalculadora de Composición PorcentualCalculadora de NormalidadCalculadora de MolalidadConversor de pKa a KaCalculadora de Henderson-HasselbalchCalculadora de Rendimiento TeóricoCalculadora de Reactivo LimitanteCalculadora de Configuración ElectrónicaTabla Periódica InteractivaGenerador de Planes de Lecciones con IAGenerador de Cuestionarios con IAGenerador de Citas APA MLA ChicagoCalculadora de Puntuación APCalculadora de Puntuación ACTCalculadora de Puntuación del SATConversor de Porcentaje a CGPAConversor de CGPA a PorcentajeCalificador Fácil (EZ Grader)Calculadora del Costo de Criar un HijoCalculadora de Consumo de Leche para BebésCalculadora de Talla de PañalesGenerador de Nombres de BebéPredictor del Color de Ojos del BebéCalculadora de Percentil de IMC InfantilPredictor de Altura InfantilCalculadora de Tiempo de Duplicación de hCGCalculadora de Fecha de Parto FIVCalculadora de ImplantaciónPredictor de Sexo ChinoFormateador de Fechas ISO 8601Conversor de Fecha JulianaCalculadora de SiestaCalculadora de fases lunaresCalculadora de amanecer y atardecerWorld ClockConvertidor de Fechas a Números RomanosCuenta Regresiva para la JubilaciónCalculadora de SobriedadCalculadora de Medio CumpleañosCalculadora de AniversarioCalculadora de Reparto de PropinasCalculadora de ROI de Email MarketingCalculadora de Costo por LeadCalculadora de Capital de TrabajoEstimador de Ganancias de YouTubeGenerador de personaje RPG aleatorio