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,992 @@
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/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: 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
+
220
+ &lt;span class=&quot;title&quot;&gt;DSL&lt;/span&gt;
221
+
222
+ &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>
223
+
224
+ <p>&lt;/div&gt;</p>
225
+
226
+ <pre> &lt;div id=&quot;search&quot;&gt;
227
+
228
+ &lt;a class=&quot;full_list_link&quot; id=&quot;class_list_link&quot;
229
+ href=&quot;class_list.html&quot;&gt;
230
+ Class List
231
+ &lt;/a&gt;
232
+
233
+ &lt;a class=&quot;full_list_link&quot; id=&quot;method_list_link&quot;
234
+ href=&quot;method_list.html&quot;&gt;
235
+ Method List
236
+ &lt;/a&gt;
237
+
238
+ &lt;a class=&quot;full_list_link&quot; id=&quot;file_list_link&quot;
239
+ href=&quot;file_list.html&quot;&gt;
240
+ File List
241
+ &lt;/a&gt;</pre>
242
+
243
+ <p>&lt;/div&gt;</p>
244
+
245
+ <pre> &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
246
+ &lt;/div&gt;
247
+
248
+ &lt;iframe id=&quot;search_frame&quot;&gt;&lt;/iframe&gt;
249
+
250
+ &lt;div id=&quot;content&quot;&gt;&lt;h1&gt;Module: DSL</pre>
251
+
252
+ <p>&lt;/h1&gt;</p>
253
+
254
+ <p>&lt;dl class=“box”&gt;</p>
255
+
256
+ <pre> &lt;dt class=&quot;r1&quot;&gt;Includes:&lt;/dt&gt;
257
+ &lt;dd class=&quot;r1&quot;&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 class=&#39;object_link&#39;&gt;&lt;a href=&quot;NEAT/BasicNeuronTypes.html&quot; title=&quot;NEAT::BasicNeuronTypes (module)&quot;&gt;NEAT::BasicNeuronTypes&lt;/a&gt;&lt;/span&gt;&lt;/dd&gt;
258
+
259
+ &lt;dt class=&quot;r2 last&quot;&gt;Defined in:&lt;/dt&gt;
260
+ &lt;dd class=&quot;r2 last&quot;&gt;lib/rubyneat/dsl.rb&lt;/dd&gt;</pre>
261
+
262
+ <p>&lt;/dl&gt; &lt;div class=“clear”&gt;&lt;/div&gt;</p>
263
+
264
+ <p>&lt;h2&gt;Overview&lt;/h2&gt;&lt;div class=“docstring”&gt;</p>
265
+
266
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
267
+
268
+ <p>&lt;h1 id=“label-RubyNEAT+DSL”&gt;RubyNEAT DSL&lt;/h1&gt;</p>
269
+
270
+ <p>&lt;p&gt;DSL is a doman-specific language for <a
271
+ href="../RubyNEAT.html">RubyNEAT</a> to allow you to configure the <a
272
+ href="../NEAT.html">NEAT</a> engine for various evolutionary
273
+ projects.&lt;/p&gt;</p>
274
+
275
+ <pre>&lt;/div&gt;</pre>
276
+
277
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
278
+
279
+ <p>&lt;/div&gt;</p>
280
+
281
+ <pre>&lt;h2&gt;Constant Summary&lt;/h2&gt;
282
+
283
+ &lt;h2&gt;Constant Summary&lt;/h2&gt;
284
+
285
+ &lt;h3 class=&quot;inherited&quot;&gt;Constants included
286
+ 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;
287
+ &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;NEAT::STIMULUS&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
288
+
289
+ &lt;h2&gt;
290
+ Instance Method Summary
291
+ &lt;small&gt;(&lt;a href=&quot;#&quot; class=&quot;summary_toggle&quot;&gt;collapse&lt;/a&gt;)&lt;/small&gt;
292
+ &lt;/h2&gt;
293
+
294
+ &lt;ul class=&quot;summary&quot;&gt;
295
+
296
+ &lt;li class=&quot;public &quot;&gt;
297
+ &lt;span class=&quot;summary_signature&quot;&gt;
298
+
299
+ &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) &lt;/a&gt;
300
+
301
+ &lt;/span&gt;
302
+
303
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
304
+
305
+ <p>&lt;p&gt;Helper function to Condition boolean vectors to be +1 if true, -1
306
+ if false.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
307
+
308
+ <p>&lt;/li&gt;</p>
309
+
310
+ <pre> &lt;li class=&quot;public &quot;&gt;
311
+ &lt;span class=&quot;summary_signature&quot;&gt;
312
+
313
+ &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;
314
+
315
+ &lt;/span&gt;
316
+
317
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
318
+
319
+ <p>&lt;p&gt;DSL – Define defines the parameters to the controller.&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;#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;
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 – Run evolution.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
334
+
335
+ <p>&lt;/li&gt;</p>
336
+
337
+ <pre> &lt;li class=&quot;public &quot;&gt;
338
+ &lt;span class=&quot;summary_signature&quot;&gt;
339
+
340
+ &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;
341
+
342
+ &lt;/span&gt;
343
+
344
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
345
+
346
+ <p>&lt;p&gt;fitness function calls the block with 2 vectors or two hashes,
347
+ input and output vectors of the critter being evaluated for fitness, as
348
+ well as a sequence number that can be used to index what the actual output
349
+ should be.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
350
+
351
+ <p>&lt;/li&gt;</p>
352
+
353
+ <pre> &lt;li class=&quot;public &quot;&gt;
354
+ &lt;span class=&quot;summary_signature&quot;&gt;
355
+
356
+ &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;
357
+
358
+ &lt;/span&gt;
359
+
360
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
361
+
362
+ <p>&lt;p&gt;This is used to handle the details of our DSL.&lt;/p&gt;
363
+ &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;#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;
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;Query function is called with the sequence (time evalution)
377
+ number, and returns an array or hash of parameters that will be given to
378
+ the input nodes.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
379
+
380
+ <p>&lt;/li&gt;</p>
381
+
382
+ <pre> &lt;li class=&quot;public &quot;&gt;
383
+ &lt;span class=&quot;summary_signature&quot;&gt;
384
+
385
+ &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;
386
+
387
+ &lt;/span&gt;
388
+
389
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
390
+
391
+ <p>&lt;p&gt;Report on evaluations.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
392
+
393
+ <p>&lt;/li&gt;</p>
394
+
395
+ <pre> &lt;li class=&quot;public &quot;&gt;
396
+ &lt;span class=&quot;summary_signature&quot;&gt;
397
+
398
+ &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;
399
+
400
+ &lt;/span&gt;
401
+
402
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
403
+
404
+ <p>&lt;p&gt;Run the engine.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
405
+
406
+ <p>&lt;/li&gt;</p>
407
+
408
+ <pre> &lt;li class=&quot;public &quot;&gt;
409
+ &lt;span class=&quot;summary_signature&quot;&gt;
410
+
411
+ &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) &lt;/a&gt;
412
+
413
+ &lt;/span&gt;
414
+
415
+ &lt;span class=&quot;summary_desc&quot;&gt;&lt;div class=&#39;inline&#39;&gt;</pre>
416
+
417
+ <p>&lt;p&gt;Helper function to Uncondition boolean vectors to be +1 if true,
418
+ -1 if false.&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;</p>
419
+
420
+ <p>&lt;/li&gt;</p>
421
+
422
+ <pre> &lt;/ul&gt;
423
+
424
+ &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;
425
+ &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>
426
+
427
+ <p>&lt;div id=“method_missing_details” class=“method_details_list”&gt;</p>
428
+
429
+ <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;
430
+ &lt;p class=&quot;notice this&quot;&gt;
431
+ 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>
432
+
433
+ <span class="ruby-operator">&lt;</span><span class="ruby-regexp">/p&gt;
434
+
435
+ &lt;div class=&quot;method_details first&quot;&gt;
436
+ &lt;h3 class=&quot;signature first&quot; id=&quot;method_missing-instance_method&quot;&gt;
437
+
438
+ - (&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)
439
+ </span></pre>
440
+
441
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
442
+
443
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
444
+
445
+ <p>&lt;p&gt;This is used to handle the details of our DSL.&lt;/p&gt;</p>
446
+
447
+ <pre>&lt;/div&gt;</pre>
448
+
449
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
450
+
451
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
452
+
453
+ <pre>&lt;tr&gt;
454
+ &lt;td&gt;
455
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
456
+
457
+ <p>82 83 84 85 86 87 88 89 90 91 92&lt;/pre&gt;</p>
458
+
459
+ <pre>&lt;/td&gt;
460
+ &lt;td&gt;
461
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 82&lt;/span&gt;</pre>
462
+
463
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
464
+ identifier
465
+ rubyid_method_missing&#39;&gt;method_missing&lt;/span&gt;&lt;span
466
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
467
+ rubyid_m&#39;&gt;m&lt;/span&gt;&lt;span
468
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span
469
+ class=&#39;op&#39;&gt;*&lt;/span&gt;&lt;span class=&#39;id identifier
470
+ rubyid_args&#39;&gt;args&lt;/span&gt;&lt;span
471
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span
472
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
473
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
474
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
475
+
476
+ <pre>&lt;span class=&#39;comment&#39;&gt;# we want to catch parameters settings here.</pre>
477
+
478
+ <p>&lt;/span&gt; &lt;span class=&#39;kw&#39;&gt;if&lt;/span&gt; &lt;span
479
+ class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span
480
+ class=&#39;op&#39;&gt;::&lt;/span&gt;&lt;span class=&#39;id identifier
481
+ rubyid_controller&#39;&gt;controller&lt;/span&gt;&lt;span
482
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
483
+ rubyid_parms&#39;&gt;parms&lt;/span&gt;&lt;span
484
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
485
+ rubyid_respond_to?&#39;&gt;respond_to?&lt;/span&gt; &lt;span
486
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
487
+ rubyid_assignment&#39;&gt;assignment&lt;/span&gt; &lt;span
488
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
489
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
490
+ rubyid_m&#39;&gt;m&lt;/span&gt;&lt;span
491
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
492
+ rubyid_to_s&#39;&gt;to_s&lt;/span&gt; &lt;span
493
+ class=&#39;op&#39;&gt;+&lt;/span&gt; &lt;span
494
+ class=&#39;tstring&#39;&gt;&lt;span
495
+ class=&#39;tstring_beg&#39;&gt;&amp;#39;&lt;/span&gt;&lt;span
496
+ class=&#39;tstring_content&#39;&gt;=&lt;/span&gt;&lt;span
497
+ class=&#39;tstring_end&#39;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span
498
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;&lt;span
499
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
500
+ rubyid_to_sym&#39;&gt;to_sym&lt;/span&gt;&lt;span
501
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
502
+
503
+ <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;
504
+ &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;
505
+ &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;
506
+ &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;
507
+ &lt;span class=&#39;kw&#39;&gt;else&lt;/span&gt;
508
+ &lt;span class=&#39;kw&#39;&gt;super&lt;/span&gt;
509
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;</pre>
510
+
511
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
512
+
513
+ <pre> &lt;/td&gt;
514
+ &lt;/tr&gt;</pre>
515
+
516
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
517
+
518
+ <p>&lt;/div&gt;</p>
519
+
520
+ <pre>&lt;div id=&quot;instance_method_details&quot; class=&quot;method_details_list&quot;&gt;
521
+ &lt;h2&gt;Instance Method Details&lt;/h2&gt;
522
+
523
+ &lt;div class=&quot;method_details first&quot;&gt;
524
+ &lt;h3 class=&quot;signature first&quot; id=&quot;condition_boolean_vector-instance_method&quot;&gt;
525
+
526
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;condition_boolean_vector&lt;/strong&gt;(vec)</pre>
527
+
528
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
529
+
530
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
531
+
532
+ <p>&lt;p&gt;Helper function to Condition boolean vectors to be +1 if true, -1
533
+ if false&lt;/p&gt;</p>
534
+
535
+ <pre>&lt;/div&gt;</pre>
536
+
537
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
538
+
539
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
540
+
541
+ <pre>&lt;tr&gt;
542
+ &lt;td&gt;
543
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
544
+
545
+ <p>57 58 59&lt;/pre&gt;</p>
546
+
547
+ <pre>&lt;/td&gt;
548
+ &lt;td&gt;
549
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 57&lt;/span&gt;</pre>
550
+
551
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
552
+ identifier
553
+ rubyid_condition_boolean_vector&#39;&gt;condition_boolean_vector&lt;/span&gt;&lt;span
554
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
555
+ rubyid_vec&#39;&gt;vec&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_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;op&#39;&gt;-&lt;/span&gt;&lt;span class=&#39;int&#39;&gt;1&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;</pre>
559
+
560
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
561
+
562
+ <pre> &lt;/td&gt;
563
+ &lt;/tr&gt;</pre>
564
+
565
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
566
+
567
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
568
+ &lt;h3 class=&quot;signature &quot; id=&quot;define-instance_method&quot;&gt;
569
+
570
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;define&lt;/strong&gt;(name = NEAT.random_name_generator, &amp;amp;block)</pre>
571
+
572
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
573
+
574
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
575
+
576
+ <p>&lt;p&gt;DSL – Define defines the parameters to the controller.&lt;/p&gt;</p>
577
+
578
+ <pre>&lt;/div&gt;</pre>
579
+
580
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
581
+
582
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
583
+
584
+ <pre>&lt;tr&gt;
585
+ &lt;td&gt;
586
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
587
+
588
+ <p>14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
589
+ 35&lt;/pre&gt;</p>
590
+
591
+ <pre>&lt;/td&gt;
592
+ &lt;td&gt;
593
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 14&lt;/span&gt;</pre>
594
+
595
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
596
+ identifier rubyid_define&#39;&gt;define&lt;/span&gt;&lt;span
597
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
598
+ rubyid_name&#39;&gt;name&lt;/span&gt; &lt;span
599
+ class=&#39;op&#39;&gt;=&lt;/span&gt; &lt;span
600
+ class=&#39;const&#39;&gt;NEAT&lt;/span&gt;&lt;span
601
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
602
+ rubyid_random_name_generator&#39;&gt;random_name_generator&lt;/span&gt;&lt;span
603
+ class=&#39;comma&#39;&gt;,&lt;/span&gt; &lt;span
604
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
605
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
606
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
607
+
608
+ <pre>&lt;span class=&#39;lbracket&#39;&gt;[&lt;/span&gt;
609
+ &lt;span class=&#39;symbol&#39;&gt;:inputs&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt;
610
+ &lt;span class=&#39;symbol&#39;&gt;:outputs&lt;/span&gt;&lt;span class=&#39;comma&#39;&gt;,&lt;/span&gt;
611
+ &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>
612
+
613
+ <p>&lt;/span&gt; &lt;span class=&#39;rbracket&#39;&gt;]&lt;/span&gt;&lt;span
614
+ class=&#39;period&#39;&gt;.&lt;/span&gt;&lt;span class=&#39;id identifier
615
+ rubyid_each&#39;&gt;each&lt;/span&gt; &lt;span
616
+ class=&#39;kw&#39;&gt;do&lt;/span&gt; &lt;span
617
+ class=&#39;op&#39;&gt;|&lt;/span&gt;&lt;span class=&#39;id identifier
618
+ rubyid_iometh&#39;&gt;iometh&lt;/span&gt;&lt;span
619
+ class=&#39;op&#39;&gt;|&lt;/span&gt;</p>
620
+
621
+ <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>
622
+ <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>
623
+ <span class="ruby-identifier">neui</span> = <span class="ruby-keyword">unless</span> <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">nil?</span>
624
+ <span class="ruby-identifier">nodes</span>
625
+ <span class="ruby-keyword">else</span>
626
+ <span class="ruby-identifier">block</span>.()
627
+ <span class="ruby-keyword">end</span>
628
+ <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>
629
+ <span class="ruby-identifier">neui</span>
630
+ <span class="ruby-keyword">else</span>
631
+ <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>]}]
632
+ <span class="ruby-keyword">end</span>
633
+ <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;
634
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/s</span><span class="ruby-identifier">pan</span><span class="ruby-operator">&gt;</span>
635
+ <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;
636
+ </span></pre>
637
+
638
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
639
+
640
+ <pre> &lt;/td&gt;
641
+ &lt;/tr&gt;</pre>
642
+
643
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
644
+
645
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
646
+ &lt;h3 class=&quot;signature &quot; id=&quot;evolve-instance_method&quot;&gt;
647
+
648
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;evolve&lt;/strong&gt;(&amp;amp;block)</pre>
649
+
650
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
651
+
652
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
653
+
654
+ <p>&lt;p&gt;DSL – Run evolution&lt;/p&gt;</p>
655
+
656
+ <pre>&lt;/div&gt;</pre>
657
+
658
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
659
+
660
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
661
+
662
+ <pre>&lt;tr&gt;
663
+ &lt;td&gt;
664
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
665
+
666
+ <p>38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
667
+ 63 64 65 66 67 68 69&lt;/pre&gt;</p>
668
+
669
+ <pre>&lt;/td&gt;
670
+ &lt;td&gt;
671
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 38&lt;/span&gt;</pre>
672
+
673
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
674
+ identifier rubyid_evolve&#39;&gt;evolve&lt;/span&gt;&lt;span
675
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
676
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
677
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
678
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
679
+
680
+ <pre>&lt;span class=&#39;comment&#39;&gt;# Query function is called with the sequence (time evalution) number,</pre>
681
+
682
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# and returns an array
683
+ or hash of parameters that will be given &lt;/span&gt; &lt;span
684
+ class=&#39;comment&#39;&gt;# to the input nodes. In the case of hash, the
685
+ keys in the hash &lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# shall
686
+ correspond to the names given to the input neurons. &lt;/span&gt; &lt;span
687
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
688
+ rubyid_query&#39;&gt;query&lt;/span&gt;&lt;span
689
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
690
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
691
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
692
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
693
+
694
+ <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;
695
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
696
+
697
+ &lt;span class=&#39;comment&#39;&gt;# fitness function calls the block with 2 vectors or two hashes, input and output</pre>
698
+
699
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# vectors of the critter
700
+ being evaluated for fitness, as well as a sequence &lt;/span&gt; &lt;span
701
+ class=&#39;comment&#39;&gt;# number that can be used to index what the
702
+ actual output should be. &lt;/span&gt; &lt;span
703
+ class=&#39;comment&#39;&gt;# |vin, vout, seq| &lt;/span&gt; &lt;span
704
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
705
+ rubyid_fitness&#39;&gt;fitness&lt;/span&gt;&lt;span
706
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
707
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
708
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
709
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
710
+
711
+ <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;
712
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
713
+
714
+ &lt;span class=&#39;comment&#39;&gt;# Helper function to</pre>
715
+
716
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# Condition boolean
717
+ vectors to be +1 if true, -1 if false &lt;/span&gt; &lt;span
718
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
719
+ rubyid_condition_boolean_vector&#39;&gt;condition_boolean_vector&lt;/span&gt;&lt;span
720
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
721
+ rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span
722
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
723
+
724
+ <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;op&#39;&gt;-&lt;/span&gt;&lt;span class=&#39;int&#39;&gt;1&lt;/span&gt;&lt;span class=&#39;rbrace&#39;&gt;}&lt;/span&gt;
725
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
726
+
727
+ &lt;span class=&#39;comment&#39;&gt;# Helper function to</pre>
728
+
729
+ <p>&lt;/span&gt; &lt;span class=&#39;comment&#39;&gt;# Uncondition boolean
730
+ vectors to be +1 if true, -1 if false &lt;/span&gt; &lt;span
731
+ class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id identifier
732
+ rubyid_uncondition_boolean_vector&#39;&gt;uncondition_boolean_vector&lt;/span&gt;&lt;span
733
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
734
+ rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span
735
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
736
+
737
+ <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;float&#39;&gt;0.0&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;
738
+ &lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;
739
+
740
+ &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>
741
+
742
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
743
+
744
+ <pre> &lt;/td&gt;
745
+ &lt;/tr&gt;</pre>
746
+
747
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
748
+
749
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
750
+ &lt;h3 class=&quot;signature &quot; id=&quot;fitness-instance_method&quot;&gt;
751
+
752
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;fitness&lt;/strong&gt;(&amp;amp;block)</pre>
753
+
754
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
755
+
756
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
757
+
758
+ <p>&lt;p&gt;fitness function calls the block with 2 vectors or two hashes,
759
+ input and output vectors of the critter being evaluated for fitness, as
760
+ well as a sequence number that can be used to index what the actual output
761
+ should be. |vin, vout, seq|&lt;/p&gt;</p>
762
+
763
+ <pre>&lt;/div&gt;</pre>
764
+
765
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
766
+
767
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
768
+
769
+ <pre>&lt;tr&gt;
770
+ &lt;td&gt;
771
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
772
+
773
+ <p>51 52 53&lt;/pre&gt;</p>
774
+
775
+ <pre>&lt;/td&gt;
776
+ &lt;td&gt;
777
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 51&lt;/span&gt;</pre>
778
+
779
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
780
+ identifier rubyid_fitness&#39;&gt;fitness&lt;/span&gt;&lt;span
781
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
782
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
783
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
784
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
785
+
786
+ <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>
787
+
788
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
789
+
790
+ <pre> &lt;/td&gt;
791
+ &lt;/tr&gt;</pre>
792
+
793
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
794
+
795
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
796
+ &lt;h3 class=&quot;signature &quot; id=&quot;query-instance_method&quot;&gt;
797
+
798
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;query&lt;/strong&gt;(&amp;amp;block)</pre>
799
+
800
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
801
+
802
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
803
+
804
+ <p>&lt;p&gt;Query function is called with the sequence (time evalution)
805
+ number, and returns an array or hash of parameters that will be given to
806
+ the input nodes. In the case of hash, the keys in the hash shall correspond
807
+ to the names given to the input neurons.&lt;/p&gt;</p>
808
+
809
+ <pre>&lt;/div&gt;</pre>
810
+
811
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
812
+
813
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
814
+
815
+ <pre>&lt;tr&gt;
816
+ &lt;td&gt;
817
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
818
+
819
+ <p>43 44 45&lt;/pre&gt;</p>
820
+
821
+ <pre>&lt;/td&gt;
822
+ &lt;td&gt;
823
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 43&lt;/span&gt;</pre>
824
+
825
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
826
+ identifier rubyid_query&#39;&gt;query&lt;/span&gt;&lt;span
827
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
828
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
829
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
830
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
831
+
832
+ <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>
833
+
834
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
835
+
836
+ <pre> &lt;/td&gt;
837
+ &lt;/tr&gt;</pre>
838
+
839
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
840
+
841
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
842
+ &lt;h3 class=&quot;signature &quot; id=&quot;report-instance_method&quot;&gt;
843
+
844
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;report&lt;/strong&gt;(&amp;amp;block)</pre>
845
+
846
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
847
+
848
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
849
+
850
+ <p>&lt;p&gt;Report on evaluations&lt;/p&gt;</p>
851
+
852
+ <pre>&lt;/div&gt;</pre>
853
+
854
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
855
+
856
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
857
+
858
+ <pre>&lt;tr&gt;
859
+ &lt;td&gt;
860
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
861
+
862
+ <p>72 73&lt;/pre&gt;</p>
863
+
864
+ <pre>&lt;/td&gt;
865
+ &lt;td&gt;
866
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 72&lt;/span&gt;</pre>
867
+
868
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
869
+ identifier rubyid_report&#39;&gt;report&lt;/span&gt;&lt;span
870
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
871
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
872
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
873
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt; &lt;span
874
+ class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
875
+
876
+ <pre> &lt;/td&gt;
877
+ &lt;/tr&gt;</pre>
878
+
879
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
880
+
881
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
882
+ &lt;h3 class=&quot;signature &quot; id=&quot;run_engine-instance_method&quot;&gt;
883
+
884
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;run_engine&lt;/strong&gt;(&amp;amp;block)</pre>
885
+
886
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
887
+
888
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
889
+
890
+ <p>&lt;p&gt;Run the engine. The block is called on each generation.&lt;/p&gt;</p>
891
+
892
+ <pre>&lt;/div&gt;</pre>
893
+
894
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
895
+
896
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
897
+
898
+ <pre>&lt;tr&gt;
899
+ &lt;td&gt;
900
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
901
+
902
+ <p>76 77 78 79&lt;/pre&gt;</p>
903
+
904
+ <pre>&lt;/td&gt;
905
+ &lt;td&gt;
906
+ &lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;info file&quot;&gt;# File &#39;lib/rubyneat/dsl.rb&#39;, line 76&lt;/span&gt;</pre>
907
+
908
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
909
+ identifier rubyid_run_engine&#39;&gt;run_engine&lt;/span&gt;&lt;span
910
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span
911
+ class=&#39;op&#39;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#39;id
912
+ identifier rubyid_block&#39;&gt;block&lt;/span&gt;&lt;span
913
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
914
+
915
+ <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;
916
+ &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>
917
+
918
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
919
+
920
+ <pre> &lt;/td&gt;
921
+ &lt;/tr&gt;</pre>
922
+
923
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
924
+
925
+ <pre> &lt;div class=&quot;method_details &quot;&gt;
926
+ &lt;h3 class=&quot;signature &quot; id=&quot;uncondition_boolean_vector-instance_method&quot;&gt;
927
+
928
+ - (&lt;tt&gt;Object&lt;/tt&gt;) &lt;strong&gt;uncondition_boolean_vector&lt;/strong&gt;(vec)</pre>
929
+
930
+ <p>&lt;/h3&gt;&lt;div class=“docstring”&gt;</p>
931
+
932
+ <pre>&lt;div class=&quot;discussion&quot;&gt;</pre>
933
+
934
+ <p>&lt;p&gt;Helper function to Uncondition boolean vectors to be +1 if true,
935
+ -1 if false&lt;/p&gt;</p>
936
+
937
+ <pre>&lt;/div&gt;</pre>
938
+
939
+ <p>&lt;/div&gt; &lt;div class=“tags”&gt;</p>
940
+
941
+ <p>&lt;/div&gt;&lt;table class=“source_code”&gt;</p>
942
+
943
+ <pre>&lt;tr&gt;
944
+ &lt;td&gt;
945
+ &lt;pre class=&quot;lines&quot;&gt;</pre>
946
+
947
+ <p>63 64 65&lt;/pre&gt;</p>
948
+
949
+ <pre>&lt;/td&gt;
950
+ &lt;td&gt;
951
+ &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>
952
+
953
+ <p>&lt;span class=&#39;kw&#39;&gt;def&lt;/span&gt; &lt;span class=&#39;id
954
+ identifier
955
+ rubyid_uncondition_boolean_vector&#39;&gt;uncondition_boolean_vector&lt;/span&gt;&lt;span
956
+ class=&#39;lparen&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;id identifier
957
+ rubyid_vec&#39;&gt;vec&lt;/span&gt;&lt;span
958
+ class=&#39;rparen&#39;&gt;)&lt;/span&gt;</p>
959
+
960
+ <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;float&#39;&gt;0.0&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>
961
+
962
+ <p>&lt;span class=&#39;kw&#39;&gt;end&lt;/span&gt;&lt;/pre&gt;</p>
963
+
964
+ <pre> &lt;/td&gt;
965
+ &lt;/tr&gt;</pre>
966
+
967
+ <p>&lt;/table&gt; &lt;/div&gt;</p>
968
+
969
+ <pre>&lt;/div&gt;</pre>
970
+
971
+ <p>&lt;/div&gt;</p>
972
+
973
+ <pre> &lt;div id=&quot;footer&quot;&gt;
974
+ Generated on Sun Dec 29 20:55:08 2013 by
975
+ &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;
976
+ 0.8.7.3 (ruby-2.0.0).</pre>
977
+
978
+ <p>&lt;/div&gt;</p>
979
+
980
+ <pre>&lt;/body&gt;</pre>
981
+
982
+ <p>&lt;/html&gt;</p>
983
+ </main>
984
+
985
+
986
+
987
+ <footer id="validator-badges" role="contentinfo">
988
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
989
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
990
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
991
+ </footer>
992
+