hdim-opt: High-Dimensional Optimization Toolkit
Numerical optimization package for complex, high-dimensional problems. hdim_opt is a lightweight and comprehensive suite to streamline sampling, optimization, and analysis. Home of the QUASAR evolutionary algorithm and Hyperellipsoid quasi-Monte Carlo 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 Optimizer
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]).
HDS Sampler
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]).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hdim_opt-1.6.0.tar.gz.
File metadata
- Download URL: hdim_opt-1.6.0.tar.gz
- Upload date:
- Size: 45.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52fd2fd5617705f64ef61ad984d9f0b08705e59225fa8e8807062fb2ac966187
|
|
| MD5 |
727496a3298f084f333c2c6991c6c55a
|
|
| BLAKE2b-256 |
15ed048cc27d7b811b5fa7d1588a6b15c1064adbb0d890d89ed3d8a3557c2c12
|
File details
Details for the file hdim_opt-1.6.0-py3-none-any.whl.
File metadata
- Download URL: hdim_opt-1.6.0-py3-none-any.whl
- Upload date:
- Size: 46.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2edcdb51937d5f932311a96b24a205e33bfd0027ed8856bc5176ee5842f03d0a
|
|
| MD5 |
0994e7c3579ebd4b48649a484c515d88
|
|
| BLAKE2b-256 |
d4619dbdd2ba62098bb65e37bc2b49dba0e90a9f8bccc78956270693fa9244f7
|