rubyneat 0.3.5.alpha.3 → 0.3.5.alpha.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (252) hide show
  1. checksums.yaml +4 -4
  2. data/.semver +1 -1
  3. data/Gemfile +19 -19
  4. data/Gemfile.lock +39 -33
  5. data/README.md +66 -0
  6. data/Rakefile +19 -2
  7. data/bin/neat +4 -60
  8. data/lib/rubyneat/cli.rb +5 -0
  9. data/lib/rubyneat/cli/generate.rb +131 -0
  10. data/lib/rubyneat/cli/main.rb +54 -0
  11. data/lib/rubyneat/cli/templates/generate/Gemfile.tt +17 -0
  12. data/lib/rubyneat/cli/templates/generate/README.md.tt +1 -0
  13. data/lib/rubyneat/cli/templates/generate/bin/neat.tt +14 -0
  14. data/{neater/xor_neat.rb → lib/rubyneat/cli/templates/generate/neater.tt} +7 -22
  15. data/rubyneat.gemspec +73 -297
  16. data/rubyneat.gemspec.orig +384 -0
  17. metadata +76 -292
  18. data/.idea/.name +0 -1
  19. data/.idea/.rakeTasks +0 -7
  20. data/.idea/dictionaries/trader.xml +0 -3
  21. data/.idea/encodings.xml +0 -5
  22. data/.idea/misc.xml +0 -5
  23. data/.idea/modules.xml +0 -9
  24. data/.idea/rubyneat.iml +0 -198
  25. data/.idea/runConfigurations/invpend_neat.xml +0 -26
  26. data/.idea/runConfigurations/sigdebug_neat.xml +0 -24
  27. data/.idea/runConfigurations/xor_neat.xml +0 -26
  28. data/.idea/runConfigurations/xordebug_neat.xml +0 -24
  29. data/.idea/runConfigurations/xorsin_neat.xml +0 -24
  30. data/.idea/scopes/scope_settings.xml +0 -5
  31. data/.idea/vcs.xml +0 -7
  32. data/.idea/workspace.xml +0 -1151
  33. data/.yardoc/checksums +0 -11
  34. data/.yardoc/object_types +0 -0
  35. data/.yardoc/objects/root.dat +0 -0
  36. data/.yardoc/proxy_types +0 -0
  37. data/Guardfile +0 -8
  38. data/doc/ControllerPoint.html +0 -125
  39. data/doc/CuteA.html +0 -286
  40. data/doc/CuteB.html +0 -297
  41. data/doc/DSL.html +0 -883
  42. data/doc/NEAT.html +0 -588
  43. data/doc/NEAT/BasicNeuronTypes.html +0 -136
  44. data/doc/NEAT/BasicNeuronTypes/BiasNeuron.html +0 -518
  45. data/doc/NEAT/BasicNeuronTypes/CosineNeuron.html +0 -274
  46. data/doc/NEAT/BasicNeuronTypes/InputNeuron.html +0 -366
  47. data/doc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +0 -275
  48. data/doc/NEAT/BasicNeuronTypes/SineNeuron.html +0 -274
  49. data/doc/NEAT/BasicNeuronTypes/TanhNeuron.html +0 -274
  50. data/doc/NEAT/Controller.html +0 -2490
  51. data/doc/NEAT/Controller/NeatSettings.html +0 -3985
  52. data/doc/NEAT/Critter.html +0 -1037
  53. data/doc/NEAT/Critter/Genotype.html +0 -1601
  54. data/doc/NEAT/Critter/Genotype/Gene.html +0 -979
  55. data/doc/NEAT/Critter/Phenotype.html +0 -603
  56. data/doc/NEAT/DSL.html +0 -1255
  57. data/doc/NEAT/Evaluator.html +0 -420
  58. data/doc/NEAT/Evolver.html +0 -602
  59. data/doc/NEAT/Evolver/CritterOp.html +0 -551
  60. data/doc/NEAT/Expressor.html +0 -327
  61. data/doc/NEAT/Graph.html +0 -402
  62. data/doc/NEAT/Graph/DependencyResolver.html +0 -478
  63. data/doc/NEAT/Graph/GraphException.html +0 -123
  64. data/doc/NEAT/NeatException.html +0 -123
  65. data/doc/NEAT/NeatOb.html +0 -567
  66. data/doc/NEAT/Neuron.html +0 -1067
  67. data/doc/NEAT/Operator.html +0 -162
  68. data/doc/NEAT/Population.html +0 -1961
  69. data/doc/NEAT/Trait.html +0 -169
  70. data/doc/_index.html +0 -373
  71. data/doc/class_list.html +0 -54
  72. data/doc/css/common.css +0 -1
  73. data/doc/css/full_list.css +0 -57
  74. data/doc/css/style.css +0 -339
  75. data/doc/file_list.html +0 -53
  76. data/doc/frames.html +0 -26
  77. data/doc/index.html +0 -373
  78. data/doc/js/app.js +0 -219
  79. data/doc/js/full_list.js +0 -178
  80. data/doc/js/jquery.js +0 -4
  81. data/doc/method_list.html +0 -1415
  82. data/doc/top-level-namespace.html +0 -164
  83. data/foo/foo_aquarium_example.rb +0 -38
  84. data/foo/foo_gosu.rb +0 -99
  85. data/foo/foo_rubygoo.rb +0 -104
  86. data/foo/foo_sdl.rb +0 -34
  87. data/foo/icon.png +0 -0
  88. data/neater/invpend_neat.rb +0 -150
  89. data/neater/rnlib/inverted_pendulum.rb +0 -380
  90. data/neater/rnlib/xor.rb +0 -10
  91. data/neater/sigdebug_neat.rb +0 -136
  92. data/neater/xoranalog_neat.rb +0 -138
  93. data/neater/xorsin_neat.rb +0 -143
  94. data/projectFilesBackup/.idea/rubyneat.iml +0 -180
  95. data/public/.directory +0 -4
  96. data/public/background.png +0 -0
  97. data/public/background.xcf +0 -0
  98. data/public/cart.png +0 -0
  99. data/public/cart.xcf +0 -0
  100. data/public/metalpoles_molton_ball_l.jpg +0 -0
  101. data/public/old_background.png +0 -0
  102. data/public/pointer.png +0 -0
  103. data/public/pointer.xcf +0 -0
  104. data/public/pole.kra +0 -0
  105. data/public/pole.png +0 -0
  106. data/public/pole.xcf +0 -0
  107. data/public/wheel-of-year-stone-DD-131-WOYS.jpg +0 -0
  108. data/public/wheel.png +0 -0
  109. data/public/wheel.xcf +0 -0
  110. data/public/wood-planks-texture.jpg +0 -0
  111. data/rdoc/ControllerPoint.html +0 -116
  112. data/rdoc/CuteA.html +0 -177
  113. data/rdoc/CuteB.html +0 -178
  114. data/rdoc/DSLSetup.html +0 -177
  115. data/rdoc/GameTestWindow.html +0 -242
  116. data/rdoc/GameWindow.html +0 -292
  117. data/rdoc/Gemfile.html +0 -215
  118. data/rdoc/Gemfile_lock.html +0 -327
  119. data/rdoc/GraphTest.html +0 -210
  120. data/rdoc/Guardfile.html +0 -198
  121. data/rdoc/InvertedPendulum.html +0 -198
  122. data/rdoc/InvertedPendulum/Cart.html +0 -668
  123. data/rdoc/InvertedPendulum/DSL.html +0 -259
  124. data/rdoc/InvertedPendulum/InvPendWindow.html +0 -402
  125. data/rdoc/Logger.html +0 -98
  126. data/rdoc/NEAT.html +0 -422
  127. data/rdoc/NEAT/BasicNeuronTypes.html +0 -107
  128. data/rdoc/NEAT/BasicNeuronTypes/BiasNeuron.html +0 -265
  129. data/rdoc/NEAT/BasicNeuronTypes/CosineNeuron.html +0 -162
  130. data/rdoc/NEAT/BasicNeuronTypes/InputNeuron.html +0 -206
  131. data/rdoc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +0 -162
  132. data/rdoc/NEAT/BasicNeuronTypes/SineNeuron.html +0 -162
  133. data/rdoc/NEAT/BasicNeuronTypes/TanhNeuron.html +0 -161
  134. data/rdoc/NEAT/Controller.html +0 -729
  135. data/rdoc/NEAT/Controller/NeatSettings.html +0 -880
  136. data/rdoc/NEAT/Critter.html +0 -489
  137. data/rdoc/NEAT/Critter/Genotype.html +0 -735
  138. data/rdoc/NEAT/Critter/Genotype/Gene.html +0 -457
  139. data/rdoc/NEAT/Critter/Phenotype.html +0 -330
  140. data/rdoc/NEAT/DSL.html +0 -729
  141. data/rdoc/NEAT/Evaluator.html +0 -256
  142. data/rdoc/NEAT/Evolver.html +0 -891
  143. data/rdoc/NEAT/Evolver/CritterOp.html +0 -349
  144. data/rdoc/NEAT/Expressor.html +0 -402
  145. data/rdoc/NEAT/Graph.html +0 -263
  146. data/rdoc/NEAT/Graph/DependencyResolver.html +0 -291
  147. data/rdoc/NEAT/Graph/GraphException.html +0 -105
  148. data/rdoc/NEAT/NeatException.html +0 -105
  149. data/rdoc/NEAT/NeatOb.html +0 -325
  150. data/rdoc/NEAT/Neuron.html +0 -481
  151. data/rdoc/NEAT/Operator.html +0 -109
  152. data/rdoc/NEAT/Population.html +0 -935
  153. data/rdoc/NEAT/Trait.html +0 -117
  154. data/rdoc/Object.html +0 -384
  155. data/rdoc/Phi.html +0 -98
  156. data/rdoc/Player.html +0 -383
  157. data/rdoc/Rakefile.html +0 -254
  158. data/rdoc/RubyNEAT.html +0 -98
  159. data/rdoc/RubyNEAT/Application.html +0 -105
  160. data/rdoc/SDL.html +0 -98
  161. data/rdoc/SDL/Event2.html +0 -98
  162. data/rdoc/Vector.html +0 -195
  163. data/rdoc/created.rid +0 -125
  164. data/rdoc/doc/ControllerPoint_html.html +0 -299
  165. data/rdoc/doc/CuteA_html.html +0 -438
  166. data/rdoc/doc/CuteB_html.html +0 -436
  167. data/rdoc/doc/DSL_html.html +0 -992
  168. data/rdoc/doc/NEAT/BasicNeuronTypes/BiasNeuron_html.html +0 -617
  169. data/rdoc/doc/NEAT/BasicNeuronTypes/CosineNeuron_html.html +0 -413
  170. data/rdoc/doc/NEAT/BasicNeuronTypes/InputNeuron_html.html +0 -498
  171. data/rdoc/doc/NEAT/BasicNeuronTypes/SigmoidNeuron_html.html +0 -413
  172. data/rdoc/doc/NEAT/BasicNeuronTypes/SineNeuron_html.html +0 -413
  173. data/rdoc/doc/NEAT/BasicNeuronTypes/TanhNeuron_html.html +0 -412
  174. data/rdoc/doc/NEAT/BasicNeuronTypes_html.html +0 -310
  175. data/rdoc/doc/NEAT/Controller/NeatSettings_html.html +0 -3324
  176. data/rdoc/doc/NEAT/Controller_html.html +0 -2212
  177. data/rdoc/doc/NEAT/Critter/Genotype/Gene_html.html +0 -997
  178. data/rdoc/doc/NEAT/Critter/Genotype_html.html +0 -1556
  179. data/rdoc/doc/NEAT/Critter/Phenotype_html.html +0 -687
  180. data/rdoc/doc/NEAT/Critter_html.html +0 -1037
  181. data/rdoc/doc/NEAT/DSL_html.html +0 -1349
  182. data/rdoc/doc/NEAT/Evaluator_html.html +0 -556
  183. data/rdoc/doc/NEAT/Evolver/CritterOp_html.html +0 -690
  184. data/rdoc/doc/NEAT/Evolver_html.html +0 -677
  185. data/rdoc/doc/NEAT/Expressor_html.html +0 -468
  186. data/rdoc/doc/NEAT/Graph/DependencyResolver_html.html +0 -598
  187. data/rdoc/doc/NEAT/Graph/GraphException_html.html +0 -299
  188. data/rdoc/doc/NEAT/Graph_html.html +0 -527
  189. data/rdoc/doc/NEAT/NeatException_html.html +0 -299
  190. data/rdoc/doc/NEAT/NeatOb_html.html +0 -671
  191. data/rdoc/doc/NEAT/Neuron_html.html +0 -1095
  192. data/rdoc/doc/NEAT/Operator_html.html +0 -337
  193. data/rdoc/doc/NEAT/Population_html.html +0 -1795
  194. data/rdoc/doc/NEAT/Trait_html.html +0 -344
  195. data/rdoc/doc/NEAT_html.html +0 -736
  196. data/rdoc/doc/_index_html.html +0 -559
  197. data/rdoc/doc/class_list_html.html +0 -369
  198. data/rdoc/doc/css/common_css.html +0 -188
  199. data/rdoc/doc/css/full_list_css.html +0 -243
  200. data/rdoc/doc/css/style_css.html +0 -530
  201. data/rdoc/doc/file_list_html.html +0 -240
  202. data/rdoc/doc/frames_html.html +0 -217
  203. data/rdoc/doc/index_html.html +0 -559
  204. data/rdoc/doc/js/app_js.html +0 -423
  205. data/rdoc/doc/js/full_list_js.html +0 -372
  206. data/rdoc/doc/js/jquery_js.html +0 -1536
  207. data/rdoc/doc/method_list_html.html +0 -1375
  208. data/rdoc/doc/top-level-namespace_html.html +0 -317
  209. data/rdoc/fonts.css +0 -167
  210. data/rdoc/fonts/Lato-Light.ttf +0 -0
  211. data/rdoc/fonts/Lato-LightItalic.ttf +0 -0
  212. data/rdoc/fonts/Lato-Regular.ttf +0 -0
  213. data/rdoc/fonts/Lato-RegularItalic.ttf +0 -0
  214. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  215. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  216. data/rdoc/images/add.png +0 -0
  217. data/rdoc/images/arrow_up.png +0 -0
  218. data/rdoc/images/brick.png +0 -0
  219. data/rdoc/images/brick_link.png +0 -0
  220. data/rdoc/images/bug.png +0 -0
  221. data/rdoc/images/bullet_black.png +0 -0
  222. data/rdoc/images/bullet_toggle_minus.png +0 -0
  223. data/rdoc/images/bullet_toggle_plus.png +0 -0
  224. data/rdoc/images/date.png +0 -0
  225. data/rdoc/images/delete.png +0 -0
  226. data/rdoc/images/find.png +0 -0
  227. data/rdoc/images/loadingAnimation.gif +0 -0
  228. data/rdoc/images/macFFBgHack.png +0 -0
  229. data/rdoc/images/package.png +0 -0
  230. data/rdoc/images/page_green.png +0 -0
  231. data/rdoc/images/page_white_text.png +0 -0
  232. data/rdoc/images/page_white_width.png +0 -0
  233. data/rdoc/images/plugin.png +0 -0
  234. data/rdoc/images/ruby.png +0 -0
  235. data/rdoc/images/tag_blue.png +0 -0
  236. data/rdoc/images/tag_green.png +0 -0
  237. data/rdoc/images/transparent.png +0 -0
  238. data/rdoc/images/wrench.png +0 -0
  239. data/rdoc/images/wrench_orange.png +0 -0
  240. data/rdoc/images/zoom.png +0 -0
  241. data/rdoc/index.html +0 -282
  242. data/rdoc/js/darkfish.js +0 -140
  243. data/rdoc/js/jquery.js +0 -18
  244. data/rdoc/js/navigation.js +0 -142
  245. data/rdoc/js/search.js +0 -109
  246. data/rdoc/js/search_index.js +0 -1
  247. data/rdoc/js/searcher.js +0 -228
  248. data/rdoc/rdoc.css +0 -580
  249. data/rdoc/rubyneat_gemspec.html +0 -387
  250. data/rdoc/table_of_contents.html +0 -2502
  251. data/rdoc/xordebug_log.html +0 -170598
  252. data/rdoc/xorsin_log.html +0 -22569
