geodesic.kk() applies a deterministic gradient-descent
polish under the full all-pairs geodesic Kamada–Kawai objective.
Usage
geodesic.kk(
coords,
prepared = NULL,
edges = NULL,
n = NULL,
adj_list = NULL,
weight_list = NULL,
edge_weights = NULL,
max_iter = 16L,
stiffness = 1,
distance_floor = 1e-08,
edge_length_epsilon = 1e-08,
initial_step = 1,
step_shrink = 0.5,
armijo_factor = 1e-04,
grad_tol = 1e-08,
min_step = 1e-08,
recenter = TRUE,
return_trace = FALSE,
scale_mode = c("fixed_initial", "profiled", "user"),
scale.L0 = NULL
)Arguments
- coords
Numeric coordinate matrix with 2 or 3 columns.
- prepared
Optional object returned by
prepare.geodesic.kk().- edges
Two-column integer matrix of edges (1-based vertex ids).
- n
Number of vertices.
- adj_list
Adjacency list (1-based) for an undirected graph.
- weight_list
Optional parallel list of positive edge weights.
- edge_weights
Optional positive edge-weight vector parallel to
edges.- max_iter
Maximum number of gradient-descent iterations.
- stiffness
Global stiffness constant \(K\).
- distance_floor
Small positive floor used in
k_ij = K / max(g_ij, distance_floor)^2.- edge_length_epsilon
Small positive stabilizer added inside each embedded edge length.
- initial_step
Initial line-search step size.
- step_shrink
Multiplicative shrink factor in `(0, 1)` for backtracking.
- armijo_factor
Non-negative Armijo decrease constant.
- grad_tol
Non-negative stopping tolerance on the gradient norm.
- min_step
Positive minimum accepted line-search step before giving up.
- recenter
If
TRUE, recenter the layout to zero mean after each accepted step.- return_trace
If
TRUE, include per-iteration diagnostics and the accepted intermediate coordinate frames.- scale_mode
One of
"fixed_initial","profiled", or"user".- scale.L0
Optional user-supplied fixed scale, required when
scale_mode = "user".
Details
The optimizer supports three scale policies. With
scale_mode = "fixed_initial" the target scale is fit once from the
starting layout and then held fixed during optimization, matching the
landmark geodesic KK behavior. With scale_mode = "profiled" the scale is
re-fit analytically at each evaluation. With scale_mode = "user", a
fixed user-supplied scale.L0 is used throughout.