0 évaluation0% ont trouvé ce document utile (0 vote)
380 vues3 pages
El documento describe el algoritmo de ordenamiento topológico para grafos dirigidos acíclicos (DAG). El algoritmo ordena los vértices de tal forma que cada vértice aparezca antes que los vértices a los que apunta. Esto se logra eliminando iterativamente los vértices sin aristas entrantes y agregándolos a una cola hasta que no queden más vértices en el grafo.
El documento describe el algoritmo de ordenamiento topológico para grafos dirigidos acíclicos (DAG). El algoritmo ordena los vértices de tal forma que cada vértice aparezca antes que los vértices a los que apunta. Esto se logra eliminando iterativamente los vértices sin aristas entrantes y agregándolos a una cola hasta que no queden más vértices en el grafo.
El documento describe el algoritmo de ordenamiento topológico para grafos dirigidos acíclicos (DAG). El algoritmo ordena los vértices de tal forma que cada vértice aparezca antes que los vértices a los que apunta. Esto se logra eliminando iterativamente los vértices sin aristas entrantes y agregándolos a una cola hasta que no queden más vértices en el grafo.
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" ALGEBRA UNIVERSAL
Este procedimiento se hace para todas las dems aristas 3. 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:
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
2 1 3 4 5 ALGEBRA UNIVERSAL
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
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
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 1 cola 1 3 cola 1 3 2 cola 1 3 2 4 5 2 3 4 5 2 4 5 4 5