Articulo de referencia

Grafo acíclico dirigido

Ejemplo de un grafo dirigido acíclico En matemáticas , particularmente en teoría de grafos , y en informática , un grafo dirigido acíclico ( DAG ) es un grafo dirigido sin ciclo...

Este es un buen artículo. Haz clic aquí para obtener más información.

Ejemplo de un grafo dirigido acíclico

En matemáticas , particularmente en teoría de grafos , y en informática , un grafo dirigido acíclico ( DAG ) es un grafo dirigido sin ciclos dirigidos . Es decir, consta de vértices y aristas (también llamadas arcos ), donde cada arista va de un vértice a otro, de manera que seguir esas direcciones nunca formará un bucle cerrado. Un grafo dirigido es un DAG si y solo si puede ordenarse topológicamente , organizando los vértices en un orden lineal que sea consistente con todas las direcciones de las aristas. Los DAG tienen numerosas aplicaciones científicas y computacionales, que van desde la biología (evolución, árboles genealógicos, epidemiología) hasta la ciencia de la información ( redes de citas ) y la computación ( planificación ).

Los grafos dirigidos acíclicos también se denominan grafos dirigidos acíclicos [ 1 ] o digrafos acíclicos . [ 2 ]

Definiciones

Un grafo está formado por vértices y por aristas que conectan pares de vértices, donde los vértices pueden ser cualquier tipo de objeto conectado de dos en dos por aristas. En el caso de un grafo dirigido , cada arista tiene una orientación, de un vértice a otro. Un recorrido en un grafo dirigido es una secuencia (finita o infinita) de vértices.(v1,v2,){\displaystyle (v_{1},v_{2},\dotsc )}de vértices de tal manera que cada par consecutivo(vi,vi+1){\displaystyle (v_{i},v_{i+1})}está conectado por una arista dirigida. Un camino es un recorrido donde todos los vértices son distintos. Un ciclo es un recorrido.(v1,v2,,vnorte){\ Displaystyle (v_ {1}, v_ {2}, \ dotsc, v_ {n})}donde el único vértice repetido esvnorte=v1{\displaystyle v_{n}=v_{1}}, lo que significa que el último vértice es igual al primer vértice. Un grafo dirigido acíclico es un grafo dirigido que no tiene ciclos. [ 1 ] [ 2 ] [ 3 ]

Propiedades matemáticas

Relación de alcanzabilidad, cierre transitivo y reducción transitiva

Un DAG
Su reducción transitiva

La relación de alcanzabilidad de un DAG se puede formalizar como un orden parcial en los vértices del DAG. En este orden parcial, dos vértices u y v se ordenan como uv exactamente cuando existe un camino dirigido de u a v en el DAG; es decir, cuando u puede alcanzar a v (o v es alcanzable desde u ). [ 4 ] Sin embargo, diferentes DAG pueden dar lugar a la misma relación de alcanzabilidad y al mismo orden parcial. [ 5 ] Por ejemplo, un DAG con dos aristas uv y vw tiene la misma relación de alcanzabilidad que el DAG con tres aristas uv , vw y uw . Ambos DAG producen el mismo orden parcial, en el que los vértices se ordenan como uvw .

El cierre transitivo de un DAG es el grafo con el mayor número de aristas que tiene la misma relación de alcanzabilidad que el DAG. Tiene una arista uv para cada par de vértices ( u , v ) en la relación de alcanzabilidad del DAG, y por lo tanto puede considerarse como una traducción directa de la relación de alcanzabilidad a términos de teoría de grafos. El mismo método de traducir órdenes parciales a DAG funciona de forma más general: para cada conjunto parcialmente ordenado finito ( S , ≤) , el grafo que tiene un vértice para cada elemento de S y una arista para cada par de elementos en es automáticamente un DAG transitivamente cerrado, y tiene ( S , ≤) como su relación de alcanzabilidad. De esta manera, cada conjunto parcialmente ordenado finito puede representarse como un DAG.

Diagrama de Hasse que representa el orden parcial de inclusión de conjuntos (⊆) entre los subconjuntos de un conjunto de tres elementos.

La reducción transitiva de un DAG es el grafo con la menor cantidad de aristas que tiene la misma relación de alcanzabilidad que el DAG. Tiene una arista uv para cada par de vértices ( u , v ) en la relación de cobertura de la relación de alcanzabilidad del DAG. Es un subgrafo del DAG, formado al descartar las aristas uv para las cuales el DAG también contiene un camino dirigido más largo de u a v . Al igual que el cierre transitivo, la reducción transitiva está definida de forma única para los DAG. En cambio, para un grafo dirigido que no es acíclico, puede haber más de un subgrafo mínimo con la misma relación de alcanzabilidad. [ 6 ] Las reducciones transitivas son útiles para visualizar los órdenes parciales que representan, porque tienen menos aristas que otros grafos que representan los mismos órdenes y, por lo tanto, conducen a dibujos de grafos más simples . Un diagrama de Hasse de un orden parcial es un dibujo de la reducción transitiva en el que la orientación de cada arista se muestra colocando el vértice inicial de la arista en una posición más baja que su vértice final. [ 7 ]

Ordenamiento topológico

