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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (252) hide show
  1. checksums.yaml +4 -4
  2. data/.semver +1 -1
  3. data/Gemfile +19 -19
  4. data/Gemfile.lock +39 -33
  5. data/README.md +66 -0
  6. data/Rakefile +19 -2
  7. data/bin/neat +4 -60
  8. data/lib/rubyneat/cli.rb +5 -0
  9. data/lib/rubyneat/cli/generate.rb +131 -0
  10. data/lib/rubyneat/cli/main.rb +54 -0
  11. data/lib/rubyneat/cli/templates/generate/Gemfile.tt +17 -0
  12. data/lib/rubyneat/cli/templates/generate/README.md.tt +1 -0
  13. data/lib/rubyneat/cli/templates/generate/bin/neat.tt +14 -0
  14. data/{neater/xor_neat.rb → lib/rubyneat/cli/templates/generate/neater.tt} +7 -22
  15. data/rubyneat.gemspec +73 -297
  16. data/rubyneat.gemspec.orig +384 -0
  17. metadata +76 -292
  18. data/.idea/.name +0 -1
  19. data/.idea/.rakeTasks +0 -7
  20. data/.idea/dictionaries/trader.xml +0 -3
  21. data/.idea/encodings.xml +0 -5
  22. data/.idea/misc.xml +0 -5
  23. data/.idea/modules.xml +0 -9
  24. data/.idea/rubyneat.iml +0 -198
  25. data/.idea/runConfigurations/invpend_neat.xml +0 -26
  26. data/.idea/runConfigurations/sigdebug_neat.xml +0 -24
  27. data/.idea/runConfigurations/xor_neat.xml +0 -26
  28. data/.idea/runConfigurations/xordebug_neat.xml +0 -24
  29. data/.idea/runConfigurations/xorsin_neat.xml +0 -24
  30. data/.idea/scopes/scope_settings.xml +0 -5
  31. data/.idea/vcs.xml +0 -7
  32. data/.idea/workspace.xml +0 -1151
  33. data/.yardoc/checksums +0 -11
  34. data/.yardoc/object_types +0 -0
  35. data/.yardoc/objects/root.dat +0 -0
  36. data/.yardoc/proxy_types +0 -0
  37. data/Guardfile +0 -8
  38. data/doc/ControllerPoint.html +0 -125
  39. data/doc/CuteA.html +0 -286
  40. data/doc/CuteB.html +0 -297
  41. data/doc/DSL.html +0 -883
  42. data/doc/NEAT.html +0 -588
  43. data/doc/NEAT/BasicNeuronTypes.html +0 -136
  44. data/doc/NEAT/BasicNeuronTypes/BiasNeuron.html +0 -518
  45. data/doc/NEAT/BasicNeuronTypes/CosineNeuron.html +0 -274
  46. data/doc/NEAT/BasicNeuronTypes/InputNeuron.html +0 -366
  47. data/doc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +0 -275
  48. data/doc/NEAT/BasicNeuronTypes/SineNeuron.html +0 -274
  49. data/doc/NEAT/BasicNeuronTypes/TanhNeuron.html +0 -274
  50. data/doc/NEAT/Controller.html +0 -2490
  51. data/doc/NEAT/Controller/NeatSettings.html +0 -3985
  52. data/doc/NEAT/Critter.html +0 -1037
  53. data/doc/NEAT/Critter/Genotype.html +0 -1601
  54. data/doc/NEAT/Critter/Genotype/Gene.html +0 -979
  55. data/doc/NEAT/Critter/Phenotype.html +0 -603
  56. data/doc/NEAT/DSL.html +0 -1255
  57. data/doc/NEAT/Evaluator.html +0 -420
  58. data/doc/NEAT/Evolver.html +0 -602
  59. data/doc/NEAT/Evolver/CritterOp.html +0 -551
  60. data/doc/NEAT/Expressor.html +0 -327
  61. data/doc/NEAT/Graph.html +0 -402
  62. data/doc/NEAT/Graph/DependencyResolver.html +0 -478
  63. data/doc/NEAT/Graph/GraphException.html +0 -123
  64. data/doc/NEAT/NeatException.html +0 -123
  65. data/doc/NEAT/NeatOb.html +0 -567
  66. data/doc/NEAT/Neuron.html +0 -1067
  67. data/doc/NEAT/Operator.html +0 -162
  68. data/doc/NEAT/Population.html +0 -1961
  69. data/doc/NEAT/Trait.html +0 -169
  70. data/doc/_index.html +0 -373
  71. data/doc/class_list.html +0 -54
  72. data/doc/css/common.css +0 -1
  73. data/doc/css/full_list.css +0 -57
  74. data/doc/css/style.css +0 -339
  75. data/doc/file_list.html +0 -53
  76. data/doc/frames.html +0 -26
  77. data/doc/index.html +0 -373
  78. data/doc/js/app.js +0 -219
  79. data/doc/js/full_list.js +0 -178
  80. data/doc/js/jquery.js +0 -4
  81. data/doc/method_list.html +0 -1415
  82. data/doc/top-level-namespace.html +0 -164
  83. data/foo/foo_aquarium_example.rb +0 -38
  84. data/foo/foo_gosu.rb +0 -99
  85. data/foo/foo_rubygoo.rb +0 -104
  86. data/foo/foo_sdl.rb +0 -34
  87. data/foo/icon.png +0 -0
  88. data/neater/invpend_neat.rb +0 -150
  89. data/neater/rnlib/inverted_pendulum.rb +0 -380
  90. data/neater/rnlib/xor.rb +0 -10
  91. data/neater/sigdebug_neat.rb +0 -136
  92. data/neater/xoranalog_neat.rb +0 -138
  93. data/neater/xorsin_neat.rb +0 -143
  94. data/projectFilesBackup/.idea/rubyneat.iml +0 -180
  95. data/public/.directory +0 -4
  96. data/public/background.png +0 -0
  97. data/public/background.xcf +0 -0
  98. data/public/cart.png +0 -0
  99. data/public/cart.xcf +0 -0
  100. data/public/metalpoles_molton_ball_l.jpg +0 -0
  101. data/public/old_background.png +0 -0
  102. data/public/pointer.png +0 -0
  103. data/public/pointer.xcf +0 -0
  104. data/public/pole.kra +0 -0
  105. data/public/pole.png +0 -0
  106. data/public/pole.xcf +0 -0
  107. data/public/wheel-of-year-stone-DD-131-WOYS.jpg +0 -0
  108. data/public/wheel.png +0 -0
  109. data/public/wheel.xcf +0 -0
  110. data/public/wood-planks-texture.jpg +0 -0
  111. data/rdoc/ControllerPoint.html +0 -116
  112. data/rdoc/CuteA.html +0 -177
  113. data/rdoc/CuteB.html +0 -178
  114. data/rdoc/DSLSetup.html +0 -177
  115. data/rdoc/GameTestWindow.html +0 -242
  116. data/rdoc/GameWindow.html +0 -292
  117. data/rdoc/Gemfile.html +0 -215
  118. data/rdoc/Gemfile_lock.html +0 -327
  119. data/rdoc/GraphTest.html +0 -210
  120. data/rdoc/Guardfile.html +0 -198
  121. data/rdoc/InvertedPendulum.html +0 -198
  122. data/rdoc/InvertedPendulum/Cart.html +0 -668
  123. data/rdoc/InvertedPendulum/DSL.html +0 -259
  124. data/rdoc/InvertedPendulum/InvPendWindow.html +0 -402
  125. data/rdoc/Logger.html +0 -98
  126. data/rdoc/NEAT.html +0 -422
  127. data/rdoc/NEAT/BasicNeuronTypes.html +0 -107
  128. data/rdoc/NEAT/BasicNeuronTypes/BiasNeuron.html +0 -265
  129. data/rdoc/NEAT/BasicNeuronTypes/CosineNeuron.html +0 -162
  130. data/rdoc/NEAT/BasicNeuronTypes/InputNeuron.html +0 -206
  131. data/rdoc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +0 -162
  132. data/rdoc/NEAT/BasicNeuronTypes/SineNeuron.html +0 -162
  133. data/rdoc/NEAT/BasicNeuronTypes/TanhNeuron.html +0 -161
  134. data/rdoc/NEAT/Controller.html +0 -729
  135. data/rdoc/NEAT/Controller/NeatSettings.html +0 -880
  136. data/rdoc/NEAT/Critter.html +0 -489
  137. data/rdoc/NEAT/Critter/Genotype.html +0 -735
  138. data/rdoc/NEAT/Critter/Genotype/Gene.html +0 -457
  139. data/rdoc/NEAT/Critter/Phenotype.html +0 -330
  140. data/rdoc/NEAT/DSL.html +0 -729
  141. data/rdoc/NEAT/Evaluator.html +0 -256
  142. data/rdoc/NEAT/Evolver.html +0 -891
  143. data/rdoc/NEAT/Evolver/CritterOp.html +0 -349
  144. data/rdoc/NEAT/Expressor.html +0 -402
  145. data/rdoc/NEAT/Graph.html +0 -263
  146. data/rdoc/NEAT/Graph/DependencyResolver.html +0 -291
  147. data/rdoc/NEAT/Graph/GraphException.html +0 -105
  148. data/rdoc/NEAT/NeatException.html +0 -105
  149. data/rdoc/NEAT/NeatOb.html +0 -325
  150. data/rdoc/NEAT/Neuron.html +0 -481
  151. data/rdoc/NEAT/Operator.html +0 -109
  152. data/rdoc/NEAT/Population.html +0 -935
  153. data/rdoc/NEAT/Trait.html +0 -117
  154. data/rdoc/Object.html +0 -384
  155. data/rdoc/Phi.html +0 -98
  156. data/rdoc/Player.html +0 -383
  157. data/rdoc/Rakefile.html +0 -254
  158. data/rdoc/RubyNEAT.html +0 -98
  159. data/rdoc/RubyNEAT/Application.html +0 -105
  160. data/rdoc/SDL.html +0 -98
  161. data/rdoc/SDL/Event2.html +0 -98
  162. data/rdoc/Vector.html +0 -195
  163. data/rdoc/created.rid +0 -125
  164. data/rdoc/doc/ControllerPoint_html.html +0 -299
  165. data/rdoc/doc/CuteA_html.html +0 -438
  166. data/rdoc/doc/CuteB_html.html +0 -436
  167. data/rdoc/doc/DSL_html.html +0 -992
  168. data/rdoc/doc/NEAT/BasicNeuronTypes/BiasNeuron_html.html +0 -617
  169. data/rdoc/doc/NEAT/BasicNeuronTypes/CosineNeuron_html.html +0 -413
  170. data/rdoc/doc/NEAT/BasicNeuronTypes/InputNeuron_html.html +0 -498
  171. data/rdoc/doc/NEAT/BasicNeuronTypes/SigmoidNeuron_html.html +0 -413
  172. data/rdoc/doc/NEAT/BasicNeuronTypes/SineNeuron_html.html +0 -413
  173. data/rdoc/doc/NEAT/BasicNeuronTypes/TanhNeuron_html.html +0 -412
  174. data/rdoc/doc/NEAT/BasicNeuronTypes_html.html +0 -310
  175. data/rdoc/doc/NEAT/Controller/NeatSettings_html.html +0 -3324
  176. data/rdoc/doc/NEAT/Controller_html.html +0 -2212
  177. data/rdoc/doc/NEAT/Critter/Genotype/Gene_html.html +0 -997
  178. data/rdoc/doc/NEAT/Critter/Genotype_html.html +0 -1556
  179. data/rdoc/doc/NEAT/Critter/Phenotype_html.html +0 -687
  180. data/rdoc/doc/NEAT/Critter_html.html +0 -1037
  181. data/rdoc/doc/NEAT/DSL_html.html +0 -1349
  182. data/rdoc/doc/NEAT/Evaluator_html.html +0 -556
  183. data/rdoc/doc/NEAT/Evolver/CritterOp_html.html +0 -690
  184. data/rdoc/doc/NEAT/Evolver_html.html +0 -677
  185. data/rdoc/doc/NEAT/Expressor_html.html +0 -468
  186. data/rdoc/doc/NEAT/Graph/DependencyResolver_html.html +0 -598
  187. data/rdoc/doc/NEAT/Graph/GraphException_html.html +0 -299
  188. data/rdoc/doc/NEAT/Graph_html.html +0 -527
  189. data/rdoc/doc/NEAT/NeatException_html.html +0 -299
  190. data/rdoc/doc/NEAT/NeatOb_html.html +0 -671
  191. data/rdoc/doc/NEAT/Neuron_html.html +0 -1095
  192. data/rdoc/doc/NEAT/Operator_html.html +0 -337
  193. data/rdoc/doc/NEAT/Population_html.html +0 -1795
  194. data/rdoc/doc/NEAT/Trait_html.html +0 -344
  195. data/rdoc/doc/NEAT_html.html +0 -736
  196. data/rdoc/doc/_index_html.html +0 -559
  197. data/rdoc/doc/class_list_html.html +0 -369
  198. data/rdoc/doc/css/common_css.html +0 -188
  199. data/rdoc/doc/css/full_list_css.html +0 -243
  200. data/rdoc/doc/css/style_css.html +0 -530
  201. data/rdoc/doc/file_list_html.html +0 -240
  202. data/rdoc/doc/frames_html.html +0 -217
  203. data/rdoc/doc/index_html.html +0 -559
  204. data/rdoc/doc/js/app_js.html +0 -423
  205. data/rdoc/doc/js/full_list_js.html +0 -372
  206. data/rdoc/doc/js/jquery_js.html +0 -1536
  207. data/rdoc/doc/method_list_html.html +0 -1375
  208. data/rdoc/doc/top-level-namespace_html.html +0 -317
  209. data/rdoc/fonts.css +0 -167
  210. data/rdoc/fonts/Lato-Light.ttf +0 -0
  211. data/rdoc/fonts/Lato-LightItalic.ttf +0 -0
  212. data/rdoc/fonts/Lato-Regular.ttf +0 -0
  213. data/rdoc/fonts/Lato-RegularItalic.ttf +0 -0
  214. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  215. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  216. data/rdoc/images/add.png +0 -0
  217. data/rdoc/images/arrow_up.png +0 -0
  218. data/rdoc/images/brick.png +0 -0
  219. data/rdoc/images/brick_link.png +0 -0
  220. data/rdoc/images/bug.png +0 -0
  221. data/rdoc/images/bullet_black.png +0 -0
  222. data/rdoc/images/bullet_toggle_minus.png +0 -0
  223. data/rdoc/images/bullet_toggle_plus.png +0 -0
  224. data/rdoc/images/date.png +0 -0
  225. data/rdoc/images/delete.png +0 -0
  226. data/rdoc/images/find.png +0 -0
  227. data/rdoc/images/loadingAnimation.gif +0 -0
  228. data/rdoc/images/macFFBgHack.png +0 -0
  229. data/rdoc/images/package.png +0 -0
  230. data/rdoc/images/page_green.png +0 -0
  231. data/rdoc/images/page_white_text.png +0 -0
  232. data/rdoc/images/page_white_width.png +0 -0
  233. data/rdoc/images/plugin.png +0 -0
  234. data/rdoc/images/ruby.png +0 -0
  235. data/rdoc/images/tag_blue.png +0 -0
  236. data/rdoc/images/tag_green.png +0 -0
  237. data/rdoc/images/transparent.png +0 -0
  238. data/rdoc/images/wrench.png +0 -0
  239. data/rdoc/images/wrench_orange.png +0 -0
  240. data/rdoc/images/zoom.png +0 -0
  241. data/rdoc/index.html +0 -282
  242. data/rdoc/js/darkfish.js +0 -140
  243. data/rdoc/js/jquery.js +0 -18
  244. data/rdoc/js/navigation.js +0 -142
  245. data/rdoc/js/search.js +0 -109
  246. data/rdoc/js/search_index.js +0 -1
  247. data/rdoc/js/searcher.js +0 -228
  248. data/rdoc/rdoc.css +0 -580
  249. data/rdoc/rubyneat_gemspec.html +0 -387
  250. data/rdoc/table_of_contents.html +0 -2502
  251. data/rdoc/xordebug_log.html +0 -170598
  252. data/rdoc/xorsin_log.html +0 -22569
