Optimize one edge-isometric repulsive unfolding stage
Source:R/export_examples.R, R/gmds_edge_repulsive_unfolding.R
edge.repulsive.stage.Rdedge.repulsive.stage() performs one gradient-descent stage
for the objective evaluated by edge.repulsive.state(). It uses Armijo
backtracking, optionally recenters coordinates after each proposal, and
returns the final coordinates plus a per-iteration trace.
Usage
edge.repulsive.stage(
coords,
edges,
edge.lengths,
edge.weights = NULL,
lambda = 0,
edge.family = c("quadratic", "upper_barrier"),
eps.plus = 0.35,
beta = 0,
pair.index = NULL,
pair.weights = NULL,
repulsion.family = c("log", "inverse_power"),
repulsion.delta = 0.001,
repulsion.power = 1,
max.iter = 80L,
initial.step = 0.02,
step.shrink = 0.5,
armijo = 1e-04,
min.step = 1e-08,
grad.tol = 1e-07,
recenter = TRUE,
distance.eps = 1e-10,
return.frames = FALSE,
engine = c("cpp", "R")
)Arguments
- coords
Numeric
nbydimcoordinate matrix.- edges
Integer or numeric matrix with two columns containing 1-based graph edge endpoints.
- edge.lengths
Numeric vector of target edge lengths, parallel to
edges.- edge.weights
Optional non-negative edge weights. Defaults to one.
- lambda
Repulsion strength.
- edge.family
Edge potential family, either
"quadratic"or"upper_barrier".- eps.plus
Upper-barrier slack parameter.
- beta
Upper-barrier strength. When
beta <= 0, the edge potential is quadratic.- pair.index
Optional two-column matrix of 1-based vertex pairs for the repulsion term. If
NULLandlambda > 0, all unordered pairs are used.- pair.weights
Optional pair weights, parallel to
pair.index.- repulsion.family
Repulsion potential family, either
"log"or"inverse_power".- repulsion.delta
Small positive softening parameter for pair distances.
- repulsion.power
Power used by the
"inverse_power"repulsion.- max.iter
Maximum number of gradient-descent iterations.
- initial.step
Initial gradient step size.
- step.shrink
Multiplicative shrink factor used by backtracking.
- armijo
Armijo sufficient-decrease coefficient.
- min.step
Minimum allowable step before the stage stops.
- grad.tol
Gradient-norm stopping tolerance.
- recenter
Logical; whether to recenter coordinates after each proposal.
- distance.eps
Small positive distance floor used in derivatives.
- return.frames
Logical; whether to return accepted coordinate frames. Frame 0 is the starting coordinate matrix and later frames are accepted updates.
- engine
Backend engine.
"cpp"is the default;"R"uses the reference implementation.