Ordenación topológica de un grafo dirigido acíclico: cada arista va desde una posición anterior en la ordenación (superior izquierda) hasta una posición posterior (inferior derecha). Un grafo dirigido es acíclico si y solo si posee una ordenación topológica.
Al agregar las aristas rojas al grafo acíclico dirigido azul se produce otro DAG, el cierre transitivo del grafo azul. Para cada arista roja o azul uv , v es alcanzable desde u : existe un camino azul que comienza en u y termina en v .

Un ordenamiento topológico de un grafo dirigido es un ordenamiento de sus vértices en una secuencia, de tal manera que para cada arista, el vértice inicial aparece antes en la secuencia que el vértice final. Un grafo con un ordenamiento topológico no puede tener ciclos, ya que la arista que apunta al primer vértice de un ciclo tendría que estar orientada incorrectamente. Por lo tanto, todo grafo con un ordenamiento topológico es acíclico. A la inversa, todo grafo dirigido acíclico tiene al menos un ordenamiento topológico. La existencia de un ordenamiento topológico puede utilizarse, por consiguiente, como una definición equivalente de un grafo dirigido acíclico: son precisamente los grafos que poseen ordenamientos topológicos. [ 2 ] En general, este ordenamiento no es único; un DAG tiene un ordenamiento topológico único si y solo si tiene un camino dirigido que contiene todos los vértices, en cuyo caso el ordenamiento coincide con el orden en que aparecen los vértices en el camino. [ 8 ]

La familia de ordenaciones topológicas de un DAG es la misma que la familia de extensiones lineales de la relación de alcanzabilidad para el DAG, [ 9 ] por lo que cualesquiera dos grafos que representen el mismo orden parcial tienen el mismo conjunto de órdenes topológicas.

enumeración combinatoria

El problema de enumeración de grafos , que consiste en contar grafos dirigidos acíclicos, fue estudiado por Robinson (1973) . [ 10 ] El número de DAG en n vértices etiquetados, para n  =  0, 1, 2, 3, … (sin restricciones en el orden en que aparecen estos números en un ordenamiento topológico del DAG) es

1, 1, 3, 25, 543, 29281, 3781503, … (secuencia A003024 en el OEIS ) .

Estos números pueden calcularse mediante la relación de recurrencia.

anorte=k=1norte(1)k1(nortek)2k(nortek)anortek.{\displaystyle a_{n}=\sum _{k=1}^{n}(-1)^{k-1}{n \choose k}2^{k(nk)}a_{nk}.}[ 10 ]

Eric W. Weisstein conjeturó, [ 11 ] y McKay et al. (2004) demostraron, que los mismos números cuentan las matrices (0,1) para las cuales todos los autovalores son números reales positivos . La demostración es biyectiva : una matriz A es una matriz de adyacencia de un DAG si y solo si A  + I  es una matriz (0,1) con todos los autovalores positivos, donde I denota la matriz identidad . Dado que un DAG no puede tener bucles , su matriz de adyacencia debe tener una diagonal cero, por lo que agregar I preserva la propiedad de que todos los coeficientes de la matriz sean 0 o 1. [ 12 ]

Un multiárbol , un DAG en el que el subgrafo alcanzable desde cualquier vértice induce un árbol no dirigido (por ejemplo, en rojo).
Un poliárbol , un DAG formado al orientar las aristas de un árbol no dirigido.

Un multiárbol (también llamado grafo fuertemente no ambiguo o manglar ) es un DAG en el que existe como máximo un camino dirigido entre dos vértices cualesquiera. De forma equivalente, es un DAG en el que el subgrafo alcanzable desde cualquier vértice induce un árbol no dirigido . [ 13 ]

Un poliárbol (también llamado árbol dirigido ) es un multiárbol formado al orientar las aristas de un árbol no dirigido. [ 14 ]

Una arborescencia es un poliárbol formado al orientar las aristas de un árbol no dirigido alejándolas de un vértice particular, llamado raíz de la arborescencia.

Problemas computacionales

Clasificación y reconocimiento topológico

La ordenación topológica es el problema algorítmico de encontrar una ordenación topológica de un DAG dado. Se puede resolver en tiempo lineal . [ 15 ] El algoritmo de Kahn para la ordenación topológica construye directamente la ordenación de vértices. Mantiene una lista de vértices que no tienen aristas entrantes de otros vértices que no se hayan incluido ya en la ordenación topológica parcialmente construida; inicialmente, esta lista consta de los vértices sin ninguna arista entrante. Luego, agrega repetidamente un vértice de esta lista al final de la ordenación topológica parcialmente construida y comprueba si sus vecinos deben agregarse a la lista. El algoritmo termina cuando todos los vértices se han procesado de esta manera. [ 16 ] Alternativamente, se puede construir una ordenación topológica invirtiendo una numeración de postorden de un recorrido de grafo en profundidad . [ 15 ]

También es posible comprobar si un grafo dirigido dado es un DAG en tiempo lineal, ya sea intentando encontrar un orden topológico y luego probando para cada arista si el orden resultante es válido [ 17 ] o, alternativamente, para algunos algoritmos de ordenación topológica, verificando que el algoritmo ordena correctamente todos los vértices sin incurrir en una condición de error. [ 16 ]

Construcción a partir de grafos cíclicos

Cualquier grafo no dirigido puede convertirse en un DAG eligiendo un orden total para sus vértices y dirigiendo cada arista desde el extremo anterior del orden hasta el extremo posterior. La orientación resultante de las aristas se denomina orientación acíclica . Diferentes órdenes totales pueden dar lugar a la misma orientación acíclica, por lo que un grafo de n vértices puede tener menos de n ! orientaciones acíclicas. El número de orientaciones acíclicas es igual a | χ (−1) | , donde χ es el polinomio cromático del grafo dado. [ 18 ]

