Los usuarios expertos pueden utilizar los parámetros
siguientes.
Número máximo de movimientos permitidos por iteración (FL)
En cada iteración, el algoritmo de diseño mueve los
nodos una distancia relativamente pequeña. Esta distancia no debe ser
demasiado grande; de lo contrario, el algoritmo puede que no
converja. Tampoco debe ser demasiado pequeña o el número de
iteraciones necesarias y el tiempo de ejecución aumentará.
El número máximo de movimientos en cada iteración se
controla mediante un parámetro.
Para establecer este parámetro:
Ejemplo de cómo establecer el número máximo de
movimientos por iteración
forceDirectedLayout.setMaxAllowedMovePerIteration(3);
Los valores típicos para este valor están comprendidos
entre 1 y 30, pero depende del valor del parámetro
PreferredLinksLength
. Por
ejemplo, si el valor para el parámetro
PreferredLinksLength
es 1000,
entonces un valor de 100 para el parámetro
MaxAllowedMovePerIteration
todavía tiene sentido. Peso de la longitud de enlace (FL)
El algoritmo de diseño se basa en el cálculo de las
fuerzas de atracción y repulsión entre los nodos y la búsqueda
iterativa de una configuración de equilibrio. Una de estas fuerzas
está relacionada con el objetivo de obtener una longitud de enlace
cercana a la longitud preferida especificado. El peso de esta fuerza,
que representa la cantidad total de fuerza, se controla mediante un
parámetro.
Para establecer este parámetro:
Ejemplo de cómo establecer la fuerza del peso de la
longitud de enlace
forceDirectedLayout.setLinkLengthWeight(1.5);
El valor predeterminado es
1
.
Si se aumenta el valor de este parámetro pueden obtenerse enlaces de
longitudes más próximas a la longitud especificada, pero si se
aumenta demasiado puede aumentar el número de intersecciones de
enlaces. Peso de la repulsión adicional entre nodos (FL)
Se puede calcular una fuerza de repulsión adicional
entre los nodos que no están conectados mediante un enlace. El peso
de esta fuerza, que representa la cantidad total de fuerza, se
controla mediante un parámetro.
Para establecer este parámetro:
Ejemplo de cómo establecer el peso de la repulsión
entre nodos
forceDirectedLayout.setAdditionalNodeRepulsionWeight(0.4);
El valor predeterminado de este parámetro es
0.2f
. Si se aumenta (o
disminuye) el peso, aumenta (o disminuye) la prioridad que se otorga
a la capacidad de mantener los nodos a una distancia mayor que el
umbral de la distancia entre nodos. Consulte setNodeDistanceThreshold.
Si se aumenta el peso también se reduce la capacidad del algoritmo de
alcanzar la convergencia rápidamente. Las figuras siguientes le permiten comparar el mismo
gráfico representado con la repulsión adicional inhabilitada
(Repulsión adicional inhabilitada, generada con Diseño
Force-directed )
y, a continuación, habilitada
(Repulsión adicional habilitada, generada con Diseño
Force-directed ).
Puede ver que la configuración “en
estrella”, donde muchos nodos están conectados al mismo
nodo central, se representa mejor cuando se habilita la repulsión
adicional.

Repulsión adicional inhabilitada, generada con Diseño
Force-directed

Repulsión adicional habilitada, generada con Diseño
Force-directed
Umbral de la distancia entre nodos (FL)
La fuerza de repulsión adicional entre dos nodos no
conectados mediante un enlace se calcula sólo cuando su distancia es
menor que una distancia predefinida.
Para establecer esta distancia:
Ejemplo de cómo establecer el umbral de la distancia
entre nodos
forceDirectedLayout.setNodeDistanceThreshold(25);
Esta fuerza adicional se calcula sólo si el peso de la
repulsión adicional entre nodos se establece en un valor mayor que el
valor predeterminado
0
. Se recomienda que este umbral se establece en un valor
menor que la longitud preferida de los enlaces.
Modalidad rápida de varios niveles: porcentaje máximo del tiempo transcurrido para el paso de retoques (FL)
En la modalidad rápida de varios niveles, el algoritmo
lleva a cabo un paso final de retoques. Puede establecer el
porcentaje máximo del tiempo ya transcurrido que debe dedicarse en el
paso final de retoques cuando la modalidad de diseño es
FAST_MULTILEVEL_MODE.
Aumentar el valor de este parámetro puede mejorar la calidad del
diseño, posiblemente a costa de una reducción de la velocidad.
Para establecer este parámetro:
Ejemplo de cómo establecer el porcentaje máximo del
tiempo transcurrido que se dedicará en el paso final de retoques
forceDirectedLayout.setMaxPercentageOfElapsedTimeForRefinement(500);
Este parámetro se utiliza solamente en la modalidad
rápida de varios niveles.
Modalidad rápida de varios niveles: porcentaje máximo del tiempo total para el paso de retoques (FL)
En la modalidad rápida de varios niveles, el algoritmo
lleva a cabo un paso final de retoques. Puede establecer el
porcentaje máximo del tiempo total permitido que debe dedicarse en el
paso final de retoques cuando la modalidad de diseño es
FAST_MULTILEVEL_MODE.
Aumentar el valor de este parámetro puede mejorar la calidad del
diseño, posiblemente a costa de una reducción de la velocidad.
Para establecer este parámetro:
Ejemplo de cómo establecer el porcentaje máximo del
tiempo total que se dedicará en el paso final de retoques
forceDirectedLayout.setMaxPercentageOfTotalAllowedTimeForRefinement(5);
Este parámetro se utiliza solamente en la modalidad
rápida de varios niveles.
Modalidad rápida de varios niveles: repetición máxima para convergencia (FL)
Puede establecer el número máximo de intentos para
alcanzar la convergencia en cada paso cuando la modalidad de diseño
FAST_MULTILEVEL_MODE.
Aumentar el valor de este parámetro puede mejorar la calidad del
diseño, posiblemente a costa de una reducción de la velocidad.
Para establecer este parámetro:
Ejemplo de cómo establecer el número máximo de intentos
para alcanzar la convergencia en cada paso
forceDirectedLayout.setMaxRepeatForConvergence(5);
Este parámetro se utiliza solamente en la modalidad
rápida de varios niveles.