Changelog#

All notable changes to mergen will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


Unreleased#

0.1.0 - 2026-07-18#

Initial release.

Added#

  • ParameterSpace — N-dimensional parameter space supporting discrete, continuous (linear/log), integer (linear/log), nominal, and ordinal parameter types, with feasibility constraints and a memory-efficient bijective grid representation using mixed-radix indexing.

  • Sampler — space-filling design generator with prescribed points, focus regions, exclusion zones, named extra point sets, resuming from an existing design, per-dimension weights, and Kennard-Stone validation set construction.

  • Three optimisers: Simulated Annealing (SA) with Iterated Local Search restarts, Stochastic Coordinate Exchange (SCE), and Enhanced Stochastic Evolutionary (ESE).

  • Seven space-filling criteria: \(\mathrm{UMaxPro}\), \(\mathrm{MaxPro}\), \(\phi_p\), \(\mathrm{CD}_2\), \(\mathrm{SL}_2\), and the qualitative-quantitative pair \(\mathrm{MaxPro}_{\mathrm{QQ}}\) and \(\mathrm{QQD}\) for spaces with nominal or ordinal parameters.

  • Six quality metrics (minimum distance, minimax distance, maximum absolute correlation, 2D projection CD2, coefficient of variation of distances, mean distance), with a runtime Monte Carlo quality assessment reporting each metric’s percentile rank against a random baseline.

  • Sampler.compare() — compares criterion and algorithm combinations, optimising each several times from independent, reproducible seeds (n_repeats) and ranking them with a Pareto-frontier and Utopia-point rule over the priority metrics, with optional parallelism across cores (n_jobs).

  • Sampler.run(algorithm=[...]) — runs several algorithms for one criterion and reports the best, optionally in parallel.

  • Sequential design tools (mergen.sequential): extend, fill_around, subsample, run_order, k_fold_split, and nested.

  • Export formats: CSV, JSON, Markdown, LaTeX, HTML, Excel.

  • Visualisation: pairplot, 1D distribution, 2D scatter, pairwise distance distribution, correlation heatmap, quality-metrics chart, and comparison charts including the criterion-by-algorithm percentile heat map.

  • Convenience properties and helpers: space.centroid, space.corners, space.bounds_as_dict, space.random_point().

  • Documentation built with Sphinx: tutorials, task guides, explanation pages, an executed example gallery of fifteen studies, and the full API reference.

  • Continuous integration via GitHub Actions (Python 3.9-3.12).