El grafo acíclico dirigido amarillo es la condensación del grafo dirigido azul. Se forma al contraer cada componente fuertemente conexa del grafo azul en un único vértice amarillo.

Cualquier grafo dirigido puede convertirse en un DAG eliminando un conjunto de vértices de retroalimentación o un conjunto de arcos de retroalimentación , un conjunto de vértices o aristas (respectivamente) que toca todos los ciclos. Sin embargo, el conjunto más pequeño de este tipo es NP-difícil de encontrar. [ 19 ] Un grafo dirigido arbitrario también puede transformarse en un DAG, llamado su condensación , contrayendo cada uno de sus componentes fuertemente conectados en un único supervértice. [ 20 ] Cuando el grafo ya es acíclico, sus conjuntos de vértices de retroalimentación y conjuntos de arcos de retroalimentación más pequeños están vacíos , y su condensación es el propio grafo.

Cierre transitivo y reducción transitiva

El cierre transitivo de un DAG dado, con n vértices y m aristas, puede construirse en tiempo O ( mn ) utilizando una búsqueda en anchura o una búsqueda en profundidad para comprobar la alcanzabilidad desde cada vértice. [ 21 ] Alternativamente, puede resolverse en tiempo O ( ), donde ω <  2,373  es el exponente de los algoritmos de multiplicación de matrices ; esto supone una mejora teórica respecto al límite O ( mn ) para grafos densos . [ 22 ]

En todos estos algoritmos de cierre transitivo, es posible distinguir pares de vértices que son alcanzables por al menos un camino de longitud dos o más de pares que solo pueden conectarse por un camino de longitud uno. La reducción transitiva consiste en las aristas que forman caminos de longitud uno que son los únicos caminos que conectan sus extremos. Por lo tanto, la reducción transitiva puede construirse en los mismos límites de tiempo asintótico que el cierre transitivo. [ 23 ]

Problema de cierre

El problema de cierre toma como entrada un grafo dirigido acíclico ponderado por vértices y busca el peso mínimo (o máximo) de un cierre: un conjunto de vértices C , tal que ninguna arista salga de C. El problema puede formularse para grafos dirigidos sin la suposición de aciclicidad, pero sin mayor generalidad, ya que en este caso es equivalente al mismo problema en la condensación del grafo. Puede resolverse en tiempo polinomial mediante una reducción al problema de flujo máximo . [ 24 ]

Algoritmos de ruta

Algunos algoritmos se simplifican al aplicarse a grafos acíclicos dirigidos (DAG) en lugar de grafos generales, basándose en el principio de ordenación topológica. Por ejemplo, es posible encontrar los caminos más cortos y más largos desde un vértice inicial dado en DAG en tiempo lineal procesando los vértices en orden topológico y calculando la longitud del camino para cada vértice como la longitud mínima o máxima obtenida a través de cualquiera de sus aristas entrantes. [ 25 ] En cambio, para grafos arbitrarios, el camino más corto puede requerir algoritmos más lentos, como el algoritmo de Dijkstra o el algoritmo de Bellman-Ford , [ 26 ] y encontrar los caminos más largos en grafos arbitrarios es un problema NP-difícil . [ 27 ]

Aplicaciones

Programación

Las representaciones gráficas acíclicas dirigidas de ordenaciones parciales tienen muchas aplicaciones en la planificación de sistemas de tareas con restricciones de ordenación. [ 28 ] Una clase importante de problemas de este tipo se refiere a colecciones de objetos que necesitan actualizarse, como las celdas de una hoja de cálculo después de que se haya modificado una de ellas, o los archivos objeto de un programa informático después de que se haya modificado su código fuente . En este contexto, un grafo de dependencia es un grafo que tiene un vértice por cada objeto que se va a actualizar y una arista que conecta dos objetos cuando uno de ellos necesita actualizarse antes que el otro. Un ciclo en este grafo se denomina dependencia circular y, por lo general, no está permitido, ya que no habría forma de planificar de manera consistente las tareas involucradas en el ciclo. Los grafos de dependencia sin dependencias circulares forman DAG. [ 29 ]

Por ejemplo, cuando cambia una celda de una hoja de cálculo , es necesario recalcular los valores de otras celdas que dependen directa o indirectamente de la celda modificada. Para este problema, las tareas a programar son los recálculos de los valores de las celdas individuales de la hoja de cálculo. Las dependencias surgen cuando una expresión en una celda utiliza un valor de otra celda. En tal caso, el valor utilizado debe recalcularse antes que la expresión que lo utiliza. Ordenar topológicamente el grafo de dependencias y utilizar este orden topológico para programar las actualizaciones de las celdas permite actualizar toda la hoja de cálculo con una sola evaluación por celda. [ 30 ] Problemas similares de ordenación de tareas surgen en los makefiles para la compilación de programas [ 30 ] y en la programación de instrucciones para la optimización de programas informáticos de bajo nivel. [ 31 ]

Diagrama PERT para un proyecto con cinco hitos (etiquetados del 10 al 50) y seis tareas (etiquetadas de la A a la F). Existen dos rutas críticas: ADF y BC.

