algoritmo de ordenamiento topologico
TRANSCRIPT
ALGEBRA UNIVERSAL
ALGEBRA UNIVERSAL
ALGORITMO DE ORDENAMIENTO TOPOLOGICO
1. Concepto
Los dgrafos son usados generalmente en muchas aplicaciones para indicar la precedencia de eventos, el ordenamiento topolgico devuelve la posible secuencia valida en la deben realizarse dichos eventos
Un orden topolgico de un dgrafo G es un orden lineal de todos los vrtices, tales que si G contiene un arco (u, v) entonces u aparece antes de v en el ordenamiento
Grficamente se trata de poner todos los nodos en una lnea de manera que solo haya arcos hacia adelante
En otras palabras el objetivo del ordenamiento topolgico (topological sorting) es el de ser capaz de procesar los nodos de un dgrafo a cclico (DAG grafo directo aciclico) de tal forma de que cada nodo sea procesado antes que todos los nodos a los que apunta.
Una forma de encontrar un ordenamiento topolgico es examinando todos los nodos del dgrafo y aquellos nodos que no tengan aristas incidentes sobre ellos son eliminados del grafo e introducidos en una cola (o lista), se repite este proceso hasta que no queden nodos en el grafo
Hay dos maneras naturales de definir esta operacin bsica, aunque son esencialmente la misma:
Reetiquetado: dado un grafo directo aciclico, reetiquetar sus nodos de tal forma que cada arista dirigida vaya de un nodo con un identificador bajo en nmero a un nodo con un identificador cuyo identificador sea mayor
Reposicionado: dado un grafo directo aciclico, reposicionar sus nodos en una lnea horizontal de tal forma de que todas sus aristas dirigidas apunte de izquierda a derecha
Por lo general, se usa el trmino de ordenamiento topolgico para referirse a la versin de reposicionado
2. Implementacin
Calculamos el grado de entrada de cada vrtice
Cuando "borramos" una arista, lo que hacemos en realidad es restar una unidad al grado de entrada de los vrtices destino
Metemos en una cola todos los vrtices no procesados de grado de entrada cero
Sacamos los vrtices del dgrafo original y "borramos sus aristas"
Este procedimiento se hace para todas las dems aristas3. Algoritmo
L Lista vaca que contendr luego los elementos ordenados.S Conjunto de todos los nodos sin aristas entrantes.
MIENTRAS [S no es vaco]: n nodo extrado de S insertar n en L
PARA CADA [nodo m con arista e de n a m]: e arista extrada del grafo
SI [m no tiene ms aristas entrantes]: insertar m en S
SI [el grafo tiene ms aristas]: error: el grafo tiene al menos un ciclo
SINO: RETORNAR L
4. Ejemplo
Dado el siguiente dgrafo:
2
31
54
Se escoge un vrtice que no tenga lados incidentes (menor grado de entradas) y se coloca en una lista, en este caso escogemos el vrtice 1 y lo eliminamos del grafo. (al eliminar este vrtice, se eliminan todos los lados que salen del vrtice) y se va guardando ese valor en una cola
5432
cola
1
Del grafo resultante, se escoge un vrtice que no tenga lados incidentes en el, en este caso escogemos el vrtice 3, se quita del grafo y se coloca en la cola
542
cola
13
De nuevo se hace lo mismo con el grafo resultante, se escoge un vrtice que no tenga lados incidentes en el, se quita del grafo y se coloca en la cola, en este caso escogemos el vrtice 2
cola
132
45
Ahora solo quedan los vrtices 4 y 5 de los cuales se escoge el vrtice 4 ya que no tiene lados incidentes en l y se coloca en la cola y a continuacin el vrtice 5, finalmente el orden topolgico queda:
cola
13245