Características y limitaciones del DJ

Características

  • Organiza nodos sin solapamientos en los niveles horizontales o verticales.
  • Organiza los gráficos de modo que la mayoría de los enlaces sean cortos y fluyan uniformemente en la misma dirección (de izquierda a derecha, de arriba a abajo, etcétera).
  • Reduce el número de intersecciones de enlaces. La mayoría de las veces, produce dibujos sin intersecciones o con un número pequeño de intersecciones.
  • Frecuentemente produce dibujos equilibrados que acentúan las simetrías del gráfico.
  • Admite self-links (es decir, enlaces con el mismo nodo de origen y de destino), multiple links entre el mismo par de nodos y ciclos.
  • Algoritmo eficiente y escalable. Genera un buen diseño para la mayoría de los gráficos de densidad media y baja con relativa rapidez, aunque el número de nodos sea muy grande.
  • Ofrece varias opciones de alineación y desplazamiento.
  • Da soporte a especificaciones de puerto donde los enlaces se conectan con los nodos. Le permite especificar en qué cara del nodo (superior, inferior, izquierda o derecha) puede conectarse un enlace o qué posición relativa del puerto debe utilizarse para la conexión.
  • Da soporte a restricciones de diseño. Permite especificar restricciones posicionales relativas, por ejemplo, que un nodo esté sobre otro nodo o a la izquierda de otro nodo.
  • Modalidad incremental y no incremental. En la modalidad incremental, se tiene en cuenta la posición anterior de los nodos. Coloca los nodos sin cambiar el orden relativo de los nodos de forma que el diseño sea estable en caso de que se produzcan cambios incrementales en el gráfico.
  • El tiempo de cálculo depende del número de nodos, el número de niveles y el número de enlaces que cruzan varios niveles. La mayoría de las veces, los enlaces se colocan entre niveles adyacentes, lo que reduce el tiempo de cálculo.

Limitaciones

  • El algoritmo intenta minimizar el número de link crossings (que por lo general es un problema de NP-complete). Es matemáticamente imposible resolver este problema rápidamente sea cual sea el tamaño del gráfico. Por lo tanto, el algoritmo utiliza una estrategia heurística rápida que obtiene un buen diseño, pero no siempre con el número mínimo teórico de intersecciones de enlaces.
  • El algoritmo intenta colocar los nodos de forma que todos los enlaces apunten en la misma dirección. Es imposible colocar ciclos de enlaces de esta forma. Por ello, a veces genera un gráfico en que pocos enlaces se invierten para que apunten en la dirección opuesta. El algoritmo intenta minimizar el número de enlaces invertidos (que, una vez más, es un problema NP-completo). Por lo tanto, el algoritmo utiliza una estrategia heurística rápida que da como resultado un buen diseño, pero no siempre con el número mínimo teórico de enlaces invertidos.
  • El tiempo de cálculo necesario para obtener una representación adecuada depende en gran medida del número de curvas de los enlaces. Puesto que el algoritmo coloca una curva siempre que un enlace cruza un nivel, el número de curvas puede crecer de forma relativamente rápida si el diseño requiere muchos enlaces largos que abarcan varios niveles. Por tanto, el proceso de diseño puede llevar mucho tiempo para gráficos densos (el número de enlaces es relativamente alto en comparación con el número de nodos) o para gráficos que requieren muchos niveles de nodos.