evolvable 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +2 -0
- data/CHANGELOG.md +24 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +44 -25
- data/README.md +498 -190
- data/README_YARD.md +85 -166
- data/bin/console +10 -19
- data/docs/Evolvable/ClassMethods.html +1233 -0
- data/docs/Evolvable/Community/ClassMethods.html +708 -0
- data/docs/Evolvable/Community.html +1342 -0
- data/docs/Evolvable/CountGene.html +886 -0
- data/docs/Evolvable/EqualizeGoal.html +347 -0
- data/docs/Evolvable/Error.html +134 -0
- data/docs/Evolvable/Evaluation.html +773 -0
- data/docs/Evolvable/Evolution.html +616 -0
- data/docs/Evolvable/Gene/ClassMethods.html +413 -0
- data/docs/Evolvable/Gene.html +522 -0
- data/docs/Evolvable/GeneCluster/ClassMethods.html +431 -0
- data/docs/Evolvable/GeneCluster.html +280 -0
- data/docs/Evolvable/GeneCombination.html +515 -0
- data/docs/Evolvable/GeneSpace.html +619 -0
- data/docs/Evolvable/Genome.html +1070 -0
- data/docs/Evolvable/Goal.html +500 -0
- data/docs/Evolvable/MaximizeGoal.html +348 -0
- data/docs/Evolvable/MinimizeGoal.html +348 -0
- data/docs/Evolvable/Mutation.html +729 -0
- data/docs/Evolvable/PointCrossover.html +444 -0
- data/docs/Evolvable/Population.html +2826 -0
- data/docs/Evolvable/RigidCountGene.html +501 -0
- data/docs/Evolvable/Selection.html +594 -0
- data/docs/Evolvable/Serializer.html +293 -0
- data/docs/Evolvable/UniformCrossover.html +286 -0
- data/docs/Evolvable.html +1619 -0
- data/docs/_index.html +341 -0
- data/docs/class_list.html +54 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +503 -0
- data/docs/file.README.html +750 -0
- data/docs/file_list.html +59 -0
- data/docs/frames.html +22 -0
- data/docs/index.html +750 -0
- data/docs/js/app.js +344 -0
- data/docs/js/full_list.js +242 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +1302 -0
- data/docs/top-level-namespace.html +110 -0
- data/evolvable.gemspec +6 -6
- data/examples/ascii_art.rb +5 -9
- data/examples/stickman.rb +25 -33
- data/{examples/hello_world.rb → exe/hello_evolvable_world} +46 -30
- data/lib/evolvable/community.rb +190 -0
- data/lib/evolvable/count_gene.rb +65 -0
- data/lib/evolvable/equalize_goal.rb +2 -9
- data/lib/evolvable/evaluation.rb +113 -14
- data/lib/evolvable/evolution.rb +38 -15
- data/lib/evolvable/gene.rb +124 -25
- data/lib/evolvable/gene_cluster.rb +106 -0
- data/lib/evolvable/gene_combination.rb +57 -16
- data/lib/evolvable/gene_space.rb +111 -0
- data/lib/evolvable/genome.rb +32 -4
- data/lib/evolvable/goal.rb +19 -24
- data/lib/evolvable/maximize_goal.rb +2 -9
- data/lib/evolvable/minimize_goal.rb +3 -9
- data/lib/evolvable/mutation.rb +87 -41
- data/lib/evolvable/point_crossover.rb +24 -4
- data/lib/evolvable/population.rb +258 -84
- data/lib/evolvable/rigid_count_gene.rb +36 -0
- data/lib/evolvable/selection.rb +68 -14
- data/lib/evolvable/serializer.rb +46 -0
- data/lib/evolvable/uniform_crossover.rb +30 -6
- data/lib/evolvable/version.rb +2 -1
- data/lib/evolvable.rb +268 -107
- metadata +57 -36
- data/examples/images/diagram.png +0 -0
- data/exe/hello +0 -16
- data/lib/evolvable/error/undefined_method.rb +0 -7
- data/lib/evolvable/search_space.rb +0 -181
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e531567e2b38d0fa358f879d8b7e12c7c8ebf1d24d24349eb69cc59da3f3205a
|
4
|
+
data.tar.gz: 61f581ea11632e5619473e1f222c960db947a8a8efa14cbe455f768274cab2a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb1d7a642018cab4cf194687eaf6d56d67696a0930670bd399698161fdfabf4c5ee9c3d68c0428795b47219e7a637b7bbed2a6dedbaf3cf92de3aaf108c2e4b7
|
7
|
+
data.tar.gz: db8f87f2f402ec6b1d24a9ea4bddd6fa7401a3f479e53a826700617110916d0c4f59db2d19a5fd70c8626f6e2747d0f0c6765c333103270d3c00cc9492a76141
|
data/.yardopts
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
## 2.0.0 - 2025-5-10
|
2
|
+
|
3
|
+
Breaking Changes:
|
4
|
+
* Replaced legacy .search_space and .search_spaces definitions with the new .gene macro-style for defining genetic attributes.
|
5
|
+
* Renamed `#value` to `#fitness` throughout the codebase for clarity.
|
6
|
+
* Removed deprecated `Gene.crossover` in favor of `Gene.combine`.
|
7
|
+
* Removed deprecated `Evolution#crossover` in favor of `Evolution#combination`.
|
8
|
+
* Renamed `Evolvable#after_initialize` to `Evolvable#after_initialize_evolvable`.
|
9
|
+
* Changed population initialization and evolvable creation workflow for more consistency.
|
10
|
+
* Simplified error handling by unifying all exceptions under a single Evolvable::Error type
|
11
|
+
* Changed `Population#new_evolvables` to only accept a `count` parameter, removing the `evolvables` parameter.
|
12
|
+
* Changed default `size` parameter in `Population#initialize` from 40 to 0.
|
13
|
+
* Changed `Population#evolve` default `count` parameter from `Float::INFINITY` to `1`.
|
14
|
+
|
15
|
+
New Features:
|
16
|
+
* Added gene clusters for organizing related genes through the `cluster` parameter in gene definitions.
|
17
|
+
* Introduced the `Evolvable::GeneCluster` module for complex gene grouping.
|
18
|
+
* Added `Evolvable::Community` for managing multiple populations and their interactions.
|
19
|
+
* Added genome merging capabilities with `merge_genome!` and `load_and_merge_genome!`.
|
20
|
+
* Added `evolve_selected` method to Population for evolving a specific subset of evolvables.
|
21
|
+
* Added automatic method generation for accessing genes and gene clusters by name.
|
22
|
+
* Added new evolution control methods: evolve_to_goal and evolve_forever for more intuitive lifecycle control.
|
23
|
+
* Comprehensive YARD documentation and README overhaul.
|
24
|
+
|
1
25
|
## 1.2.0 - 2022-1-22
|
2
26
|
|
3
27
|
* Make it easier to dump and load genomes and use custom serializers. [69afd7c](https://github.com/mattruzicka/evolvable/commit/69afd7c957cbf89cc03b4f3f0ba967bf571c34c5)
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,55 +1,74 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
evolvable (
|
5
|
-
|
6
|
-
PATH
|
7
|
-
remote: /Users/matt/Code/readme_yard
|
8
|
-
specs:
|
9
|
-
readme_yard (0.2.0)
|
10
|
-
tty-markdown (~> 0.7)
|
11
|
-
yard-readme (~> 0.3)
|
4
|
+
evolvable (2.0.0)
|
12
5
|
|
13
6
|
GEM
|
14
7
|
remote: https://rubygems.org/
|
15
8
|
specs:
|
16
|
-
|
17
|
-
|
18
|
-
|
9
|
+
date (3.4.1)
|
10
|
+
debug (1.10.0)
|
11
|
+
irb (~> 1.10)
|
12
|
+
reline (>= 0.3.8)
|
13
|
+
diffy (3.4.3)
|
14
|
+
io-console (0.8.0)
|
15
|
+
irb (1.15.2)
|
16
|
+
pp (>= 0.6.0)
|
17
|
+
rdoc (>= 4.0.0)
|
18
|
+
reline (>= 0.4.2)
|
19
|
+
kramdown (2.5.1)
|
20
|
+
rexml (>= 3.3.9)
|
19
21
|
pastel (0.8.0)
|
20
22
|
tty-color (~> 0.5)
|
21
|
-
|
22
|
-
|
23
|
+
pp (0.6.2)
|
24
|
+
prettyprint
|
25
|
+
prettyprint (0.2.0)
|
26
|
+
psych (5.2.5)
|
27
|
+
date
|
28
|
+
stringio
|
29
|
+
rdoc (6.13.1)
|
30
|
+
psych (>= 4.0.0)
|
31
|
+
readme_yard (0.6.0)
|
32
|
+
diffy (~> 3.4)
|
33
|
+
redcarpet (~> 3.6)
|
34
|
+
tty-markdown (~> 0.7)
|
35
|
+
yard (~> 0.9)
|
36
|
+
yard-readme (~> 0.5)
|
37
|
+
redcarpet (3.6.1)
|
38
|
+
reline (0.6.1)
|
39
|
+
io-console (~> 0.5)
|
40
|
+
rexml (3.4.1)
|
41
|
+
rouge (4.5.2)
|
42
|
+
stringio (3.1.7)
|
23
43
|
strings (0.2.1)
|
24
44
|
strings-ansi (~> 0.2)
|
25
45
|
unicode-display_width (>= 1.5, < 3.0)
|
26
46
|
unicode_utils (~> 1.4)
|
27
47
|
strings-ansi (0.2.0)
|
28
48
|
tty-color (0.6.0)
|
29
|
-
tty-markdown (0.7.
|
49
|
+
tty-markdown (0.7.2)
|
30
50
|
kramdown (>= 1.16.2, < 3.0)
|
31
51
|
pastel (~> 0.8)
|
32
|
-
rouge (
|
52
|
+
rouge (>= 3.14, < 5.0)
|
33
53
|
strings (~> 0.2.0)
|
34
54
|
tty-color (~> 0.5)
|
35
55
|
tty-screen (~> 0.8)
|
36
|
-
tty-screen (0.8.
|
37
|
-
unicode-display_width (2.
|
56
|
+
tty-screen (0.8.2)
|
57
|
+
unicode-display_width (2.6.0)
|
38
58
|
unicode_utils (1.4.0)
|
39
|
-
yard (0.9.
|
40
|
-
yard-readme (0.
|
41
|
-
yard (~> 0.9.26)
|
59
|
+
yard (0.9.37)
|
60
|
+
yard-readme (0.6.0)
|
42
61
|
|
43
62
|
PLATFORMS
|
44
63
|
ruby
|
45
64
|
x86_64-darwin-18
|
46
65
|
|
47
66
|
DEPENDENCIES
|
48
|
-
bundler (~> 2.
|
49
|
-
|
67
|
+
bundler (~> 2.5)
|
68
|
+
debug
|
50
69
|
evolvable!
|
51
|
-
|
52
|
-
|
70
|
+
irb (>= 1.0)
|
71
|
+
readme_yard (>= 0.5)
|
53
72
|
|
54
73
|
BUNDLED WITH
|
55
|
-
2.
|
74
|
+
2.6.8
|