@@ -61,6 +61,10 @@ The ``seed`` parameter takes precedence over the config file setting:
6161 # Config file has seed=100, but this uses seed=42
6262 pop = neat.Population(config, seed = 42 )
6363
64+ Note that passing ``seed=None `` explicitly to :class: `~neat.population.Population ` disables seeding from the
65+ configuration file even if ``[NEAT] `` contains a ``seed = ... `` entry; omitting the ``seed `` argument entirely
66+ causes :class: `~neat.population.Population ` to use ``config.seed `` if present.
67+
6468Random Behavior (Default)
6569^^^^^^^^^^^^^^^^^^^^^^^^^^
6670
@@ -184,6 +188,36 @@ Checkpoints preserve:
184188
185189This means checkpointing maintains reproducibility even without explicitly setting a seed when restoring.
186190
191+ .. note ::
192+
193+ **Checkpoint vs. uninterrupted-run trajectories **
194+
195+ Restoring the *same * checkpoint multiple times produces a deterministic
196+ continuation of evolution: given a fixed checkpoint file and fitness
197+ function, repeated restores followed by additional generations will take
198+ the same evolutionary path.
199+
200+ However, there is one subtle limitation: the sequence of populations you
201+ get when running **without ** checkpointing is not currently guaranteed to be
202+ *bit-for-bit identical * to the sequence you get when running **with **
203+ checkpointing and later restoring from a checkpoint at generation ``N ``.
204+
205+ The reason is that some helper objects involved in evolution (such as the
206+ reproduction and stagnation helpers) are reconstructed when a checkpoint is
207+ restored rather than being pickled and resumed exactly as-is. Although
208+ their behavior is designed to be equivalent, and key invariants (population,
209+ species, random state, innovation tracking) are preserved, there are still
210+ rare edge cases where the evolutionary trajectory after generation ``N `` may
211+ differ slightly between an uninterrupted run and a resumed run.
212+
213+ In practice this means:
214+
215+ * Checkpoints are suitable for pausing/resuming long runs and for
216+ experiment management.
217+ * Checkpoints do **not ** currently provide a strict guarantee that
218+ "run-with-checkpoint" and "run-without-checkpoint" will produce
219+ identical post-``N `` populations, even when using the same seed.
220+
187221Limitations
188222-----------
189223
0 commit comments