La técnica de evaluación y revisión de programas (PERT), un método para la gestión de grandes proyectos humanos y una de las primeras aplicaciones de los DAG, utiliza una formulación de restricciones de programación basada en DAG algo diferente. En este método, los vértices de un DAG representan hitos de un proyecto en lugar de tareas específicas a realizar. En cambio, una tarea o actividad se representa mediante una arista del DAG, que conecta dos hitos que marcan el inicio y la finalización de la tarea. Cada arista se etiqueta con una estimación del tiempo que le llevará a un equipo de trabajadores realizar la tarea. La ruta más larga en este DAG representa la ruta crítica del proyecto, la que controla el tiempo total del mismo. Los hitos individuales se pueden programar según la longitud de las rutas más largas que terminan en sus vértices. [ 32 ]

Redes de procesamiento de datos

Un grafo dirigido acíclico puede utilizarse para representar una red de elementos de procesamiento. En esta representación, los datos entran a un elemento de procesamiento a través de sus aristas de entrada y salen de él a través de sus aristas de salida.

Por ejemplo, en el diseño de circuitos electrónicos, los bloques lógicos combinacionales estáticos pueden representarse como un sistema acíclico de compuertas lógicas que calcula una función de una entrada, donde la entrada y la salida de la función se representan como bits individuales . En general, la salida de estos bloques no puede usarse como entrada a menos que sea capturada por un registro o elemento de estado que mantenga sus propiedades acíclicas. [ 33 ] Los esquemas de circuitos electrónicos, ya sea en papel o en una base de datos, son una forma de grafos acíclicos dirigidos que utilizan instancias o componentes para formar una referencia dirigida a un componente de nivel inferior. Los circuitos electrónicos en sí mismos no son necesariamente acíclicos ni dirigidos.

Los lenguajes de programación de flujo de datos describen sistemas de operaciones sobre flujos de datos y las conexiones entre las salidas de algunas operaciones y las entradas de otras. Estos lenguajes pueden ser útiles para describir tareas repetitivas de procesamiento de datos, en las que se aplica la misma colección de operaciones conectadas acíclicamente a muchos elementos de datos. Se pueden ejecutar como un algoritmo paralelo en el que cada operación es realizada por un proceso paralelo tan pronto como se dispone de un nuevo conjunto de entradas. [ 34 ]

En los compiladores , el código lineal (es decir, secuencias de instrucciones sin bucles ni bifurcaciones condicionales) puede representarse mediante un DAG que describe las entradas y salidas de cada una de las operaciones aritméticas realizadas dentro del código. Esta representación permite al compilador realizar la eliminación de subexpresiones comunes de manera eficiente. [ 35 ] En un nivel superior de organización del código, el principio de dependencias acíclicas establece que las dependencias entre módulos o componentes de un sistema de software grande deben formar un grafo dirigido acíclico. [ 36 ]

Las redes neuronales de alimentación directa son otro ejemplo.

Estructuras causales

Los grafos en los que los vértices representan eventos que ocurren en un momento definido, y donde las aristas siempre apuntan de un vértice anterior a uno posterior, son necesariamente dirigidos y acíclicos. La ausencia de ciclos se debe a que el tiempo asociado a un vértice siempre aumenta al seguir cualquier camino dirigido en el grafo, por lo que nunca se puede regresar a un vértice en un camino. Esto refleja nuestra intuición natural de que la causalidad implica que los eventos solo pueden afectar al futuro, nunca al pasado, y por lo tanto no existen bucles causales . Un ejemplo de este tipo de grafo dirigido acíclico son los que se encuentran en el enfoque de conjuntos causales de la gravedad cuántica, aunque en este caso los grafos considerados son transitivamente completos . En el ejemplo de historial de versiones que se muestra a continuación, cada versión del software está asociada a un tiempo único, normalmente el momento en que se guardó, confirmó o publicó la versión. En los ejemplos de grafos de citas que se muestran a continuación, los documentos se publican en un momento dado y solo pueden hacer referencia a documentos anteriores.

A veces, los eventos no están asociados con un tiempo físico específico. Siempre que pares de eventos tengan una relación puramente causal, es decir, que las aristas representen relaciones causales entre los eventos, tendremos un grafo acíclico dirigido. [ 37 ] Por ejemplo, una red bayesiana representa un sistema de eventos probabilísticos como vértices en un grafo acíclico dirigido, en el que la probabilidad de un evento puede calcularse a partir de las probabilidades de sus predecesores en el DAG. [ 38 ] En este contexto, el grafo moral de un DAG es el grafo no dirigido creado al agregar una arista (no dirigida) entre todos los padres del mismo vértice (a veces llamado matrimonio ), y luego reemplazar todas las aristas dirigidas por aristas no dirigidas. [ 39 ] Otro tipo de grafo con una estructura causal similar es un diagrama de influencia , cuyos vértices representan decisiones que deben tomarse o información desconocida, y cuyas aristas representan influencias causales de un vértice a otro. [ 40 ] En epidemiología , por ejemplo, estos diagramas se utilizan a menudo para estimar el valor esperado de diferentes opciones de intervención. [ 41 ] [ 42 ]

Lo contrario también es cierto. Es decir, en cualquier aplicación representada por un grafo acíclico dirigido, existe una estructura causal, ya sea un orden explícito o temporal, como en el ejemplo, o un orden que puede derivarse de la estructura del grafo. Esto se debe a que todos los grafos acíclicos dirigidos poseen un orden topológico ; es decir, existe al menos una forma de ordenar los vértices de manera que todas las aristas apunten en la misma dirección a lo largo de dicho orden.

