Learn R Programming

cograph (version 2.7.2)

supra_adjacency: Supra-Adjacency Matrix

Description

Builds the supra-adjacency matrix for multilayer networks. Diagonal blocks = intra-layer, off-diagonal = inter-layer.

Usage

supra_adjacency(
  layers,
  omega = 1,
  coupling = c("diagonal", "full", "custom"),
  interlayer_matrices = NULL
)

supra( layers, omega = 1, coupling = c("diagonal", "full", "custom"), interlayer_matrices = NULL )

Value

A supra-adjacency matrix of dimension (NL) x (NL) with class c("supra_adjacency", "matrix"). Diagonal N x N blocks hold the intra-layer adjacencies and off-diagonal blocks the inter-layer coupling. The attributes "n_nodes", "n_layers", "node_names", "layer_names", "omega" and "coupling" record the construction and are read back by supra_layer() and supra_interlayer().

Arguments

layers

List of adjacency matrices (same dimensions)

omega

Inter-layer coupling coefficient (scalar or L x L matrix)

coupling

Coupling type: "diagonal", "full", or "custom"

interlayer_matrices

For coupling = "custom", a list of inter-layer matrices. Accepted shapes:

  • Named list with keys "a_b" (integer layer indices) or "<layer_name_a>_<layer_name_b>"; either order works.

  • Unnamed list of length choose(L, 2) giving every pair in upper-triangle row-major order: (1,2), (1,3), ..., (1,L), (2,3), ..., (L-1,L).

  • Unnamed list of length L-1 giving adjacent pairs only (legacy chain layout): entry i is the coupling for (i, i+1). Non-adjacent pairs use omega[a,b] * I.

If no entry matches a pair and no legacy chain layout applies, a warning is emitted and the diagonal default omega[a,b] * I is used (previously this happened silently).

Examples

Run this code
nodes <- c("A", "B", "C")
l1 <- matrix(c(0, 1, 0, 1, 0, 1, 0, 1, 0), 3, 3, dimnames = list(nodes, nodes))
l2 <- matrix(c(0, 1, 1, 1, 0, 0, 1, 0, 0), 3, 3, dimnames = list(nodes, nodes))
layers <- list(L1 = l1, L2 = l2)

# 3 nodes x 2 layers gives a 6 x 6 supra-adjacency matrix.
s <- supra_adjacency(layers, omega = 0.5)
dim(s)
s

Run the code above in your browser using DataLab