setse_shift: setse algorithm with automatic timestep adjustment

View source: R/setse_shift.R

setse_shiftR Documentation

setse algorithm with automatic timestep adjustment

Description

The basic setse function with added timestep adjustment. The time shift functionality automatically adjusts the timestep if the convergence process is noisy

Usage

setse_shift(
  g,
  force = "force",
  distance = "distance",
  edge_name = "edge_name",
  k = "k",
  tstep = 0.02,
  mass = 1,
  max_iter = 20000,
  coef_drag = 1,
  tol = 1e-06,
  sparse = FALSE,
  two_node_solution = TRUE,
  sample = 1,
  static_limit = NULL,
  tstep_change = 0.5
)

Arguments

g

An igraph object

force

A character string. This is the node attribute that contains the force the nodes exert on the network.

distance

A character string. The edge attribute that contains the original/horizontal distance between nodes.

edge_name

A character string. This is the edge attribute that contains the edge_name of the edges.

k

A character string. This is k for the moment don't change it.

tstep

A numeric. The time interval used to iterate through the network dynamics.

mass

A numeric. This is the mass constant of the nodes in normalised networks this is set to 1.

max_iter

An integer. The maximum number of iterations before stopping. Larger networks usually need more iterations.

coef_drag

A numeric.

tol

A numeric. The tolerance factor for early stopping.

sparse

Logical. Whether or not the function should be run using sparse matrices. must match the actual matrix, this could prob be automated

two_node_solution

Logical. The Newton-Raphson algo is used to find the correct angle

sample

Integer. The dynamics will be stored only if the iteration number is a multiple of the sample. This can greatly reduce the size of the results file for large numbers of iterations. Must be a multiple of the max_iter

static_limit

Numeric. The maximum value the static force can reach before the algorithm terminates early. This prevents calculation in a diverging system. The value should be set to some multiple greater than one of the force in the system. If left blank the static limit is twice the system absolute mean force.

tstep_change

a numeric scaler. A value between 0 and one, the fraction the new timestep will be relative to the previous one this can stop the momentum of the nodes forcing a divergence, but also can slow down the process. default is TRUE.

Details

This is the basic SETS embeddings algorithm, it outputs all elements of the embeddings as well as convergence dynamics. It is a wrapper around the core SETS algorithm which requires data preparation and only produces node embeddings and network dynamics. There is little reason to use this function as setse_auto and setse_bicomp are faster and easier to use.

Value

A list of three elements. A data frame with the height embeddings of the network, a data frame of the edge embeddings as well as the convergence dynamics dataframe for the network.

See Also

setse_auto setse_bicomp

Examples

## Not run: 
biconnected_network %>%
prepare_continuous_force(., node_names = "name", force_var = "force") %>%
#embed the network using setse
setse_shift(., k = "weight", tstep = 0.000029)

## End(Not run)

JonnoB/rSETSe documentation built on July 25, 2022, 4:56 p.m.