@@ -1,161 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
-
7
- <title>class NEAT::BasicNeuronTypes::TanhNeuron - rubyneat 0.3.4</title>
8
-
9
- <link href="../../fonts.css" rel="stylesheet">
10
- <link href="../../rdoc.css" rel="stylesheet">
11
-
12
- <script type="text/javascript">
13
- var rdoc_rel_prefix = "../../";
14
- </script>
15
-
16
- <script src="../../js/jquery.js"></script>
17
- <script src="../../js/navigation.js"></script>
18
- <script src="../../js/search_index.js"></script>
19
- <script src="../../js/search.js"></script>
20
- <script src="../../js/searcher.js"></script>
21
- <script src="../../js/darkfish.js"></script>
22
-
23
-
24
- <body id="top" role="document" class="class">
25
- <nav role="navigation">
26
- <div id="project-navigation">
27
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
- <h2>
29
- <a href="../../index.html" rel="home">Home</a>
30
- </h2>
31
-
32
- <div id="table-of-contents-navigation">
33
- <a href="../../table_of_contents.html#pages">Pages</a>
34
- <a href="../../table_of_contents.html#classes">Classes</a>
35
- <a href="../../table_of_contents.html#methods">Methods</a>
36
- </div>
37
- </div>
38
-
39
- <div id="search-section" role="search" class="project-section initially-hidden">
40
- <form action="#" method="get" accept-charset="utf-8">
41
- <div id="search-field-wrapper">
42
- <input id="search-field" role="combobox" aria-label="Search"
43
- aria-autocomplete="list" aria-controls="search-results"
44
- type="text" name="search" placeholder="Search" spellcheck="false"
45
- title="Type to search, Up and Down to navigate, Enter to load">
46
- </div>
47
-
48
- <ul id="search-results" aria-label="Search Results"
49
- aria-busy="false" aria-expanded="false"
50
- aria-atomic="false" class="initially-hidden"></ul>
51
- </form>
52
- </div>
53
-
54
- </div>
55
-
56
-
57
-
58
- <div id="class-metadata">
59
-
60
- <div id="parent-class-section" class="nav-section">
61
- <h3>Parent</h3>
62
-
63
-
64
- <p class="link"><a href="../Neuron.html">NEAT::Neuron</a>
65
-
66
- </div>
67
-
68
-
69
-
70
- <!-- Method Quickref -->
71
- <div id="method-list-section" class="nav-section">
72
- <h3>Methods</h3>
73
-
74
- <ul class="link-list" role="directory">
75
-
76
- <li ><a href="#method-i-express">#express</a>
77
-
78
- </ul>
79
- </div>
80
-
81
- </div>
82
- </nav>
83
-
84
- <main role="main" aria-labelledby="class-NEAT::BasicNeuronTypes::TanhNeuron">
85
- <h1 id="class-NEAT::BasicNeuronTypes::TanhNeuron" class="class">
86
- class NEAT::BasicNeuronTypes::TanhNeuron
87
- </h1>
88
-
89
- <section class="description">
90
-
91
- <p>An alternative Sigmoid Function, but ranges -1 to +1</p>
92
-
93
- </section>
94
-
95
-
96
-
97
-
98
- <section id="5Buntitled-5D" class="documentation-section">
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
-
108
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
109
- <header>
110
- <h3>Public Instance Methods</h3>
111
- </header>
112
-
113
-
114
- <div id="method-i-express" class="method-detail ">
115
-
116
- <div class="method-heading">
117
- <span class="method-name">express</span><span
118
- class="method-args">(instance)</span>
119
-
120
- <span class="method-click-advice">click to toggle source</span>
121
-
122
- </div>
123
-
124
-
125
- <div class="method-description">
126
-
127
- <p>create a function on the instance with our name that sums all inputs and
128
- produce a sigmoid output (using tanh)</p>
129
-
130
-
131
-
132
-
133
- <div class="method-source-code" id="express-source">
134
- <pre><span class="ruby-comment"># File lib/rubyneat/neuron.rb, line 122</span>
135
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">express</span>(<span class="ruby-identifier">instance</span>)
136
- <span class="ruby-identifier">instance</span>.<span class="ruby-identifier">define_singleton_method</span>(<span class="ruby-ivar">@name</span>) {<span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">inputs</span><span class="ruby-operator">|</span>
137
- <span class="ruby-identifier">tanh</span>(<span class="ruby-value">2.4</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">inputs</span>.<span class="ruby-identifier">reduce</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">p</span>, <span class="ruby-identifier">q</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">q</span>})
138
- }
139
- <span class="ruby-keyword">end</span></pre>
140
- </div>
141
-
142
- </div>
143
-
144
-
145
-
146
-
147
- </div>
148
-
149
-
150
- </section>
151
-
152
- </section>
153
- </main>
154
-
155
-
156
- <footer id="validator-badges" role="contentinfo">
157
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
158
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
159
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
160
- </footer>
161
-
@@ -1,729 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
-
7
- <title>class NEAT::Controller - rubyneat 0.3.4</title>
8
-
9
- <link href="../fonts.css" rel="stylesheet">
10
- <link href="../rdoc.css" rel="stylesheet">
11
-
12
- <script type="text/javascript">
13
- var rdoc_rel_prefix = "../";
14
- </script>
15
-
16
- <script src="../js/jquery.js"></script>
17
- <script src="../js/navigation.js"></script>
18
- <script src="../js/search_index.js"></script>
19
- <script src="../js/search.js"></script>
20
- <script src="../js/searcher.js"></script>
21
- <script src="../js/darkfish.js"></script>
22
-
23
-
24
- <body id="top" role="document" class="class">
25
- <nav role="navigation">
26
- <div id="project-navigation">
27
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
- <h2>
29
- <a href="../index.html" rel="home">Home</a>
30
- </h2>
31
-
32
- <div id="table-of-contents-navigation">
33
- <a href="../table_of_contents.html#pages">Pages</a>
34
- <a href="../table_of_contents.html#classes">Classes</a>
35
- <a href="../table_of_contents.html#methods">Methods</a>
36
- </div>
37
- </div>
38
-
39
- <div id="search-section" role="search" class="project-section initially-hidden">
40
- <form action="#" method="get" accept-charset="utf-8">
41
- <div id="search-field-wrapper">
42
- <input id="search-field" role="combobox" aria-label="Search"
43
- aria-autocomplete="list" aria-controls="search-results"
44
- type="text" name="search" placeholder="Search" spellcheck="false"
45
- title="Type to search, Up and Down to navigate, Enter to load">
46
- </div>
47
-
48
- <ul id="search-results" aria-label="Search Results"
49
- aria-busy="false" aria-expanded="false"
50
- aria-atomic="false" class="initially-hidden"></ul>
51
- </form>
52
- </div>
53
-
54
- </div>
55
-
56
-
57
-
58
- <div id="class-metadata">
59
-
60
- <div id="parent-class-section" class="nav-section">
61
- <h3>Parent</h3>
62
-
63
-
64
- <p class="link"><a href="NeatOb.html">NEAT::NeatOb</a>
65
-
66
- </div>
67
-
68
-
69
-
70
- <!-- Method Quickref -->
71
- <div id="method-list-section" class="nav-section">
72
- <h3>Methods</h3>
73
-
74
- <ul class="link-list" role="directory">
75
-
76
- <li class="calls-super" ><a href="#method-c-new">::new</a>
77
-
78
- <li ><a href="#method-i-gaussian">#gaussian</a>
79
-
80
- <li ><a href="#method-i-new_innovation">#new_innovation</a>
81
-
82
- <li ><a href="#method-i-run">#run</a>
83
-
84
- </ul>
85
- </div>
86
-
87
- </div>
88
- </nav>
89
-
90
- <main role="main" aria-labelledby="class-NEAT::Controller">
91
- <h1 id="class-NEAT::Controller" class="class">
92
- class NEAT::Controller
93
- </h1>
94
-
95
- <section class="description">
96
-
97
- <h1 id="class-NEAT::Controller-label-Controller+for+all+operations+of+RubyNEAT"><a href="Controller.html">Controller</a> for all operations of <a href="../RubyNEAT.html">RubyNEAT</a><span><a href="#class-NEAT::Controller-label-Controller+for+all+operations+of+RubyNEAT">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
98
-
99
- <pre>This object contains all the specifications and details for
100
- evolving and evaluation of the RubyNEAT system. It is
101
- a type of &quot;World&quot;, if you will, for the entire enterprise.
102
-
103
- Your application shall only have one Controller.</pre>
104
-
105
- </section>
106
-
107
-
108
-
109
-
110
- <section id="5Buntitled-5D" class="documentation-section">
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
- <section class="attribute-method-details" class="method-section">
119
- <header>
120
- <h3>Attributes</h3>
121
- </header>
122
-
123
-
124
- <div id="attribute-i-compare_func" class="method-detail">
125
- <div class="method-heading attribute-method-heading">
126
- <span class="method-name">compare_func</span><span
127
- class="attribute-access-type">[RW]</span>
128
- </div>
129
-
130
- <div class="method-description">
131
-
132
- <p>Compare function for fitness Cost function for integrating in the cost to
133
- the fitness scalar.</p>
134
-
135
- </div>
136
- </div>
137
-
138
- <div id="attribute-i-cost_func" class="method-detail">
139
- <div class="method-heading attribute-method-heading">
140
- <span class="method-name">cost_func</span><span
141
- class="attribute-access-type">[RW]</span>
142
- </div>
143
-
144
- <div class="method-description">
145
-
146
- <p>Compare function for fitness Cost function for integrating in the cost to
147
- the fitness scalar.</p>
148
-
149
- </div>
150
- </div>
151
-
152
- <div id="attribute-i-end_run_func" class="method-detail">
153
- <div class="method-heading attribute-method-heading">
154
- <span class="method-name">end_run_func</span><span
155
- class="attribute-access-type">[RW]</span>
156
- </div>
157
-
158
- <div class="method-description">
159
-
160
- <p>End run function to call at the end of each generational run Also <a
161
- href="Controller.html#attribute-i-report_hook">#report_hook</a> to dump
162
- reports for the user, etc.</p>
163
-
164
- </div>
165
- </div>
166
-
167
- <div id="attribute-i-evaluator" class="method-detail">
168
- <div class="method-heading attribute-method-heading">
169
- <span class="method-name">evaluator</span><span
170
- class="attribute-access-type">[RW]</span>
171
- </div>
172
-
173
- <div class="method-description">
174
-
175
-
176
-
177
- </div>
178
- </div>
179
-
180
- <div id="attribute-i-evaluator_class" class="method-detail">
181
- <div class="method-heading attribute-method-heading">
182
- <span class="method-name">evaluator_class</span><span
183
- class="attribute-access-type">[RW]</span>
184
- </div>
185
-
186
- <div class="method-description">
187
-
188
-
189
-
190
- </div>
191
- </div>
192
-
193
- <div id="attribute-i-evolver" class="method-detail">
194
- <div class="method-heading attribute-method-heading">
195
- <span class="method-name">evolver</span><span
196
- class="attribute-access-type">[RW]</span>
197
- </div>
198
-
199
- <div class="method-description">
200
-
201
-
202
-
203
- </div>
204
- </div>
205
-
206
- <div id="attribute-i-evolver_class" class="method-detail">
207
- <div class="method-heading attribute-method-heading">
208
- <span class="method-name">evolver_class</span><span
209
- class="attribute-access-type">[RW]</span>
210
- </div>
211
-
212
- <div class="method-description">
213
-
214
-
215
-
216
- </div>
217
- </div>
218
-
219
- <div id="attribute-i-expressor" class="method-detail">
220
- <div class="method-heading attribute-method-heading">
221
- <span class="method-name">expressor</span><span
222
- class="attribute-access-type">[RW]</span>
223
- </div>
224
-
225
- <div class="method-description">
226
-
227
-
228
-
229
- </div>
230
- </div>
231
-
232
- <div id="attribute-i-expressor_class" class="method-detail">
233
- <div class="method-heading attribute-method-heading">
234
- <span class="method-name">expressor_class</span><span
235
- class="attribute-access-type">[RW]</span>
236
- </div>
237
-
238
- <div class="method-description">
239
-
240
-
241
-
242
- </div>
243
- </div>
244
-
245
- <div id="attribute-i-fitness_func" class="method-detail">
246
- <div class="method-heading attribute-method-heading">
247
- <span class="method-name">fitness_func</span><span
248
- class="attribute-access-type">[RW]</span>
249
- </div>
250
-
251
- <div class="method-description">
252
-
253
- <p>Fitness function that Critters shall be rated on.</p>
254
-
255
- </div>
256
- </div>
257
-
258
- <div id="attribute-i-generation_num" class="method-detail">
259
- <div class="method-heading attribute-method-heading">
260
- <span class="method-name">generation_num</span><span
261
- class="attribute-access-type">[R]</span>
262
- </div>
263
-
264
- <div class="method-description">
265
-
266
- <p>Current generation count</p>
267
-
268
- </div>
269
- </div>
270
-
271
- <div id="attribute-i-glob_innov_num" class="method-detail">
272
- <div class="method-heading attribute-method-heading">
273
- <span class="method-name">glob_innov_num</span><span
274
- class="attribute-access-type">[R]</span>
275
- </div>
276
-
277
- <div class="method-description">
278
-
279
- <p>global innovation number</p>
280
-
281
- </div>
282
- </div>
283
-
284
- <div id="attribute-i-log" class="method-detail">
285
- <div class="method-heading attribute-method-heading">
286
- <span class="method-name">log</span><span
287
- class="attribute-access-type">[R]</span>
288
- </div>
289
-
290
- <div class="method-description">
291
-
292
- <p>Logger object for all of <a href="../RubyNEAT.html">RubyNEAT</a></p>
293
-
294
- </div>
295
- </div>
296
-
297
- <div id="attribute-i-neural_hidden" class="method-detail">
298
- <div class="method-heading attribute-method-heading">
299
- <span class="method-name">neural_hidden</span><span
300
- class="attribute-access-type">[RW]</span>
301
- </div>
302
-
303
- <div class="method-description">
304
-
305
- <p>Class map of named input and output neurons (each critter will have
306
- instantiations of these) name: InputNeuralClass (usually InputNeuron)</p>
307
-
308
- </div>
309
- </div>
310
-
311
- <div id="attribute-i-neural_inputs" class="method-detail">
312
- <div class="method-heading attribute-method-heading">
313
- <span class="method-name">neural_inputs</span><span
314
- class="attribute-access-type">[RW]</span>
315
- </div>
316
-
317
- <div class="method-description">
318
-
319
- <p>Class map of named input and output neurons (each critter will have
320
- instantiations of these) name: InputNeuralClass (usually InputNeuron)</p>
321
-
322
- </div>
323
- </div>
324
-
325
- <div id="attribute-i-neural_outputs" class="method-detail">
326
- <div class="method-heading attribute-method-heading">
327
- <span class="method-name">neural_outputs</span><span
328
- class="attribute-access-type">[RW]</span>
329
- </div>
330
-
331
- <div class="method-description">
332
-
333
- <p>Class map of named input and output neurons (each critter will have
334
- instantiations of these) name: InputNeuralClass (usually InputNeuron)</p>
335
-
336
- </div>
337
- </div>
338
-
339
- <div id="attribute-i-neuron_catalog" class="method-detail">
340
- <div class="method-heading attribute-method-heading">
341
- <span class="method-name">neuron_catalog</span><span
342
- class="attribute-access-type">[RW]</span>
343
- </div>
344
-
345
- <div class="method-description">
346
-
347
- <p>catalog of neurons classes to use { weight =&gt; nclass, … }</p>
348
-
349
- </div>
350
- </div>
351
-
352
- <div id="attribute-i-parms" class="method-detail">
353
- <div class="method-heading attribute-method-heading">
354
- <span class="method-name">parms</span><span
355
- class="attribute-access-type">[RW]</span>
356
- </div>
357
-
358
- <div class="method-description">
359
-
360
- <p>Parameters for evolution (NeatParameters)</p>
361
-
362
- </div>
363
- </div>
364
-
365
- <div id="attribute-i-population" class="method-detail">
366
- <div class="method-heading attribute-method-heading">
367
- <span class="method-name">population</span><span
368
- class="attribute-access-type">[R]</span>
369
- </div>
370
-
371
- <div class="method-description">
372
-
373
- <p>population object and class specification</p>
374
-
375
- </div>
376
- </div>
377
-
378
- <div id="attribute-i-population_class" class="method-detail">
379
- <div class="method-heading attribute-method-heading">
380
- <span class="method-name">population_class</span><span
381
- class="attribute-access-type">[R]</span>
382
- </div>
383
-
384
- <div class="method-description">
385
-
386
- <p>population object and class specification</p>
387
-
388
- </div>
389
- </div>
390
-
391
- <div id="attribute-i-population_history" class="method-detail">
392
- <div class="method-heading attribute-method-heading">
393
- <span class="method-name">population_history</span><span
394
- class="attribute-access-type">[R]</span>
395
- </div>
396
-
397
- <div class="method-description">
398
-
399
- <p>population object and class specification</p>
400
-
401
- </div>
402
- </div>
403
-
404
- <div id="attribute-i-query_func" class="method-detail">
405
- <div class="method-heading attribute-method-heading">
406
- <span class="method-name">query_func</span><span
407
- class="attribute-access-type">[RW]</span>
408
- </div>
409
-
410
- <div class="method-description">
411
-
412
- <p>Query function that Critters shall call.</p>
413
-
414
- </div>
415
- </div>
416
-
417
- <div id="attribute-i-recurrence_func" class="method-detail">
418
- <div class="method-heading attribute-method-heading">
419
- <span class="method-name">recurrence_func</span><span
420
- class="attribute-access-type">[RW]</span>
421
- </div>
422
-
423
- <div class="method-description">
424
-
425
- <p>Recurrence function that Critters will yield to.</p>
426
-
427
- </div>
428
- </div>
429
-
430
- <div id="attribute-i-report_hook" class="method-detail">
431
- <div class="method-heading attribute-method-heading">
432
- <span class="method-name">report_hook</span><span
433
- class="attribute-access-type">[RW]</span>
434
- </div>
435
-
436
- <div class="method-description">
437
-
438
- <p>End run function to call at the end of each generational run Also <a
439
- href="Controller.html#attribute-i-report_hook">#report_hook</a> to dump
440
- reports for the user, etc.</p>
441
-
442
- </div>
443
- </div>
444
-
445
- <div id="attribute-i-seq_num" class="method-detail">
446
- <div class="method-heading attribute-method-heading">
447
- <span class="method-name">seq_num</span><span
448
- class="attribute-access-type">[R]</span>
449
- </div>
450
-
451
- <div class="method-description">
452
-
453
- <p>current sequence number being evaluated</p>
454
-
455
- </div>
456
- </div>
457
-
458
- <div id="attribute-i-stop_on_fit_func" class="method-detail">
459
- <div class="method-heading attribute-method-heading">
460
- <span class="method-name">stop_on_fit_func</span><span
461
- class="attribute-access-type">[RW]</span>
462
- </div>
463
-
464
- <div class="method-description">
465
-
466
- <p>Compare function for fitness Cost function for integrating in the cost to
467
- the fitness scalar.</p>
468
-
469
- </div>
470
- </div>
471
-
472
- <div id="attribute-i-verbosity" class="method-detail">
473
- <div class="method-heading attribute-method-heading">
474
- <span class="method-name">verbosity</span><span
475
- class="attribute-access-type">[RW]</span>
476
- </div>
477
-
478
- <div class="method-description">
479
-
480
- <p>Global verbosity level:</p>
481
-
482
- <pre>1 - normal (the default)
483
- 2 - really verbose
484
- 3 - maximally verbose</pre>
485
-
486
- <p>Use in conjunction with log.debug</p>
487
-
488
- </div>
489
- </div>
490
-
491
- </section>
492
-
493
-
494
-
495
- <section id="public-class-5Buntitled-5D-method-details" class="method-section">
496
- <header>
497
- <h3>Public Class Methods</h3>
498
- </header>
499
-
500
-
501
- <div id="method-c-new" class="method-detail ">
502
-
503
- <div class="method-heading">
504
- <span class="method-name">new</span><span
505
- class="method-args">(neural_inputs: nil, neural_outputs: nil, neural_hidden: nil, parameters: NeatSettings.new, &block)</span>
506
-
507
- <span class="method-click-advice">click to toggle source</span>
508
-
509
- </div>
510
-
511
-
512
- <div class="method-description">
513
-
514
- <ul><li>
515
- <p><a href="Controller.html#attribute-i-neural_inputs">#neural_inputs</a> –
516
- array of input classes</p>
517
- </li><li>
518
- <p><a href="Controller.html#attribute-i-neural_outputs">#neural_outputs</a> –
519
- array of output classes</p>
520
- </li><li>
521
- <p>parameters – NeatParameters object, or a path to a YAML file to create
522
- this.</p>
523
- </li></ul>
524
-
525
-
526
- <div class="method-calls-super">
527
- Calls superclass method
528
- <a href="NeatOb.html#method-c-new">NEAT::NeatOb.new</a>
529
- </div>
530
-
531
-
532
-
533
- <div class="method-source-code" id="new-source">
534
- <pre><span class="ruby-comment"># File lib/rubyneat/rubyneat.rb, line 334</span>
535
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">neural_inputs</span><span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>,
536
- <span class="ruby-identifier">neural_outputs</span><span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>,
537
- <span class="ruby-identifier">neural_hidden</span><span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>,
538
- <span class="ruby-identifier">parameters</span><span class="ruby-operator">:</span> <span class="ruby-constant">NeatSettings</span>.<span class="ruby-identifier">new</span>,
539
- <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
540
- <span class="ruby-keyword">super</span>(<span class="ruby-keyword">self</span>)
541
- <span class="ruby-ivar">@verbosity</span> = <span class="ruby-value">1</span>
542
- <span class="ruby-ivar">@glob_innov_num</span> = <span class="ruby-value">0</span>
543
- <span class="ruby-ivar">@gaussian</span> = <span class="ruby-constant">Distribution</span><span class="ruby-operator">::</span><span class="ruby-constant">Normal</span>.<span class="ruby-identifier">rng</span>
544
- <span class="ruby-ivar">@population_history</span> = []
545
- <span class="ruby-ivar">@evolver</span> = <span class="ruby-constant">Evolver</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">self</span>
546
- <span class="ruby-ivar">@expressor</span> = <span class="ruby-constant">Expressor</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">self</span>
547
-
548
- <span class="ruby-ivar">@neuron_catalog</span> = <span class="ruby-constant">Neuron</span><span class="ruby-operator">::</span><span class="ruby-identifier">neuron_types</span>.<span class="ruby-identifier">clone</span>
549
- <span class="ruby-ivar">@neural_inputs</span> = <span class="ruby-identifier">neural_inputs</span>
550
- <span class="ruby-ivar">@neural_outputs</span> = <span class="ruby-identifier">neural_outputs</span>
551
- <span class="ruby-ivar">@neural_hidden</span> = <span class="ruby-identifier">neural_hidden</span>
552
-
553
- <span class="ruby-comment"># Default classes for population and operators, etc.</span>
554
- <span class="ruby-ivar">@population_class</span> = <span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-constant">Population</span>
555
- <span class="ruby-ivar">@evaluator_class</span> = <span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-constant">Evaluator</span>
556
- <span class="ruby-ivar">@expressor_class</span> = <span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-constant">Expressor</span>
557
- <span class="ruby-ivar">@evolver_class</span> = <span class="ruby-constant">NEAT</span><span class="ruby-operator">::</span><span class="ruby-constant">Evolver</span>
558
-
559
- <span class="ruby-comment"># Handle the parameters parameter. :-)</span>
560
- <span class="ruby-ivar">@parms</span> = <span class="ruby-keyword">unless</span> <span class="ruby-identifier">parameters</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">String</span>
561
- <span class="ruby-identifier">parameters</span>
562
- <span class="ruby-keyword">else</span> <span class="ruby-comment"># load it from a file</span>
563
- <span class="ruby-identifier">open</span>(<span class="ruby-identifier">parameters</span>, <span class="ruby-string">&#39;r&#39;</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">fd</span><span class="ruby-operator">|</span> <span class="ruby-constant">YAML</span><span class="ruby-operator">::</span><span class="ruby-identifier">load</span> <span class="ruby-identifier">fd</span>.<span class="ruby-identifier">read</span> }
564
- <span class="ruby-keyword">end</span>
565
- <span class="ruby-identifier">block</span>.(<span class="ruby-keyword">self</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">nil?</span>
566
- <span class="ruby-keyword">end</span></pre>
567
- </div>
568
-
569
- </div>
570
-
571
-
572
-
573
-
574
- </div>
575
-
576
-
577
- </section>
578
-
579
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
580
- <header>
581
- <h3>Public Instance Methods</h3>
582
- </header>
583
-
584
-
585
- <div id="method-i-gaussian" class="method-detail ">
586
-
587
- <div class="method-heading">
588
- <span class="method-name">gaussian</span><span
589
- class="method-args">()</span>
590
-
591
- <span class="method-click-advice">click to toggle source</span>
592
-
593
- </div>
594
-
595
-
596
- <div class="method-description">
597
-
598
-
599
-
600
-
601
-
602
-
603
- <div class="method-source-code" id="gaussian-source">
604
- <pre><span class="ruby-comment"># File lib/rubyneat/rubyneat.rb, line 368</span>
605
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">gaussian</span> ; <span class="ruby-ivar">@gaussian</span>.() ; <span class="ruby-keyword">end</span></pre>
606
- </div>
607
-
608
- </div>
609
-
610
-
611
-
612
-
613
- </div>
614
-
615
-
616
- <div id="method-i-new_innovation" class="method-detail ">
617
-
618
- <div class="method-heading">
619
- <span class="method-name">new_innovation</span><span
620
- class="method-args">()</span>
621
-
622
- <span class="method-click-advice">click to toggle source</span>
623
-
624
- </div>
625
-
626
-
627
- <div class="method-description">
628
-
629
-
630
-
631
-
632
-
633
-
634
- <div class="method-source-code" id="new_innovation-source">
635
- <pre><span class="ruby-comment"># File lib/rubyneat/rubyneat.rb, line 367</span>
636
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">new_innovation</span> ; <span class="ruby-ivar">@glob_innov_num</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>; <span class="ruby-keyword">end</span></pre>
637
- </div>
638
-
639
- </div>
640
-
641
-
642
-
643
-
644
- </div>
645
-
646
-
647
- <div id="method-i-run" class="method-detail ">
648
-
649
- <div class="method-heading">
650
- <span class="method-name">run</span><span
651
- class="method-args">()</span>
652
-
653
- <span class="method-click-advice">click to toggle source</span>
654
-
655
- </div>
656
-
657
-
658
- <div class="method-description">
659
-
660
- <p>Run this evolution.</p>
661
-
662
-
663
-
664
-
665
- <div class="method-source-code" id="run-source">
666
- <pre><span class="ruby-comment"># File lib/rubyneat/rubyneat.rb, line 371</span>
667
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">run</span>
668
- <span class="ruby-identifier">pre_run_initialize</span>
669
- (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-ivar">@parms</span>.<span class="ruby-identifier">max_generations</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">gen_number</span><span class="ruby-operator">|</span>
670
- <span class="ruby-ivar">@generation_num</span> = <span class="ruby-identifier">gen_number</span>
671
- <span class="ruby-ivar">@population_history</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">nil?</span>
672
- <span class="ruby-ivar">@population</span>
673
- <span class="ruby-keyword">else</span>
674
- <span class="ruby-ivar">@population</span> = <span class="ruby-ivar">@population_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>)
675
- <span class="ruby-keyword">end</span>
676
- <span class="ruby-ivar">@population_history</span>.<span class="ruby-identifier">shift</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@population_history</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@parms</span>.<span class="ruby-identifier">max_population_history</span>
677
- <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">mutate!</span>
678
- <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">express!</span>
679
-
680
- <span class="ruby-comment">## Evaluate population</span>
681
- <span class="ruby-ivar">@evaluator</span>.<span class="ruby-identifier">ready_for_evaluation</span> <span class="ruby-ivar">@population</span>
682
- (<span class="ruby-ivar">@parms</span>.<span class="ruby-identifier">start_sequence_at</span> <span class="ruby-operator">..</span> <span class="ruby-ivar">@parms</span>.<span class="ruby-identifier">end_sequence_at</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">snum</span><span class="ruby-operator">|</span>
683
- <span class="ruby-ivar">@seq_num</span> = <span class="ruby-identifier">snum</span>
684
- <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">evaluate!</span>
685
- <span class="ruby-keyword">end</span>
686
-
687
- <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">analyze!</span>
688
- <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">speciate!</span>
689
-
690
- <span class="ruby-identifier">$log</span>.<span class="ruby-identifier">debug</span> <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">dump_s</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@verbosity</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">3</span>
691
-
692
- <span class="ruby-identifier">new_pop</span> = <span class="ruby-ivar">@population</span>.<span class="ruby-identifier">evolve</span>
693
-
694
- <span class="ruby-comment">## Report hook for evaluation</span>
695
- <span class="ruby-ivar">@report_hook</span>.(<span class="ruby-ivar">@population</span>.<span class="ruby-identifier">report</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@report_hook</span>.<span class="ruby-identifier">nil?</span>
696
-
697
- <span class="ruby-comment">## Exit if fitness criteria is reached</span>
698
- <span class="ruby-comment">#FIXME handle this exit condition better!!!!!</span>
699
- <span class="ruby-identifier">exit</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@stop_on_fit_func</span>.(<span class="ruby-ivar">@population</span>.<span class="ruby-identifier">report</span>[<span class="ruby-value">:fitness</span>], <span class="ruby-keyword">self</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@stop_on_fit_func</span>.<span class="ruby-identifier">nil?</span>
700
-
701
- <span class="ruby-comment">## Evolve population</span>
702
- <span class="ruby-ivar">@population</span> = <span class="ruby-identifier">new_pop</span>
703
-
704
- <span class="ruby-comment">## Finish up this run</span>
705
- <span class="ruby-ivar">@end_run_func</span>.(<span class="ruby-keyword">self</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@end_run_func</span>.<span class="ruby-identifier">nil?</span>
706
- <span class="ruby-keyword">end</span>
707
- <span class="ruby-keyword">end</span></pre>
708
- </div>
709
-
710
- </div>
711
-
712
-
713
-
714
-
715
- </div>
716
-
717
-
718
- </section>
719
-
720
- </section>
721
- </main>
722
-
723
-
724
- <footer id="validator-badges" role="contentinfo">
725
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
726
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
727
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
728
- </footer>
729
-