rubyneat 0.3.5.alpha.2

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.
Files changed (261) hide show
  1. checksums.yaml +7 -0
  2. data/.directory +4 -0
  3. data/.gitignore.orig +20 -0
  4. data/.idea/.name +1 -0
  5. data/.idea/.rakeTasks +7 -0
  6. data/.idea/dictionaries/trader.xml +3 -0
  7. data/.idea/encodings.xml +5 -0
  8. data/.idea/misc.xml +5 -0
  9. data/.idea/modules.xml +9 -0
  10. data/.idea/rubyneat.iml +197 -0
  11. data/.idea/runConfigurations/invpend_neat.xml +26 -0
  12. data/.idea/runConfigurations/sigdebug_neat.xml +24 -0
  13. data/.idea/runConfigurations/xor_neat.xml +26 -0
  14. data/.idea/runConfigurations/xordebug_neat.xml +24 -0
  15. data/.idea/runConfigurations/xorsin_neat.xml +24 -0
  16. data/.idea/scopes/scope_settings.xml +5 -0
  17. data/.idea/vcs.xml +7 -0
  18. data/.idea/workspace.xml +1124 -0
  19. data/.semver +5 -0
  20. data/.yardoc/checksums +11 -0
  21. data/.yardoc/object_types +0 -0
  22. data/.yardoc/objects/root.dat +0 -0
  23. data/.yardoc/proxy_types +0 -0
  24. data/Gemfile +32 -0
  25. data/Gemfile.lock +135 -0
  26. data/Gemfile.lock.orig +147 -0
  27. data/Guardfile +8 -0
  28. data/Rakefile +61 -0
  29. data/bin/neat +83 -0
  30. data/config/application.rb +5 -0
  31. data/doc/ControllerPoint.html +125 -0
  32. data/doc/CuteA.html +286 -0
  33. data/doc/CuteB.html +297 -0
  34. data/doc/DSL.html +883 -0
  35. data/doc/NEAT/BasicNeuronTypes/BiasNeuron.html +518 -0
  36. data/doc/NEAT/BasicNeuronTypes/CosineNeuron.html +274 -0
  37. data/doc/NEAT/BasicNeuronTypes/InputNeuron.html +366 -0
  38. data/doc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +275 -0
  39. data/doc/NEAT/BasicNeuronTypes/SineNeuron.html +274 -0
  40. data/doc/NEAT/BasicNeuronTypes/TanhNeuron.html +274 -0
  41. data/doc/NEAT/BasicNeuronTypes.html +136 -0
  42. data/doc/NEAT/Controller/NeatSettings.html +3985 -0
  43. data/doc/NEAT/Controller.html +2490 -0
  44. data/doc/NEAT/Critter/Genotype/Gene.html +979 -0
  45. data/doc/NEAT/Critter/Genotype.html +1601 -0
  46. data/doc/NEAT/Critter/Phenotype.html +603 -0
  47. data/doc/NEAT/Critter.html +1037 -0
  48. data/doc/NEAT/DSL.html +1255 -0
  49. data/doc/NEAT/Evaluator.html +420 -0
  50. data/doc/NEAT/Evolver/CritterOp.html +551 -0
  51. data/doc/NEAT/Evolver.html +602 -0
  52. data/doc/NEAT/Expressor.html +327 -0
  53. data/doc/NEAT/Graph/DependencyResolver.html +478 -0
  54. data/doc/NEAT/Graph/GraphException.html +123 -0
  55. data/doc/NEAT/Graph.html +402 -0
  56. data/doc/NEAT/NeatException.html +123 -0
  57. data/doc/NEAT/NeatOb.html +567 -0
  58. data/doc/NEAT/Neuron.html +1067 -0
  59. data/doc/NEAT/Operator.html +162 -0
  60. data/doc/NEAT/Population.html +1961 -0
  61. data/doc/NEAT/Trait.html +169 -0
  62. data/doc/NEAT.html +588 -0
  63. data/doc/_index.html +373 -0
  64. data/doc/class_list.html +54 -0
  65. data/doc/css/common.css +1 -0
  66. data/doc/css/full_list.css +57 -0
  67. data/doc/css/style.css +339 -0
  68. data/doc/file_list.html +53 -0
  69. data/doc/frames.html +26 -0
  70. data/doc/index.html +373 -0
  71. data/doc/js/app.js +219 -0
  72. data/doc/js/full_list.js +178 -0
  73. data/doc/js/jquery.js +4 -0
  74. data/doc/method_list.html +1415 -0
  75. data/doc/top-level-namespace.html +164 -0
  76. data/foo/foo_aquarium_example.rb +38 -0
  77. data/foo/foo_gosu.rb +99 -0
  78. data/foo/foo_rubygoo.rb +104 -0
  79. data/foo/foo_sdl.rb +34 -0
  80. data/foo/icon.png +0 -0
  81. data/lib/rubyneat/critter.rb +374 -0
  82. data/lib/rubyneat/default_neat.rb +10 -0
  83. data/lib/rubyneat/dsl.rb +130 -0
  84. data/lib/rubyneat/evaluator.rb +51 -0
  85. data/lib/rubyneat/evolver.rb +315 -0
  86. data/lib/rubyneat/expressor.rb +110 -0
  87. data/lib/rubyneat/graph.rb +95 -0
  88. data/lib/rubyneat/neuron.rb +152 -0
  89. data/lib/rubyneat/population.rb +227 -0
  90. data/lib/rubyneat/rubyneat.rb +429 -0
  91. data/lib/rubyneat.rb +8 -0
  92. data/neater/invpend_neat.rb +150 -0
  93. data/neater/rnlib/inverted_pendulum.rb +380 -0
  94. data/neater/rnlib/xor.rb +10 -0
  95. data/neater/sigdebug_neat.rb +136 -0
  96. data/neater/xor_neat.rb +137 -0
  97. data/neater/xoranalog_neat.rb +138 -0
  98. data/neater/xorsin_neat.rb +143 -0
  99. data/projectFilesBackup/.idea/rubyneat.iml +180 -0
  100. data/public/.directory +4 -0
  101. data/public/background.png +0 -0
  102. data/public/background.xcf +0 -0
  103. data/public/cart.png +0 -0
  104. data/public/cart.xcf +0 -0
  105. data/public/metalpoles_molton_ball_l.jpg +0 -0
  106. data/public/old_background.png +0 -0
  107. data/public/pointer.png +0 -0
  108. data/public/pointer.xcf +0 -0
  109. data/public/pole.kra +0 -0
  110. data/public/pole.png +0 -0
  111. data/public/pole.xcf +0 -0
  112. data/public/wheel-of-year-stone-DD-131-WOYS.jpg +0 -0
  113. data/public/wheel.png +0 -0
  114. data/public/wheel.xcf +0 -0
  115. data/public/wood-planks-texture.jpg +0 -0
  116. data/rdoc/ControllerPoint.html +116 -0
  117. data/rdoc/CuteA.html +177 -0
  118. data/rdoc/CuteB.html +178 -0
  119. data/rdoc/DSLSetup.html +177 -0
  120. data/rdoc/GameTestWindow.html +242 -0
  121. data/rdoc/GameWindow.html +292 -0
  122. data/rdoc/Gemfile.html +215 -0
  123. data/rdoc/Gemfile_lock.html +327 -0
  124. data/rdoc/GraphTest.html +210 -0
  125. data/rdoc/Guardfile.html +198 -0
  126. data/rdoc/InvertedPendulum/Cart.html +668 -0
  127. data/rdoc/InvertedPendulum/DSL.html +259 -0
  128. data/rdoc/InvertedPendulum/InvPendWindow.html +402 -0
  129. data/rdoc/InvertedPendulum.html +198 -0
  130. data/rdoc/Logger.html +98 -0
  131. data/rdoc/NEAT/BasicNeuronTypes/BiasNeuron.html +265 -0
  132. data/rdoc/NEAT/BasicNeuronTypes/CosineNeuron.html +162 -0
  133. data/rdoc/NEAT/BasicNeuronTypes/InputNeuron.html +206 -0
  134. data/rdoc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +162 -0
  135. data/rdoc/NEAT/BasicNeuronTypes/SineNeuron.html +162 -0
  136. data/rdoc/NEAT/BasicNeuronTypes/TanhNeuron.html +161 -0
  137. data/rdoc/NEAT/BasicNeuronTypes.html +107 -0
  138. data/rdoc/NEAT/Controller/NeatSettings.html +880 -0
  139. data/rdoc/NEAT/Controller.html +729 -0
  140. data/rdoc/NEAT/Critter/Genotype/Gene.html +457 -0
  141. data/rdoc/NEAT/Critter/Genotype.html +735 -0
  142. data/rdoc/NEAT/Critter/Phenotype.html +330 -0
  143. data/rdoc/NEAT/Critter.html +489 -0
  144. data/rdoc/NEAT/DSL.html +729 -0
  145. data/rdoc/NEAT/Evaluator.html +256 -0
  146. data/rdoc/NEAT/Evolver/CritterOp.html +349 -0
  147. data/rdoc/NEAT/Evolver.html +891 -0
  148. data/rdoc/NEAT/Expressor.html +402 -0
  149. data/rdoc/NEAT/Graph/DependencyResolver.html +291 -0
  150. data/rdoc/NEAT/Graph/GraphException.html +105 -0
  151. data/rdoc/NEAT/Graph.html +263 -0
  152. data/rdoc/NEAT/NeatException.html +105 -0
  153. data/rdoc/NEAT/NeatOb.html +325 -0
  154. data/rdoc/NEAT/Neuron.html +481 -0
  155. data/rdoc/NEAT/Operator.html +109 -0
  156. data/rdoc/NEAT/Population.html +935 -0
  157. data/rdoc/NEAT/Trait.html +117 -0
  158. data/rdoc/NEAT.html +422 -0
  159. data/rdoc/Object.html +384 -0
  160. data/rdoc/Phi.html +98 -0
  161. data/rdoc/Player.html +383 -0
  162. data/rdoc/Rakefile.html +254 -0
  163. data/rdoc/RubyNEAT/Application.html +105 -0
  164. data/rdoc/RubyNEAT.html +98 -0
  165. data/rdoc/SDL/Event2.html +98 -0
  166. data/rdoc/SDL.html +98 -0
  167. data/rdoc/Vector.html +195 -0
  168. data/rdoc/created.rid +125 -0
  169. data/rdoc/doc/ControllerPoint_html.html +299 -0
  170. data/rdoc/doc/CuteA_html.html +438 -0
  171. data/rdoc/doc/CuteB_html.html +436 -0
  172. data/rdoc/doc/DSL_html.html +992 -0
  173. data/rdoc/doc/NEAT/BasicNeuronTypes/BiasNeuron_html.html +617 -0
  174. data/rdoc/doc/NEAT/BasicNeuronTypes/CosineNeuron_html.html +413 -0
  175. data/rdoc/doc/NEAT/BasicNeuronTypes/InputNeuron_html.html +498 -0
  176. data/rdoc/doc/NEAT/BasicNeuronTypes/SigmoidNeuron_html.html +413 -0
  177. data/rdoc/doc/NEAT/BasicNeuronTypes/SineNeuron_html.html +413 -0
  178. data/rdoc/doc/NEAT/BasicNeuronTypes/TanhNeuron_html.html +412 -0
  179. data/rdoc/doc/NEAT/BasicNeuronTypes_html.html +310 -0
  180. data/rdoc/doc/NEAT/Controller/NeatSettings_html.html +3324 -0
  181. data/rdoc/doc/NEAT/Controller_html.html +2212 -0
  182. data/rdoc/doc/NEAT/Critter/Genotype/Gene_html.html +997 -0
  183. data/rdoc/doc/NEAT/Critter/Genotype_html.html +1556 -0
  184. data/rdoc/doc/NEAT/Critter/Phenotype_html.html +687 -0
  185. data/rdoc/doc/NEAT/Critter_html.html +1037 -0
  186. data/rdoc/doc/NEAT/DSL_html.html +1349 -0
  187. data/rdoc/doc/NEAT/Evaluator_html.html +556 -0
  188. data/rdoc/doc/NEAT/Evolver/CritterOp_html.html +690 -0
  189. data/rdoc/doc/NEAT/Evolver_html.html +677 -0
  190. data/rdoc/doc/NEAT/Expressor_html.html +468 -0
  191. data/rdoc/doc/NEAT/Graph/DependencyResolver_html.html +598 -0
  192. data/rdoc/doc/NEAT/Graph/GraphException_html.html +299 -0
  193. data/rdoc/doc/NEAT/Graph_html.html +527 -0
  194. data/rdoc/doc/NEAT/NeatException_html.html +299 -0
  195. data/rdoc/doc/NEAT/NeatOb_html.html +671 -0
  196. data/rdoc/doc/NEAT/Neuron_html.html +1095 -0
  197. data/rdoc/doc/NEAT/Operator_html.html +337 -0
  198. data/rdoc/doc/NEAT/Population_html.html +1795 -0
  199. data/rdoc/doc/NEAT/Trait_html.html +344 -0
  200. data/rdoc/doc/NEAT_html.html +736 -0
  201. data/rdoc/doc/_index_html.html +559 -0
  202. data/rdoc/doc/class_list_html.html +369 -0
  203. data/rdoc/doc/css/common_css.html +188 -0
  204. data/rdoc/doc/css/full_list_css.html +243 -0
  205. data/rdoc/doc/css/style_css.html +530 -0
  206. data/rdoc/doc/file_list_html.html +240 -0
  207. data/rdoc/doc/frames_html.html +217 -0
  208. data/rdoc/doc/index_html.html +559 -0
  209. data/rdoc/doc/js/app_js.html +423 -0
  210. data/rdoc/doc/js/full_list_js.html +372 -0
  211. data/rdoc/doc/js/jquery_js.html +1536 -0
  212. data/rdoc/doc/method_list_html.html +1375 -0
  213. data/rdoc/doc/top-level-namespace_html.html +317 -0
  214. data/rdoc/fonts/Lato-Light.ttf +0 -0
  215. data/rdoc/fonts/Lato-LightItalic.ttf +0 -0
  216. data/rdoc/fonts/Lato-Regular.ttf +0 -0
  217. data/rdoc/fonts/Lato-RegularItalic.ttf +0 -0
  218. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  219. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  220. data/rdoc/fonts.css +167 -0
  221. data/rdoc/images/add.png +0 -0
  222. data/rdoc/images/arrow_up.png +0 -0
  223. data/rdoc/images/brick.png +0 -0
  224. data/rdoc/images/brick_link.png +0 -0
  225. data/rdoc/images/bug.png +0 -0
  226. data/rdoc/images/bullet_black.png +0 -0
  227. data/rdoc/images/bullet_toggle_minus.png +0 -0
  228. data/rdoc/images/bullet_toggle_plus.png +0 -0
  229. data/rdoc/images/date.png +0 -0
  230. data/rdoc/images/delete.png +0 -0
  231. data/rdoc/images/find.png +0 -0
  232. data/rdoc/images/loadingAnimation.gif +0 -0
  233. data/rdoc/images/macFFBgHack.png +0 -0
  234. data/rdoc/images/package.png +0 -0
  235. data/rdoc/images/page_green.png +0 -0
  236. data/rdoc/images/page_white_text.png +0 -0
  237. data/rdoc/images/page_white_width.png +0 -0
  238. data/rdoc/images/plugin.png +0 -0
  239. data/rdoc/images/ruby.png +0 -0
  240. data/rdoc/images/tag_blue.png +0 -0
  241. data/rdoc/images/tag_green.png +0 -0
  242. data/rdoc/images/transparent.png +0 -0
  243. data/rdoc/images/wrench.png +0 -0
  244. data/rdoc/images/wrench_orange.png +0 -0
  245. data/rdoc/images/zoom.png +0 -0
  246. data/rdoc/index.html +282 -0
  247. data/rdoc/js/darkfish.js +140 -0
  248. data/rdoc/js/jquery.js +18 -0
  249. data/rdoc/js/navigation.js +142 -0
  250. data/rdoc/js/search.js +109 -0
  251. data/rdoc/js/search_index.js +1 -0
  252. data/rdoc/js/searcher.js +228 -0
  253. data/rdoc/rdoc.css +580 -0
  254. data/rdoc/rubyneat_gemspec.html +387 -0
  255. data/rdoc/table_of_contents.html +2502 -0
  256. data/rdoc/xordebug_log.html +170598 -0
  257. data/rdoc/xorsin_log.html +22569 -0
  258. data/rubyneat.gemspec +347 -0
  259. data/rubyneat.gemspec.orig +375 -0
  260. data/spec/lib/rubyneat/rubyneat_spec.rb +132 -0
  261. metadata +555 -0