@@ -1,349 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
-
7
- <title>class NEAT::Evolver::CritterOp - rubyneat 0.3.4</title>
8
-
9
- <link href="../../fonts.css" rel="stylesheet">
10
- <link href="../../rdoc.css" rel="stylesheet">
11
-
12
- <script type="text/javascript">
13
- var rdoc_rel_prefix = "../../";
14
- </script>
15
-
16
- <script src="../../js/jquery.js"></script>
17
- <script src="../../js/navigation.js"></script>
18
- <script src="../../js/search_index.js"></script>
19
- <script src="../../js/search.js"></script>
20
- <script src="../../js/searcher.js"></script>
21
- <script src="../../js/darkfish.js"></script>
22
-
23
-
24
- <body id="top" role="document" class="class">
25
- <nav role="navigation">
26
- <div id="project-navigation">
27
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
- <h2>
29
- <a href="../../index.html" rel="home">Home</a>
30
- </h2>
31
-
32
- <div id="table-of-contents-navigation">
33
- <a href="../../table_of_contents.html#pages">Pages</a>
34
- <a href="../../table_of_contents.html#classes">Classes</a>
35
- <a href="../../table_of_contents.html#methods">Methods</a>
36
- </div>
37
- </div>
38
-
39
- <div id="search-section" role="search" class="project-section initially-hidden">
40
- <form action="#" method="get" accept-charset="utf-8">
41
- <div id="search-field-wrapper">
42
- <input id="search-field" role="combobox" aria-label="Search"
43
- aria-autocomplete="list" aria-controls="search-results"
44
- type="text" name="search" placeholder="Search" spellcheck="false"
45
- title="Type to search, Up and Down to navigate, Enter to load">
46
- </div>
47
-
48
- <ul id="search-results" aria-label="Search Results"
49
- aria-busy="false" aria-expanded="false"
50
- aria-atomic="false" class="initially-hidden"></ul>
51
- </form>
52
- </div>
53
-
54
- </div>
55
-
56
-
57
-
58
- <div id="class-metadata">
59
-
60
- <div id="parent-class-section" class="nav-section">
61
- <h3>Parent</h3>
62
-
63
-
64
- <p class="link">NeatOb
65
-
66
- </div>
67
-
68
-
69
-
70
- <!-- Method Quickref -->
71
- <div id="method-list-section" class="nav-section">
72
- <h3>Methods</h3>
73
-
74
- <ul class="link-list" role="directory">
75
-
76
- <li class="calls-super" ><a href="#method-c-new">::new</a>
77
-
78
- <li ><a href="#method-i-add_gene-21">#add_gene!</a>
79
-
80
- <li ><a href="#method-i-add_neuron-21">#add_neuron!</a>
81
-
82
- <li ><a href="#method-i-disable_gene-21">#disable_gene!</a>
83
-
84
- <li ><a href="#method-i-reenable_gene-21">#reenable_gene!</a>
85
-
86
- </ul>
87
- </div>
88
-
89
- </div>
90
- </nav>
91
-
92
- <main role="main" aria-labelledby="class-NEAT::Evolver::CritterOp">
93
- <h1 id="class-NEAT::Evolver::CritterOp" class="class">
94
- class NEAT::Evolver::CritterOp
95
- </h1>
96
-
97
- <section class="description">
98
-
99
- <p>A set of <a href="../Critter.html">Critter</a> Genotype operators.</p>
100
-
101
- </section>
102
-
103
-
104
-
105
-
106
- <section id="5Buntitled-5D" class="documentation-section">
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
- <section id="public-class-5Buntitled-5D-method-details" class="method-section">
117
- <header>
118
- <h3>Public Class Methods</h3>
119
- </header>
120
-
121
-
122
- <div id="method-c-new" class="method-detail ">
123
-
124
- <div class="method-heading">
125
- <span class="method-name">new</span><span
126
- class="method-args">(evol)</span>
127
-
128
- <span class="method-click-advice">click to toggle source</span>
129
-
130
- </div>
131
-
132
-
133
- <div class="method-description">
134
-
135
-
136
-
137
-
138
- <div class="method-calls-super">
139
- Calls superclass method
140
-
141
- </div>
142
-
143
-
144
-
145
- <div class="method-source-code" id="new-source">
146
- <pre><span class="ruby-comment"># File lib/rubyneat/evolver.rb, line 254</span>
147
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">evol</span>)
148
- <span class="ruby-keyword">super</span> <span class="ruby-identifier">evol</span>.<span class="ruby-identifier">controller</span>
149
- <span class="ruby-ivar">@evolver</span> = <span class="ruby-identifier">evol</span>
150
- <span class="ruby-ivar">@npop</span> = <span class="ruby-identifier">evol</span>.<span class="ruby-identifier">npop</span>
151
- <span class="ruby-keyword">end</span></pre>
152
- </div>
153
-
154
- </div>
155
-
156
-
157
-
158
-
159
- </div>
160
-
161
-
162
- </section>
163
-
164
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
165
- <header>
166
- <h3>Public Instance Methods</h3>
167
- </header>
168
-
169
-
170
- <div id="method-i-add_gene-21" class="method-detail ">
171
-
172
- <div class="method-heading">
173
- <span class="method-name">add_gene!</span><span
174
- class="method-args">(crit)</span>
175
-
176
- <span class="method-click-advice">click to toggle source</span>
177
-
178
- </div>
179
-
180
-
181
- <div class="method-description">
182
-
183
- <h1 id="method-i-add_gene-21-label-Add+a+gene+to+the+genome">Add a gene to the genome<span><a href="#method-i-add_gene-21-label-Add+a+gene+to+the+genome">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
184
-
185
- <pre>Unlike adding a new neuron, adding a new gene
186
- could result in a circular dependency. If so,
187
- and if recurrency is switched off, we must detect
188
- this condition and switch off the offending neurons.
189
-
190
- Obviously, this might result in a loss of functionality, but
191
- oh well.
192
-
193
- An easy and obvious check is to make sure we don&#39;t
194
- accept any inputs from output neurons, and we don&#39;t
195
- do any outputs to input neurons.
196
-
197
- Constructs for handling recurrency are present in Expressor.</pre>
198
-
199
-
200
-
201
-
202
- <div class="method-source-code" id="add_gene-21-source">
203
- <pre><span class="ruby-comment"># File lib/rubyneat/evolver.rb, line 290</span>
204
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">add_gene!</span>(<span class="ruby-identifier">crit</span>)
205
- <span class="ruby-identifier">n1</span> = <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">neurons</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">sample</span> <span class="ruby-comment"># input</span>
206
- <span class="ruby-identifier">n2</span> = <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">neurons</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">sample</span> <span class="ruby-comment"># output</span>
207
-
208
- <span class="ruby-comment"># Sanity checks!</span>
209
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">n1</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">n2</span> <span class="ruby-keyword">or</span> <span class="ruby-identifier">n1</span>.<span class="ruby-identifier">output?</span> <span class="ruby-keyword">or</span> <span class="ruby-identifier">n2</span>.<span class="ruby-identifier">input?</span>
210
- <span class="ruby-identifier">gene</span> = <span class="ruby-constant">Critter</span><span class="ruby-operator">::</span><span class="ruby-constant">Genotype</span><span class="ruby-operator">::</span><span class="ruby-constant">Gene</span>[<span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>, <span class="ruby-identifier">n1</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">n2</span>.<span class="ruby-identifier">name</span>, <span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-identifier">controller</span>.<span class="ruby-identifier">gaussian</span>]
211
- <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">add_genes</span> <span class="ruby-identifier">gene</span>
212
- <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;add_gene! Added gene #{gene}(#{n1.name} -&gt; #{n2.name}) to #{crit}&quot;</span>
213
- <span class="ruby-keyword">end</span>
214
- <span class="ruby-keyword">end</span></pre>
215
- </div>
216
-
217
- </div>
218
-
219
-
220
-
221
-
222
- </div>
223
-
224
-
225
- <div id="method-i-add_neuron-21" class="method-detail ">
226
-
227
- <div class="method-heading">
228
- <span class="method-name">add_neuron!</span><span
229
- class="method-args">(crit)</span>
230
-
231
- <span class="method-click-advice">click to toggle source</span>
232
-
233
- </div>
234
-
235
-
236
- <div class="method-description">
237
-
238
- <h1 id="method-i-add_neuron-21-label-Add+a+neuron+to+given+critter">Add a neuron to given critter<span><a href="#method-i-add_neuron-21-label-Add+a+neuron+to+given+critter">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
239
-
240
- <pre>Here, we add a neuron by randomly picking a
241
- gene, and split it into two genes with an intervening
242
- neuron. The old gene is not replaced, but disabled. 2 new genes are
243
- created along with the new neuron.</pre>
244
-
245
-
246
-
247
-
248
- <div class="method-source-code" id="add_neuron-21-source">
249
- <pre><span class="ruby-comment"># File lib/rubyneat/evolver.rb, line 265</span>
250
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">add_neuron!</span>(<span class="ruby-identifier">crit</span>)
251
- <span class="ruby-identifier">gene</span> = <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">genes</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">sample</span>
252
- <span class="ruby-identifier">neu</span> = <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">neural_hidden</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">sample</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">controller</span>)
253
- <span class="ruby-identifier">g1</span> = <span class="ruby-constant">Critter</span><span class="ruby-operator">::</span><span class="ruby-constant">Genotype</span><span class="ruby-operator">::</span><span class="ruby-constant">Gene</span>[<span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>, <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">in_neuron</span>, <span class="ruby-identifier">neu</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">weight</span>]
254
- <span class="ruby-identifier">g2</span> = <span class="ruby-constant">Critter</span><span class="ruby-operator">::</span><span class="ruby-constant">Genotype</span><span class="ruby-operator">::</span><span class="ruby-constant">Gene</span>[<span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>, <span class="ruby-identifier">neu</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">out_neuron</span>, <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">weight</span>]
255
- <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">enabled</span> = <span class="ruby-keyword">false</span>
256
- <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">add_neurons</span> <span class="ruby-identifier">neu</span>
257
- <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">add_genes</span> <span class="ruby-identifier">g1</span>, <span class="ruby-identifier">g2</span>
258
- <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;add_neuron!: neu #{neu}, g1 #{g1}, g2 #{g2}&quot;</span>
259
- <span class="ruby-keyword">end</span></pre>
260
- </div>
261
-
262
- </div>
263
-
264
-
265
-
266
-
267
- </div>
268
-
269
-
270
- <div id="method-i-disable_gene-21" class="method-detail ">
271
-
272
- <div class="method-heading">
273
- <span class="method-name">disable_gene!</span><span
274
- class="method-args">(crit)</span>
275
-
276
- <span class="method-click-advice">click to toggle source</span>
277
-
278
- </div>
279
-
280
-
281
- <div class="method-description">
282
-
283
- <p>Pick an enabled gene at random and disable it.</p>
284
-
285
-
286
-
287
-
288
- <div class="method-source-code" id="disable_gene-21-source">
289
- <pre><span class="ruby-comment"># File lib/rubyneat/evolver.rb, line 303</span>
290
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">disable_gene!</span>(<span class="ruby-identifier">crit</span>)
291
- <span class="ruby-identifier">gene</span> = <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">genes</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">reject</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">gene</span><span class="ruby-operator">|</span> <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">disabled?</span> }.<span class="ruby-identifier">sample</span>
292
- <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">enabled</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">nil?</span>
293
- <span class="ruby-keyword">end</span></pre>
294
- </div>
295
-
296
- </div>
297
-
298
-
299
-
300
-
301
- </div>
302
-
303
-
304
- <div id="method-i-reenable_gene-21" class="method-detail ">
305
-
306
- <div class="method-heading">
307
- <span class="method-name">reenable_gene!</span><span
308
- class="method-args">(crit)</span>
309
-
310
- <span class="method-click-advice">click to toggle source</span>
311
-
312
- </div>
313
-
314
-
315
- <div class="method-description">
316
-
317
- <p>Pick a disabled gene at random and reenable it.</p>
318
-
319
-
320
-
321
-
322
- <div class="method-source-code" id="reenable_gene-21-source">
323
- <pre><span class="ruby-comment"># File lib/rubyneat/evolver.rb, line 309</span>
324
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">reenable_gene!</span>(<span class="ruby-identifier">crit</span>)
325
- <span class="ruby-identifier">gene</span> = <span class="ruby-identifier">crit</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">genes</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">reject</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">gene</span><span class="ruby-operator">|</span> <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">enabled?</span> }.<span class="ruby-identifier">sample</span>
326
- <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">enabled</span> = <span class="ruby-keyword">true</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">nil?</span>
327
- <span class="ruby-keyword">end</span></pre>
328
- </div>
329
-
330
- </div>
331
-
332
-
333
-
334
-
335
- </div>
336
-
337
-
338
- </section>
339
-
340
- </section>
341
- </main>
342
-
343
-
344
- <footer id="validator-badges" role="contentinfo">
345
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
346
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
347
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
348
- </footer>
349
-
@@ -1,402 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
-
7
- <title>class NEAT::Expressor - rubyneat 0.3.4</title>
8
-
9
- <link href="../fonts.css" rel="stylesheet">
10
- <link href="../rdoc.css" rel="stylesheet">
11
-
12
- <script type="text/javascript">
13
- var rdoc_rel_prefix = "../";
14
- </script>
15
-
16
- <script src="../js/jquery.js"></script>
17
- <script src="../js/navigation.js"></script>
18
- <script src="../js/search_index.js"></script>
19
- <script src="../js/search.js"></script>
20
- <script src="../js/searcher.js"></script>
21
- <script src="../js/darkfish.js"></script>
22
-
23
-
24
- <body id="top" role="document" class="class">
25
- <nav role="navigation">
26
- <div id="project-navigation">
27
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
- <h2>
29
- <a href="../index.html" rel="home">Home</a>
30
- </h2>
31
-
32
- <div id="table-of-contents-navigation">
33
- <a href="../table_of_contents.html#pages">Pages</a>
34
- <a href="../table_of_contents.html#classes">Classes</a>
35
- <a href="../table_of_contents.html#methods">Methods</a>
36
- </div>
37
- </div>
38
-
39
- <div id="search-section" role="search" class="project-section initially-hidden">
40
- <form action="#" method="get" accept-charset="utf-8">
41
- <div id="search-field-wrapper">
42
- <input id="search-field" role="combobox" aria-label="Search"
43
- aria-autocomplete="list" aria-controls="search-results"
44
- type="text" name="search" placeholder="Search" spellcheck="false"
45
- title="Type to search, Up and Down to navigate, Enter to load">
46
- </div>
47
-
48
- <ul id="search-results" aria-label="Search Results"
49
- aria-busy="false" aria-expanded="false"
50
- aria-atomic="false" class="initially-hidden"></ul>
51
- </form>
52
- </div>
53
-
54
- </div>
55
-
56
-
57
-
58
- <div id="class-metadata">
59
-
60
- <div id="parent-class-section" class="nav-section">
61
- <h3>Parent</h3>
62
-
63
-
64
- <p class="link">Operator
65
-
66
- </div>
67
-
68
-
69
-
70
- <!-- Method Quickref -->
71
- <div id="method-list-section" class="nav-section">
72
- <h3>Methods</h3>
73
-
74
- <ul class="link-list" role="directory">
75
-
76
- <li class="calls-super" ><a href="#method-c-new">::new</a>
77
-
78
- <li ><a href="#method-i-express-21">#express!</a>
79
-
80
- <li ><a href="#method-i-express_expression-21">#express_expression!</a>
81
-
82
- <li ><a href="#method-i-express_genes-21">#express_genes!</a>
83
-
84
- <li ><a href="#method-i-express_neurons-21">#express_neurons!</a>
85
-
86
- </ul>
87
- </div>
88
-
89
- </div>
90
- </nav>
91
-
92
- <main role="main" aria-labelledby="class-NEAT::Expressor">
93
- <h1 id="class-NEAT::Expressor" class="class">
94
- class NEAT::Expressor
95
- </h1>
96
-
97
- <section class="description">
98
-
99
- <h1 id="class-NEAT::Expressor-label-Basis+of+all+expressors.+">Basis of all expressors. <span><a href="#class-NEAT::Expressor-label-Basis+of+all+expressors.+">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
100
-
101
- <pre>Expressor object turn genotypes into phenotypes.</pre>
102
-
103
- </section>
104
-
105
-
106
-
107
-
108
- <section id="5Buntitled-5D" class="documentation-section">
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
- <section id="public-class-5Buntitled-5D-method-details" class="method-section">
119
- <header>
120
- <h3>Public Class Methods</h3>
121
- </header>
122
-
123
-
124
- <div id="method-c-new" class="method-detail ">
125
-
126
- <div class="method-heading">
127
- <span class="method-name">new</span><span
128
- class="method-args">(c)</span>
129
-
130
- <span class="method-click-advice">click to toggle source</span>
131
-
132
- </div>
133
-
134
-
135
- <div class="method-description">
136
-
137
-
138
-
139
-
140
- <div class="method-calls-super">
141
- Calls superclass method
142
-
143
- </div>
144
-
145
-
146
-
147
- <div class="method-source-code" id="new-source">
148
- <pre><span class="ruby-comment"># File lib/rubyneat/expressor.rb, line 8</span>
149
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">c</span>)
150
- <span class="ruby-keyword">super</span>
151
- <span class="ruby-keyword">end</span></pre>
152
- </div>
153
-
154
- </div>
155
-
156
-
157
-
158
-
159
- </div>
160
-
161
-
162
- </section>
163
-
164
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
165
- <header>
166
- <h3>Public Instance Methods</h3>
167
- </header>
168
-
169
-
170
- <div id="method-i-express-21" class="method-detail ">
171
-
172
- <div class="method-heading">
173
- <span class="method-name">express!</span><span
174
- class="method-args">(critter)</span>
175
-
176
- <span class="method-click-advice">click to toggle source</span>
177
-
178
- </div>
179
-
180
-
181
- <div class="method-description">
182
-
183
- <p>Take the genotype of the critter and create a phenotype from the genotype.</p>
184
-
185
- <p>In the phenotype, it creates a function called stimulate(), which is called
186
- with the input parameters and returns a response in the form of a response
187
- hash (which corresponds directly to the output neurons).</p>
188
-
189
- <p>This implementation assumes an acyclic graph (feed forward) and cannot
190
- handle cycles at all. Later we may fix this or create a type of <a
191
- href="Expressor.html">Expressor</a> that can.</p>
192
-
193
-
194
-
195
-
196
- <div class="method-source-code" id="express-21-source">
197
- <pre><span class="ruby-comment"># File lib/rubyneat/expressor.rb, line 23</span>
198
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">express!</span>(<span class="ruby-identifier">critter</span>)
199
- <span class="ruby-identifier">critter</span>.<span class="ruby-identifier">ready_for_expression!</span>
200
- <span class="ruby-identifier">express_neurons!</span> <span class="ruby-identifier">critter</span>
201
- <span class="ruby-identifier">express_genes!</span> <span class="ruby-identifier">critter</span>
202
- <span class="ruby-identifier">express_expression!</span> <span class="ruby-identifier">critter</span>
203
- <span class="ruby-keyword">end</span></pre>
204
- </div>
205
-
206
- </div>
207
-
208
-
209
-
210
-
211
- </div>
212
-
213
-
214
- </section>
215
-
216
- <section id="protected-instance-5Buntitled-5D-method-details" class="method-section">
217
- <header>
218
- <h3>Protected Instance Methods</h3>
219
- </header>
220
-
221
-
222
- <div id="method-i-express_expression-21" class="method-detail ">
223
-
224
- <div class="method-heading">
225
- <span class="method-name">express_expression!</span><span
226
- class="method-args">(critter)</span>
227
-
228
- <span class="method-click-advice">click to toggle source</span>
229
-
230
- </div>
231
-
232
-
233
- <div class="method-description">
234
-
235
-
236
-
237
-
238
-
239
-
240
- <div class="method-source-code" id="express_expression-21-source">
241
- <pre><span class="ruby-comment"># File lib/rubyneat/expressor.rb, line 106</span>
242
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">express_expression!</span>(<span class="ruby-identifier">critter</span>)
243
- <span class="ruby-identifier">critter</span>.<span class="ruby-identifier">phenotype</span>.<span class="ruby-identifier">express!</span>
244
- <span class="ruby-keyword">end</span></pre>
245
- </div>
246
-
247
- </div>
248
-
249
-
250
-
251
-
252
- </div>
253
-
254
-
255
- <div id="method-i-express_genes-21" class="method-detail ">
256
-
257
- <div class="method-heading">
258
- <span class="method-name">express_genes!</span><span
259
- class="method-args">(critter)</span>
260
-
261
- <span class="method-click-advice">click to toggle source</span>
262
-
263
- </div>
264
-
265
-
266
- <div class="method-description">
267
-
268
- <h1 id="method-i-express_genes-21-label-Expression+of+the+Genotype+as+a+Phenotype.">Expression of the Genotype as a Phenotype.<span><a href="#method-i-express_genes-21-label-Expression+of+the+Genotype+as+a+Phenotype.">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
269
-
270
- <pre>What this really does is create the function that calls
271
- all the functions.
272
-
273
- This makes use of the Graph plugin for Neurons.</pre>
274
-
275
- <h1 id="method-i-express_genes-21-label-Recurrency+and+Expression+of+Genes">Recurrency and Expression of Genes<span><a href="#method-i-express_genes-21-label-Recurrency+and+Expression+of+Genes">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
276
-
277
- <pre>A simple approach has been taken here to allow for recurrency in
278
- our Critters. Basically, a looping construct has been put around the
279
- activation of the neurons so that recurrency can be done in 2 ways:
280
- 1) Via yielding, thus treating the stimulus function as a enumerable.
281
- In this approach, one would call the Critter&#39;s phenotype with a block of
282
- code that would accept the output of the net. It would return &#39;true&#39; to
283
- continue the iteration, or &#39;false&#39; to end the iteration.
284
- 2) Via multiple calls to the Pheontype instance:
285
- Since the value of the prior activation is preserved in the instance variables
286
- of the phenotype, subsequent activations will iterate the network.</pre>
287
-
288
- <h2 id="method-i-express_genes-21-label-Cavets+to+recurrent+activation">Cavets to recurrent activation<span><a href="#method-i-express_genes-21-label-Cavets+to+recurrent+activation">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
289
-
290
- <pre>For (2) above, the input neurons would be overwritten on each subsequent call.
291
- Since we do not allow recurrent connections to input neurons anyway, this should
292
- not be an issue, though we may allow for this at a future date.</pre>
293
-
294
-
295
-
296
-
297
- <div class="method-source-code" id="express_genes-21-source">
298
- <pre><span class="ruby-comment"># File lib/rubyneat/expressor.rb, line 58</span>
299
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">express_genes!</span>(<span class="ruby-identifier">critter</span>)
300
- <span class="ruby-identifier">g</span> = <span class="ruby-identifier">critter</span>.<span class="ruby-identifier">genotype</span>
301
- <span class="ruby-identifier">p</span> = <span class="ruby-identifier">critter</span>.<span class="ruby-identifier">phenotype</span>
302
-
303
- <span class="ruby-identifier">init_code</span> = <span class="ruby-string">&quot;\n def initialize_neurons\n&quot;</span>
304
-
305
- <span class="ruby-comment"># &#39;stimulate&#39; function call (really should be &#39;activate&#39;, but we&#39;ll reserve this for something else)</span>
306
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; def #{NEAT::STIMULUS}(&quot;</span>
307
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">g</span>.<span class="ruby-identifier">neural_inputs</span>.<span class="ruby-identifier">reject</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">sym</span><span class="ruby-operator">|</span> <span class="ruby-identifier">g</span>.<span class="ruby-identifier">neural_inputs</span>[<span class="ruby-identifier">sym</span>].<span class="ruby-identifier">bias?</span> }.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">sym</span>, <span class="ruby-identifier">neu</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sym</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;, &quot;</span>)
308
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot;)\n&quot;</span>
309
-
310
- <span class="ruby-comment"># Assign all the parameters to instance variables.</span>
311
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">g</span>.<span class="ruby-identifier">neural_inputs</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">sym</span>, <span class="ruby-identifier">neu</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot; @#{sym} = #{sym}\n&quot;</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;&quot;</span>)
312
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; loop {\n&quot;</span>
313
-
314
- <span class="ruby-comment"># Resolve the order in which we shall call the neurons</span>
315
- <span class="ruby-comment"># TODO handle the dependency list if it comes back!</span>
316
- <span class="ruby-ivar">@resolved</span>, <span class="ruby-ivar">@dependencies</span> = <span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-constant">Graph</span><span class="ruby-operator">::</span><span class="ruby-constant">DependencyResolver</span>[<span class="ruby-identifier">g</span>.<span class="ruby-identifier">neural_outputs</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">s</span>, <span class="ruby-identifier">neu</span><span class="ruby-operator">|</span> <span class="ruby-identifier">neu</span>}].<span class="ruby-identifier">resolve</span>
317
-
318
- <span class="ruby-comment"># And now call them in that order!</span>
319
- <span class="ruby-ivar">@resolved</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">neu</span><span class="ruby-operator">|</span>
320
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">neu</span>.<span class="ruby-identifier">input?</span>
321
- <span class="ruby-identifier">init_code</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; @#{neu.name} = 0\n&quot;</span>
322
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">g</span>.<span class="ruby-identifier">neural_gene_map</span>.<span class="ruby-identifier">member?</span> <span class="ruby-identifier">neu</span>.<span class="ruby-identifier">name</span>
323
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; @#{neu.name} = #{neu.name}(&quot;</span>
324
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">g</span>.<span class="ruby-identifier">neural_gene_map</span>[<span class="ruby-identifier">neu</span>.<span class="ruby-identifier">name</span>].<span class="ruby-identifier">map</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">gene</span><span class="ruby-operator">|</span>
325
- <span class="ruby-string">&quot;%s * @%s&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">gene</span>.<span class="ruby-identifier">weight</span>, <span class="ruby-identifier">gene</span>.<span class="ruby-identifier">in_neuron</span>]
326
- }.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;, &quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;)\n&quot;</span>
327
- <span class="ruby-keyword">else</span>
328
- <span class="ruby-identifier">g</span>.<span class="ruby-identifier">dangling_neurons</span> = <span class="ruby-keyword">true</span>
329
- <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;Dangling neuron in critter #{critter} -- #{neu}&quot;</span>
330
- <span class="ruby-keyword">end</span>
331
- <span class="ruby-keyword">end</span>
332
- <span class="ruby-keyword">end</span>
333
- <span class="ruby-identifier">init_code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; end\n&quot;</span>
334
-
335
- <span class="ruby-comment"># And now return the result as a vector of outputs.</span>
336
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; @_outvec = [&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">g</span>.<span class="ruby-identifier">neural_outputs</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">sym</span>, <span class="ruby-identifier">neu</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;@#{sym}&quot;</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;,&#39;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;]\n&quot;</span>
337
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; break unless block_given?\n&quot;</span>
338
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; break unless yield @_outvec\n&quot;</span>
339
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; }\n&quot;</span>
340
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; @_outvec\n&quot;</span>
341
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; end\n&quot;</span>
342
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">init_code</span>
343
- <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">code</span>
344
- <span class="ruby-identifier">p</span>.<span class="ruby-identifier">express!</span>
345
- <span class="ruby-keyword">end</span></pre>
346
- </div>
347
-
348
- </div>
349
-
350
-
351
-
352
-
353
- </div>
354
-
355
-
356
- <div id="method-i-express_neurons-21" class="method-detail ">
357
-
358
- <div class="method-heading">
359
- <span class="method-name">express_neurons!</span><span
360
- class="method-args">(critter)</span>
361
-
362
- <span class="method-click-advice">click to toggle source</span>
363
-
364
- </div>
365
-
366
-
367
- <div class="method-description">
368
-
369
- <p>Express Neurons as methods</p>
370
-
371
-
372
-
373
-
374
- <div class="method-source-code" id="express_neurons-21-source">
375
- <pre><span class="ruby-comment"># File lib/rubyneat/expressor.rb, line 32</span>
376
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">express_neurons!</span>(<span class="ruby-identifier">critter</span>)
377
- <span class="ruby-identifier">critter</span>.<span class="ruby-identifier">genotype</span>.<span class="ruby-identifier">neurons</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">neuron</span><span class="ruby-operator">|</span>
378
- <span class="ruby-identifier">neuron</span>.<span class="ruby-identifier">express</span>(<span class="ruby-identifier">critter</span>.<span class="ruby-identifier">phenotype</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">neuron</span>.<span class="ruby-identifier">input?</span> <span class="ruby-keyword">and</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">neuron</span>.<span class="ruby-identifier">bias?</span>
379
- <span class="ruby-keyword">end</span>
380
- <span class="ruby-keyword">end</span></pre>
381
- </div>
382
-
383
- </div>
384
-
385
-
386
-
387
-
388
- </div>
389
-
390
-
391
- </section>
392
-
393
- </section>
394
- </main>
395
-
396
-
397
- <footer id="validator-badges" role="contentinfo">
398
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
399
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
400
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
401
- </footer>
402
-