Genealogía e historia de las versiones

Árbol genealógico de la dinastía ptolemaica , con muchos matrimonios entre parientes cercanos que provocaron el colapso del linaje.

Los árboles genealógicos pueden considerarse grafos dirigidos acíclicos, con un vértice para cada miembro de la familia y una arista para cada relación padre-hijo. [ 43 ] A pesar del nombre, estos grafos no son necesariamente árboles debido a la posibilidad de matrimonios entre parientes (de modo que un hijo tenga un ancestro común tanto por parte materna como paterna), lo que provoca el colapso del pedigrí . [ 44 ] Los grafos de descendencia matrilineal (relaciones madre-hija) y descendencia patrilineal (relaciones padre-hijo) son árboles dentro de este grafo. Dado que nadie puede convertirse en su propio ancestro, los árboles genealógicos son acíclicos. [ 45 ]

El historial de versiones de un sistema de control de revisiones distribuido , como Git , generalmente tiene la estructura de un grafo dirigido acíclico, en el que hay un vértice para cada revisión y una arista que conecta pares de revisiones que se derivaron directamente entre sí. Estos no son árboles en general debido a las fusiones. [ 46 ]

En muchos algoritmos aleatorios de geometría computacional , el algoritmo mantiene un DAG de historial que representa el historial de versiones de una estructura geométrica a lo largo de una secuencia de cambios en la estructura. Por ejemplo, en un algoritmo incremental aleatorio para la triangulación de Delaunay , la triangulación cambia reemplazando un triángulo por tres triángulos más pequeños cuando se agrega cada punto, y mediante operaciones de "inversión" que reemplazan pares de triángulos por un par de triángulos diferente. El DAG de historial para este algoritmo tiene un vértice para cada triángulo construido como parte del algoritmo, y aristas desde cada triángulo hacia los otros dos o tres triángulos que lo reemplazan. Esta estructura permite responder de manera eficiente a las consultas de ubicación de puntos : para encontrar la ubicación de un punto de consulta q en la triangulación de Delaunay, se sigue una ruta en el DAG de historial, moviéndose en cada paso al triángulo de reemplazo que contiene q . El triángulo final alcanzado en esta ruta debe ser el triángulo de Delaunay que contiene q . [ 47 ]

Gráficos de citas

En un grafo de citas, los vértices son documentos con una única fecha de publicación. Las aristas representan las citas de la bibliografía de un documento a otros documentos necesariamente anteriores. El ejemplo clásico proviene de las citas entre artículos académicos, como se señala en el artículo de 1965 "Redes de artículos científicos" [ 48 ] de Derek J. de Solla Price, quien posteriormente produjo el primer modelo de una red de citas, el modelo Price . [ 49 ] En este caso, el número de citas de un artículo es simplemente el grado de entrada del vértice correspondiente de la red de citas. Esta es una medida importante en el análisis de citas . Las sentencias judiciales proporcionan otro ejemplo, ya que los jueces respaldan sus conclusiones en un caso recordando otras decisiones anteriores tomadas en casos anteriores. Un último ejemplo lo proporcionan las patentes, que deben hacer referencia al estado de la técnica anterior , patentes anteriores que son relevantes para la reivindicación de patente actual. Al tener en cuenta las propiedades especiales de los grafos acíclicos dirigidos, se pueden analizar redes de citas con técnicas no disponibles cuando se analizan los grafos generales considerados en muchos estudios que utilizan el análisis de redes . Por ejemplo, la reducción transitiva ofrece nuevas perspectivas sobre las distribuciones de citas encontradas en diferentes aplicaciones, destacando claras diferencias en los mecanismos que crean redes de citas en diferentes contextos. [ 50 ] Otra técnica es el análisis de ruta principal , que rastrea los enlaces de citas y sugiere las cadenas de citas más significativas en un grafo de citas dado .

El modelo de Price es demasiado simple para ser un modelo realista de una red de citas, pero es lo suficientemente simple como para permitir soluciones analíticas para algunas de sus propiedades. Muchas de estas se pueden encontrar utilizando resultados derivados de la versión no dirigida del modelo de Price , el modelo de Barabási-Albert . Sin embargo, dado que el modelo de Price proporciona un grafo acíclico dirigido, es un modelo útil cuando se buscan cálculos analíticos de propiedades únicas de los grafos acíclicos dirigidos. Por ejemplo, la longitud del camino más largo, desde el n-ésimo nodo agregado a la red hasta el primer nodo de la red, escala como [ 51 ].ln(norte){\displaystyle \ln(n)}.

Compresión de datos

Los grafos acíclicos dirigidos también pueden usarse como una representación compacta de una colección de secuencias. En este tipo de aplicación, se encuentra un DAG en el que los caminos forman las secuencias dadas. Cuando muchas de las secuencias comparten las mismas subsecuencias, estas subsecuencias compartidas pueden representarse mediante una parte compartida del DAG, lo que permite que la representación use menos espacio que si se enumeraran todas las secuencias por separado. Por ejemplo, el grafo de palabras acíclico dirigido es una estructura de datos en ciencias de la computación formada por un grafo acíclico dirigido con una sola fuente y con aristas etiquetadas con letras o símbolos; los caminos desde la fuente hasta los sumideros en este grafo representan un conjunto de cadenas , como palabras en inglés. [ 52 ] Cualquier conjunto de secuencias puede representarse como caminos en un árbol, formando un vértice de árbol para cada prefijo de una secuencia y haciendo que el padre de uno de estos vértices represente la secuencia con un elemento menos; el árbol formado de esta manera para un conjunto de cadenas se llama trie .

