Skip to content

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.