topological sort

52
Ordenamiento topológico Christian von Lücken [email protected] Original by Douglas Wilhelm Harder Translated by Christian von Lücken

Upload: hl451

Post on 19-Aug-2015

246 views

Category:

Documents


2 download

DESCRIPTION

Orden topologico apra grafos dirigidos

TRANSCRIPT

Ordenamiento topolgicoChristian von [email protected] by Douglas Wilhelm HarderTranslated by Christian von LckenOrdenamiento topolgicoTopological SortEn este tpico, discutiremos:la idea de ordenar elementos en un DAGun ejemplo de ordenamiento topolgicola implementacin utilizando una tabal de grados de entradaDirected acyclic graph (DAG)n gra!o directo sin ciclos"ueno para modelar procesos # estructuras $ue tienen un orden parcial:a > b y b > c a > c.%ero puede suceder $ue e&istan a # b tales $ue ni a > b ni b > c.%uede construirse un orden total (ya sea a > b o b > a para todo a = b) desde un orden parcial' Esto es lo $ue (ace el ordenamiento topolgico'TeoremaEn el D)S de un gra!o no dirigido, tenemos solo arcos tree # bac*' +o e&isten arcos forward o cross edges'Lemman gra!o dirigido G es aciclico si # solo si un D)S de G no produce bac* edges.Prueba : Si existe un back edge hay un ciclo.Suponga $ue e&iste un bac* edge (u, v). Entonces v es ancestro de u en un depht-frst forest.Entonces e&iste un camino , -. u, # entonces , -. u / , es un ciclo.Lemman gra!o dirigido G es aciclico si # solo si un D)S de G no produce bac* edges.: Si existe un back edge hay un ciclo.0: Si existe un ciclo 1 bac* edge'Sicontiene un cic!o c. Sea v e! pri"er v#rtice descubierto en c, y sea (u, v) un arco predecesor en c. En e! tie"po d$v%, !os vertices de c for"an un ca"ino b!anco de va u. &or e! teore"a de! ca"ino b!anco u es un descendiente de v en e! bos'ue depth-frst. &or tanto, (u, v) es un bac( edge. Topological sortUn ordenamiento topolgico de un DAG G = (V, E) es un ordenamiento lineal de todos sus vrtices tal que si G contiene un arco (u, v), entonces u aparece antes de v en el ordenamiento (Si el grao no es ac!clico, entonces no es posi"le un ordenamiento lineal) Un ordenamiento topolgico de un grafo puede verse como un ordenamiento de sus vrtices a lo largo de una linea hori!ontal tal "ue todos los arcos directos van desde la i!"uierda a la derecha#AlgoritmoOrdenamiento topolgico Dados dos vrtices vi $ vj en un DAG% como mucho puede e&istir solo'( un camino de vi a vj% o( un camino de vj a vi)ntonces% de*e ser posi*le listar todos los vrtices tal "ue en esa lista% vi precede a vj si e&iste un camino entre vi a vj+i esto no es posi*le% esto podr,a implicar la e&istencia de un cicloOrdenamiento topolgico)ste ordenamiento se llama ordenamiento topolgico-or e.emplo% en este DAG% un ordenamiento topolgico es /% 0% 1% 2% 3% 4% 5% 6% 7% /8% //% /0% /1Ordenamiento topolgicoUn ordenamiento topolgico puede no ser 9nico-or e.emplo% los siguientes ordenamientos(/% 1% 0% 5% 4% 3% 2% /8% 7% 6% /0% //% /1(/% 0% 2% 6% 3% 7% //% 1% 4% /8% 5% /0% /1AplicacinDado un n9mero de tareas% usualmente e&isten un n9mero de restricciones entre las tareas'(la tarea A de*e completarse antes de "ue la tarea : pueda empe!ar)stas tareas $ restricciones se pueden representar usando un DAGUn ordenamiento topolgico del grafo proporciona un orden en el cual se pueden e.ecutar las tareas satisfaciendo las restriccionesAplicaciones+ecuenciade cursos en un DAGAplicacionesUn DAG representandouna serie de taresLa numeracin indicael orden topolgicode la tareaLas flechas verdesrepresentan restricciones de precedencia;ef'