De manera similar, un árbol de búsqueda binaria puede considerarse como un DAG con raíz donde los caminos representan ordenaciones de claves, aunque carece de la compresión de fusión de caminos que se encuentra en los DAG más complejos. [ 53 ] Un grafo de palabras acíclico dirigido ahorra espacio en comparación con un trie al permitir que los caminos diverjan y se vuelvan a unir, de modo que un conjunto de palabras con los mismos sufijos posibles puede representarse mediante un único vértice del árbol. [ 54 ]

La misma idea de usar un DAG para representar una familia de caminos aparece en el diagrama de decisión binario , [ 55 ] [ 56 ] una estructura de datos basada en DAG para representar funciones binarias. En un diagrama de decisión binario, cada vértice que no es un sumidero está etiquetado con el nombre de una variable binaria, y cada sumidero y cada arista están etiquetados con un 0 o un 1. El valor de la función para cualquier asignación de verdad a las variables es el valor en el sumidero encontrado al seguir un camino, comenzando desde el único vértice fuente, que en cada vértice que no es un sumidero sigue la arista saliente etiquetada con el valor de la variable de ese vértice. Así como los grafos de palabras acíclicos dirigidos pueden verse como una forma comprimida de tries , los diagramas de decisión binarios pueden verse como formas comprimidas de árboles de decisión que ahorran espacio al permitir que los caminos se vuelvan a unir cuando coinciden en los resultados de todas las decisiones restantes. [ 57 ]

