Cada gráfico tiene más de una secuencia de clasificación topológica porque depende del grano de los bordes de los nodos. El primer nodo inicial que elegimos con un número en grado de nodos es 0.
Comprendamos el algoritmo de clasificación topológica con un ejemplo.
Paso 1: Insertamos esos nodos cuyo recuento de borde entrante es igual a 0. Entonces, esos nodos son el nodo 1 y el nodo 4.
Paso 2:
a. Comenzamos con el nodo 1. Podemos elegir cualquier nodo entre el nodo 1 y el nodo 4.
b. Disminuimos cada borde del nodo en 1, que está conectado al nodo 1. Estamos disminuyendo el borde de los nodos (0, 2 y 3).
C. Movimos el nodo 1 de la lista a la lista ordenada topológicamente, como se muestra a continuación.
Paso 3:
a. Ahora procedemos de la lista, que es el nodo 4.
b. Disminuimos todos los bordes salientes de los nodos conectados al nodo 4, que son nodos (0 y 3).
C. Ahora, el nodo 3 no tiene bordes entrantes, por lo que lo empujamos a la lista, y el nodo 4 cambia a la lista topológicamente ordenada.
Etapa 4:
a. Ahora procedemos de la lista, que es el nodo 3.
b. Disminuimos todos los bordes salientes de los nodos conectados al nodo 3, que son nodos (0 y 2).
C. Ahora, los nodos 0 y el nodo 2 no tienen bordes entrantes, por lo que lo empujamos a la lista, y el nodo 3 cambia a la lista topológicamente ordenada.
Paso 5:
a. Ahora procedemos de la lista, que es el nodo 0.
b. Como no hay bordes salientes desde el nodo 0, simplemente los agregamos a la lista de clasificación topológica.
Paso 6:
a. Ahora procedemos de la lista, que es el nodo 2.
b. Como no hay bordes salientes desde el nodo 2, simplemente los agregamos a la lista de clasificación topológica.
Paso 7:
Finalmente, hemos ordenado la lista aquí.
Algoritmo de clasificación topológica
Los siguientes son los pasos para el algoritmo de clasificación topológica que tenemos que seguir.
Paso 0: Calcule el engráfico de cada nodo gráfico.
Paso 1: Primero tenemos que encontrar un nodo que tenga bordes entrantes de cero.
Paso 2: eliminamos ese nodo del gráfico y lo agregamos a la lista de órdenes de clasificación topológica.
Paso 3: retire los nodos que tienen bordes salientes.
Paso 4: Reduzca el grano por el número de bordes relacionados que se eliminaron.
Paso 5: Repita los pasos 1-4 hasta que no queden nodos con 0 en grados.
Paso 6: Verifique que todos los elementos estén en la secuencia correcta.
Paso 7: Ahora, hemos ordenado el pedido del paso 6.
Paso 8: Poner fin al algoritmo.
Código de Python: El siguiente es una implementación de Python del ejemplo anterior.
fromCollectionsImportDefaultdictProducción:
Orden de clasificación topológica: [0, 1, 3, 5, 6, 2, 4] |
Algoritmo de clasificación topológica Complejidad del tiempo:
El tiempo total para procesar el algoritmo es O (e + n), donde E representa el número de bordes y N representa el número de nodos en el gráfico. Luego, en el siguiente paso, debemos calcular el grado de cada nodo, que generalmente toma O (e) veces, y luego colocar todos esos nodos en una lista ordenada donde su grano es cero, lo que toma o (n) veces. Entonces, la complejidad del tiempo total del algoritmo de clasificación topológica es O (e+n).
Pero la complejidad espacial del algoritmo de clasificación topológica es O (n), que es el número total de nodos en el gráfico.
Solicitud :
1. La clasificación topológica es muy útil para encontrar el ciclo del gráfico.
2. El algoritmo de clasificación topológica se utiliza para determinar las condiciones de punto muerto en un sistema operativo.
3. El algoritmo de clasificación topológica se usa para encontrar la ruta más corta en un gráfico acíclico ponderado.
Conclusión:
Este artículo ha aprendido sobre un algoritmo más importante, la clasificación topológica. Hemos visto que este algoritmo solo funciona con gráficos acíclicos. El algoritmo de clasificación topológica también ayuda a determinar el orden de compilación de tareas. El algoritmo de clasificación topológica tiene muchas ventajas en tiempo real, como encontrar el camino más corto. Debido a que el tipo topológico es extremadamente útil, cada programador y estudiante debe comprender a fondo este algoritmo.