Releases: tachsin/genoxide
Releases · tachsin/genoxide
Release list
v0.9.1
v0.9.0
Added
- (benchmarks) instruction counts for genoxide only, compared across its versions (#267)
- (python) gx.Cmaes chooses the covariance, full or diagonal (#268)
- batch 4 of the test problems, DTLZ5-7, the binary ZDT5 and WFG1-9, each with its example (#270)
Fixed
- (site) draw WFG2's true front in its six pieces (#272)
- [breaking] a multi-objective front has each genome once, in Rust, Python and the CLI (#273)
- (benchmarks) commit the published run, publish and rerun it with one command, and move radiate to 1.3.2 (#275)
- [breaking] polynomial mutation reaches the bounds, without cancellation near them (#276)
Documentation
- install with cargo add, so the README never names an old version (#265)
v0.8.0
Added
- [breaking] add the test problem library: 16 classic functions and 13 classic multi-objective problems (#177)
- add the engineering design problems and CEC 2006's g01-g06 (#191)
- record the examples' output and a trace of each run, with the population in python's progress (#194)
- (site) draw the berlin52 tour on a map of Berlin's districts (#242)
- add genoxide's logo, wordmark and banner, and use them in the READMEs, on docs.rs and on the docs site (#247)
- change a GA's rates and operators between generations (#248)
- re-evaluate a GA's population when the fitness function changes (#249)
- add examples for the 20 problems of batches 1-3 that had none, with a grid plot on the project pages (#252)
- an example of its own for each of the 25 problems of batches 1-3 that had none (#253)
- an overall benchmark score, and the interactive results linked from the README (#255)
- [breaking] genoxide::math, the same to the bit on every platform, and the test problems use it (#263)
Fixed
- (python) reject NoCrossover with a mutation rate of 0, as documented (#231)
- (python) reject maximizing a test problem, read a batch's objectives from a tuple of columns, and correct the indicator docs (#233)
- skip points with NaN values in IGD+, check MOEA/D's size, and match multi-objective sizes and docs to their promises (#234)
- [breaking] truncation selects from exactly its fraction, and the engineering optima are feasible and the best known (#235)
- [breaking] count BIPOP's first run as a small one, find a relative fitness program on Unix, and name the setting in common mistakes (#238)
- (site) say which run the player plays, keep the player's focus, show the published benchmark charts, and don't publish a page without its README (#239)
- name the operator in a CLI error from its table, and check the test problems against their sources (#241)
- [breaking] an example for every problem, and SHADE's restarts, gx.De's options, CarSideImpact's best known value and four problems' ideal and nadir points (#261)
Documentation
- explain each example's problem, representation, algorithm and output (#193)
- check the examples' sources against the originals, count Kursawe's four pieces, and show the output on the docs site (#198)
- make 0.8 the test problem release in the roadmap, and describe only what exists (#230)
- describe multi-objective stagnation as it works, qualify reproducibility across platforms, and correct the example READMEs and the problems plan (#236)
- link every example to its interactive page on tachsin.gr (#250)
v0.7.1
Performance
- cut the per-trial overhead of differential evolution (0.7.1) (#182)
v0.7.0
Fixed
- [breaking] restart differential evolution at the next ask, and don't restart constrained populations too early (#117)
- [breaking] confirm duplicate children by equality, portable on 32 and 64 bits (#118)
- stop runs that can never end, bound huge sizes, and correct the docs (#121)
- [breaking] don't propose steady-state twins, and limit the initial PSO velocities (#122)
- clearer errors and stricter settings in the Python package (#119)
- correct the benchmark harness and docs, and use numpy fitness in pymoo and PyGAD (#123)
- report stalled runs in Python, and bound genome lengths and workers (#126)
- [breaking] use SHADE's published defaults for differential evolution (#137)
Documentation
- document the Python API's parameters, ranges and errors (#164)
- build the Python API reference with pdoc for GitHub Pages (#162)
- make 0.7 the correctness release, and move GP and neuroevolution to 0.8 (#127)
- keep the README to what helps choose a library (#138)
- shorten the README and move the feature list to docs/features.md (#156)
- tighten AGENTS.md and ROADMAP.md (#157)
- add the PyPI badge (#160)
- match docs/cli.md to the genoxide program (#161)
- fix the api docs and add errors, panics and examples sections (#163)
- add a docs site with the examples in Rust and Python tabs (#165)
- examples in a folder each, in rust and python, with problems from the literature (#166)
- show the benchmark charts of the 0.7 run, with a summary chart on the readme (#175)
- mark 0.7 as released (#176)
v0.6.0
Added
- [breaking] eliminate duplicate children in NSGA-II, NSGA-III, SPEA2 and SMS-EMOA (#109)
- [breaking] restart differential evolution on stagnation, and default to SHADE with a small population (#113)
- add a Python package with numpy genomes, batch and parallel fitness functions (#105)
- add NSGA-III, SPEA2, MOEA/D, SMS-EMOA and a progress callback to the Python package (#112)
Fixed
- [breaking] shuffle the picks of stochastic universal sampling (#103)
Documentation
v0.5.2
Documentation
- benchmark 16 libraries on 14 scenarios, with the methodology and vertical charts (#106)
v0.5.1
Fixed
- handle infinite scores and huge bounds in selection and SBX, and other edge cases (#98)
- handle infinite objective values in SMS-EMOA, SPEA2 and hypervolume contributions, and duplicate MOEA/D weights (#99)
- make DE trials change a gene that can change, and bound lambda (#101)
- clearer errors from the genoxide program and checkpoints (#102)
- show observers the individuals migrants replace, and fix engine edge cases (#100)
v0.5.0
Added
- add the island model with ring, fully connected and random migration (#82)
- add batch evaluation of a whole generation in one call (#84)
- add progress reporting and a tracing feature (#86)
- add checkpoints to resume a run exactly, behind a serde feature (#88)
- add asynchronous evaluation with a steady-state GA (#90)
- add the genoxide program for runs described in TOML or JSON files (#92)
Documentation
- add a GPU example of batch evaluation with wgpu (#93)
v0.4.0
Added
- add multi-objective scores, constrained dominance and non-dominated sorting (#58)
- add the multi-objective engine and NSGA-II (#60)
- add multi-objective indicators: hypervolume, IGD, IGD+, GD and spread (#62)
- add a Pareto archive of non-dominated solutions (#64)
- add the ZDT and DTLZ test problems and Das-Dennis reference points (#66)
- add NSGA-III with reference directions (#68)
- add SPEA2, the strength Pareto evolutionary algorithm 2 (#72)
- add MOEA/D with Tchebycheff and PBI decomposition (#74)
- add SMS-EMOA and exclusive hypervolume contributions (#76)
Fixed
- [breaking] mutate each gene independently at the per-gene rate (#70)
Documentation
- benchmark multi-objective algorithms against pymoo and DEAP (#77)