algoritmo de ordenamiento topologico

4
ALGEBRA UNIVERSAL ALGORITMO DE ORDENAMIENTO TOPOLOGICO 1. Concepto Los dígrafos son usados generalmente en muchas aplicaciones para indicar la precedencia de eventos, el ordenamiento topológico devuelve la posible secuencia valida en la deben realizarse dichos eventos Un orden topológico de un dígrafo G es un orden lineal de todos los vértices, tales que si G contiene un arco (u, v) entonces u aparece antes de v en el ordenamiento Gráficamente se trata de poner todos los nodos en una línea de manera que solo haya arcos hacia adelante En otras palabras el objetivo del ordenamiento topológico (topological sorting) es el de ser capaz de procesar los nodos de un dígrafo a cíclico (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 topológico es examinando todos los nodos del dígrafo 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 operación básica, 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 número a un nodo con un identificador cuyo identificador sea mayor Reposicionado: dado un grafo directo aciclico, reposicionar sus nodos en una línea horizontal de tal forma de que todas sus aristas dirigidas apunte de izquierda a derecha

Upload: fabio-gutierrez

Post on 24-Nov-2015

90 views

Category:

Documents


6 download

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