qoolqit.embedding
embedding
Collection of graph and matrix embedding algorithms.
Modules:
-
algorithms– -
base_embedder– -
graph_embedder– -
matrix_embedder–
Classes:
-
BaseEmbedder–Abstract base class for all embedders.
-
Blade–A matrix to graph embedder using the BLaDE algorithm.
-
BladeConfig–Configuration parameters to embed with BLaDE.
-
EmbedderConfig–Base abstract dataclass for all embedding algorithm configurations.
-
GraphToGraphEmbedder–A family of embedders that map a graph to a graph.
-
InteractionEmbedder–A matrix to graph embedder using the interaction embedding algorithm.
-
InteractionEmbedderConfig–Configuration parameters for the interaction embedding.
-
MatrixToGraphEmbedder–A family of embedders that map a matrix to a graph.
-
SpringLayoutConfig–Configuration parameters for the spring-layout embedding.
-
SpringLayoutEmbedder–A graph to graph embedder using the spring layout algorithm.
BaseEmbedder
Abstract base class for all embedders.
An embedder is a function that maps a InDataType to an OutDataType through an embedding algorithm. Parameters of the embedding algorithm can be customized through the EmbedderConfig.
An algorithm should be a standalone function that takes a piece of data of an InDataType and maps it to an OutDataType. Any extra configuration parameters taken as input by the algorithm function should be defined in the config dataclass, inheriting from EmbedderConfig.
Parameters:
-
algorithm(Callable) –a callable to the algorithm function.
-
config(ConfigType) –a config dataclass holding parameter values for the algorithm.
Methods:
-
embed–Validates the input, runs the embedding algorithm, and validates the output.
-
validate_input–Checks if the given data is compatible with the embedder.
-
validate_output–Checks if the resulting output is expected by the embedder.
Attributes:
-
algorithm(Callable) –Returns the callable to the embedding algorithm.
-
config(ConfigType) –Returns the config for the embedding algorithm.
-
info(str) –Prints info about the embedding algorithm.
Source code in qoolqit/embedding/base_embedder.py
embed
Validates the input, runs the embedding algorithm, and validates the output.
Parameters:
-
data(InDataType) –the data to embed.
Source code in qoolqit/embedding/base_embedder.py
validate_input
abstractmethod
Checks if the given data is compatible with the embedder.
Each embedder should write its own data validator. If the data is not of the supported type or in the specific supported format for that embedder, an error should be raised.
Parameters:
-
data(InDataType) –the data to validate.
Raises:
-
TypeError–if the data is not of the supported type.
-
SomeError–some other error if other constraints are not met.
Source code in qoolqit/embedding/base_embedder.py
validate_output
abstractmethod
Checks if the resulting output is expected by the embedder.
Each embedder should write its own output validator. If the result is not of the supported type or in the specific supported format for that embedder, an error should be raised.
Parameters:
-
result(OutDataType) –the output to validate.
Raises:
-
TypeError–if the output is not of the supported type.
-
SomeError–some other error if other constraints are not met.
Source code in qoolqit/embedding/base_embedder.py
Blade
Blade(config: BladeConfig = BladeConfig())
A matrix to graph embedder using the BLaDE algorithm.
Parameters:
-
config(BladeConfig, default:BladeConfig()) –configuration object for the BLaDE algorithm.
Methods:
-
embed–Return a DataGraph with coordinates that embeds the input matrix.
Attributes:
-
algorithm(Callable) –Returns the callable to the embedding algorithm.
-
config(ConfigType) –Returns the config for the embedding algorithm.
-
info(str) –Prints info about the embedding algorithm.
Source code in qoolqit/embedding/matrix_embedder.py
embed
embed(data: ndarray) -> DataGraph
Return a DataGraph with coordinates that embeds the input matrix.
Validates the input, runs the embedding algorithm, and validates the output.
Parameters:
-
data(ndarray) –the matrix to embed into a DataGraph with coordinates.
Source code in qoolqit/embedding/matrix_embedder.py
BladeConfig
dataclass
BladeConfig(
max_min_dist_ratio: float | None = None,
dimensions: tuple[int, ...] = default_dimensions,
starting_positions: ndarray | None = None,
pca: bool = default_pca,
steps_per_round: int = default_steps_per_round,
compute_weight_relative_threshold: Callable[
[float], float
] = default_compute_weight_relative_threshold,
compute_max_distance_to_walk: Callable[
[float, float], float | tuple[float, float, float]
] = default_compute_max_distance_to_walk,
compute_regulation_cursor: Callable[
[float], float
] = default_compute_regulation_cursor,
compute_ratio_step_factors: Callable[
[float], float
] = default_compute_ratio_step_factors,
ratio_rerun: int = default_ratio_rerun,
device: InitVar[Device | None] = None,
)
Configuration parameters to embed with BLaDE.
-
API reference
qoolqit.embedding
embeddingBlade
Methods:
-
__post_init__–Post initialization of the
BladeConfigdataclass. -
dict–Returns the dataclass as a dictionary.
__post_init__
__post_init__(device: Device | None) -> None
Post initialization of the BladeConfig dataclass.
Set the max_min_dist_ratio argument of the blade_embedding algorithm
based on the specification of the selected device.
Parameters:
-
device(Device) –the QoolQit device to use to set the maximum ratio between the maximum radial distance and the minimum pairwise distance between atoms.
Source code in qoolqit/embedding/algorithms/blade/blade.py
EmbedderConfig
dataclass
Base abstract dataclass for all embedding algorithm configurations.
Subclasses define parameters specific to their algorithms. Each config should define fields that directly translate to arguments in the respective embedding function it configures.
Methods:
-
dict–Returns the dataclass as a dictionary.
GraphToGraphEmbedder
A family of embedders that map a graph to a graph.
Focused on unit-disk graph embedding, where the goal is to find a set of coordinates for a graph that has no coordinates, such that the final unit-disk edges matches the set of edges in the original graph.
A custom algorithm and configuration can be set at initialization.
An algorithm should be a standalone function that takes a piece of data of an InDataType and maps it to an OutDataType. Any extra configuration parameters taken as input by the algorithm function should be defined in the config dataclass, inheriting from EmbedderConfig.
Parameters:
-
algorithm(Callable) –a callable to the algorithm function.
-
config(ConfigType) –a config dataclass holding parameter values for the algorithm.
Methods:
-
embed–Validates the input, runs the embedding algorithm, and validates the output.
Attributes:
-
algorithm(Callable) –Returns the callable to the embedding algorithm.
-
config(ConfigType) –Returns the config for the embedding algorithm.
-
info(str) –Prints info about the embedding algorithm.
Source code in qoolqit/embedding/base_embedder.py
embed
Validates the input, runs the embedding algorithm, and validates the output.
Parameters:
-
data(InDataType) –the data to embed.
Source code in qoolqit/embedding/base_embedder.py
InteractionEmbedder
A matrix to graph embedder using the interaction embedding algorithm.
Methods:
-
embed–Validates the input, runs the embedding algorithm, and validates the output.
Attributes:
-
algorithm(Callable) –Returns the callable to the embedding algorithm.
-
config(ConfigType) –Returns the config for the embedding algorithm.
-
info(str) –Prints info about the embedding algorithm.
Source code in qoolqit/embedding/matrix_embedder.py
embed
Validates the input, runs the embedding algorithm, and validates the output.
Parameters:
-
data(InDataType) –the data to embed.
Source code in qoolqit/embedding/base_embedder.py
InteractionEmbedderConfig
dataclass
InteractionEmbedderConfig(
method: str = "Nelder-Mead",
maxiter: int = 200000,
tol: float = 1e-08,
x0: ndarray | None = None,
)
MatrixToGraphEmbedder
A family of embedders that map a matrix to a graph.
A custom algorithm and configuration can be set at initialization.
An algorithm should be a standalone function that takes a piece of data of an InDataType and maps it to an OutDataType. Any extra configuration parameters taken as input by the algorithm function should be defined in the config dataclass, inheriting from EmbedderConfig.
Parameters:
-
algorithm(Callable) –a callable to the algorithm function.
-
config(ConfigType) –a config dataclass holding parameter values for the algorithm.
Methods:
-
embed–Validates the input, runs the embedding algorithm, and validates the output.
Attributes:
-
algorithm(Callable) –Returns the callable to the embedding algorithm.
-
config(ConfigType) –Returns the config for the embedding algorithm.
-
info(str) –Prints info about the embedding algorithm.
Source code in qoolqit/embedding/base_embedder.py
embed
Validates the input, runs the embedding algorithm, and validates the output.
Parameters:
-
data(InDataType) –the data to embed.
Source code in qoolqit/embedding/base_embedder.py
SpringLayoutConfig
dataclass
Configuration parameters for the spring-layout embedding.
-
API reference
qoolqit.embedding
embeddingSpringLayoutEmbedder
Methods:
-
dict–Returns the dataclass as a dictionary.
SpringLayoutEmbedder
SpringLayoutEmbedder(
config: SpringLayoutConfig = SpringLayoutConfig(),
)
A graph to graph embedder using the spring layout algorithm.
Methods:
-
embed–Validates the input, runs the embedding algorithm, and validates the output.
Attributes:
-
algorithm(Callable) –Returns the callable to the embedding algorithm.
-
config(ConfigType) –Returns the config for the embedding algorithm.
-
info(str) –Prints info about the embedding algorithm.
Source code in qoolqit/embedding/graph_embedder.py
embed
Validates the input, runs the embedding algorithm, and validates the output.
Parameters:
-
data(InDataType) –the data to embed.