EZGA¶
A modular, multi-objective genetic-algorithm framework for atomistic structure exploration.
EZGA (ezga-lib) evolves populations of atomic structures under one or many objectives —
energy, symmetry, coordination, formation-energy hulls, polymer descriptors, and custom
user objectives — using a pluggable stack of variation operators, selection methods, and
calculators (ASE, MLIPs, custom).
Install¶
pip install ezga-lib
Quick start¶
from ezga import QuickGA
ga = QuickGA(calculator="emt") # any ASE calculator or custom
best = ga.run(generations=50)
print(best)
For full control, build a GAConfig and run the
GeneticAlgorithm engine directly, or use
the general-purpose optimizers in ezga.simple.
Where to go next¶
- API Reference — the stable public entry points.
- Examples — see the
examples/directory in the repository, organized by capability (optimization, objectives, operators, calculators, ensemble sampling, motifs/HiSE, constraints, symbolic regression, reaction networks).
Capabilities at a glance¶
- Multi-objective / Pareto optimization with configurable selection and variation.
- Atomistic search: clusters, bulk, surfaces, molecules, adsorbates, polymers.
- Ensemble sampling: NVT, GCMC, Gibbs, replica-exchange, nested sampling, Wang-Landau, simulated tempering, TMMC, thermodynamic integration, Jarzynski.
- HiSE motif pipeline: harvest, identify, super-motif hierarchy, generation.
- Symbolic regression and general-purpose (non-atomistic) optimization.