Referencias

  1. 1 2 Thulasiraman, K.; Swamy, MNS (1992), "5.7 Grafos dirigidos acíclicos", Grafos: Teoría y algoritmos , John Wiley and Son, pág.  118, ISBN 978-0-471-51356-8.
  2. 1 2 3 Bang-Jensen, Jørgen (2008), "2.1 Digrafos acíclicos", Digrafos: Teoría, algoritmos y aplicaciones , Monografías de Springer en matemáticas (2.ª ed.), Springer-Verlag, págs. 32–34 , ISBN   978-1-84800-997-4.
  3. Christofides, Nicos (1975), Teoría de grafos: un enfoque algorítmico , Academic Press, págs. 170–174 .
  4. Kozen, Dexter (1992), El diseño y análisis de algoritmos , Monografías en Ciencias de la Computación, Springer, pág. 9, ISBN  978-0-387-97687-7.
  5. Banerjee, Utpal (1993), "Ejercicio 2(c)", Transformaciones de bucles para la reestructuración de compiladores: Los fundamentos , Springer, pág. 19, Bibcode : 1993ltfr.book.....B , ISBN  978-0-7923-9318-4.
  6. Bang-Jensen, Jørgen; Gutin, Gregory Z. (2008), "2.3 Digrafos transitivos, cierres transitivos y reducciones", Digrafos: teoría, algoritmos y aplicaciones , Monografías de Springer en matemáticas, Springer, pp. 36–39 , ISBN  978-1-84800-998-1.
  7. Jungnickel, Dieter (2012), Graphs, Networks and Algorithms , Algorithms and Computation in Mathematics, vol. 5, Springer, pp. 92–93 , ISBN   978-3-642-32278-5.
  8. Sedgewick, Robert ; Wayne, Kevin (2011), "4,2,25 Ordenamiento topológico único", Algoritmos (4.ª ed.), Addison-Wesley, págs. 598–599 , ISBN   978-0-13-276256-4.
  9. Bender, Edward A.; Williamson, S. Gill (2005), "Ejemplo 26 (Extensiones lineales – clasificaciones topológicas)", A Short Course in Discrete Mathematics , Dover Books on Computer Science, Courier Dover Publications, pág. 142, ISBN  978-0-486-43946-4.
  10. 1 2 Robinson, RW (1973), "Counting labeled acyclic digraphs", en Harary, F. (ed.), New Directions in the Theory of Graphs , Academic Press, pp . 239–273 Véase también Harary, Frank ; Palmer, Edgar M. (1973), Graphical Enumeration , Academic Press , pág. 19, ISBN  978-0-12-324245-7.
  11. ^ Weisstein, Eric W. , "Conjetura de Weisstein" , MathWorld{{cite web}}: Mantenimiento de CS1: configuración sobrescrita ( enlace )
  12. McKay, BD ; Royle, GF ; Wanless, IM; Oggier, FE ; Sloane, NJA ; Wilf, H. (2004), "Digrafos acíclicos y valores propios de matrices (0,1)" , Journal of Integer Sequences , 7 : 33, arXiv : math/0310423 , Bibcode : 2004JIntS...7...33M, Artículo 04.3.3.
  13. Furnas, George W. ; Zacks, Jeff (1994), "Multitrees: enriching and reusing hierarchical structure", Proc. SIGCHI conference on Human Factors in Computing Systems (CHI '94) , pp. 330– 336, doi : 10.1145/191666.191778 , ISBN  978-0897916509, S2CID 18710118 .
  14. Rebane, George; Pearl, Judea (1987), "La recuperación de poliárboles causales a partir de datos estadísticos", Actas de la 3.ª Conferencia Anual sobre Incertidumbre en Inteligencia Artificial (UAI 1987), Seattle, WA, EE. UU., julio de 1987 (PDF) , págs. 222–228 .
  15. 1 2 Cormen, Thomas H. ; Leiserson, Charles E. ; Rivest, Ronald L. ; Stein, Clifford (2001) [1990], Introducción a los algoritmos (2.ª ed.), MIT Press y McGraw-Hill, ISBN  0-262-03293-7{{cite book}}: CS1 maint: configuración sobrescrita ( enlace ) Sección 22.4, Ordenación topológica, págs. 549–552.
  16. 1 2 Jungnickel (2012) , págs. 50–51.
  17. Para el algoritmo de ordenación topológica basado en búsqueda en profundidad , esta comprobación de validez puede intercalarse con el propio algoritmo de ordenación topológica; véase, por ejemplo, Skiena, Steven S. (2009), The Algorithm Design Manual , Springer, pp. 179–181 , ISBN  978-1-84800-070-4.
  18. Stanley, Richard P. (1973), "Orientaciones acíclicas de grafos" (PDF) , Matemáticas Discretas , 5 (2): 171– 178, doi : 10.1016/0012-365X(73)90108-8.
  19. Garey, Michael R. ; Johnson, David S. (1979), Computers and Intractability: A Guide to the Theory of NP-Completeness , Serie de libros en ciencias matemáticas (1.ª ed.), Nueva York: WH Freeman and Company , ISBN  9780716710455, MR 0519066 , OCLC 247570676  , Problemas GT7 y GT8, págs.  191–192.
  20. Harary, Frank ; Norman, Robert Z.; Cartwright, Dorwin (1965), Modelos estructurales: Una introducción a la teoría de grafos dirigidos , John Wiley & Sons, pág. 63 .
  21. Skiena (2009) , pág. 495.
  22. Skiena (2009) , pág. 496.
  23. Bang-Jensen y Gutin (2008) , pág. 38.
  24. Picard, Jean-Claude (1976), "Cierre máximo de un grafo y aplicaciones a problemas combinatorios", Management Science , 22 (11): 1268–1272 , doi : 10.1287/mnsc.22.11.1268 , MR 0403596 .
  25. Cormen et al. 2001, Sección 24.2, Caminos más cortos de origen único en grafos acíclicos dirigidos, págs. 592–595.
  26. Cormen et al. 2001, Secciones 24.1, El algoritmo de Bellman-Ford, págs. 588-592, y 24.3, El algoritmo de Dijkstra, págs. 595-601.
  27. ^ Cormen et al. 2001, pág. 966.
  28. Skiena (2009) , pág. 469.
  29. Al-Mutawa, HA; Dietrich, J.; Marsland, S.; McCartin, C. (2014), "Sobre la forma de las dependencias circulares en programas Java", 23.ª Conferencia Australiana de Ingeniería de Software , IEEE, pp. 48–57 , doi : 10.1109/ASWEC.2014.15 , ISBN  978-1-4799-3149-1, S2CID 17570052 .
  30. 1 2 Gross, Jonathan L.; Yellen, Jay; Zhang, Ping (2013), Handbook of Graph Theory (2.ª ed.), CRC Press, pág. 1181, ISBN   978-1-4398-8018-0.
  31. Srikant, YN; Shankar, Priti (2007), The Compiler Design Handbook: Optimizations and Machine Code Generation (2.ª ed.), CRC Press, pp. 19–39 , ISBN   978-1-4200-4383-9.
  32. Wang, John X. (2002), Lo que todo ingeniero debería saber sobre la toma de decisiones en condiciones de incertidumbre , CRC Press, pág. 160, ISBN  978-0-8247-4373-4.
  33. ^ Sapatnekar, Sachin (2004), Sincronización , Springer, pág. 133, ISBN  978-1-4020-7671-8.
  34. Dennis, Jack B. (1974), "Primera versión de un lenguaje de procedimiento de flujo de datos", Simposio de Programación , Notas de Conferencia en Ciencias de la Computación, vol. 19, págs. 362–376 , doi : 10.1007/3-540-06859-7_145 , hdl : 1721.1/148889 , ISBN   978-3-540-06859-4.
  35. Touati, Sid; de Dinechin, Benoit (2014), Advanced Backend Optimization , John Wiley & Sons, p. 123, ISBN  978-1-118-64894-0.
  36. Garland, Jeff; Anthony, Richard (2003), Arquitectura de software a gran escala: una guía práctica con UML , John Wiley & Sons, pág. 215, ISBN  9780470856383.
  37. Gopnik, Alison ; Schulz, Laura (2007), Aprendizaje causal , Oxford University Press, pág. 4, ISBN  978-0-19-803928-0.
  38. Shmulevich, Ilya; Dougherty, Edward R. (2010), Probabilistic Boolean Networks: The Modeling and Control of Gene Regulatory Networks , Society for Industrial and Applied Mathematics, p. 58, ISBN  978-0-89871-692-4.
  39. ^ Cowell, Robert G.; David, A. Felipe ; Lauritzen, Steffen L .; Spiegelhalter, David J. (1999), "3.2.1 Moralización", Redes probabilísticas y sistemas expertos , Springer, págs. 31-33 , ISBN  978-0-387-98767-5.
  40. Dorf, Richard C. (1998), The Technology Management Handbook , CRC Press, págs. 9-7 , ISBN  978-0-8493-8577-3.
  41. Boslaugh, Sarah (2008), Enciclopedia de Epidemiología, Volumen 1 , SAGE, pág. 255, ISBN  978-1-4129-2816-8.
  42. Pearl, Judea (1995), "Diagramas causales para la investigación empírica" , Biometrika , 82 (4): 669–709 , doi : 10.1093/biomet/82.4.669.
  43. Kirkpatrick, Bonnie B. (abril de 2011), "Haplotipos frente a genotipos en pedigríes", Algorithms for Molecular Biology , 6 (10) 10, doi : 10.1186/1748-7188-6-10 , PMC 3102622 , PMID 21504603  .
  44. McGuffin, MJ; Balakrishnan, R. (2005), "Visualización interactiva de grafos genealógicos" (PDF) , Simposio IEEE sobre Visualización de la Información (INFOVIS 2005) , págs. 16–23 , doi : 10.1109/INFVIS.2005.1532124 , ISBN  978-0-7803-9464-3, S2CID 15449409 .
  45. Bender, Michael A.; Pemmasani, Giridhar; Skiena, Steven; Sumazin, Pavel (2001), "Finding least common ancestors in directed acyclic graphs" , Actas del Duodécimo Simposio Anual ACM-SIAM sobre Algoritmos Discretos (SODA '01) , Filadelfia, PA, EE. UU.: Society for Industrial and Applied Mathematics, págs. 845–854 , ISBN  978-0-89871-490-6.
  46. Bartlang, Udo (2010), Architecture and Methods for Flexible Content Management in Peer-to-Peer Systems , Springer, p. 59, Bibcode : 2010aamf.book.....B , ISBN  978-3-8348-9645-2.
  47. Pach, János ; Sharir, Micha (2008), Geometría combinatoria y sus aplicaciones algorítmicas: Las conferencias de Alcalá , Mathematical surveys and monographs, vol. 152, American Mathematical Society, pp. 93–94 , ISBN   978-0-8218-7533-9.
  48. Price, Derek J. de Solla (30 de julio de 1965), "Redes de artículos científicos" (PDF) , Science , 149 (3683): ​​510–515 , Bibcode : 1965Sci...149..510D , doi : 10.1126/science.149.3683.510 , PMID 14325149 .
  49. Price, Derek J. de Solla (1976), "Una teoría general de los procesos de ventaja acumulativa bibliométrica y de otro tipo", Journal of the American Society for Information Science , 27 (5): 292–306 , doi : 10.1002/asi.4630270505 , S2CID 8536863 .
  50. Clough, James R.; Gollings, Jamie; Loach, Tamar V.; Evans, Tim S. (2015), "Reducción transitiva de redes de citas", Journal of Complex Networks , 3 (2): 189– 203, arXiv : 1310.8224 , doi : 10.1093/comnet/cnu039 , S2CID 10228152 .
  51. Evans, TS; Calmon, L.; Vasiliauskaite, V. (2020), "The Longest Path in the Price Model", Scientific Reports , 10 (1): 10503, arXiv : 1903.03667 , Bibcode : 2020NatSR..1010503E , doi : 10.1038/s41598-020-67421-8 , PMC 7324613 , PMID 32601403  
  52. Crochemore, Maxime; Vérin, Renaud (1997), "Construcción directa de grafos de palabras acíclicos dirigidos compactos", Combinatorial Pattern Matching , Lecture Notes in Computer Science, vol. 1264, Springer, pp. 116–129 , CiteSeerX 10.1.1.53.6273 , doi : 10.1007/3-540-63220-4_55 , ISBN    978-3-540-63220-7, S2CID 17045308 .
  53. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009), Introducción a los algoritmos (3.ª ed.), MIT Press, págs. 286–307 , ISBN   978-0-262-03384-8.
  54. Lothaire, M. (2005), Combinatoria aplicada a las palabras , Enciclopedia de matemáticas y sus aplicaciones, vol. 105, Cambridge University Press, pág. 18, ISBN   9780521848022.
  55. Lee, CY (1959), "Representación de circuitos de conmutación mediante programas de decisión binaria", Bell System Technical Journal , 38 (4): 985–999 , Bibcode : 1959BSTJ...38..985L , doi : 10.1002/j.1538-7305.1959.tb01585.x.
  56. Akers, Sheldon B. (1978), "Diagramas de decisión binarios", IEEE Transactions on Computers , C-27 (6): 509– 516, Bibcode : 1978ITCmp.100..509A , doi : 10.1109/TC.1978.1675141 , S2CID 21028055 .
  57. Friedman, SJ; Supowit, KJ (1987), "Finding the optimal variable ordering for binary decision diagrams", Proc. 24th ACM/IEEE Design Automation Conference (DAC '87) , Nueva York, NY, EE. UU.: ACM, pp. 348–356 , doi : 10.1145/37888.37941 , ISBN  978-0-8186-0781-3, S2CID 14796451 .
  • Weisstein, Eric W. , "Dígrafo acíclico" , MathWorld{{cite web}}: Mantenimiento de CS1: configuración sobrescrita ( enlace )
  • DAGitty : una herramienta en línea para crear DAGs