capturegraph.scheduling.distance.combination
#
Distance Function Combination#
Combines multiple distance functions into a single composite metric using Euclidean distance (L2 norm) in the multi-dimensional distance space.
CombinedBatchDistance
#
Combined distance function with batch computation support.
Source code in capturegraph-lib/capturegraph/scheduling/distance/combination.py
__init__(distance_fns)
#
__call__(a, b)
#
Compute distance between two sessions (single pair).
Source code in capturegraph-lib/capturegraph/scheduling/distance/combination.py
matrix(sessions_a, sessions_b=None)
#
Compute pairwise distance matrix efficiently.
Source code in capturegraph-lib/capturegraph/scheduling/distance/combination.py
combine(**kwargs)
#
Combine multiple distance functions into a single composite metric.
Each distance function can be provided as a kwarg where the key is the attribute path to extract from each session.
The combined distance is the Euclidean (L2) norm:
d_combined = sqrt(d1² + d2² + ... + dn²)
The returned function supports both single-pair computation via __call__
and efficient batch computation via matrix().
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Callable[[Any, Any], float]
|
Named distance functions. The key is the attribute path.
|
{}
|
Returns:
| Type | Description |
|---|---|
CombinedBatchDistance
|
A combined distance function with: |
CombinedBatchDistance
|
|
CombinedBatchDistance
|
|
Example
import capturegraph.scheduling as cgsh
# Using kwargs (cleanest for attribute-based distances)
dist_fn = cgsh.distance.combine(
solar_angle=cgsh.distance.solar(sigma_deg=2.0),
location=cgsh.distance.location(sigma_m=100.0),
)
# Single pair distance (existing API)
d = dist_fn(session_a, session_b)
# Batch: compute entire pairwise matrix (new optimized API)
matrix = dist_fn.matrix(potential_sessions, existing_sessions)