@@ -0,0 +1,1349 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>DSL.html - 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="file">
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="project-metadata">
59
+ <div id="fileindex-section" class="nav-section">
60
+ <h3>Pages</h3>
61
+
62
+ <ul class="link-list">
63
+
64
+ <li><a href="../../Gemfile.html">Gemfile</a>
65
+
66
+ <li><a href="../../Gemfile_lock.html">Gemfile.lock</a>
67
+
68
+ <li><a href="../../Guardfile.html">Guardfile</a>
69
+
70
+ <li><a href="../../Rakefile.html">Rakefile</a>
71
+
72
+ <li><a href="../../doc/ControllerPoint_html.html">ControllerPoint.html</a>
73
+
74
+ <li><a href="../../doc/CuteA_html.html">CuteA.html</a>
75
+
76
+ <li><a href="../../doc/CuteB_html.html">CuteB.html</a>
77
+
78
+ <li><a href="../../doc/DSL_html.html">DSL.html</a>
79
+
80
+ <li><a href="../../doc/NEAT_html.html">NEAT.html</a>
81
+
82
+ <li><a href="../../doc/NEAT/BasicNeuronTypes_html.html">BasicNeuronTypes.html</a>
83
+
84
+ <li><a href="../../doc/NEAT/BasicNeuronTypes/BiasNeuron_html.html">BiasNeuron.html</a>
85
+
86
+ <li><a href="../../doc/NEAT/BasicNeuronTypes/CosineNeuron_html.html">CosineNeuron.html</a>
87
+
88
+ <li><a href="../../doc/NEAT/BasicNeuronTypes/InputNeuron_html.html">InputNeuron.html</a>
89
+
90
+ <li><a href="../../doc/NEAT/BasicNeuronTypes/SigmoidNeuron_html.html">SigmoidNeuron.html</a>
91
+
92
+ <li><a href="../../doc/NEAT/BasicNeuronTypes/SineNeuron_html.html">SineNeuron.html</a>
93
+
94
+ <li><a href="../../doc/NEAT/BasicNeuronTypes/TanhNeuron_html.html">TanhNeuron.html</a>
95
+
96
+ <li><a href="../../doc/NEAT/Controller_html.html">Controller.html</a>
97
+
98
+ <li><a href="../../doc/NEAT/Controller/NeatSettings_html.html">NeatSettings.html</a>
99
+
100
+ <li><a href="../../doc/NEAT/Critter_html.html">Critter.html</a>
101
+
102
+ <li><a href="../../doc/NEAT/Critter/Genotype_html.html">Genotype.html</a>
103
+
104
+ <li><a href="../../doc/NEAT/Critter/Genotype/Gene_html.html">Gene.html</a>
105
+
106
+ <li><a href="../../doc/NEAT/Critter/Phenotype_html.html">Phenotype.html</a>
107
+
108
+ <li><a href="../../doc/NEAT/DSL_html.html">DSL.html</a>
109
+
110
+ <li><a href="../../doc/NEAT/Evaluator_html.html">Evaluator.html</a>
111
+
112
+ <li><a href="../../doc/NEAT/Evolver_html.html">Evolver.html</a>
113
+
114
+ <li><a href="../../doc/NEAT/Evolver/CritterOp_html.html">CritterOp.html</a>
115
+
116
+ <li><a href="../../doc/NEAT/Expressor_html.html">Expressor.html</a>
117
+
118
+ <li><a href="../../doc/NEAT/Graph_html.html">Graph.html</a>
119
+
120
+ <li><a href="../../doc/NEAT/Graph/DependencyResolver_html.html">DependencyResolver.html</a>
121
+
122
+ <li><a href="../../doc/NEAT/Graph/GraphException_html.html">GraphException.html</a>
123
+
124
+ <li><a href="../../doc/NEAT/NeatException_html.html">NeatException.html</a>
125
+
126
+ <li><a href="../../doc/NEAT/NeatOb_html.html">NeatOb.html</a>
127
+
128
+ <li><a href="../../doc/NEAT/Neuron_html.html">Neuron.html</a>
129
+
130
+ <li><a href="../../doc/NEAT/Operator_html.html">Operator.html</a>
131
+
132
+ <li><a href="../../doc/NEAT/Population_html.html">Population.html</a>
133
+
134
+ <li><a href="../../doc/NEAT/Trait_html.html">Trait.html</a>
135
+
136
+ <li><a href="../../doc/_index_html.html">_index.html</a>
137
+
138
+ <li><a href="../../doc/class_list_html.html">class_list.html</a>
139
+
140
+ <li><a href="../../doc/css/common_css.html">common.css</a>
141
+
142
+ <li><a href="../../doc/css/full_list_css.html">full_list.css</a>
143
+
144
+ <li><a href="../../doc/css/style_css.html">style.css</a>
145
+
146
+ <li><a href="../../doc/file_list_html.html">file_list.html</a>
147
+
148
+ <li><a href="../../doc/frames_html.html">frames.html</a>
149
+
150
+ <li><a href="../../doc/index_html.html">index.html</a>
151
+
152
+ <li><a href="../../doc/js/app_js.html">app.js</a>
153
+
154
+ <li><a href="../../doc/js/full_list_js.html">full_list.js</a>
155
+
156
+ <li><a href="../../doc/js/jquery_js.html">jquery.js</a>
157
+
158
+ <li><a href="../../doc/method_list_html.html">method_list.html</a>
159
+
160
+ <li><a href="../../doc/top-level-namespace_html.html">top-level-namespace.html</a>
161
+
162
+ <li><a href="../../foo_dump_log.html">foo.dump.log</a>
163
+
164
+ <li><a href="../../rubyneat_gemspec.html">rubyneat.gemspec</a>
165
+
166
+ <li><a href="../../xordebug_log.html">xordebug.log</a>
167
+
168
+ <li><a href="../../xorsin_log.html">xorsin.log</a>
169
+
170
+ </ul>
171
+ </div>
172
+
173
+ </div>
174
+ </nav>
175
+
176
+ <main role="main" aria-label="Page doc/NEAT/DSL.html">
177
+
178
+ <p>&lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”</p>
179
+
180
+ <pre>&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</pre>
181
+
182
+ <p>&lt;html xmlns=“<a
183
+ href="http://www.w3.org/1999/xhtml">www.w3.org/1999/xhtml</a>”
184
+ xml:lang=“en” lang=“en”&gt;</p>
185
+
186
+ <pre>&lt;head&gt;
187
+ &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;</pre>
188
+
189
+ <p>&lt;title&gt;</p>
190
+
191
+ <pre>Module: NEAT::DSL
192
+
193
+ &amp;mdash; Documentation by YARD 0.8.7.3</pre>
194
+
195
+ <p>&lt;/title&gt;</p>
196
+
197
+ <pre>&lt;link rel=&quot;stylesheet&quot; href=&quot;../css/style.css&quot; type=&quot;text/css&quot; charset=&quot;utf-8&quot; /&gt;
198
+
199
+ &lt;link rel=&quot;stylesheet&quot; href=&quot;../css/common.css&quot; type=&quot;text/css&quot; charset=&quot;utf-8&quot; /&gt;</pre>
200
+
201
+ <p>&lt;script type=“text/javascript” charset=“utf-8”&gt;</p>
202
+
203
+ <pre>hasFrames = window.top.frames.main ? true : false;
204
+ relpath = &#39;../&#39;;
205
+ framesUrl = &quot;../frames.html#!&quot; + escape(window.location.href);</pre>
206
+
207
+ <p>&lt;/script&gt;</p>
208
+
209
+ <pre>&lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot; src=&quot;../js/jquery.js&quot;&gt;&lt;/script&gt;
210
+
211
+ &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot; src=&quot;../js/app.js&quot;&gt;&lt;/script&gt;
212
+
213
+ &lt;/head&gt;
214
+ &lt;body&gt;
215
+ &lt;div id=&quot;header&quot;&gt;
216
+ &lt;div id=&quot;menu&quot;&gt;
217
+
218
+ &lt;a href=&quot;../_index.html&quot;&gt;Index (D)&lt;/a&gt; &amp;raquo;
219
+ &lt;span class=&#39;title&#39;&gt;&lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html&quot; title=&quot;NEAT (module)&quot;&gt;NEAT&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;
220
+ &amp;raquo;
221
+ &lt;span class=&quot;title&quot;&gt;DSL&lt;/span&gt;
222
+
223
+ &lt;div class=&quot;noframes&quot;&gt;&lt;span class=&quot;title&quot;&gt;(&lt;/span&gt;&lt;a href=&quot;.&quot; target=&quot;_top&quot;&gt;no frames&lt;/a&gt;&lt;span class=&quot;title&quot;&gt;)&lt;/span&gt;&lt;/div&gt;</pre>
224
+
225
+ <p>&lt;/div&gt;</p>
226
+
227
+ <pre> &lt;div id=&quot;search&quot;&gt;
228
+
229
+ &lt;a class=&quot;full_list_link&quot; id=&quot;class_list_link&quot;
230
+ href=&quot;../class_list.html&quot;&gt;
231
+ Class List
232
+ &lt;/a&gt;
233
+
234
+ &lt;a class=&quot;full_list_link&quot; id=&quot;method_list_link&quot;
235
+ href=&quot;../method_list.html&quot;&gt;
236
+ Method List
237
+ &lt;/a&gt;
238
+
239
+ &lt;a class=&quot;full_list_link&quot; id=&quot;file_list_link&quot;
240
+ href=&quot;../file_list.html&quot;&gt;
241
+ File List
242
+ &lt;/a&gt;</pre>
243
+
244
+ <p>&lt;/div&gt;</p>
245
+
246
+ <pre> &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
247
+ &lt;/div&gt;
248
+
249
+ &lt;iframe id=&quot;search_frame&quot;&gt;&lt;/iframe&gt;
250
+
251
+ &lt;div id=&quot;content&quot;&gt;&lt;h1&gt;Module: NEAT::DSL</pre>
252
+
253
+ <p>&lt;/h1&gt;</p>
254
+
255
+ <p>&lt;dl class=“box”&gt;</p>
256
+
257
+ <pre> &lt;dt class=&quot;r1&quot;&gt;Includes:&lt;/dt&gt;
258
+ &lt;dd class=&quot;r1&quot;&gt;Math, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html&quot; title=&quot;NEAT (module)&quot;&gt;NEAT&lt;/a&gt;&lt;/span&gt;, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;BasicNeuronTypes.html&quot; title=&quot;NEAT::BasicNeuronTypes (module)&quot;&gt;BasicNeuronTypes&lt;/a&gt;&lt;/span&gt;&lt;/dd&gt;
259
+
260
+ &lt;dt class=&quot;r2 last&quot;&gt;Defined in:&lt;/dt&gt;
261
+ &lt;dd class=&quot;r2 last&quot;&gt;lib/rubyneat/dsl.rb&lt;/dd&gt;</pre>
262
+
263
+ <p>&lt;/dl&gt; &lt;div class=“clear”&gt;&lt;/div&gt;</p>
264
+
265
+ <pre>&lt;h2&gt;Constant Summary&lt;/h2&gt;
266
+
267
+ &lt;h2&gt;Constant Summary&lt;/h2&gt;
268
+
269
+ &lt;h3 class=&quot;inherited&quot;&gt;Constants included
270
+ from &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html&quot; title=&quot;NEAT (module)&quot;&gt;NEAT&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;
271
+ &lt;p class=&quot;inherited&quot;&gt;&lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#STIMULUS-constant&quot; title=&quot;NEAT::STIMULUS (constant)&quot;&gt;STIMULUS&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
272
+
273
+ &lt;h2&gt;
274
+ Instance Method Summary
275
+ &lt;small&gt;(&lt;a href=&quot;#&quot; class=&quot;summary_toggle&quot;&gt;collapse&lt;/a&gt;)&lt;/small&gt;
276
+ &lt;/h2&gt;
277
+
278
+ &lt;ul class=&quot;summary&quot;&gt;
279
+
280
+ &lt;li class=&quot;public &quot;&gt;
281
+ &lt;span class=&quot;summary_signature&quot;&gt;
282
+
283
+ &lt;a href=&quot;#compare-instance_method&quot; title=&quot;#compare (instance method)&quot;&gt;- (Object) &lt;strong&gt;compare&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
284
+
285
+ &lt;/span&gt;
286
+
287
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
288
+
289
+ <p>&lt;p&gt;Fitness ordering – given 2 fitness numbers, use the to compare
290
+ them (or the equivalent, following the +1, 0, -1 that is in the sense of
291
+ ).&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
292
+
293
+ <p>&lt;/li&gt;</p>
294
+
295
+ <pre> &lt;li class=&quot;public &quot;&gt;
296
+ &lt;span class=&quot;summary_signature&quot;&gt;
297
+
298
+ &lt;a href=&quot;#condition_boolean_vector-instance_method&quot; title=&quot;#condition_boolean_vector (instance method)&quot;&gt;- (Object) &lt;strong&gt;condition_boolean_vector&lt;/strong&gt;(vec, sig = :tanh) &lt;/a&gt;
299
+
300
+ &lt;/span&gt;
301
+
302
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
303
+
304
+ <p>&lt;p&gt;Helper function to Condition boolean vectors to be +1 if true, -1
305
+ if false (0 if sigmoid).&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
306
+
307
+ <p>&lt;/li&gt;</p>
308
+
309
+ <pre> &lt;li class=&quot;public &quot;&gt;
310
+ &lt;span class=&quot;summary_signature&quot;&gt;
311
+
312
+ &lt;a href=&quot;#cost-instance_method&quot; title=&quot;#cost (instance method)&quot;&gt;- (Object) &lt;strong&gt;cost&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
313
+
314
+ &lt;/span&gt;
315
+
316
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
317
+
318
+ <p>&lt;p&gt;Calculation to add the cost to the fitness, resulting in a fitness
319
+ that incorporates the cost for sorting purposes.&lt;/p&gt;
320
+ &lt;/div&gt;&lt;/span&gt;</p>
321
+
322
+ <p>&lt;/li&gt;</p>
323
+
324
+ <pre> &lt;li class=&quot;public &quot;&gt;
325
+ &lt;span class=&quot;summary_signature&quot;&gt;
326
+
327
+ &lt;a href=&quot;#define-instance_method&quot; title=&quot;#define (instance method)&quot;&gt;- (Object) &lt;strong&gt;define&lt;/strong&gt;(name = NEAT.random_name_generator, &amp;amp;block) &lt;/a&gt;
328
+
329
+ &lt;/span&gt;
330
+
331
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
332
+
333
+ <p>&lt;p&gt;DSL – Define defines the parameters to the controller.&lt;/p&gt;
334
+ &lt;/div&gt;&lt;/span&gt;</p>
335
+
336
+ <p>&lt;/li&gt;</p>
337
+
338
+ <pre> &lt;li class=&quot;public &quot;&gt;
339
+ &lt;span class=&quot;summary_signature&quot;&gt;
340
+
341
+ &lt;a href=&quot;#evolve-instance_method&quot; title=&quot;#evolve (instance method)&quot;&gt;- (Object) &lt;strong&gt;evolve&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
342
+
343
+ &lt;/span&gt;
344
+
345
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
346
+
347
+ <p>&lt;p&gt;DSL – Run evolution.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
348
+
349
+ <p>&lt;/li&gt;</p>
350
+
351
+ <pre> &lt;li class=&quot;public &quot;&gt;
352
+ &lt;span class=&quot;summary_signature&quot;&gt;
353
+
354
+ &lt;a href=&quot;#fitness-instance_method&quot; title=&quot;#fitness (instance method)&quot;&gt;- (Object) &lt;strong&gt;fitness&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
355
+
356
+ &lt;/span&gt;
357
+
358
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
359
+
360
+ <p>&lt;p&gt;fitness function calls the block with 2 vectors or two hashes,
361
+ input and output vectors of the critter being evaluated for fitness, as
362
+ well as a sequence number that can be used to index what the actual output
363
+ should be.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
364
+
365
+ <p>&lt;/li&gt;</p>
366
+
367
+ <pre> &lt;li class=&quot;public &quot;&gt;
368
+ &lt;span class=&quot;summary_signature&quot;&gt;
369
+
370
+ &lt;a href=&quot;#method_missing-instance_method&quot; title=&quot;#method_missing (instance method)&quot;&gt;- (Object) &lt;strong&gt;method_missing&lt;/strong&gt;(m, *args, &amp;amp;block) &lt;/a&gt;
371
+
372
+ &lt;/span&gt;
373
+
374
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
375
+
376
+ <p>&lt;p&gt;This is used to handle the details of our DSL.&lt;/p&gt;
377
+ &lt;/div&gt;&lt;/span&gt;</p>
378
+
379
+ <p>&lt;/li&gt;</p>
380
+
381
+ <pre> &lt;li class=&quot;public &quot;&gt;
382
+ &lt;span class=&quot;summary_signature&quot;&gt;
383
+
384
+ &lt;a href=&quot;#query-instance_method&quot; title=&quot;#query (instance method)&quot;&gt;- (Object) &lt;strong&gt;query&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
385
+
386
+ &lt;/span&gt;
387
+
388
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
389
+
390
+ <p>&lt;p&gt;Query function is called with the sequence (time evolution)
391
+ number, and returns an array or hash of parameters that will be given to
392
+ the input nodes.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
393
+
394
+ <p>&lt;/li&gt;</p>
395
+
396
+ <pre> &lt;li class=&quot;public &quot;&gt;
397
+ &lt;span class=&quot;summary_signature&quot;&gt;
398
+
399
+ &lt;a href=&quot;#recurrence-instance_method&quot; title=&quot;#recurrence (instance method)&quot;&gt;- (Object) &lt;strong&gt;recurrence&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
400
+
401
+ &lt;/span&gt;
402
+
403
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;&lt;/div&gt;&lt;/span&gt;</pre>
404
+
405
+ <p>&lt;/li&gt;</p>
406
+
407
+ <pre> &lt;li class=&quot;public &quot;&gt;
408
+ &lt;span class=&quot;summary_signature&quot;&gt;
409
+
410
+ &lt;a href=&quot;#report-instance_method&quot; title=&quot;#report (instance method)&quot;&gt;- (Object) &lt;strong&gt;report&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
411
+
412
+ &lt;/span&gt;
413
+
414
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
415
+
416
+ <p>&lt;p&gt;Report on evaluations.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
417
+
418
+ <p>&lt;/li&gt;</p>
419
+
420
+ <pre> &lt;li class=&quot;public &quot;&gt;
421
+ &lt;span class=&quot;summary_signature&quot;&gt;
422
+
423
+ &lt;a href=&quot;#run_engine-instance_method&quot; title=&quot;#run_engine (instance method)&quot;&gt;- (Object) &lt;strong&gt;run_engine&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
424
+
425
+ &lt;/span&gt;
426
+
427
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
428
+
429
+ <p>&lt;p&gt;Run the engine.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
430
+
431
+ <p>&lt;/li&gt;</p>
432
+
433
+ <pre> &lt;li class=&quot;public &quot;&gt;
434
+ &lt;span class=&quot;summary_signature&quot;&gt;
435
+
436
+ &lt;a href=&quot;#simple_fitness_error-instance_method&quot; title=&quot;#simple_fitness_error (instance method)&quot;&gt;- (Object) &lt;strong&gt;simple_fitness_error&lt;/strong&gt;(v1, v2) &lt;/a&gt;
437
+
438
+ &lt;/span&gt;
439
+
440
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
441
+
442
+ <p>&lt;p&gt;Helper function to do a simple fitness calculation on the basis of
443
+ the sum of the square of the diffences of the element in the two
444
+ vectors.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
445
+
446
+ <p>&lt;/li&gt;</p>
447
+
448
+ <pre> &lt;li class=&quot;public &quot;&gt;
449
+ &lt;span class=&quot;summary_signature&quot;&gt;
450
+
451
+ &lt;a href=&quot;#stop_on_fitness-instance_method&quot; title=&quot;#stop_on_fitness (instance method)&quot;&gt;- (Object) &lt;strong&gt;stop_on_fitness&lt;/strong&gt;(&amp;amp;block) &lt;/a&gt;
452
+
453
+ &lt;/span&gt;
454
+
455
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
456
+
457
+ <p>&lt;p&gt;Stop the progression once the fitness criteria is reached for the
458
+ most fit critter.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
459
+
460
+ <p>&lt;/li&gt;</p>
461
+
462
+ <pre> &lt;li class=&quot;public &quot;&gt;
463
+ &lt;span class=&quot;summary_signature&quot;&gt;
464
+
465
+ &lt;a href=&quot;#uncondition_boolean_vector-instance_method&quot; title=&quot;#uncondition_boolean_vector (instance method)&quot;&gt;- (Object) &lt;strong&gt;uncondition_boolean_vector&lt;/strong&gt;(vec, sig = :tanh) &lt;/a&gt;
466
+
467
+ &lt;/span&gt;
468
+
469
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
470
+
471
+ <p>&lt;p&gt;Helper function to Uncondition boolean vectors to be +1 if true,
472
+ -1 if false FIXME we need a better discrimination function.&lt;/p&gt;
473
+ &lt;/div&gt;&lt;/span&gt;</p>
474
+
475
+ <p>&lt;/li&gt;</p>
476
+
477
+ <pre> &lt;/ul&gt;
478
+
479
+ &lt;h3 class=&quot;inherited&quot;&gt;Methods included from &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html&quot; title=&quot;NEAT (module)&quot;&gt;NEAT&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;
480
+ &lt;p class=&quot;inherited&quot;&gt;&lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#controller-class_method&quot; title=&quot;NEAT.controller (method)&quot;&gt;controller&lt;/a&gt;&lt;/span&gt;, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#controller%3D-class_method&quot; title=&quot;NEAT.controller= (method)&quot;&gt;controller=&lt;/a&gt;&lt;/span&gt;, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#create_controller-class_method&quot; title=&quot;NEAT.create_controller (method)&quot;&gt;create_controller&lt;/a&gt;&lt;/span&gt;, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#dpp-class_method&quot; title=&quot;NEAT.dpp (method)&quot;&gt;dpp&lt;/a&gt;&lt;/span&gt;, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#gaussian-class_method&quot; title=&quot;NEAT.gaussian (method)&quot;&gt;gaussian&lt;/a&gt;&lt;/span&gt;, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#new_innovation-class_method&quot; title=&quot;NEAT.new_innovation (method)&quot;&gt;new_innovation&lt;/a&gt;&lt;/span&gt;, &lt;span class=&#39;object_link&#39;&gt;&lt;a href=&quot;../NEAT.html#random_name_generator-class_method&quot; title=&quot;NEAT.random_name_generator (method)&quot;&gt;random_name_generator&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</pre>
481
+
482
+ <p>&lt;div id=“method_missing_details” class=“method_details_list”&gt;</p>
483
+
484
+ <pre class="ruby"><span class="ruby-operator">&lt;</span><span class="ruby-identifier">h2</span><span class="ruby-operator">&gt;</span><span class="ruby-constant">Dynamic</span> <span class="ruby-constant">Method</span> <span class="ruby-constant">Handling</span><span class="ruby-operator">&lt;</span><span class="ruby-regexp">/h2&gt;
485
+ &lt;p class=&quot;notice this&quot;&gt;
486
+ This class handles dynamic methods through the &lt;tt&gt;method_missing&lt;/</span><span class="ruby-identifier">tt</span><span class="ruby-operator">&gt;</span> <span class="ruby-identifier">method</span>
487
+
488
+ <span class="ruby-operator">&lt;</span><span class="ruby-regexp">/p&gt;
489
+
490
+ &lt;div class=&quot;method_details first&quot;&gt;
491
+ &lt;h3 class=&quot;signature first&quot; id=&quot;method_missing-instance_method&quot;&gt;
492
+
493
+ - (&lt;tt&gt;Object&lt;/</span><span class="ruby-identifier">tt</span><span class="ruby-operator">&gt;</span>) <span class="ruby-operator">&lt;</span><span class="ruby-identifier">strong</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">method_missing</span><span class="ruby-operator">&lt;</span><span class="ruby-regexp">/strong&gt;(m, *args, &amp;amp;block)
494
+ </span></pre>
495
+
496
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
497
+
498
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
499
+
500
+ <p>&lt;p&gt;This is used to handle the details of our DSL.&lt;/p&gt;</p>
501
+
502
+ <pre>&lt;/div&gt;</pre>
503
+
504
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
505
+
506
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
507
+
508
+ <pre>&lt;tr&gt;
509
+ &lt;td&gt;
510
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
511
+
512
+ <p>114 115 116 117 118 119 120 121 122 123 124&lt;/pre&gt;</p>
513
+
514
+ <pre>&lt;/td&gt;
515
+ &lt;td&gt;
516
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 114&lt;/span&gt;</pre>
517
+
518
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
519
+ identifier
520
+ rubyid_method_missing&#39;&gt;method_missing&lt;/span&gt;&lt;span
521
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
522
+ rubyid_m&#39;&gt;m&lt;/span&gt;&lt;span
523
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span
524
+ class=&#39;op&#39;&gt;*&lt;/span&gt;&lt;span class=&#39;id identifier
525
+ rubyid_args&#39;&gt;args&lt;/span&gt;&lt;span
526
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span
527
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
528
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
529
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
530
+
531
+ <pre>&lt;span class=&#39;comment&#39;&gt;# we want to catch parameters settings here.</pre>
532
+
533
+ <p>&lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;if&lt;/span&gt; &lt;span
534
+ class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span
535
+ class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier
536
+ rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span
537
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
538
+ rubyid_parms&#39;&gt;parms&lt;/span&gt;&lt;span
539
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
540
+ rubyid_respond_to?&#39;&gt;respond_to?&lt;/span&gt; &lt;span
541
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
542
+ rubyid_assignment&#39;&gt;assignment&lt;/span&gt; &lt;span
543
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
544
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
545
+ rubyid_m&#39;&gt;m&lt;/span&gt;&lt;span
546
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
547
+ rubyid_to_s&#39;&gt;to_s&lt;/span&gt; &lt;span
548
+ class=&#39;op&#39;&gt;+&lt;/span&gt; &lt;span
549
+ class=&#39;tstring&#39;&gt;&lt;span
550
+ class=&#39;tstring_beg&#39;&gt;&amp;#39;&lt;/span&gt;&lt;span
551
+ class=&#39;tstring_content&#39;&gt;=&lt;/span&gt;&lt;span
552
+ class=&#39;tstring_end&#39;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span
553
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;&lt;span
554
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
555
+ rubyid_to_sym&#39;&gt;to_sym&lt;/span&gt;&lt;span
556
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
557
+
558
+ <pre> &lt;span class=&#39;id identifier rubyid_raise&#39;&gt;raise&lt;/span&gt; &lt;span class=&#39;const&#39;&gt;NeatException&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_new&#39;&gt;new&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;tstring&#39;&gt;&lt;span class=&#39;tstring_beg&#39;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&#39;tstring_content&#39;&gt;Missing value(s) to %s&lt;/span&gt;&lt;span class=&#39;tstring_end&#39;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;%&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_m&#39;&gt;m&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;if&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_args&#39;&gt;args&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_empty?&#39;&gt;empty?&lt;/span&gt;
559
+ &lt;span class=&#39;id identifier rubyid_val&#39;&gt;val&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_args&#39;&gt;args&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_size&#39;&gt;size&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;==&lt;/span&gt; &lt;span class=&#39;int&#39;&gt;1&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_args&#39;&gt;args&lt;/span&gt;&lt;span class=&#39;lbracket&#39;&gt;[&lt;/span&gt;&lt;span class=&#39;int&#39;&gt;0&lt;/span&gt;&lt;span class=&#39;rbracket&#39;&gt;]&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_args&#39;&gt;args&lt;/span&gt;
560
+ &lt;span class=&#39;gvar&#39;&gt;$log&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_debug&#39;&gt;debug&lt;/span&gt; &lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt; &lt;span class=&#39;tstring&#39;&gt;&lt;span class=&#39;tstring_beg&#39;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&#39;tstring_content&#39;&gt;Caught method %s with parameter of %s&lt;/span&gt;&lt;span class=&#39;tstring_end&#39;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;%&lt;/span&gt; &lt;span class=&#39;lbracket&#39;&gt;[&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_assignment&#39;&gt;assignment&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_val&#39;&gt;val&lt;/span&gt;&lt;span class=&#39;rbracket&#39;&gt;]&lt;/span&gt; &lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;
561
+ &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_parms&#39;&gt;parms&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_send&#39;&gt;send&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_assignment&#39;&gt;assignment&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_val&#39;&gt;val&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt;
562
+ &lt;span class=&#39;kw&#39;&gt;else&lt;/span&gt;
563
+ &lt;span class=&#39;kw&#39;&gt;super&lt;/span&gt;
564
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;</pre>
565
+
566
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
567
+
568
+ <pre> &lt;/td&gt;
569
+ &lt;/tr&gt;</pre>
570
+
571
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
572
+
573
+ <p>&lt;/div&gt;</p>
574
+
575
+ <pre>&lt;div id=&quot;instance_method_details&quot; class=&quot;method_details_list&quot;&gt;
576
+ &lt;h2&gt;Instance Method Details&lt;/h2&gt;
577
+
578
+ &lt;div class=&quot;method_details first&quot;&gt;
579
+ &lt;h3 class=&quot;signature first&quot; id=&quot;compare-instance_method&quot;&gt;
580
+
581
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;compare&lt;/strong&gt;(&amp;amp;block)</pre>
582
+
583
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
584
+
585
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
586
+
587
+ <p>&lt;p&gt;Fitness ordering – given 2 fitness numbers, use the
588
+ &amp;lt;=&amp;gt; to compare them (or the equivalent, following the +1, 0,
589
+ -1 that is in the sense of &amp;lt;=&amp;gt;)&lt;/p&gt;</p>
590
+
591
+ <pre>&lt;/div&gt;</pre>
592
+
593
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
594
+
595
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
596
+
597
+ <pre>&lt;tr&gt;
598
+ &lt;td&gt;
599
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
600
+
601
+ <p>63 64 65&lt;/pre&gt;</p>
602
+
603
+ <pre>&lt;/td&gt;
604
+ &lt;td&gt;
605
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 63&lt;/span&gt;</pre>
606
+
607
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
608
+ identifier rubyid_compare&#39;&gt;compare&lt;/span&gt;&lt;span
609
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
610
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
611
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
612
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
613
+
614
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_compare_func&#39;&gt;compare_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;</pre>
615
+
616
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
617
+
618
+ <pre> &lt;/td&gt;
619
+ &lt;/tr&gt;</pre>
620
+
621
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
622
+
623
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
624
+ &lt;h3 class=&quot;signature &quot; id=&quot;condition_boolean_vector-instance_method&quot;&gt;
625
+
626
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;condition_boolean_vector&lt;/strong&gt;(vec, sig = :tanh)</pre>
627
+
628
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
629
+
630
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
631
+
632
+ <p>&lt;p&gt;Helper function to Condition boolean vectors to be +1 if true, -1
633
+ if false (0 if sigmoid)&lt;/p&gt;</p>
634
+
635
+ <pre>&lt;/div&gt;</pre>
636
+
637
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
638
+
639
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
640
+
641
+ <pre>&lt;tr&gt;
642
+ &lt;td&gt;
643
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
644
+
645
+ <p>81 82 83&lt;/pre&gt;</p>
646
+
647
+ <pre>&lt;/td&gt;
648
+ &lt;td&gt;
649
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 81&lt;/span&gt;</pre>
650
+
651
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
652
+ identifier
653
+ rubyid_condition_boolean_vector&#39;&gt;condition_boolean_vector&lt;/span&gt;&lt;span
654
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
655
+ rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span
656
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier
657
+ rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span
658
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
659
+ class=&#39;symbol&#39;&gt;:tanh&lt;/span&gt;&lt;span
660
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
661
+
662
+ <pre>&lt;span class=&#39;id identifier rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_map&#39;&gt;map&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;int&#39;&gt;1&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;==&lt;/span&gt; &lt;span class=&#39;symbol&#39;&gt;:sigmoid&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;int&#39;&gt;0&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;-&lt;/span&gt;&lt;span class=&#39;int&#39;&gt;1&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;</pre>
663
+
664
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
665
+
666
+ <pre> &lt;/td&gt;
667
+ &lt;/tr&gt;</pre>
668
+
669
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
670
+
671
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
672
+ &lt;h3 class=&quot;signature &quot; id=&quot;cost-instance_method&quot;&gt;
673
+
674
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;cost&lt;/strong&gt;(&amp;amp;block)</pre>
675
+
676
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
677
+
678
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
679
+
680
+ <p>&lt;p&gt;Calculation to add the cost to the fitness, resulting in a fitness
681
+ that incorporates the cost for sorting purposes.&lt;/p&gt;</p>
682
+
683
+ <pre>&lt;/div&gt;</pre>
684
+
685
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
686
+
687
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
688
+
689
+ <pre>&lt;tr&gt;
690
+ &lt;td&gt;
691
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
692
+
693
+ <p>69 70 71&lt;/pre&gt;</p>
694
+
695
+ <pre>&lt;/td&gt;
696
+ &lt;td&gt;
697
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 69&lt;/span&gt;</pre>
698
+
699
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
700
+ identifier rubyid_cost&#39;&gt;cost&lt;/span&gt;&lt;span
701
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
702
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
703
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
704
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
705
+
706
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_cost_func&#39;&gt;cost_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;</pre>
707
+
708
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
709
+
710
+ <pre> &lt;/td&gt;
711
+ &lt;/tr&gt;</pre>
712
+
713
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
714
+
715
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
716
+ &lt;h3 class=&quot;signature &quot; id=&quot;define-instance_method&quot;&gt;
717
+
718
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;define&lt;/strong&gt;(name = NEAT.random_name_generator, &amp;amp;block)</pre>
719
+
720
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
721
+
722
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
723
+
724
+ <p>&lt;p&gt;DSL – Define defines the parameters to the controller.&lt;/p&gt;</p>
725
+
726
+ <pre>&lt;/div&gt;</pre>
727
+
728
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
729
+
730
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
731
+
732
+ <pre>&lt;tr&gt;
733
+ &lt;td&gt;
734
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
735
+
736
+ <p>15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
737
+ 36&lt;/pre&gt;</p>
738
+
739
+ <pre>&lt;/td&gt;
740
+ &lt;td&gt;
741
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 15&lt;/span&gt;</pre>
742
+
743
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
744
+ identifier rubyid_define&#39;&gt;define&lt;/span&gt;&lt;span
745
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
746
+ rubyid_name&#39;&gt;name&lt;/span&gt; &lt;span
747
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
748
+ class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span
749
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
750
+ rubyid_random_name_generator&#39;&gt;random_name_generator&lt;/span&gt;&lt;span
751
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span
752
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
753
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
754
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
755
+
756
+ <pre>&lt;span class=&#39;lbracket&#39;&gt;[&lt;/span&gt;
757
+ &lt;span class=&#39;symbol&#39;&gt;:inputs&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt;
758
+ &lt;span class=&#39;symbol&#39;&gt;:outputs&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt;
759
+ &lt;span class=&#39;symbol&#39;&gt;:hidden&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# we really don&amp;#39;t care about mapping hidden neurons, but we&amp;#39;ll ignore them later.</pre>
760
+
761
+ <p>&lt;/span&gt; &lt;span class=&#39;rbracket&#39;&gt;]&lt;/span&gt;&lt;span
762
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
763
+ rubyid_each&#39;&gt;each&lt;/span&gt; &lt;span
764
+ class=&#39;kw&#39;&gt;do&lt;/span&gt; &lt;span
765
+ class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier
766
+ rubyid_iometh&#39;&gt;iometh&lt;/span&gt;&lt;span
767
+ class=&#39;op&#39;&gt;|&lt;/span&gt;</p>
768
+
769
+ <pre class="ruby"> <span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;id identifier rubyid_instance_eval&#39;</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">instance_eval</span><span class="ruby-operator">&lt;</span><span class="ruby-regexp">/span&gt; &lt;span class=&#39;tstring&#39;&gt;&lt;span class=&#39;tstring_beg&#39;&gt;%Q[&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;tstring_content&#39;</span><span class="ruby-operator">&gt;</span>
770
+ <span class="ruby-keyword">def</span> <span class="ruby-operator">&lt;</span><span class="ruby-operator">/</span><span class="ruby-identifier">span</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;embexpr_beg&#39;</span><span class="ruby-operator">&gt;</span><span class="ruby-comment">#{&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_iometh&#39;&gt;iometh&lt;/span&gt;&lt;span class=&#39;embexpr_end&#39;&gt;}&lt;/span&gt;&lt;span class=&#39;tstring_content&#39;&gt;(nodes = nil, &amp;amp;block)</span>
771
+ <span class="ruby-identifier">neui</span> = <span class="ruby-keyword">unless</span> <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">nil?</span>
772
+ <span class="ruby-identifier">nodes</span>
773
+ <span class="ruby-keyword">else</span>
774
+ <span class="ruby-identifier">block</span>.()
775
+ <span class="ruby-keyword">end</span>
776
+ <span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-identifier">controller</span>.<span class="ruby-identifier">neural_</span><span class="ruby-operator">&lt;</span><span class="ruby-node">/span&gt;&lt;span class=&#39;embexpr_beg&#39;&gt;#{&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_iometh&#39;&gt;iometh&lt;/span&gt;&lt;span class=&#39;embexpr_end&#39;&gt;}&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;tstring_content&#39;</span><span class="ruby-operator">&gt;</span> = <span class="ruby-keyword">if</span> <span class="ruby-identifier">neui</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Hash</span>
777
+ <span class="ruby-identifier">neui</span>
778
+ <span class="ruby-keyword">else</span>
779
+ <span class="ruby-constant">Hash</span>[<span class="ruby-identifier">neui</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> [<span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-identifier">random_name_generator</span>, <span class="ruby-identifier">n</span>]}]
780
+ <span class="ruby-keyword">end</span>
781
+ <span class="ruby-keyword">end</span><span class="ruby-operator">&lt;</span><span class="ruby-regexp">/span&gt;&lt;span class=&#39;tstring_end&#39;&gt;]&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">&lt;</span><span class="ruby-regexp">/span&gt;
782
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span>
783
+ <span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;id identifier rubyid_block&#39;</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">block</span><span class="ruby-operator">&lt;</span><span class="ruby-regexp">/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;lparen&#39;</span><span class="ruby-operator">&gt;</span>(<span class="ruby-operator">&lt;</span><span class="ruby-regexp">/span&gt;&lt;span class=&#39;const&#39;&gt;NEAT&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;op&#39;</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">::</span><span class="ruby-operator">&lt;</span><span class="ruby-regexp">/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span><span class="ruby-operator">&lt;</span><span class="ruby-identifier">span</span> <span class="ruby-identifier">class</span>=<span class="ruby-string">&#39;rparen&#39;</span><span class="ruby-operator">&gt;</span>)<span class="ruby-operator">&lt;</span><span class="ruby-regexp">/span&gt;
784
+ </span></pre>
785
+
786
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
787
+
788
+ <pre> &lt;/td&gt;
789
+ &lt;/tr&gt;</pre>
790
+
791
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
792
+
793
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
794
+ &lt;h3 class=&quot;signature &quot; id=&quot;evolve-instance_method&quot;&gt;
795
+
796
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;evolve&lt;/strong&gt;(&amp;amp;block)</pre>
797
+
798
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
799
+
800
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
801
+
802
+ <p>&lt;p&gt;DSL – Run evolution&lt;/p&gt;</p>
803
+
804
+ <pre>&lt;/div&gt;</pre>
805
+
806
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
807
+
808
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
809
+
810
+ <pre>&lt;tr&gt;
811
+ &lt;td&gt;
812
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
813
+
814
+ <p>39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
815
+ 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
816
+ 89 90 91 92 93 94 95 96 97 98 99 100&lt;/pre&gt;</p>
817
+
818
+ <pre>&lt;/td&gt;
819
+ &lt;td&gt;
820
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 39&lt;/span&gt;</pre>
821
+
822
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
823
+ identifier rubyid_evolve&#39;&gt;evolve&lt;/span&gt;&lt;span
824
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
825
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
826
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
827
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
828
+
829
+ <pre>&lt;span class=&#39;comment&#39;&gt;# Query function is called with the sequence (time evolution) number,</pre>
830
+
831
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# and returns an array
832
+ or hash of parameters that will be given &lt;/span&gt; &lt;span
833
+ class=&#39;comment&#39;&gt;# to the input nodes. In the case of hash, the
834
+ keys in the hash &lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# shall
835
+ correspond to the names given to the input neurons. &lt;/span&gt; &lt;span
836
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
837
+ rubyid_query&#39;&gt;query&lt;/span&gt;&lt;span
838
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
839
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
840
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
841
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
842
+
843
+ <pre> &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_query_func&#39;&gt;query_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;
844
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
845
+
846
+ &lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_recurrence&#39;&gt;recurrence&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt;
847
+ &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_recurrence_func&#39;&gt;recurrence_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;
848
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
849
+
850
+ &lt;span class=&#39;comment&#39;&gt;# fitness function calls the block with 2 vectors or two hashes, input and output</pre>
851
+
852
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# vectors of the critter
853
+ being evaluated for fitness, as well as a sequence &lt;/span&gt; &lt;span
854
+ class=&#39;comment&#39;&gt;# number that can be used to index what the
855
+ actual output should be. &lt;/span&gt; &lt;span
856
+ class=&#39;comment&#39;&gt;# |vin, vout, seq| &lt;/span&gt; &lt;span
857
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
858
+ rubyid_fitness&#39;&gt;fitness&lt;/span&gt;&lt;span
859
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
860
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
861
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
862
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
863
+
864
+ <pre> &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_fitness_func&#39;&gt;fitness_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;
865
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
866
+
867
+ &lt;span class=&#39;comment&#39;&gt;# Fitness ordering -- given 2 fitness numbers,</pre>
868
+
869
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# use the
870
+ &amp;lt;=&amp;gt; to compare them (or the equivalent, following
871
+ &lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# the +1, 0, -1 that is
872
+ in the sense of &amp;lt;=&amp;gt;) &lt;/span&gt; &lt;span
873
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
874
+ rubyid_compare&#39;&gt;compare&lt;/span&gt;&lt;span
875
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
876
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
877
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
878
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
879
+
880
+ <pre> &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_compare_func&#39;&gt;compare_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;
881
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
882
+
883
+ &lt;span class=&#39;comment&#39;&gt;# Calculation to add the cost to the fitness, resulting in a fitness</pre>
884
+
885
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# that incorporates the
886
+ cost for sorting purposes. &lt;/span&gt; &lt;span
887
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
888
+ rubyid_cost&#39;&gt;cost&lt;/span&gt;&lt;span
889
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
890
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
891
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
892
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
893
+
894
+ <pre> &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_cost_func&#39;&gt;cost_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;
895
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
896
+
897
+ &lt;span class=&#39;comment&#39;&gt;# Stop the progression once the fitness criteria is reached</pre>
898
+
899
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# for the most fit
900
+ critter &lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt;
901
+ &lt;span class=&#39;id identifier
902
+ rubyid_stop_on_fitness&#39;&gt;stop_on_fitness&lt;/span&gt;&lt;span
903
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
904
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
905
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
906
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
907
+
908
+ <pre> &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_stop_on_fit_func&#39;&gt;stop_on_fit_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;
909
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
910
+
911
+ &lt;span class=&#39;comment&#39;&gt;# Helper function to</pre>
912
+
913
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# Condition boolean
914
+ vectors to be +1 if true, -1 if false (0 if sigmoid) &lt;/span&gt;
915
+ &lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
916
+ identifier
917
+ rubyid_condition_boolean_vector&#39;&gt;condition_boolean_vector&lt;/span&gt;&lt;span
918
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
919
+ rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span
920
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier
921
+ rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span
922
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
923
+ class=&#39;symbol&#39;&gt;:tanh&lt;/span&gt;&lt;span
924
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
925
+
926
+ <pre> &lt;span class=&#39;id identifier rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_map&#39;&gt;map&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;int&#39;&gt;1&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;==&lt;/span&gt; &lt;span class=&#39;symbol&#39;&gt;:sigmoid&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;int&#39;&gt;0&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;-&lt;/span&gt;&lt;span class=&#39;int&#39;&gt;1&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;
927
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
928
+
929
+ &lt;span class=&#39;comment&#39;&gt;# Helper function to</pre>
930
+
931
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# Uncondition boolean
932
+ vectors to be +1 if true, -1 if false &lt;/span&gt; &lt;span
933
+ class=&#39;comment&#39;&gt;# FIXME we need a better discrimination function
934
+ &lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span
935
+ class=&#39;id identifier
936
+ rubyid_uncondition_boolean_vector&#39;&gt;uncondition_boolean_vector&lt;/span&gt;&lt;span
937
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
938
+ rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span
939
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier
940
+ rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span
941
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
942
+ class=&#39;symbol&#39;&gt;:tanh&lt;/span&gt;&lt;span
943
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
944
+
945
+ <pre> &lt;span class=&#39;id identifier rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_map&#39;&gt;map&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_o&#39;&gt;o&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_o&#39;&gt;o&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;==&lt;/span&gt; &lt;span class=&#39;symbol&#39;&gt;:sigmoid&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;float&#39;&gt;0.5&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;int&#39;&gt;0&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;true&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;false&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;
946
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
947
+
948
+ &lt;span class=&#39;comment&#39;&gt;# Helper function to do a simple fitness calculation</pre>
949
+
950
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# on the basis of the
951
+ sum of the square of the diffences &lt;/span&gt; &lt;span
952
+ class=&#39;comment&#39;&gt;# of the element in the two vectors.
953
+ &lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span
954
+ class=&#39;id identifier
955
+ rubyid_simple_fitness_error&#39;&gt;simple_fitness_error&lt;/span&gt;&lt;span
956
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
957
+ rubyid_v1&#39;&gt;v1&lt;/span&gt;&lt;span
958
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier
959
+ rubyid_v2&#39;&gt;v2&lt;/span&gt;&lt;span
960
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
961
+
962
+ <pre> &lt;span class=&#39;id identifier rubyid_sqrt&#39;&gt;sqrt&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_v1&#39;&gt;v1&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_zip&#39;&gt;zip&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_v2&#39;&gt;v2&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_map&#39;&gt;map&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_a&#39;&gt;a&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_a&#39;&gt;a&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;-&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;**&lt;/span&gt; &lt;span class=&#39;float&#39;&gt;2.0&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_reduce&#39;&gt;reduce&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_m&#39;&gt;m&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_c&#39;&gt;c&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_m&#39;&gt;m&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;+&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_c&#39;&gt;c&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;
963
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
964
+
965
+ &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt;</pre>
966
+
967
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
968
+
969
+ <pre> &lt;/td&gt;
970
+ &lt;/tr&gt;</pre>
971
+
972
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
973
+
974
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
975
+ &lt;h3 class=&quot;signature &quot; id=&quot;fitness-instance_method&quot;&gt;
976
+
977
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;fitness&lt;/strong&gt;(&amp;amp;block)</pre>
978
+
979
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
980
+
981
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
982
+
983
+ <p>&lt;p&gt;fitness function calls the block with 2 vectors or two hashes,
984
+ input and output vectors of the critter being evaluated for fitness, as
985
+ well as a sequence number that can be used to index what the actual output
986
+ should be. |vin, vout, seq|&lt;/p&gt;</p>
987
+
988
+ <pre>&lt;/div&gt;</pre>
989
+
990
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
991
+
992
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
993
+
994
+ <pre>&lt;tr&gt;
995
+ &lt;td&gt;
996
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
997
+
998
+ <p>56 57 58&lt;/pre&gt;</p>
999
+
1000
+ <pre>&lt;/td&gt;
1001
+ &lt;td&gt;
1002
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 56&lt;/span&gt;</pre>
1003
+
1004
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1005
+ identifier rubyid_fitness&#39;&gt;fitness&lt;/span&gt;&lt;span
1006
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
1007
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
1008
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
1009
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1010
+
1011
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_fitness_func&#39;&gt;fitness_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;</pre>
1012
+
1013
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1014
+
1015
+ <pre> &lt;/td&gt;
1016
+ &lt;/tr&gt;</pre>
1017
+
1018
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1019
+
1020
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
1021
+ &lt;h3 class=&quot;signature &quot; id=&quot;query-instance_method&quot;&gt;
1022
+
1023
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;query&lt;/strong&gt;(&amp;amp;block)</pre>
1024
+
1025
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
1026
+
1027
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
1028
+
1029
+ <p>&lt;p&gt;Query function is called with the sequence (time evolution)
1030
+ number, and returns an array or hash of parameters that will be given to
1031
+ the input nodes. In the case of hash, the keys in the hash shall correspond
1032
+ to the names given to the input neurons.&lt;/p&gt;</p>
1033
+
1034
+ <pre>&lt;/div&gt;</pre>
1035
+
1036
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
1037
+
1038
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
1039
+
1040
+ <pre>&lt;tr&gt;
1041
+ &lt;td&gt;
1042
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
1043
+
1044
+ <p>44 45 46&lt;/pre&gt;</p>
1045
+
1046
+ <pre>&lt;/td&gt;
1047
+ &lt;td&gt;
1048
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 44&lt;/span&gt;</pre>
1049
+
1050
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1051
+ identifier rubyid_query&#39;&gt;query&lt;/span&gt;&lt;span
1052
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
1053
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
1054
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
1055
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1056
+
1057
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_query_func&#39;&gt;query_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;</pre>
1058
+
1059
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1060
+
1061
+ <pre> &lt;/td&gt;
1062
+ &lt;/tr&gt;</pre>
1063
+
1064
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1065
+
1066
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
1067
+ &lt;h3 class=&quot;signature &quot; id=&quot;recurrence-instance_method&quot;&gt;
1068
+
1069
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;recurrence&lt;/strong&gt;(&amp;amp;block)</pre>
1070
+
1071
+ <p>&lt;/h3&gt;&lt;table class=“source_code”&gt;</p>
1072
+
1073
+ <pre>&lt;tr&gt;
1074
+ &lt;td&gt;
1075
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
1076
+
1077
+ <p>48 49 50&lt;/pre&gt;</p>
1078
+
1079
+ <pre>&lt;/td&gt;
1080
+ &lt;td&gt;
1081
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 48&lt;/span&gt;</pre>
1082
+
1083
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1084
+ identifier rubyid_recurrence&#39;&gt;recurrence&lt;/span&gt;&lt;span
1085
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
1086
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
1087
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
1088
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1089
+
1090
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_recurrence_func&#39;&gt;recurrence_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;</pre>
1091
+
1092
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1093
+
1094
+ <pre> &lt;/td&gt;
1095
+ &lt;/tr&gt;</pre>
1096
+
1097
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1098
+
1099
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
1100
+ &lt;h3 class=&quot;signature &quot; id=&quot;report-instance_method&quot;&gt;
1101
+
1102
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;report&lt;/strong&gt;(&amp;amp;block)</pre>
1103
+
1104
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
1105
+
1106
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
1107
+
1108
+ <p>&lt;p&gt;Report on evaluations&lt;/p&gt;</p>
1109
+
1110
+ <pre>&lt;/div&gt;</pre>
1111
+
1112
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
1113
+
1114
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
1115
+
1116
+ <pre>&lt;tr&gt;
1117
+ &lt;td&gt;
1118
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
1119
+
1120
+ <p>103 104 105&lt;/pre&gt;</p>
1121
+
1122
+ <pre>&lt;/td&gt;
1123
+ &lt;td&gt;
1124
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 103&lt;/span&gt;</pre>
1125
+
1126
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1127
+ identifier rubyid_report&#39;&gt;report&lt;/span&gt;&lt;span
1128
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
1129
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
1130
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
1131
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1132
+
1133
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_report_hook&#39;&gt;report_hook&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;</pre>
1134
+
1135
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1136
+
1137
+ <pre> &lt;/td&gt;
1138
+ &lt;/tr&gt;</pre>
1139
+
1140
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1141
+
1142
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
1143
+ &lt;h3 class=&quot;signature &quot; id=&quot;run_engine-instance_method&quot;&gt;
1144
+
1145
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;run_engine&lt;/strong&gt;(&amp;amp;block)</pre>
1146
+
1147
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
1148
+
1149
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
1150
+
1151
+ <p>&lt;p&gt;Run the engine. The block is called on each generation.&lt;/p&gt;</p>
1152
+
1153
+ <pre>&lt;/div&gt;</pre>
1154
+
1155
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
1156
+
1157
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
1158
+
1159
+ <pre>&lt;tr&gt;
1160
+ &lt;td&gt;
1161
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
1162
+
1163
+ <p>108 109 110 111&lt;/pre&gt;</p>
1164
+
1165
+ <pre>&lt;/td&gt;
1166
+ &lt;td&gt;
1167
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 108&lt;/span&gt;</pre>
1168
+
1169
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1170
+ identifier rubyid_run_engine&#39;&gt;run_engine&lt;/span&gt;&lt;span
1171
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
1172
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
1173
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
1174
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1175
+
1176
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_end_run_func&#39;&gt;end_run_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;
1177
+ &lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_run&#39;&gt;run&lt;/span&gt;</pre>
1178
+
1179
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1180
+
1181
+ <pre> &lt;/td&gt;
1182
+ &lt;/tr&gt;</pre>
1183
+
1184
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1185
+
1186
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
1187
+ &lt;h3 class=&quot;signature &quot; id=&quot;simple_fitness_error-instance_method&quot;&gt;
1188
+
1189
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;simple_fitness_error&lt;/strong&gt;(v1, v2)</pre>
1190
+
1191
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
1192
+
1193
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
1194
+
1195
+ <p>&lt;p&gt;Helper function to do a simple fitness calculation on the basis of
1196
+ the sum of the square of the diffences of the element in the two
1197
+ vectors.&lt;/p&gt;</p>
1198
+
1199
+ <pre>&lt;/div&gt;</pre>
1200
+
1201
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
1202
+
1203
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
1204
+
1205
+ <pre>&lt;tr&gt;
1206
+ &lt;td&gt;
1207
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
1208
+
1209
+ <p>95 96 97&lt;/pre&gt;</p>
1210
+
1211
+ <pre>&lt;/td&gt;
1212
+ &lt;td&gt;
1213
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 95&lt;/span&gt;</pre>
1214
+
1215
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1216
+ identifier
1217
+ rubyid_simple_fitness_error&#39;&gt;simple_fitness_error&lt;/span&gt;&lt;span
1218
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
1219
+ rubyid_v1&#39;&gt;v1&lt;/span&gt;&lt;span
1220
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier
1221
+ rubyid_v2&#39;&gt;v2&lt;/span&gt;&lt;span
1222
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1223
+
1224
+ <pre>&lt;span class=&#39;id identifier rubyid_sqrt&#39;&gt;sqrt&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_v1&#39;&gt;v1&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_zip&#39;&gt;zip&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_v2&#39;&gt;v2&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_map&#39;&gt;map&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_a&#39;&gt;a&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_a&#39;&gt;a&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;-&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_b&#39;&gt;b&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;**&lt;/span&gt; &lt;span class=&#39;float&#39;&gt;2.0&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_reduce&#39;&gt;reduce&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_m&#39;&gt;m&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_c&#39;&gt;c&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_m&#39;&gt;m&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;+&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_c&#39;&gt;c&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;</pre>
1225
+
1226
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1227
+
1228
+ <pre> &lt;/td&gt;
1229
+ &lt;/tr&gt;</pre>
1230
+
1231
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1232
+
1233
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
1234
+ &lt;h3 class=&quot;signature &quot; id=&quot;stop_on_fitness-instance_method&quot;&gt;
1235
+
1236
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;stop_on_fitness&lt;/strong&gt;(&amp;amp;block)</pre>
1237
+
1238
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
1239
+
1240
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
1241
+
1242
+ <p>&lt;p&gt;Stop the progression once the fitness criteria is reached for the
1243
+ most fit critter&lt;/p&gt;</p>
1244
+
1245
+ <pre>&lt;/div&gt;</pre>
1246
+
1247
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
1248
+
1249
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
1250
+
1251
+ <pre>&lt;tr&gt;
1252
+ &lt;td&gt;
1253
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
1254
+
1255
+ <p>75 76 77&lt;/pre&gt;</p>
1256
+
1257
+ <pre>&lt;/td&gt;
1258
+ &lt;td&gt;
1259
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 75&lt;/span&gt;</pre>
1260
+
1261
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1262
+ identifier
1263
+ rubyid_stop_on_fitness&#39;&gt;stop_on_fitness&lt;/span&gt;&lt;span
1264
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
1265
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
1266
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
1267
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1268
+
1269
+ <pre>&lt;span class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_stop_on_fit_func&#39;&gt;stop_on_fit_func&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_block&#39;&gt;block&lt;/span&gt;</pre>
1270
+
1271
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1272
+
1273
+ <pre> &lt;/td&gt;
1274
+ &lt;/tr&gt;</pre>
1275
+
1276
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1277
+
1278
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
1279
+ &lt;h3 class=&quot;signature &quot; id=&quot;uncondition_boolean_vector-instance_method&quot;&gt;
1280
+
1281
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;uncondition_boolean_vector&lt;/strong&gt;(vec, sig = :tanh)</pre>
1282
+
1283
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
1284
+
1285
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
1286
+
1287
+ <p>&lt;p&gt;Helper function to Uncondition boolean vectors to be +1 if true,
1288
+ -1 if false FIXME we need a better discrimination function&lt;/p&gt;</p>
1289
+
1290
+ <pre>&lt;/div&gt;</pre>
1291
+
1292
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
1293
+
1294
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
1295
+
1296
+ <pre>&lt;tr&gt;
1297
+ &lt;td&gt;
1298
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
1299
+
1300
+ <p>88 89 90&lt;/pre&gt;</p>
1301
+
1302
+ <pre>&lt;/td&gt;
1303
+ &lt;td&gt;
1304
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 88&lt;/span&gt;</pre>
1305
+
1306
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
1307
+ identifier
1308
+ rubyid_uncondition_boolean_vector&#39;&gt;uncondition_boolean_vector&lt;/span&gt;&lt;span
1309
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
1310
+ rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span
1311
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span class=&#39;id identifier
1312
+ rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span
1313
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
1314
+ class=&#39;symbol&#39;&gt;:tanh&lt;/span&gt;&lt;span
1315
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
1316
+
1317
+ <pre>&lt;span class=&#39;id identifier rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_map&#39;&gt;map&lt;/span&gt;&lt;span class=&#39;lbrace&#39;&gt;{&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_o&#39;&gt;o&lt;/span&gt;&lt;span class=&#39;op&#39;&gt;|&lt;/span&gt; &lt;span class=&#39;id identifier rubyid_o&#39;&gt;o&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier rubyid_sig&#39;&gt;sig&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;==&lt;/span&gt; &lt;span class=&#39;symbol&#39;&gt;:sigmoid&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;float&#39;&gt;0.5&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;int&#39;&gt;0&lt;/span&gt;&lt;span class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;?&lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;true&lt;/span&gt; &lt;span class=&#39;op&#39;&gt;:&lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;false&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;</pre>
1318
+
1319
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
1320
+
1321
+ <pre> &lt;/td&gt;
1322
+ &lt;/tr&gt;</pre>
1323
+
1324
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
1325
+
1326
+ <pre>&lt;/div&gt;</pre>
1327
+
1328
+ <p>&lt;/div&gt;</p>
1329
+
1330
+ <pre> &lt;div id=&quot;footer&quot;&gt;
1331
+ Generated on Sun Mar 16 16:36:51 2014 by
1332
+ &lt;a href=&quot;http://yardoc.org&quot; title=&quot;Yay! A Ruby Documentation Tool&quot; target=&quot;_parent&quot;&gt;yard&lt;/a&gt;
1333
+ 0.8.7.3 (ruby-2.1.1).</pre>
1334
+
1335
+ <p>&lt;/div&gt;</p>
1336
+
1337
+ <pre>&lt;/body&gt;</pre>
1338
+
1339
+ <p>&lt;/html&gt;</p>
1340
+ </main>
1341
+
1342
+
1343
+
1344
+ <footer id="validator-badges" role="contentinfo">
1345
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
1346
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
1347
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
1348
+ </footer>
1349
+