You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+21Lines changed: 21 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [1.0.0] - 2025-01-09
11
+
12
+
### Added
13
+
-**Innovation Number Tracking**: Full implementation of innovation numbers as described in the original NEAT paper (Stanley & Miikkulainen, 2002, Section 3.2)
14
+
- Global innovation counter that increments across all generations
15
+
- Same-generation deduplication of identical mutations
16
+
- Innovation-based gene matching during crossover
17
+
- Proper historical marking of genes for speciation
18
+
- New `InnovationTracker` class in `neat/innovation.py`
19
+
- Comprehensive unit tests in `tests/test_innovation.py` (19 tests)
20
+
- Integration tests in `tests/test_innovation_integration.py` (6 tests)
21
+
- Innovation tracking documentation in `INNOVATION_TRACKING_IMPLEMENTATION.md`
22
+
10
23
### Changed
24
+
-**BREAKING**: `DefaultConnectionGene.__init__()` now requires mandatory `innovation` parameter
25
+
-**BREAKING**: All connection gene creation must include innovation numbers
26
+
-**BREAKING**: Crossover now matches genes primarily by innovation number, not tuple keys
27
+
-**BREAKING**: Old checkpoints from pre-1.0 versions are incompatible with 1.0.0+
28
+
-`DefaultGenome.configure_crossover()` updated to match genes by innovation number per NEAT paper Figure 4
29
+
- All genome initialization methods assign innovation numbers to connections
30
+
-`DefaultReproduction` now creates and manages an `InnovationTracker` instance
31
+
- Checkpoint format updated to preserve innovation tracker state
11
32
-`ParallelEvaluator` now implements context manager protocol (`__enter__`/`__exit__`) for proper resource cleanup
12
33
- Improved resource management in `ParallelEvaluator` to prevent multiprocessing pool leaks
13
34
- Fixed `ParallelEvaluator.__del__()` to properly clean up resources without calling `terminate()` unnecessarily
0 commit comments