cotengra.hyperoptimizers._param_mapping

Shared parameter mapping utilities for hyper-optimization backends.

Provides classes for mapping heterogeneous parameter types (float, int, string, bool) to and from a uniform [-1, 1] optimization space, plus an LCB-based method selector.

Classes

LCBOptimizer

Lower Confidence Bound Optimizer.

Param

A basic parameter class for mapping various types of parameters to

ParamFloat

A basic parameter class for mapping various types of parameters to

ParamFloatExp

An exponentially distributed (i.e. uniform in logspace) parameter.

ParamInt

A basic parameter class for mapping various types of parameters to

ParamString

A basic parameter class for mapping various types of parameters to

ParamBool

A basic parameter class for mapping various types of parameters to

Functions

build_params(space[, exponential_param_power])

Build a list of Param objects from a search space dict.

convert_raw(params, x)

Convert a raw vector from [-1, 1] space into named parameters.

num_params(params)

Return the total number of raw dimensions for a list of params.

generate_lhs_points(ndim, n, rng)

Generate n Latin Hypercube Sampled points in [-1, 1]^ndim.

Module Contents

class cotengra.hyperoptimizers._param_mapping.LCBOptimizer(options, exploration=1.0, temperature=1.0, seed=None)[source]

Lower Confidence Bound Optimizer.

This optimizer selects the option with the lowest lower confidence bound.

options
index
nopt
counts
values
total = 0
exploration = 1.0
temperature = 1.0
rng
ask()[source]

Suggest an option based on the lower confidence bound.

tell(option, score)[source]
class cotengra.hyperoptimizers._param_mapping.Param(name)[source]

A basic parameter class for mapping various types of parameters to and from uniform optimization space of [-1, 1].

name
size = 1
abstractmethod get_raw_bounds()[source]
abstractmethod convert_raw(vi)[source]
class cotengra.hyperoptimizers._param_mapping.ParamFloat(min, max, **kwargs)[source]

Bases: Param

A basic parameter class for mapping various types of parameters to and from uniform optimization space of [-1, 1].

min
max
convert_raw(x)[source]
class cotengra.hyperoptimizers._param_mapping.ParamFloatExp(min, max, power=0.5, **kwargs)[source]

Bases: ParamFloat

An exponentially distributed (i.e. uniform in logspace) parameter.

power = 0.5
convert_raw(x)[source]
class cotengra.hyperoptimizers._param_mapping.ParamInt(min, max, **kwargs)[source]

Bases: Param

A basic parameter class for mapping various types of parameters to and from uniform optimization space of [-1, 1].

min
max
convert_raw(x)[source]
class cotengra.hyperoptimizers._param_mapping.ParamString(options, name)[source]

Bases: Param

A basic parameter class for mapping various types of parameters to and from uniform optimization space of [-1, 1].

options
size
name
convert_raw(x)[source]
class cotengra.hyperoptimizers._param_mapping.ParamBool(name)[source]

Bases: Param

A basic parameter class for mapping various types of parameters to and from uniform optimization space of [-1, 1].

size = 2
name
convert_raw(x)[source]
cotengra.hyperoptimizers._param_mapping.build_params(space, exponential_param_power=None)[source]

Build a list of Param objects from a search space dict.

Parameters:
  • space (dict[str, dict]) – The search space for a single method.

  • exponential_param_power (float, optional) – Power parameter for ParamFloatExp.

Returns:

params

Return type:

list[Param]

cotengra.hyperoptimizers._param_mapping.convert_raw(params, x)[source]

Convert a raw vector from [-1, 1] space into named parameters.

Parameters:
  • params (list[Param]) – The parameter definitions.

  • x (array_like) – The raw vector.

Returns:

named_params

Return type:

dict[str, any]

cotengra.hyperoptimizers._param_mapping.num_params(params)[source]

Return the total number of raw dimensions for a list of params.

cotengra.hyperoptimizers._param_mapping.generate_lhs_points(ndim, n, rng)[source]

Generate n Latin Hypercube Sampled points in [-1, 1]^ndim.

Each dimension is divided into n equal strata and exactly one sample is drawn uniformly within each stratum. The stratum-to-sample assignment is independently permuted per dimension, ensuring good marginal coverage with no external dependencies.

Parameters:
  • ndim (int) – Number of raw dimensions.

  • n (int) – Number of points to generate.

  • rng (random.Random) – Random number generator instance.

Returns:

pointsn points, each a list of ndim floats in [-1, 1].

Return type:

list[list[float]]