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
data/docs/Evolvable.html
ADDED
@@ -0,0 +1,1619 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Module: Evolvable
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.37
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
pathId = "Evolvable";
|
19
|
+
relpath = '';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="_index.html">Index (E)</a> »
|
40
|
+
|
41
|
+
|
42
|
+
<span class="title">Evolvable</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Module: Evolvable
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
<dl>
|
73
|
+
<dt>Extended by:</dt>
|
74
|
+
<dd>Forwardable</dd>
|
75
|
+
</dl>
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
<dl>
|
85
|
+
<dt>Defined in:</dt>
|
86
|
+
<dd>lib/evolvable.rb<span class="defines">,<br />
|
87
|
+
lib/evolvable/gene.rb,<br /> lib/evolvable/goal.rb,<br /> lib/evolvable/genome.rb,<br /> lib/evolvable/version.rb,<br /> lib/evolvable/mutation.rb,<br /> lib/evolvable/community.rb,<br /> lib/evolvable/evolution.rb,<br /> lib/evolvable/selection.rb,<br /> lib/evolvable/count_gene.rb,<br /> lib/evolvable/evaluation.rb,<br /> lib/evolvable/gene_space.rb,<br /> lib/evolvable/population.rb,<br /> lib/evolvable/serializer.rb,<br /> lib/evolvable/gene_cluster.rb,<br /> lib/evolvable/equalize_goal.rb,<br /> lib/evolvable/maximize_goal.rb,<br /> lib/evolvable/minimize_goal.rb,<br /> lib/evolvable/point_crossover.rb,<br /> lib/evolvable/gene_combination.rb,<br /> lib/evolvable/rigid_count_gene.rb,<br /> lib/evolvable/uniform_crossover.rb</span>
|
88
|
+
</dd>
|
89
|
+
</dl>
|
90
|
+
|
91
|
+
</div>
|
92
|
+
|
93
|
+
<h2>Overview</h2><div class="docstring">
|
94
|
+
<div class="discussion">
|
95
|
+
<p><strong>Quick start</strong>:</p>
|
96
|
+
|
97
|
+
<ol>
|
98
|
+
<li>Include <code>Evolvable</code> in your Ruby class</li>
|
99
|
+
<li>Define genes with the macro-style <code>gene</code> method</li>
|
100
|
+
<li>Have the <code>#fitness</code> method return a numeric value</li>
|
101
|
+
<li>Initialize a population and evolve it</li>
|
102
|
+
</ol>
|
103
|
+
|
104
|
+
<p>Example population of "shirts" with various colors, buttons, and collars.</p>
|
105
|
+
|
106
|
+
<pre class="code ruby"><code class="ruby"><span class='comment'># Step 1
|
107
|
+
</span><span class='kw'>class</span> <span class='const'>Shirt</span>
|
108
|
+
<span class='id identifier rubyid_include'>include</span> <span class='const'>Evolvable</span>
|
109
|
+
|
110
|
+
<span class='comment'># Step 2
|
111
|
+
</span> <span class='id identifier rubyid_gene'>gene</span> <span class='symbol'>:color</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='const'>ColorGene</span> <span class='comment'># count: 1 default
|
112
|
+
</span> <span class='id identifier rubyid_gene'>gene</span> <span class='symbol'>:buttons</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='const'>ButtonGene</span><span class='comma'>,</span> <span class='label'>count:</span> <span class='int'>0</span><span class='op'>..</span><span class='int'>10</span> <span class='comment'># Builds an array of genes that can vary in size
|
113
|
+
</span> <span class='id identifier rubyid_gene'>gene</span> <span class='symbol'>:collar</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='const'>CollarGene</span><span class='comma'>,</span> <span class='label'>count:</span> <span class='int'>0</span><span class='op'>..</span><span class='int'>1</span> <span class='comment'># Collar optional
|
114
|
+
</span>
|
115
|
+
<span class='comment'># Step 3
|
116
|
+
</span> <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:fitness</span>
|
117
|
+
<span class='kw'>end</span>
|
118
|
+
|
119
|
+
<span class='comment'># Step 4
|
120
|
+
</span><span class='id identifier rubyid_population'>population</span> <span class='op'>=</span> <span class='const'>Shirt</span><span class='period'>.</span><span class='id identifier rubyid_new_population'>new_population</span><span class='lparen'>(</span><span class='label'>size:</span> <span class='int'>10</span><span class='rparen'>)</span>
|
121
|
+
<span class='id identifier rubyid_population'>population</span><span class='period'>.</span><span class='id identifier rubyid_evolvables'>evolvables</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_shirt'>shirt</span><span class='op'>|</span> <span class='id identifier rubyid_shirt'>shirt</span><span class='period'>.</span><span class='id identifier rubyid_fitness'>fitness</span> <span class='op'>=</span> <span class='id identifier rubyid_style_rating'>style_rating</span> <span class='rbrace'>}</span>
|
122
|
+
</code></pre>
|
123
|
+
|
124
|
+
<p>You are free to tailor the genes to your needs and find a style that suits you.</p>
|
125
|
+
|
126
|
+
<p>The <code>ColorGene</code> could be as simple as this:</p>
|
127
|
+
|
128
|
+
<pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>ColorGene</span>
|
129
|
+
<span class='id identifier rubyid_include'>include</span> <span class='const'>Evolvable</span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Evolvable/Gene.html" title="Evolvable::Gene (module)">Gene</a></span></span>
|
130
|
+
|
131
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span>
|
132
|
+
<span class='ivar'>@to_s</span> <span class='op'>||=</span> <span class='qwords_beg'>%w[</span><span class='tstring_content'>red</span><span class='words_sep'> </span><span class='tstring_content'>green</span><span class='words_sep'> </span><span class='tstring_content'>blue</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_sample'>sample</span>
|
133
|
+
<span class='kw'>end</span>
|
134
|
+
<span class='kw'>end</span>
|
135
|
+
</code></pre>
|
136
|
+
|
137
|
+
<p>Shirts aren't your style?</p>
|
138
|
+
|
139
|
+
<p>Here's a <a href="https://github.com/mattruzicka/evolvable/blob/main/exe/hello_evolvable_world">Hello World</a>
|
140
|
+
command line demo.</p>
|
141
|
+
|
142
|
+
|
143
|
+
</div>
|
144
|
+
</div>
|
145
|
+
<div class="tags">
|
146
|
+
|
147
|
+
|
148
|
+
</div><h2>Defined Under Namespace</h2>
|
149
|
+
<p class="children">
|
150
|
+
|
151
|
+
|
152
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Evolvable/ClassMethods.html" title="Evolvable::ClassMethods (module)">ClassMethods</a></span>, <span class='object_link'><a href="Evolvable/Community.html" title="Evolvable::Community (module)">Community</a></span>, <span class='object_link'><a href="Evolvable/Gene.html" title="Evolvable::Gene (module)">Gene</a></span>, <span class='object_link'><a href="Evolvable/GeneCluster.html" title="Evolvable::GeneCluster (module)">GeneCluster</a></span>
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Evolvable/CountGene.html" title="Evolvable::CountGene (class)">CountGene</a></span>, <span class='object_link'><a href="Evolvable/EqualizeGoal.html" title="Evolvable::EqualizeGoal (class)">EqualizeGoal</a></span>, <span class='object_link'><a href="Evolvable/Error.html" title="Evolvable::Error (class)">Error</a></span>, <span class='object_link'><a href="Evolvable/Evaluation.html" title="Evolvable::Evaluation (class)">Evaluation</a></span>, <span class='object_link'><a href="Evolvable/Evolution.html" title="Evolvable::Evolution (class)">Evolution</a></span>, <span class='object_link'><a href="Evolvable/GeneCombination.html" title="Evolvable::GeneCombination (class)">GeneCombination</a></span>, <span class='object_link'><a href="Evolvable/GeneSpace.html" title="Evolvable::GeneSpace (class)">GeneSpace</a></span>, <span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Genome</a></span>, <span class='object_link'><a href="Evolvable/Goal.html" title="Evolvable::Goal (class)">Goal</a></span>, <span class='object_link'><a href="Evolvable/MaximizeGoal.html" title="Evolvable::MaximizeGoal (class)">MaximizeGoal</a></span>, <span class='object_link'><a href="Evolvable/MinimizeGoal.html" title="Evolvable::MinimizeGoal (class)">MinimizeGoal</a></span>, <span class='object_link'><a href="Evolvable/Mutation.html" title="Evolvable::Mutation (class)">Mutation</a></span>, <span class='object_link'><a href="Evolvable/PointCrossover.html" title="Evolvable::PointCrossover (class)">PointCrossover</a></span>, <span class='object_link'><a href="Evolvable/Population.html" title="Evolvable::Population (class)">Population</a></span>, <span class='object_link'><a href="Evolvable/RigidCountGene.html" title="Evolvable::RigidCountGene (class)">RigidCountGene</a></span>, <span class='object_link'><a href="Evolvable/Selection.html" title="Evolvable::Selection (class)">Selection</a></span>, <span class='object_link'><a href="Evolvable/Serializer.html" title="Evolvable::Serializer (class)">Serializer</a></span>, <span class='object_link'><a href="Evolvable/UniformCrossover.html" title="Evolvable::UniformCrossover (class)">UniformCrossover</a></span>
|
157
|
+
|
158
|
+
|
159
|
+
</p>
|
160
|
+
|
161
|
+
|
162
|
+
<h2>
|
163
|
+
Constant Summary
|
164
|
+
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
|
165
|
+
</h2>
|
166
|
+
|
167
|
+
<dl class="constants">
|
168
|
+
|
169
|
+
<dt id="VERSION-constant" class="">VERSION =
|
170
|
+
|
171
|
+
</dt>
|
172
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2.0.0</span><span class='tstring_end'>'</span></span></pre></dd>
|
173
|
+
|
174
|
+
<dt id="DOC_URL-constant" class="">DOC_URL =
|
175
|
+
|
176
|
+
</dt>
|
177
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://mattruzicka.github.io/evolvable</span><span class='tstring_end'>"</span></span></pre></dd>
|
178
|
+
|
179
|
+
</dl>
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
|
186
|
+
<ul class="summary">
|
187
|
+
|
188
|
+
<li class="public ">
|
189
|
+
<span class="summary_signature">
|
190
|
+
|
191
|
+
<a href="#fitness-instance_method" title="#fitness (instance method)">#<strong>fitness</strong> ⇒ Object </a>
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
</span>
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
<span class="summary_desc"><div class='inline'><p>Returns the value of attribute fitness.</p>
|
209
|
+
</div></span>
|
210
|
+
|
211
|
+
</li>
|
212
|
+
|
213
|
+
|
214
|
+
<li class="public ">
|
215
|
+
<span class="summary_signature">
|
216
|
+
|
217
|
+
<a href="#generation_index-instance_method" title="#generation_index (instance method)">#<strong>generation_index</strong> ⇒ Object </a>
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
</span>
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
<span class="summary_desc"><div class='inline'><p>Returns the value of attribute generation_index.</p>
|
235
|
+
</div></span>
|
236
|
+
|
237
|
+
</li>
|
238
|
+
|
239
|
+
|
240
|
+
<li class="public ">
|
241
|
+
<span class="summary_signature">
|
242
|
+
|
243
|
+
<a href="#genome-instance_method" title="#genome (instance method)">#<strong>genome</strong> ⇒ Object </a>
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
</span>
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
|
252
|
+
<span class="note title readonly">readonly</span>
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
<span class="summary_desc"><div class='inline'><p>Returns the value of attribute genome.</p>
|
263
|
+
</div></span>
|
264
|
+
|
265
|
+
</li>
|
266
|
+
|
267
|
+
|
268
|
+
<li class="public ">
|
269
|
+
<span class="summary_signature">
|
270
|
+
|
271
|
+
<a href="#population-instance_method" title="#population (instance method)">#<strong>population</strong> ⇒ Object </a>
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
</span>
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
<span class="summary_desc"><div class='inline'><p>Returns the value of attribute population.</p>
|
289
|
+
</div></span>
|
290
|
+
|
291
|
+
</li>
|
292
|
+
|
293
|
+
|
294
|
+
</ul>
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
<h2>
|
301
|
+
Class Method Summary
|
302
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
303
|
+
</h2>
|
304
|
+
|
305
|
+
<ul class="summary">
|
306
|
+
|
307
|
+
<li class="public ">
|
308
|
+
<span class="summary_signature">
|
309
|
+
|
310
|
+
<a href="#included-class_method" title="included (class method)">.<strong>included</strong>(base) ⇒ void </a>
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
</span>
|
315
|
+
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
|
324
|
+
<span class="summary_desc"><div class='inline'><p>Called when the Evolvable module is included in a class.</p>
|
325
|
+
</div></span>
|
326
|
+
|
327
|
+
</li>
|
328
|
+
|
329
|
+
|
330
|
+
<li class="public ">
|
331
|
+
<span class="summary_signature">
|
332
|
+
|
333
|
+
<a href="#new_object-class_method" title="new_object (class method)">.<strong>new_object</strong>(old_val, new_val, default_class) ⇒ Object </a>
|
334
|
+
|
335
|
+
|
336
|
+
|
337
|
+
</span>
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
<span class="summary_desc"><div class='inline'><p>Helper method for creating or updating objects with hash parameters.</p>
|
348
|
+
</div></span>
|
349
|
+
|
350
|
+
</li>
|
351
|
+
|
352
|
+
|
353
|
+
</ul>
|
354
|
+
|
355
|
+
<h2>
|
356
|
+
Instance Method Summary
|
357
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
358
|
+
</h2>
|
359
|
+
|
360
|
+
<ul class="summary">
|
361
|
+
|
362
|
+
<li class="public ">
|
363
|
+
<span class="summary_signature">
|
364
|
+
|
365
|
+
<a href="#after_initialize_evolvable-instance_method" title="#after_initialize_evolvable (instance method)">#<strong>after_initialize_evolvable</strong> ⇒ Object </a>
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
</span>
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
380
|
+
|
381
|
+
</li>
|
382
|
+
|
383
|
+
|
384
|
+
<li class="public ">
|
385
|
+
<span class="summary_signature">
|
386
|
+
|
387
|
+
<a href="#dump_genome-instance_method" title="#dump_genome (instance method)">#<strong>dump_genome</strong>(serializer: Serializer) ⇒ String </a>
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
</span>
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
<span class="summary_desc"><div class='inline'><p>Dumps the genome to a serialized format.</p>
|
402
|
+
</div></span>
|
403
|
+
|
404
|
+
</li>
|
405
|
+
|
406
|
+
|
407
|
+
<li class="public ">
|
408
|
+
<span class="summary_signature">
|
409
|
+
|
410
|
+
<a href="#find_gene-instance_method" title="#find_gene (instance method)">#<strong>find_gene</strong> ⇒ Object </a>
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
</span>
|
415
|
+
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
|
420
|
+
|
421
|
+
|
422
|
+
|
423
|
+
|
424
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
425
|
+
|
426
|
+
</li>
|
427
|
+
|
428
|
+
|
429
|
+
<li class="public ">
|
430
|
+
<span class="summary_signature">
|
431
|
+
|
432
|
+
<a href="#find_gene_cluster-instance_method" title="#find_gene_cluster (instance method)">#<strong>find_gene_cluster</strong>(cluster) ⇒ Array<Evolvable::Gene> </a>
|
433
|
+
|
434
|
+
|
435
|
+
|
436
|
+
</span>
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
|
446
|
+
<span class="summary_desc"><div class='inline'><p>Finds an array of genes that belong to the specified cluster.</p>
|
447
|
+
</div></span>
|
448
|
+
|
449
|
+
</li>
|
450
|
+
|
451
|
+
|
452
|
+
<li class="public ">
|
453
|
+
<span class="summary_signature">
|
454
|
+
|
455
|
+
<a href="#find_genes-instance_method" title="#find_genes (instance method)">#<strong>find_genes</strong> ⇒ Object </a>
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
</span>
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
|
469
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
470
|
+
|
471
|
+
</li>
|
472
|
+
|
473
|
+
|
474
|
+
<li class="public ">
|
475
|
+
<span class="summary_signature">
|
476
|
+
|
477
|
+
<a href="#genes-instance_method" title="#genes (instance method)">#<strong>genes</strong> ⇒ Object </a>
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
</span>
|
482
|
+
|
483
|
+
|
484
|
+
|
485
|
+
|
486
|
+
|
487
|
+
|
488
|
+
|
489
|
+
|
490
|
+
|
491
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
492
|
+
|
493
|
+
</li>
|
494
|
+
|
495
|
+
|
496
|
+
<li class="public ">
|
497
|
+
<span class="summary_signature">
|
498
|
+
|
499
|
+
<a href="#load_and_merge_genome!-instance_method" title="#load_and_merge_genome! (instance method)">#<strong>load_and_merge_genome!</strong>(data, serializer: Serializer) ⇒ Evolvable::Genome </a>
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
</span>
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
|
512
|
+
|
513
|
+
<span class="summary_desc"><div class='inline'><p>Loads a genome from serialized data and merges it with the current genome.</p>
|
514
|
+
</div></span>
|
515
|
+
|
516
|
+
</li>
|
517
|
+
|
518
|
+
|
519
|
+
<li class="public ">
|
520
|
+
<span class="summary_signature">
|
521
|
+
|
522
|
+
<a href="#load_genome-instance_method" title="#load_genome (instance method)">#<strong>load_genome</strong>(data, serializer: Serializer) ⇒ Evolvable::Genome </a>
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
</span>
|
527
|
+
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
|
532
|
+
|
533
|
+
|
534
|
+
|
535
|
+
|
536
|
+
<span class="summary_desc"><div class='inline'><p>Loads a genome from serialized data.</p>
|
537
|
+
</div></span>
|
538
|
+
|
539
|
+
</li>
|
540
|
+
|
541
|
+
|
542
|
+
<li class="public ">
|
543
|
+
<span class="summary_signature">
|
544
|
+
|
545
|
+
<a href="#make_evolvable-instance_method" title="#make_evolvable (instance method)">#<strong>make_evolvable</strong>(population: nil, genome: nil, generation_index: nil) ⇒ self </a>
|
546
|
+
|
547
|
+
|
548
|
+
|
549
|
+
</span>
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
|
554
|
+
|
555
|
+
|
556
|
+
|
557
|
+
|
558
|
+
|
559
|
+
<span class="summary_desc"><div class='inline'><p>Makes this object evolvable by setting up its population, genome, and generation index.</p>
|
560
|
+
</div></span>
|
561
|
+
|
562
|
+
</li>
|
563
|
+
|
564
|
+
|
565
|
+
<li class="public ">
|
566
|
+
<span class="summary_signature">
|
567
|
+
|
568
|
+
<a href="#merge_genome!-instance_method" title="#merge_genome! (instance method)">#<strong>merge_genome!</strong>(other_genome) ⇒ Evolvable::Genome </a>
|
569
|
+
|
570
|
+
|
571
|
+
|
572
|
+
</span>
|
573
|
+
|
574
|
+
|
575
|
+
|
576
|
+
|
577
|
+
|
578
|
+
|
579
|
+
|
580
|
+
|
581
|
+
|
582
|
+
<span class="summary_desc"><div class='inline'><p>Merges another genome into this evolvable's genome.</p>
|
583
|
+
</div></span>
|
584
|
+
|
585
|
+
</li>
|
586
|
+
|
587
|
+
|
588
|
+
</ul>
|
589
|
+
|
590
|
+
|
591
|
+
|
592
|
+
|
593
|
+
<div id="instance_attr_details" class="attr_details">
|
594
|
+
<h2>Instance Attribute Details</h2>
|
595
|
+
|
596
|
+
|
597
|
+
<span id="fitness=-instance_method"></span>
|
598
|
+
<div class="method_details first">
|
599
|
+
<h3 class="signature first" id="fitness-instance_method">
|
600
|
+
|
601
|
+
#<strong>fitness</strong> ⇒ <tt>Object</tt>
|
602
|
+
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
|
607
|
+
</h3><div class="docstring">
|
608
|
+
<div class="discussion">
|
609
|
+
<p>Returns the value of attribute fitness.</p>
|
610
|
+
|
611
|
+
|
612
|
+
</div>
|
613
|
+
</div>
|
614
|
+
<div class="tags">
|
615
|
+
|
616
|
+
|
617
|
+
</div><table class="source_code">
|
618
|
+
<tr>
|
619
|
+
<td>
|
620
|
+
<pre class="lines">
|
621
|
+
|
622
|
+
|
623
|
+
302
|
624
|
+
303
|
625
|
+
304</pre>
|
626
|
+
</td>
|
627
|
+
<td>
|
628
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 302</span>
|
629
|
+
|
630
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_fitness'>fitness</span>
|
631
|
+
<span class='ivar'>@fitness</span>
|
632
|
+
<span class='kw'>end</span></pre>
|
633
|
+
</td>
|
634
|
+
</tr>
|
635
|
+
</table>
|
636
|
+
</div>
|
637
|
+
|
638
|
+
|
639
|
+
<span id="generation_index=-instance_method"></span>
|
640
|
+
<div class="method_details ">
|
641
|
+
<h3 class="signature " id="generation_index-instance_method">
|
642
|
+
|
643
|
+
#<strong>generation_index</strong> ⇒ <tt>Object</tt>
|
644
|
+
|
645
|
+
|
646
|
+
|
647
|
+
|
648
|
+
|
649
|
+
</h3><div class="docstring">
|
650
|
+
<div class="discussion">
|
651
|
+
<p>Returns the value of attribute generation_index.</p>
|
652
|
+
|
653
|
+
|
654
|
+
</div>
|
655
|
+
</div>
|
656
|
+
<div class="tags">
|
657
|
+
|
658
|
+
|
659
|
+
</div><table class="source_code">
|
660
|
+
<tr>
|
661
|
+
<td>
|
662
|
+
<pre class="lines">
|
663
|
+
|
664
|
+
|
665
|
+
312
|
666
|
+
313
|
667
|
+
314</pre>
|
668
|
+
</td>
|
669
|
+
<td>
|
670
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 312</span>
|
671
|
+
|
672
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_generation_index'>generation_index</span>
|
673
|
+
<span class='ivar'>@generation_index</span>
|
674
|
+
<span class='kw'>end</span></pre>
|
675
|
+
</td>
|
676
|
+
</tr>
|
677
|
+
</table>
|
678
|
+
</div>
|
679
|
+
|
680
|
+
|
681
|
+
<span id=""></span>
|
682
|
+
<div class="method_details ">
|
683
|
+
<h3 class="signature " id="genome-instance_method">
|
684
|
+
|
685
|
+
#<strong>genome</strong> ⇒ <tt>Object</tt> <span class="extras">(readonly)</span>
|
686
|
+
|
687
|
+
|
688
|
+
|
689
|
+
|
690
|
+
|
691
|
+
</h3><div class="docstring">
|
692
|
+
<div class="discussion">
|
693
|
+
<p>Returns the value of attribute genome.</p>
|
694
|
+
|
695
|
+
|
696
|
+
</div>
|
697
|
+
</div>
|
698
|
+
<div class="tags">
|
699
|
+
|
700
|
+
|
701
|
+
</div><table class="source_code">
|
702
|
+
<tr>
|
703
|
+
<td>
|
704
|
+
<pre class="lines">
|
705
|
+
|
706
|
+
|
707
|
+
312
|
708
|
+
313
|
709
|
+
314</pre>
|
710
|
+
</td>
|
711
|
+
<td>
|
712
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 312</span>
|
713
|
+
|
714
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_genome'>genome</span>
|
715
|
+
<span class='ivar'>@genome</span>
|
716
|
+
<span class='kw'>end</span></pre>
|
717
|
+
</td>
|
718
|
+
</tr>
|
719
|
+
</table>
|
720
|
+
</div>
|
721
|
+
|
722
|
+
|
723
|
+
<span id="population=-instance_method"></span>
|
724
|
+
<div class="method_details ">
|
725
|
+
<h3 class="signature " id="population-instance_method">
|
726
|
+
|
727
|
+
#<strong>population</strong> ⇒ <tt>Object</tt>
|
728
|
+
|
729
|
+
|
730
|
+
|
731
|
+
|
732
|
+
|
733
|
+
</h3><div class="docstring">
|
734
|
+
<div class="discussion">
|
735
|
+
<p>Returns the value of attribute population.</p>
|
736
|
+
|
737
|
+
|
738
|
+
</div>
|
739
|
+
</div>
|
740
|
+
<div class="tags">
|
741
|
+
|
742
|
+
|
743
|
+
</div><table class="source_code">
|
744
|
+
<tr>
|
745
|
+
<td>
|
746
|
+
<pre class="lines">
|
747
|
+
|
748
|
+
|
749
|
+
312
|
750
|
+
313
|
751
|
+
314</pre>
|
752
|
+
</td>
|
753
|
+
<td>
|
754
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 312</span>
|
755
|
+
|
756
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_population'>population</span>
|
757
|
+
<span class='ivar'>@population</span>
|
758
|
+
<span class='kw'>end</span></pre>
|
759
|
+
</td>
|
760
|
+
</tr>
|
761
|
+
</table>
|
762
|
+
</div>
|
763
|
+
|
764
|
+
</div>
|
765
|
+
|
766
|
+
|
767
|
+
<div id="class_method_details" class="method_details_list">
|
768
|
+
<h2>Class Method Details</h2>
|
769
|
+
|
770
|
+
|
771
|
+
<div class="method_details first">
|
772
|
+
<h3 class="signature first" id="included-class_method">
|
773
|
+
|
774
|
+
.<strong>included</strong>(base) ⇒ <tt>void</tt>
|
775
|
+
|
776
|
+
|
777
|
+
|
778
|
+
|
779
|
+
|
780
|
+
</h3><div class="docstring">
|
781
|
+
<div class="discussion">
|
782
|
+
<p class="note returns_void">This method returns an undefined value.</p><p>Called when the Evolvable module is included in a class.
|
783
|
+
Sets up the necessary instance variables and extends the class with ClassMethods.</p>
|
784
|
+
|
785
|
+
|
786
|
+
</div>
|
787
|
+
</div>
|
788
|
+
<div class="tags">
|
789
|
+
<p class="tag_title">Parameters:</p>
|
790
|
+
<ul class="param">
|
791
|
+
|
792
|
+
<li>
|
793
|
+
|
794
|
+
<span class='name'>base</span>
|
795
|
+
|
796
|
+
|
797
|
+
<span class='type'>(<tt>Class</tt>)</span>
|
798
|
+
|
799
|
+
|
800
|
+
|
801
|
+
—
|
802
|
+
<div class='inline'><p>The class that is including the Evolvable module</p>
|
803
|
+
</div>
|
804
|
+
|
805
|
+
</li>
|
806
|
+
|
807
|
+
</ul>
|
808
|
+
|
809
|
+
|
810
|
+
</div><table class="source_code">
|
811
|
+
<tr>
|
812
|
+
<td>
|
813
|
+
<pre class="lines">
|
814
|
+
|
815
|
+
|
816
|
+
89
|
817
|
+
90
|
818
|
+
91
|
819
|
+
92
|
820
|
+
93</pre>
|
821
|
+
</td>
|
822
|
+
<td>
|
823
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 89</span>
|
824
|
+
|
825
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_included'>included</span><span class='lparen'>(</span><span class='id identifier rubyid_base'>base</span><span class='rparen'>)</span>
|
826
|
+
<span class='id identifier rubyid_base'>base</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='symbol'>:@gene_config</span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
827
|
+
<span class='id identifier rubyid_base'>base</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='symbol'>:@cluster_config</span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
828
|
+
<span class='id identifier rubyid_base'>base</span><span class='period'>.</span><span class='id identifier rubyid_extend'>extend</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Evolvable/ClassMethods.html" title="Evolvable::ClassMethods (module)">ClassMethods</a></span></span><span class='rparen'>)</span>
|
829
|
+
<span class='kw'>end</span></pre>
|
830
|
+
</td>
|
831
|
+
</tr>
|
832
|
+
</table>
|
833
|
+
</div>
|
834
|
+
|
835
|
+
<div class="method_details ">
|
836
|
+
<h3 class="signature " id="new_object-class_method">
|
837
|
+
|
838
|
+
.<strong>new_object</strong>(old_val, new_val, default_class) ⇒ <tt>Object</tt>
|
839
|
+
|
840
|
+
|
841
|
+
|
842
|
+
|
843
|
+
|
844
|
+
</h3><div class="docstring">
|
845
|
+
<div class="discussion">
|
846
|
+
<p>Helper method for creating or updating objects with hash parameters.
|
847
|
+
This is used internally for creating evaluation, selection, mutation, etc. objects
|
848
|
+
from configuration hashes.</p>
|
849
|
+
|
850
|
+
|
851
|
+
</div>
|
852
|
+
</div>
|
853
|
+
<div class="tags">
|
854
|
+
<p class="tag_title">Parameters:</p>
|
855
|
+
<ul class="param">
|
856
|
+
|
857
|
+
<li>
|
858
|
+
|
859
|
+
<span class='name'>old_val</span>
|
860
|
+
|
861
|
+
|
862
|
+
<span class='type'>(<tt>Object</tt>, <tt>nil</tt>)</span>
|
863
|
+
|
864
|
+
|
865
|
+
|
866
|
+
—
|
867
|
+
<div class='inline'><p>The existing object to update, if any</p>
|
868
|
+
</div>
|
869
|
+
|
870
|
+
</li>
|
871
|
+
|
872
|
+
<li>
|
873
|
+
|
874
|
+
<span class='name'>new_val</span>
|
875
|
+
|
876
|
+
|
877
|
+
<span class='type'>(<tt>Object</tt>, <tt>Hash</tt>)</span>
|
878
|
+
|
879
|
+
|
880
|
+
|
881
|
+
—
|
882
|
+
<div class='inline'><p>The new object or configuration hash</p>
|
883
|
+
</div>
|
884
|
+
|
885
|
+
</li>
|
886
|
+
|
887
|
+
<li>
|
888
|
+
|
889
|
+
<span class='name'>default_class</span>
|
890
|
+
|
891
|
+
|
892
|
+
<span class='type'>(<tt>Class</tt>)</span>
|
893
|
+
|
894
|
+
|
895
|
+
|
896
|
+
—
|
897
|
+
<div class='inline'><p>The default class to instantiate if new_val is a Hash</p>
|
898
|
+
</div>
|
899
|
+
|
900
|
+
</li>
|
901
|
+
|
902
|
+
</ul>
|
903
|
+
|
904
|
+
<p class="tag_title">Returns:</p>
|
905
|
+
<ul class="return">
|
906
|
+
|
907
|
+
<li>
|
908
|
+
|
909
|
+
|
910
|
+
<span class='type'>(<tt>Object</tt>)</span>
|
911
|
+
|
912
|
+
|
913
|
+
|
914
|
+
—
|
915
|
+
<div class='inline'><p>The new or updated object</p>
|
916
|
+
</div>
|
917
|
+
|
918
|
+
</li>
|
919
|
+
|
920
|
+
</ul>
|
921
|
+
|
922
|
+
</div><table class="source_code">
|
923
|
+
<tr>
|
924
|
+
<td>
|
925
|
+
<pre class="lines">
|
926
|
+
|
927
|
+
|
928
|
+
105
|
929
|
+
106
|
930
|
+
107</pre>
|
931
|
+
</td>
|
932
|
+
<td>
|
933
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 105</span>
|
934
|
+
|
935
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new_object'>new_object</span><span class='lparen'>(</span><span class='id identifier rubyid_old_val'>old_val</span><span class='comma'>,</span> <span class='id identifier rubyid_new_val'>new_val</span><span class='comma'>,</span> <span class='id identifier rubyid_default_class'>default_class</span><span class='rparen'>)</span>
|
936
|
+
<span class='id identifier rubyid_new_val'>new_val</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='lparen'>(</span><span class='id identifier rubyid_old_val'>old_val</span><span class='op'>&.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>||</span> <span class='id identifier rubyid_default_class'>default_class</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='op'>**</span><span class='id identifier rubyid_new_val'>new_val</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new_val'>new_val</span>
|
937
|
+
<span class='kw'>end</span></pre>
|
938
|
+
</td>
|
939
|
+
</tr>
|
940
|
+
</table>
|
941
|
+
</div>
|
942
|
+
|
943
|
+
</div>
|
944
|
+
|
945
|
+
<div id="instance_method_details" class="method_details_list">
|
946
|
+
<h2>Instance Method Details</h2>
|
947
|
+
|
948
|
+
|
949
|
+
<div class="method_details first">
|
950
|
+
<h3 class="signature first" id="after_initialize_evolvable-instance_method">
|
951
|
+
|
952
|
+
#<strong>after_initialize_evolvable</strong> ⇒ <tt>Object</tt>
|
953
|
+
|
954
|
+
|
955
|
+
|
956
|
+
|
957
|
+
|
958
|
+
</h3><table class="source_code">
|
959
|
+
<tr>
|
960
|
+
<td>
|
961
|
+
<pre class="lines">
|
962
|
+
|
963
|
+
|
964
|
+
300</pre>
|
965
|
+
</td>
|
966
|
+
<td>
|
967
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 300</span>
|
968
|
+
|
969
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_after_initialize_evolvable'>after_initialize_evolvable</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
|
970
|
+
</td>
|
971
|
+
</tr>
|
972
|
+
</table>
|
973
|
+
</div>
|
974
|
+
|
975
|
+
<div class="method_details ">
|
976
|
+
<h3 class="signature " id="dump_genome-instance_method">
|
977
|
+
|
978
|
+
#<strong>dump_genome</strong>(serializer: Serializer) ⇒ <tt>String</tt>
|
979
|
+
|
980
|
+
|
981
|
+
|
982
|
+
|
983
|
+
|
984
|
+
</h3><div class="docstring">
|
985
|
+
<div class="discussion">
|
986
|
+
<p>Dumps the genome to a serialized format.
|
987
|
+
Useful for saving the state of an evolvable.</p>
|
988
|
+
|
989
|
+
|
990
|
+
</div>
|
991
|
+
</div>
|
992
|
+
<div class="tags">
|
993
|
+
<p class="tag_title">Parameters:</p>
|
994
|
+
<ul class="param">
|
995
|
+
|
996
|
+
<li>
|
997
|
+
|
998
|
+
<span class='name'>serializer</span>
|
999
|
+
|
1000
|
+
|
1001
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Serializer.html" title="Evolvable::Serializer (class)">Evolvable::Serializer</a></span></tt>)</span>
|
1002
|
+
|
1003
|
+
|
1004
|
+
<em class="default">(defaults to: <tt>Serializer</tt>)</em>
|
1005
|
+
|
1006
|
+
|
1007
|
+
—
|
1008
|
+
<div class='inline'><p>The serializer to use</p>
|
1009
|
+
</div>
|
1010
|
+
|
1011
|
+
</li>
|
1012
|
+
|
1013
|
+
</ul>
|
1014
|
+
|
1015
|
+
<p class="tag_title">Returns:</p>
|
1016
|
+
<ul class="return">
|
1017
|
+
|
1018
|
+
<li>
|
1019
|
+
|
1020
|
+
|
1021
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1022
|
+
|
1023
|
+
|
1024
|
+
|
1025
|
+
—
|
1026
|
+
<div class='inline'><p>The serialized genome</p>
|
1027
|
+
</div>
|
1028
|
+
|
1029
|
+
</li>
|
1030
|
+
|
1031
|
+
</ul>
|
1032
|
+
|
1033
|
+
</div><table class="source_code">
|
1034
|
+
<tr>
|
1035
|
+
<td>
|
1036
|
+
<pre class="lines">
|
1037
|
+
|
1038
|
+
|
1039
|
+
363
|
1040
|
+
364
|
1041
|
+
365</pre>
|
1042
|
+
</td>
|
1043
|
+
<td>
|
1044
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 363</span>
|
1045
|
+
|
1046
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_dump_genome'>dump_genome</span><span class='lparen'>(</span><span class='label'>serializer:</span> <span class='const'><span class='object_link'><a href="Evolvable/Serializer.html" title="Evolvable::Serializer (class)">Serializer</a></span></span><span class='rparen'>)</span>
|
1047
|
+
<span class='ivar'>@genome</span><span class='period'>.</span><span class='id identifier rubyid_dump'>dump</span><span class='lparen'>(</span><span class='label'>serializer:</span> <span class='id identifier rubyid_serializer'>serializer</span><span class='rparen'>)</span>
|
1048
|
+
<span class='kw'>end</span></pre>
|
1049
|
+
</td>
|
1050
|
+
</tr>
|
1051
|
+
</table>
|
1052
|
+
</div>
|
1053
|
+
|
1054
|
+
<div class="method_details ">
|
1055
|
+
<h3 class="signature " id="find_gene-instance_method">
|
1056
|
+
|
1057
|
+
#<strong>find_gene</strong> ⇒ <tt>Object</tt>
|
1058
|
+
|
1059
|
+
|
1060
|
+
|
1061
|
+
|
1062
|
+
|
1063
|
+
</h3><table class="source_code">
|
1064
|
+
<tr>
|
1065
|
+
<td>
|
1066
|
+
<pre class="lines">
|
1067
|
+
|
1068
|
+
|
1069
|
+
304
|
1070
|
+
305
|
1071
|
+
306</pre>
|
1072
|
+
</td>
|
1073
|
+
<td>
|
1074
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 304</span>
|
1075
|
+
|
1076
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_find_gene'>find_gene</span><span class='lparen'>(</span><span class='op'>...</span><span class='rparen'>)</span>
|
1077
|
+
<span class='ivar'>@genome</span><span class='op'>&.</span><span class='id identifier rubyid_find_gene'>find_gene</span><span class='lparen'>(</span><span class='op'>...</span><span class='rparen'>)</span>
|
1078
|
+
<span class='kw'>end</span></pre>
|
1079
|
+
</td>
|
1080
|
+
</tr>
|
1081
|
+
</table>
|
1082
|
+
</div>
|
1083
|
+
|
1084
|
+
<div class="method_details ">
|
1085
|
+
<h3 class="signature " id="find_gene_cluster-instance_method">
|
1086
|
+
|
1087
|
+
#<strong>find_gene_cluster</strong>(cluster) ⇒ <tt>Array<<span class='object_link'><a href="Evolvable/Gene.html" title="Evolvable::Gene (module)">Evolvable::Gene</a></span>></tt>
|
1088
|
+
|
1089
|
+
|
1090
|
+
|
1091
|
+
|
1092
|
+
|
1093
|
+
</h3><div class="docstring">
|
1094
|
+
<div class="discussion">
|
1095
|
+
<p>Finds an array of genes that belong to the specified cluster.
|
1096
|
+
This is used internally when accessing gene clusters.</p>
|
1097
|
+
|
1098
|
+
|
1099
|
+
</div>
|
1100
|
+
</div>
|
1101
|
+
<div class="tags">
|
1102
|
+
<p class="tag_title">Parameters:</p>
|
1103
|
+
<ul class="param">
|
1104
|
+
|
1105
|
+
<li>
|
1106
|
+
|
1107
|
+
<span class='name'>cluster</span>
|
1108
|
+
|
1109
|
+
|
1110
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
1111
|
+
|
1112
|
+
|
1113
|
+
|
1114
|
+
—
|
1115
|
+
<div class='inline'><p>The cluster name</p>
|
1116
|
+
</div>
|
1117
|
+
|
1118
|
+
</li>
|
1119
|
+
|
1120
|
+
</ul>
|
1121
|
+
|
1122
|
+
<p class="tag_title">Returns:</p>
|
1123
|
+
<ul class="return">
|
1124
|
+
|
1125
|
+
<li>
|
1126
|
+
|
1127
|
+
|
1128
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="Evolvable/Gene.html" title="Evolvable::Gene (module)">Evolvable::Gene</a></span>></tt>)</span>
|
1129
|
+
|
1130
|
+
|
1131
|
+
|
1132
|
+
—
|
1133
|
+
<div class='inline'><p>The genes belonging to the cluster</p>
|
1134
|
+
</div>
|
1135
|
+
|
1136
|
+
</li>
|
1137
|
+
|
1138
|
+
</ul>
|
1139
|
+
|
1140
|
+
</div><table class="source_code">
|
1141
|
+
<tr>
|
1142
|
+
<td>
|
1143
|
+
<pre class="lines">
|
1144
|
+
|
1145
|
+
|
1146
|
+
352
|
1147
|
+
353
|
1148
|
+
354</pre>
|
1149
|
+
</td>
|
1150
|
+
<td>
|
1151
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 352</span>
|
1152
|
+
|
1153
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_find_gene_cluster'>find_gene_cluster</span><span class='lparen'>(</span><span class='id identifier rubyid_cluster'>cluster</span><span class='rparen'>)</span>
|
1154
|
+
<span class='id identifier rubyid_find_genes'>find_genes</span><span class='lparen'>(</span><span class='op'>*</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_cluster_config'>cluster_config</span><span class='lbracket'>[</span><span class='id identifier rubyid_cluster'>cluster</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1155
|
+
<span class='kw'>end</span></pre>
|
1156
|
+
</td>
|
1157
|
+
</tr>
|
1158
|
+
</table>
|
1159
|
+
</div>
|
1160
|
+
|
1161
|
+
<div class="method_details ">
|
1162
|
+
<h3 class="signature " id="find_genes-instance_method">
|
1163
|
+
|
1164
|
+
#<strong>find_genes</strong> ⇒ <tt>Object</tt>
|
1165
|
+
|
1166
|
+
|
1167
|
+
|
1168
|
+
|
1169
|
+
|
1170
|
+
</h3><table class="source_code">
|
1171
|
+
<tr>
|
1172
|
+
<td>
|
1173
|
+
<pre class="lines">
|
1174
|
+
|
1175
|
+
|
1176
|
+
308
|
1177
|
+
309
|
1178
|
+
310</pre>
|
1179
|
+
</td>
|
1180
|
+
<td>
|
1181
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 308</span>
|
1182
|
+
|
1183
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_find_genes'>find_genes</span><span class='lparen'>(</span><span class='op'>...</span><span class='rparen'>)</span>
|
1184
|
+
<span class='ivar'>@genome</span><span class='op'>&.</span><span class='id identifier rubyid_find_genes'>find_genes</span><span class='lparen'>(</span><span class='op'>...</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1185
|
+
<span class='kw'>end</span></pre>
|
1186
|
+
</td>
|
1187
|
+
</tr>
|
1188
|
+
</table>
|
1189
|
+
</div>
|
1190
|
+
|
1191
|
+
<div class="method_details ">
|
1192
|
+
<h3 class="signature " id="genes-instance_method">
|
1193
|
+
|
1194
|
+
#<strong>genes</strong> ⇒ <tt>Object</tt>
|
1195
|
+
|
1196
|
+
|
1197
|
+
|
1198
|
+
|
1199
|
+
|
1200
|
+
</h3><table class="source_code">
|
1201
|
+
<tr>
|
1202
|
+
<td>
|
1203
|
+
<pre class="lines">
|
1204
|
+
|
1205
|
+
|
1206
|
+
316
|
1207
|
+
317
|
1208
|
+
318</pre>
|
1209
|
+
</td>
|
1210
|
+
<td>
|
1211
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 316</span>
|
1212
|
+
|
1213
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_genes'>genes</span>
|
1214
|
+
<span class='ivar'>@genome</span><span class='op'>&.</span><span class='id identifier rubyid_genes'>genes</span> <span class='op'>||</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1215
|
+
<span class='kw'>end</span></pre>
|
1216
|
+
</td>
|
1217
|
+
</tr>
|
1218
|
+
</table>
|
1219
|
+
</div>
|
1220
|
+
|
1221
|
+
<div class="method_details ">
|
1222
|
+
<h3 class="signature " id="load_and_merge_genome!-instance_method">
|
1223
|
+
|
1224
|
+
#<strong>load_and_merge_genome!</strong>(data, serializer: Serializer) ⇒ <tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>
|
1225
|
+
|
1226
|
+
|
1227
|
+
|
1228
|
+
|
1229
|
+
|
1230
|
+
</h3><div class="docstring">
|
1231
|
+
<div class="discussion">
|
1232
|
+
<p>Loads a genome from serialized data and merges it with the current genome.
|
1233
|
+
Useful for combining genomes from different sources.</p>
|
1234
|
+
|
1235
|
+
|
1236
|
+
</div>
|
1237
|
+
</div>
|
1238
|
+
<div class="tags">
|
1239
|
+
<p class="tag_title">Parameters:</p>
|
1240
|
+
<ul class="param">
|
1241
|
+
|
1242
|
+
<li>
|
1243
|
+
|
1244
|
+
<span class='name'>data</span>
|
1245
|
+
|
1246
|
+
|
1247
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1248
|
+
|
1249
|
+
|
1250
|
+
|
1251
|
+
—
|
1252
|
+
<div class='inline'><p>The serialized genome data</p>
|
1253
|
+
</div>
|
1254
|
+
|
1255
|
+
</li>
|
1256
|
+
|
1257
|
+
<li>
|
1258
|
+
|
1259
|
+
<span class='name'>serializer</span>
|
1260
|
+
|
1261
|
+
|
1262
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Serializer.html" title="Evolvable::Serializer (class)">Evolvable::Serializer</a></span></tt>)</span>
|
1263
|
+
|
1264
|
+
|
1265
|
+
<em class="default">(defaults to: <tt>Serializer</tt>)</em>
|
1266
|
+
|
1267
|
+
|
1268
|
+
—
|
1269
|
+
<div class='inline'><p>The serializer to use</p>
|
1270
|
+
</div>
|
1271
|
+
|
1272
|
+
</li>
|
1273
|
+
|
1274
|
+
</ul>
|
1275
|
+
|
1276
|
+
<p class="tag_title">Returns:</p>
|
1277
|
+
<ul class="return">
|
1278
|
+
|
1279
|
+
<li>
|
1280
|
+
|
1281
|
+
|
1282
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>)</span>
|
1283
|
+
|
1284
|
+
|
1285
|
+
|
1286
|
+
—
|
1287
|
+
<div class='inline'><p>The merged genome</p>
|
1288
|
+
</div>
|
1289
|
+
|
1290
|
+
</li>
|
1291
|
+
|
1292
|
+
</ul>
|
1293
|
+
|
1294
|
+
</div><table class="source_code">
|
1295
|
+
<tr>
|
1296
|
+
<td>
|
1297
|
+
<pre class="lines">
|
1298
|
+
|
1299
|
+
|
1300
|
+
387
|
1301
|
+
388
|
1302
|
+
389
|
1303
|
+
390</pre>
|
1304
|
+
</td>
|
1305
|
+
<td>
|
1306
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 387</span>
|
1307
|
+
|
1308
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_load_and_merge_genome!'>load_and_merge_genome!</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>serializer:</span> <span class='const'><span class='object_link'><a href="Evolvable/Serializer.html" title="Evolvable::Serializer (class)">Serializer</a></span></span><span class='rparen'>)</span>
|
1309
|
+
<span class='id identifier rubyid_genome'>genome</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Genome</a></span></span><span class='period'>.</span><span class='id identifier rubyid_load'><span class='object_link'><a href="Evolvable/Genome.html#load-class_method" title="Evolvable::Genome.load (method)">load</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>serializer:</span> <span class='id identifier rubyid_serializer'>serializer</span><span class='rparen'>)</span>
|
1310
|
+
<span class='id identifier rubyid_merge_genome!'>merge_genome!</span><span class='lparen'>(</span><span class='id identifier rubyid_genome'>genome</span><span class='rparen'>)</span>
|
1311
|
+
<span class='kw'>end</span></pre>
|
1312
|
+
</td>
|
1313
|
+
</tr>
|
1314
|
+
</table>
|
1315
|
+
</div>
|
1316
|
+
|
1317
|
+
<div class="method_details ">
|
1318
|
+
<h3 class="signature " id="load_genome-instance_method">
|
1319
|
+
|
1320
|
+
#<strong>load_genome</strong>(data, serializer: Serializer) ⇒ <tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>
|
1321
|
+
|
1322
|
+
|
1323
|
+
|
1324
|
+
|
1325
|
+
|
1326
|
+
</h3><div class="docstring">
|
1327
|
+
<div class="discussion">
|
1328
|
+
<p>Loads a genome from serialized data.
|
1329
|
+
Useful for restoring the state of an evolvable.</p>
|
1330
|
+
|
1331
|
+
|
1332
|
+
</div>
|
1333
|
+
</div>
|
1334
|
+
<div class="tags">
|
1335
|
+
<p class="tag_title">Parameters:</p>
|
1336
|
+
<ul class="param">
|
1337
|
+
|
1338
|
+
<li>
|
1339
|
+
|
1340
|
+
<span class='name'>data</span>
|
1341
|
+
|
1342
|
+
|
1343
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1344
|
+
|
1345
|
+
|
1346
|
+
|
1347
|
+
—
|
1348
|
+
<div class='inline'><p>The serialized genome data</p>
|
1349
|
+
</div>
|
1350
|
+
|
1351
|
+
</li>
|
1352
|
+
|
1353
|
+
<li>
|
1354
|
+
|
1355
|
+
<span class='name'>serializer</span>
|
1356
|
+
|
1357
|
+
|
1358
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Serializer.html" title="Evolvable::Serializer (class)">Evolvable::Serializer</a></span></tt>)</span>
|
1359
|
+
|
1360
|
+
|
1361
|
+
<em class="default">(defaults to: <tt>Serializer</tt>)</em>
|
1362
|
+
|
1363
|
+
|
1364
|
+
—
|
1365
|
+
<div class='inline'><p>The serializer to use</p>
|
1366
|
+
</div>
|
1367
|
+
|
1368
|
+
</li>
|
1369
|
+
|
1370
|
+
</ul>
|
1371
|
+
|
1372
|
+
<p class="tag_title">Returns:</p>
|
1373
|
+
<ul class="return">
|
1374
|
+
|
1375
|
+
<li>
|
1376
|
+
|
1377
|
+
|
1378
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>)</span>
|
1379
|
+
|
1380
|
+
|
1381
|
+
|
1382
|
+
—
|
1383
|
+
<div class='inline'><p>The loaded genome</p>
|
1384
|
+
</div>
|
1385
|
+
|
1386
|
+
</li>
|
1387
|
+
|
1388
|
+
</ul>
|
1389
|
+
|
1390
|
+
</div><table class="source_code">
|
1391
|
+
<tr>
|
1392
|
+
<td>
|
1393
|
+
<pre class="lines">
|
1394
|
+
|
1395
|
+
|
1396
|
+
375
|
1397
|
+
376
|
1398
|
+
377</pre>
|
1399
|
+
</td>
|
1400
|
+
<td>
|
1401
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 375</span>
|
1402
|
+
|
1403
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_load_genome'>load_genome</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>serializer:</span> <span class='const'><span class='object_link'><a href="Evolvable/Serializer.html" title="Evolvable::Serializer (class)">Serializer</a></span></span><span class='rparen'>)</span>
|
1404
|
+
<span class='ivar'>@genome</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Genome</a></span></span><span class='period'>.</span><span class='id identifier rubyid_load'><span class='object_link'><a href="Evolvable/Genome.html#load-class_method" title="Evolvable::Genome.load (method)">load</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>serializer:</span> <span class='id identifier rubyid_serializer'>serializer</span><span class='rparen'>)</span>
|
1405
|
+
<span class='kw'>end</span></pre>
|
1406
|
+
</td>
|
1407
|
+
</tr>
|
1408
|
+
</table>
|
1409
|
+
</div>
|
1410
|
+
|
1411
|
+
<div class="method_details ">
|
1412
|
+
<h3 class="signature " id="make_evolvable-instance_method">
|
1413
|
+
|
1414
|
+
#<strong>make_evolvable</strong>(population: nil, genome: nil, generation_index: nil) ⇒ <tt>self</tt>
|
1415
|
+
|
1416
|
+
|
1417
|
+
|
1418
|
+
|
1419
|
+
|
1420
|
+
</h3><div class="docstring">
|
1421
|
+
<div class="discussion">
|
1422
|
+
<p>Makes this object evolvable by setting up its population, genome, and generation index.
|
1423
|
+
This is called internally by the class method <code>new_evolvable</code>.</p>
|
1424
|
+
|
1425
|
+
|
1426
|
+
</div>
|
1427
|
+
</div>
|
1428
|
+
<div class="tags">
|
1429
|
+
<p class="tag_title">Parameters:</p>
|
1430
|
+
<ul class="param">
|
1431
|
+
|
1432
|
+
<li>
|
1433
|
+
|
1434
|
+
<span class='name'>population</span>
|
1435
|
+
|
1436
|
+
|
1437
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Population.html" title="Evolvable::Population (class)">Evolvable::Population</a></span></tt>, <tt>nil</tt>)</span>
|
1438
|
+
|
1439
|
+
|
1440
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
1441
|
+
|
1442
|
+
|
1443
|
+
—
|
1444
|
+
<div class='inline'><p>The population this evolvable belongs to</p>
|
1445
|
+
</div>
|
1446
|
+
|
1447
|
+
</li>
|
1448
|
+
|
1449
|
+
<li>
|
1450
|
+
|
1451
|
+
<span class='name'>genome</span>
|
1452
|
+
|
1453
|
+
|
1454
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>, <tt>nil</tt>)</span>
|
1455
|
+
|
1456
|
+
|
1457
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
1458
|
+
|
1459
|
+
|
1460
|
+
—
|
1461
|
+
<div class='inline'><p>The genome to initialize with</p>
|
1462
|
+
</div>
|
1463
|
+
|
1464
|
+
</li>
|
1465
|
+
|
1466
|
+
<li>
|
1467
|
+
|
1468
|
+
<span class='name'>generation_index</span>
|
1469
|
+
|
1470
|
+
|
1471
|
+
<span class='type'>(<tt>Integer</tt>, <tt>nil</tt>)</span>
|
1472
|
+
|
1473
|
+
|
1474
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
1475
|
+
|
1476
|
+
|
1477
|
+
—
|
1478
|
+
<div class='inline'><p>The generation index</p>
|
1479
|
+
</div>
|
1480
|
+
|
1481
|
+
</li>
|
1482
|
+
|
1483
|
+
</ul>
|
1484
|
+
|
1485
|
+
<p class="tag_title">Returns:</p>
|
1486
|
+
<ul class="return">
|
1487
|
+
|
1488
|
+
<li>
|
1489
|
+
|
1490
|
+
|
1491
|
+
<span class='type'>(<tt>self</tt>)</span>
|
1492
|
+
|
1493
|
+
|
1494
|
+
|
1495
|
+
—
|
1496
|
+
<div class='inline'><p>This evolvable object</p>
|
1497
|
+
</div>
|
1498
|
+
|
1499
|
+
</li>
|
1500
|
+
|
1501
|
+
</ul>
|
1502
|
+
|
1503
|
+
</div><table class="source_code">
|
1504
|
+
<tr>
|
1505
|
+
<td>
|
1506
|
+
<pre class="lines">
|
1507
|
+
|
1508
|
+
|
1509
|
+
329
|
1510
|
+
330
|
1511
|
+
331
|
1512
|
+
332
|
1513
|
+
333
|
1514
|
+
334</pre>
|
1515
|
+
</td>
|
1516
|
+
<td>
|
1517
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 329</span>
|
1518
|
+
|
1519
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_make_evolvable'>make_evolvable</span><span class='lparen'>(</span><span class='label'>population:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>genome:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>generation_index:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
1520
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_population'>population</span> <span class='op'>=</span> <span class='id identifier rubyid_population'>population</span>
|
1521
|
+
<span class='ivar'>@genome</span> <span class='op'>=</span> <span class='id identifier rubyid_genome'>genome</span>
|
1522
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_generation_index'>generation_index</span> <span class='op'>=</span> <span class='id identifier rubyid_generation_index'>generation_index</span>
|
1523
|
+
<span class='kw'>self</span>
|
1524
|
+
<span class='kw'>end</span></pre>
|
1525
|
+
</td>
|
1526
|
+
</tr>
|
1527
|
+
</table>
|
1528
|
+
</div>
|
1529
|
+
|
1530
|
+
<div class="method_details ">
|
1531
|
+
<h3 class="signature " id="merge_genome!-instance_method">
|
1532
|
+
|
1533
|
+
#<strong>merge_genome!</strong>(other_genome) ⇒ <tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>
|
1534
|
+
|
1535
|
+
|
1536
|
+
|
1537
|
+
|
1538
|
+
|
1539
|
+
</h3><div class="docstring">
|
1540
|
+
<div class="discussion">
|
1541
|
+
<p>Merges another genome into this evolvable's genome.
|
1542
|
+
Useful for combining genetic traits from different evolvables.</p>
|
1543
|
+
|
1544
|
+
|
1545
|
+
</div>
|
1546
|
+
</div>
|
1547
|
+
<div class="tags">
|
1548
|
+
<p class="tag_title">Parameters:</p>
|
1549
|
+
<ul class="param">
|
1550
|
+
|
1551
|
+
<li>
|
1552
|
+
|
1553
|
+
<span class='name'>other_genome</span>
|
1554
|
+
|
1555
|
+
|
1556
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>)</span>
|
1557
|
+
|
1558
|
+
|
1559
|
+
|
1560
|
+
—
|
1561
|
+
<div class='inline'><p>The genome to merge</p>
|
1562
|
+
</div>
|
1563
|
+
|
1564
|
+
</li>
|
1565
|
+
|
1566
|
+
</ul>
|
1567
|
+
|
1568
|
+
<p class="tag_title">Returns:</p>
|
1569
|
+
<ul class="return">
|
1570
|
+
|
1571
|
+
<li>
|
1572
|
+
|
1573
|
+
|
1574
|
+
<span class='type'>(<tt><span class='object_link'><a href="Evolvable/Genome.html" title="Evolvable::Genome (class)">Evolvable::Genome</a></span></tt>)</span>
|
1575
|
+
|
1576
|
+
|
1577
|
+
|
1578
|
+
—
|
1579
|
+
<div class='inline'><p>The merged genome</p>
|
1580
|
+
</div>
|
1581
|
+
|
1582
|
+
</li>
|
1583
|
+
|
1584
|
+
</ul>
|
1585
|
+
|
1586
|
+
</div><table class="source_code">
|
1587
|
+
<tr>
|
1588
|
+
<td>
|
1589
|
+
<pre class="lines">
|
1590
|
+
|
1591
|
+
|
1592
|
+
399
|
1593
|
+
400
|
1594
|
+
401</pre>
|
1595
|
+
</td>
|
1596
|
+
<td>
|
1597
|
+
<pre class="code"><span class="info file"># File 'lib/evolvable.rb', line 399</span>
|
1598
|
+
|
1599
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_merge_genome!'>merge_genome!</span><span class='lparen'>(</span><span class='id identifier rubyid_other_genome'>other_genome</span><span class='rparen'>)</span>
|
1600
|
+
<span class='ivar'>@genome</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_other_genome'>other_genome</span><span class='rparen'>)</span>
|
1601
|
+
<span class='kw'>end</span></pre>
|
1602
|
+
</td>
|
1603
|
+
</tr>
|
1604
|
+
</table>
|
1605
|
+
</div>
|
1606
|
+
|
1607
|
+
</div>
|
1608
|
+
|
1609
|
+
</div>
|
1610
|
+
|
1611
|
+
<div id="footer">
|
1612
|
+
Generated on Sat May 10 18:39:22 2025 by
|
1613
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1614
|
+
0.9.37 (ruby-3.4.2).
|
1615
|
+
</div>
|
1616
|
+
|
1617
|
+
</div>
|
1618
|
+
</body>
|
1619
|
+
</html>
|