Una breve descripción del algoritmo DJ
Este algoritmo funciona en cuatro pasos:
- Paso 1: Nivelación
- Los nodos se dividen en grupos. Cada grupo de nodos forma un nivel. El objetivo es agrupar los nodos de forma que los enlaces siempre apunten de un nivel con un índice menor a un nivel con un índice mayor.
- Paso 2: Reducción de intersecciones
- Los nodos se ordenan dentro de cada nivel. El algoritmo intenta que el número de intersecciones de enlaces sea pequeño cuando, para cada nivel, los nodos se colocan en este orden en una línea (consulte Índices de nivel y posición). Este orden da lugar al índice de posición relativo de cada nodo dentro de su nivel.
- Paso 3: Colocación de los nodos
- A partir de los índices de nivel y posición, se calculan coordenadas equilibradas para los nodos. Por ejemplo, para un diseño donde el flujo de los enlaces es de arriba abajo, los nodos se colocan a lo largo de líneas horizontales de forma que todos los nodos que pertenecen al mismo nivel tengan (aproximadamente) la misma coordenada y. Los nodos de un nivel con un índice menor tienen una coordenada y menor que los nodos de un nivel con un índice mayor. Dentro de un nivel, los nodos con un índice de posición menor tienen una coordenada x menor que los nodos con un índice de posición mayor.
- Paso 4: Direccionamiento de los enlaces
- Las formas de los enlaces se calculan de tal modo que los enlaces eviten los nodos de las líneas de nivel. En muchos casos, esto exige crear un punto de inflexión siempre que un enlace tenga que cruzar una línea de nivel. En un diseño de arriba abajo, estos puntos de inflexión tienen la misma coordenada y que la línea de nivel que cruzan. (Estos puntos de inflexión también obtienen un índice de posición).
Índices de nivel y posición
muestra como el algoritmo Diseño jerárquico utiliza los índices de
nivel y posición para representar el gráfico.

Índices de nivel y posición
Puede establecer parámetros para los pasos del algoritmo
de diseño de varias maneras. Por ejemplo, puede especificar el índice
de nivel que el algoritmo debe elegir para un nodo en el Paso 1 o la
posición relativa del nodo dentro del nivel en el Paso 2. También
puede especificar la justificación de los nodos dentro de un nivel y
el estilo de las formas de los enlaces.
Ejemplo de DJ
En el código de ejemplo siguiente se muestra cómo
ejecutar un Diseño jerárquico:
var layout = new ibm_ilog.graphlayout.hierarchical.HierarchicalLayout(); graph.setNodeLayout(layout); graph.performGraphLayout();