Skip to main content

hdim-opt: High-Dimensional Optimization Toolkit

hdim_opt is a lightweight and comprehensive Python toolkit to streamline numerical optimization, sampling, and analysis of high-dimensional function landscapes and datasets. Several cohesive methods are provided for random & quasi-Monte Carlo sampling, gradient-based & non-parametric optimization, statistical analyses & visualizations of function landscapes & datasets.

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.

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).

Risk

  • volatility: Quantifies the volatility of a given solution within its local landscape.
  • risk_analysis: Analyzes the conditional value at risk for a given 1-D distribution.

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 from PyPI:

pip install hdim_opt

Example Usage

import hdim_opt as h

### Parameter Space
n_samples = 2**10
n_dimensions = 100
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

### 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 feature selection & linear regression

### Risk
vol_data, vol_stats = h.volatility(obj_func, bounds, solution, noise=0.01) # Local instability of a solution
risk_stats = h.risk_analysis(vol_data['objective']) # Conditional value at risk for a 1-D distribution

### Analysis
Si, S2 = h.sensitivity(obj_func, bounds) # Sensitivity analysis
slice_data, slice_stats = h.hyperslice(obj_func, bounds, slice_dims=(0,1), n_samples=2**7) # Estimate solution space
signal_results = h.waveform(slice_data['x0'], slice_data['objective']) # Analyze 2D waveform
h.analyze(slice_data) # Analyze any numerical dataset

Issues & Support

Bug reports are highly appreciated and will be handled timely.

QUASAR Optimization

Quasi-Adaptive Search with Asymptotic Reinitialization is an evolutionary algorithm highly efficient for minimizing high-dimensional, non-differentiable, and non-parametric objective functions. ([https://arxiv.org/abs/2511.13843]).

Hyperellipsoid Sampling

Hyperellipsoid Density Sampling is a non-uniform Quasi-Monte Carlo sampling method, designed to exploit promising regions of the parameter space ([https://arxiv.org/abs/2511.07836]).

Metadata

Release files for hdim-opt 1.7.1

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.7.1
File Size Uploaded
hdim_opt-1.7.1.tar.gz 49.0 kB Details

Built distribution (wheel)

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

Total release size: 99.3 kB

Release files / hdim_opt-1.7.1.tar.gz

Download URL hdim_opt-1.7.1.tar.gz
Size 49.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c05f99cbf90a9f449e9ec2065ab1c821e4bd92335d0396ebdd0c509490d7eed8
BLAKE2b-256 checksum
How to use checksums
ec6161dac267e16d338ea1a48632b812cd11ab644eeb32788244dbba4fa6d32f
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.7.1-py3-none-any.whl

Download URL hdim_opt-1.7.1-py3-none-any.whl
Size 50.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33470db4f7782089b3c81084581b2ed31a112eb25b27238ee521cd31a8eec06c
BLAKE2b-256 checksum
How to use checksums
ebee4408f7739ed32fd9ca019ca3adb6b26889447e63f6b16c6597d4fa42385f
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

This release

1.7.1 This release

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

1.6.2

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