-
SpringLayoutConfig — Configuration parameters for the spring-layout embedding.
qoolqit.embedding.algorithms.spring_layout_embedding
module
qoolqit.embedding.algorithms.spring_layout_embedding
Classes
Functions
-
spring_layout_embedding — Force-directed embedding, wrapping
nx.spring_layout.
dataclass
SpringLayoutConfig
(iterations: int = 100, threshold: float = 0.0001, seed: int | None = None)
Bases : EmbeddingConfig
Configuration parameters for the spring-layout embedding.
spring_layout_embedding (graph: DataGraph, iterations: int, threshold: float, seed: int | None) → DataGraph
Force-directed embedding, wrapping nx.spring_layout.
Generates a new graph with the same nodes and edges as the original graph, but with node coordinates set to embed edge weights into pairwise distances as wᵢⱼ=1/rᵢⱼ^6.
The positions are generated by nx.spring_layout.
Since nx.spring_layout embeds edge weights as wᵢⱼ = (k/rᵢⱼ)^3, we set:
- k=1 and scale=None to disable global rescaling of positions.
- rescale weights wᵢⱼ -> wᵢⱼ^1/2
to achieve our target embedding wᵢⱼ=1/rᵢⱼ^6.
Check the documentation for `nx.spring_layout` for more information about each parameter
Parameters
-
graph : DataGraph — the graph to embed according to its edge weights.
-
iterations : int — maximum number of iterations to take.
-
threshold : float — Threshold for relative error in node position changes. The iteration stops if force-displacement is below this threshold.
-
seed : int | None — random seed for reproducibility.
Returns
-
DataGraph — graph with the node coordinates set according to the spring-layout embedding.