Exploratory Landscape Analysis Submodule

ela_difficulty(sample_once, loss_value, N_max=1024, max_pairs=1024, compute_hessian=None, n_curvature_points=128, curvature_dims=None, bounds=None, seed=None, verbose=True, return_features=True, n_jobs=-1)[source]

Compute ELA difficulty scores based on: - convexity tests - finite-difference curvature tests This function performs global sampling only once and reuses: - sampled points - sampled loss values - y_scale - parameter scale - random generator

Parameters:
  • sample_once (Callable[[], list[float]]) – Function returning one parameter vector theta.

  • loss_value (Callable[[ndarray], float]) – Function returning scalar loss at theta.

  • N – Number of global samples.

  • max_pairs (int) – Maximum number of pairs for convexity test.

  • n_curvature_points (int) – Number of points used for curvature estimation.

  • curvature_dims (int | None) – Number of dimensions used for curvature. If None, all dimensions are used.

  • epsilon – Relative finite-difference step. For angles, h = epsilon * angle_period.

  • bounds (tuple[ArrayLike, ArrayLike] | None) – Optional bounds (lower, upper). If None, bounds are inferred from global samples.

  • seed (int | None) – Random seed.

  • verbose (bool) – Print progress and diagnostics.

  • return_features (bool) – If True, returns detailed features.

  • N_max (int)

  • compute_hessian (Callable[[ndarray, ndarray], float] | None)

  • n_jobs (int)

Returns:

scores, (and features If return_features is True)