Tutorials

Staged walkthroughs, from a minimal continuous-optimization run to a full config-driven, multi-objective setup, ending with how to build your own assembler/fitness function/launcher from scratch. Every code snippet has been run against a real navicatGA install and its output verified, except where a page says otherwise (Tutorial 6 needs AaronTools, not installed while writing these). Copy-paste them as a starting point.

Tutorial

You’ll learn

1. Continuous optimization

The core assembler/fitness_function pattern with FloatGenAlgSolver; GenAlgSolver’s shared GA-mechanics params.

2. SMILES fragment optimization

Alphabets, excluded_genes, seeding a starting population, SmilesGenAlgSolver.

3. Editing a real molecule (SELFIES)

Why SELFIES over SMILES; freezing a scaffold and mutating only new positions.

4. Config-driven runs

Moving a Python constructor call into a YAML file with navicatGA.config, using templates/.

5. Multi-objective optimization

Returning several fitness values and combining them with a scalarizer (chimera).

6. 3D structures (XYZ/AaronTools)

Where XYZGenAlgSolver fits, and its extra dependency.

7. Writing your own assembler/fitness/launcher

Building assemble()/score() from scratch for a custom problem, and the launcher patterns for runtime-only values and multi-cycle runs.

8. Logging and saving run artifacts

The standard procedure for deciding what a run writes and who writes it: run directories, fitness-side intermediates, per-cycle trajectories, and what the solver does not keep.