Skip to main content

hdim-opt: High-Dimensional Optimization Toolkit

hdim_opt is a lightweight, comprehensive Python toolkit to streamline numerical optimization, sampling, and analysis of high-dimensional function landscapes and datasets. Home of the QUASAR evolutionary algorithm and hyperellipsoid density sampling.

All core functions, listed below, are single-line executable and depend on three essential parameters: [obj_function, bounds, n_samples]:

Sampling

  • uniform: Generate uniform QMC sample sequences (via Scipy.stats.qmc).
  • hyperellipsoid: Generate hyperellipsoidal sample sequence; may accelerate optimization.
  • isotropize: Isotropize the input data via zero-phase component analysis (ZCA).
  • encode_bipolar: Bipolar-logarithmic transform, when negative values and exponents are present.
  • lorentzian: Fit a Lorentzian/Cauchy kernel density estimation (KDE) to the data.

Optimization

  • quasar: Optimization using the QUASAR evolutionary algorithm.
  • minimize: Optimization using gradient-based minimization (via SciPy.minimize).
  • symbolic: Symbolic regression to approximate the input data or function (via gplearn).
  • stepAIC: Stepwise feature selection for linear or logistic regression (R's MASS:stepAIC).

Analysis

  • sensitivity: Sensitivity analysis to quantify each dimension's influence (via SALib).
  • hyperslice: Create a hyperslice of the function's underlying solution space.
  • waveform: Decompose any 2D waveform.
  • analyze: Analyze any input dataset.

Installation

Install hdim_opt directly from PyPI:

pip install hdim_opt

Example Usage

import hdim_opt as h

### Parameter Space
n_samples = 2**10
n_dimensions = 10
bounds = [(-100,100)] * n_dimensions # Parameter bounds
obj_func = h.test_functions.rastrigin # Test function

### Sampling
uniform_samples = h.uniform(n_samples, bounds, method='sobol') # Uniform sampling
ellipsoid_samples = h.hyperellipsoid(n_samples, bounds, verbose=True) # Hyperellipsoid sampling
iso_samples, iso_params = h.isotropize(ellipsoid_samples) # Isotropize data (ZCA)
bipolar_log_samples = h.encode_bipolar(iso_samples, [b[0] for b in bounds]) # Bipolar-logarithm transform
kde = h.lorentzian(iso_samples, 1.0, iso_samples, verbose=True) # Lorentzian multivariate KDE

### Optimization
solution, fitness = h.quasar(obj_func, bounds, init=ellipsoid_samples) # Evolutionary optimization
local_sol, local_fit = h.minimize(obj_func, bounds, init=solution) # Gradient-based optimization
all_expr, best_expr = h.symbolic(obj_func, bounds) # Symbolic regression
opt_features, opt_model = h.stepAIC(iso_samples, solution) # R's stepAIC for linear/logistic regression

### Analysis
Si, S2 = h.sensitivity(obj_func, bounds) # Sensitivity analysis
slice_data, stats = h.hyperslice(obj_func, bounds, slice_dims=(0,1)) # Estimate/hyperslice the solution space
signal_results = h.waveform(uniform_samples[:,0], slice_data.iloc[:,1]) # Analyze 2D waveform
h.analyze(slice_data) # Analyze any numerical dataset

QUASAR Optimization

QUASAR (Quasi-Adaptive Search with Asymptotic Reinitialization) is a quantum-inspired evolutionary algorithm, highly efficient for minimizing high-dimensional, non-differentiable, and non-parametric objective functions.

  • Benefit: Significant improvements in convergence speed and solution quality for high-dimensional spaces compared to standard optimization algorithms like Differential Evolution and L-SHADE. (Reference: [https://arxiv.org/abs/2511.13843]).

Hyperellipsoid Sampling

HDS (Hyperellipsoid Density Sampling) is a non-uniform Quasi-Monte Carlo sampling method, specifically designed to exploit promising regions of the parameter space.

  • Benefit: Provides control over high-dimensional sample distributions. Results in higher average solution quality when initializing optimization. (Reference: [https://arxiv.org/abs/2511.07836]).

Issues & Support

Bug reports are highly appreciated and will be handled in a timely manner.

Metadata

Release files for hdim-opt 1.6.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hdim-opt 1.6.2
File Size Uploaded
hdim_opt-1.6.2.tar.gz 45.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hdim-opt 1.6.2
File Interpreter ABI Platform
hdim_opt-1.6.2-py3-none-any.whl Python 3 none any Details

Total release size: 91.1 kB

Release files / hdim_opt-1.6.2.tar.gz

Download URL hdim_opt-1.6.2.tar.gz
Size 45.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4486571d3f59fe9eab38f938f50f128aa4c89d5164941e7ec4d09049e012b7d4
BLAKE2b-256 checksum
How to use checksums
597002ce6b40887a883e7ecc881f9ba641abd7214867c32181f2abd09c2d5604
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release files / hdim_opt-1.6.2-py3-none-any.whl

Download URL hdim_opt-1.6.2-py3-none-any.whl
Size 46.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c33d0fd550164fe454ab5d8a3bc6487bb65c076dfb442040d97b3b366c5a1922
BLAKE2b-256 checksum
How to use checksums
dcbce445e7d416aeaeeff83c327c1d43bba2defce10ed2345c8eb664f86fc6f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release history Release notifications | RSS feed

1.7.1

2 release files

1.7.0

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

This release

1.6.2 This release

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.81

2 release files

1.4.80

2 release files

1.4.72

2 release files

1.4.71

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page