You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2563 lines
114 KiB

1 month ago
  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>AForge.Genetic</name>
  5. </assembly>
  6. <members>
  7. <member name="T:AForge.Genetic.BinaryChromosome">
  8. <summary>
  9. Binary chromosome, which supports length from 2 till 64.
  10. </summary>
  11. <remarks><para>The binary chromosome is the simplest type of chromosomes,
  12. which is represented by a set of bits. Maximum number of bits comprising
  13. the chromosome is 64.</para></remarks>
  14. </member>
  15. <member name="F:AForge.Genetic.BinaryChromosome.length">
  16. <summary>
  17. Chromosome's length in bits.
  18. </summary>
  19. </member>
  20. <member name="F:AForge.Genetic.BinaryChromosome.val">
  21. <summary>
  22. Numerical chromosome's value.
  23. </summary>
  24. </member>
  25. <member name="F:AForge.Genetic.BinaryChromosome.rand">
  26. <summary>
  27. Random number generator for chromosoms generation, crossover, mutation, etc.
  28. </summary>
  29. </member>
  30. <member name="F:AForge.Genetic.BinaryChromosome.MaxLength">
  31. <summary>
  32. Chromosome's maximum length.
  33. </summary>
  34. <remarks><para>Maxim chromosome's length in bits, which is supported
  35. by the class</para></remarks>
  36. </member>
  37. <member name="P:AForge.Genetic.BinaryChromosome.Length">
  38. <summary>
  39. Chromosome's length.
  40. </summary>
  41. <remarks><para>Length of the chromosome in bits.</para></remarks>
  42. </member>
  43. <member name="P:AForge.Genetic.BinaryChromosome.Value">
  44. <summary>
  45. Chromosome's value.
  46. </summary>
  47. <remarks><para>Current numerical value of the chromosome.</para></remarks>
  48. </member>
  49. <member name="P:AForge.Genetic.BinaryChromosome.MaxValue">
  50. <summary>
  51. Max possible chromosome's value.
  52. </summary>
  53. <remarks><para>Maximum possible numerical value, which may be represented
  54. by the chromosome of current length.</para></remarks>
  55. </member>
  56. <member name="M:AForge.Genetic.BinaryChromosome.#ctor(System.Int32)">
  57. <summary>
  58. Initializes a new instance of the <see cref="T:AForge.Genetic.BinaryChromosome"/> class.
  59. </summary>
  60. <param name="length">Chromosome's length in bits, [2, <see cref="F:AForge.Genetic.BinaryChromosome.MaxLength"/>].</param>
  61. </member>
  62. <member name="M:AForge.Genetic.BinaryChromosome.#ctor(AForge.Genetic.BinaryChromosome)">
  63. <summary>
  64. Initializes a new instance of the <see cref="T:AForge.Genetic.BinaryChromosome"/> class.
  65. </summary>
  66. <param name="source">Source chromosome to copy.</param>
  67. <remarks><para>This is a copy constructor, which creates the exact copy
  68. of specified chromosome.</para></remarks>
  69. </member>
  70. <member name="M:AForge.Genetic.BinaryChromosome.ToString">
  71. <summary>
  72. Get string representation of the chromosome.
  73. </summary>
  74. <returns>Returns string representation of the chromosome.</returns>
  75. </member>
  76. <member name="M:AForge.Genetic.BinaryChromosome.Generate">
  77. <summary>
  78. Generate random chromosome value.
  79. </summary>
  80. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  81. </remarks>
  82. </member>
  83. <member name="M:AForge.Genetic.BinaryChromosome.CreateNew">
  84. <summary>
  85. Create new random chromosome with same parameters (factory method).
  86. </summary>
  87. <remarks><para>The method creates new chromosome of the same type, but randomly
  88. initialized. The method is useful as factory method for those classes, which work
  89. with chromosome's interface, but not with particular chromosome type.</para></remarks>
  90. </member>
  91. <member name="M:AForge.Genetic.BinaryChromosome.Clone">
  92. <summary>
  93. Clone the chromosome.
  94. </summary>
  95. <returns>Return's clone of the chromosome.</returns>
  96. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  97. </remarks>
  98. </member>
  99. <member name="M:AForge.Genetic.BinaryChromosome.Mutate">
  100. <summary>
  101. Mutation operator.
  102. </summary>
  103. <remarks><para>The method performs chromosome's mutation, changing randomly
  104. one of its bits.</para></remarks>
  105. </member>
  106. <member name="M:AForge.Genetic.BinaryChromosome.Crossover(AForge.Genetic.IChromosome)">
  107. <summary>
  108. Crossover operator.
  109. </summary>
  110. <param name="pair">Pair chromosome to crossover with.</param>
  111. <remarks><para>The method performs crossover between two chromosomes ?interchanging
  112. range of bits between these chromosomes.</para></remarks>
  113. </member>
  114. <member name="T:AForge.Genetic.ChromosomeBase">
  115. <summary>
  116. Chromosomes' base class.
  117. </summary>
  118. <remarks><para>The base class provides implementation of some <see cref="T:AForge.Genetic.IChromosome"/>
  119. methods and properties, which are identical to all types of chromosomes.</para></remarks>
  120. </member>
  121. <member name="F:AForge.Genetic.ChromosomeBase.fitness">
  122. <summary>
  123. Chromosome's fitness value.
  124. </summary>
  125. </member>
  126. <member name="P:AForge.Genetic.ChromosomeBase.Fitness">
  127. <summary>
  128. Chromosome's fitness value.
  129. </summary>
  130. <remarks><para>Fitness value (usefulness) of the chromosome calculate by calling
  131. <see cref="M:AForge.Genetic.ChromosomeBase.Evaluate(AForge.Genetic.IFitnessFunction)"/> method. The greater the value, the more useful the chromosome.
  132. </para></remarks>
  133. </member>
  134. <member name="M:AForge.Genetic.ChromosomeBase.Generate">
  135. <summary>
  136. Generate random chromosome value.
  137. </summary>
  138. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  139. </remarks>
  140. </member>
  141. <member name="M:AForge.Genetic.ChromosomeBase.CreateNew">
  142. <summary>
  143. Create new random chromosome with same parameters (factory method).
  144. </summary>
  145. <remarks><para>The method creates new chromosome of the same type, but randomly
  146. initialized. The method is useful as factory method for those classes, which work
  147. with chromosome's interface, but not with particular chromosome class.</para></remarks>
  148. </member>
  149. <member name="M:AForge.Genetic.ChromosomeBase.Clone">
  150. <summary>
  151. Clone the chromosome.
  152. </summary>
  153. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  154. </remarks>
  155. </member>
  156. <member name="M:AForge.Genetic.ChromosomeBase.Mutate">
  157. <summary>
  158. Mutation operator.
  159. </summary>
  160. <remarks><para>The method performs chromosome's mutation, changing its part randomly.</para></remarks>
  161. </member>
  162. <member name="M:AForge.Genetic.ChromosomeBase.Crossover(AForge.Genetic.IChromosome)">
  163. <summary>
  164. Crossover operator.
  165. </summary>
  166. <param name="pair">Pair chromosome to crossover with.</param>
  167. <remarks><para>The method performs crossover between two chromosomes – interchanging some parts of chromosomes.</para></remarks>
  168. </member>
  169. <member name="M:AForge.Genetic.ChromosomeBase.Evaluate(AForge.Genetic.IFitnessFunction)">
  170. <summary>
  171. Evaluate chromosome with specified fitness function.
  172. </summary>
  173. <param name="function">Fitness function to use for evaluation of the chromosome.</param>
  174. <remarks><para>Calculates chromosome's fitness using the specifed fitness function.</para></remarks>
  175. </member>
  176. <member name="M:AForge.Genetic.ChromosomeBase.CompareTo(System.Object)">
  177. <summary>
  178. Compare two chromosomes.
  179. </summary>
  180. <param name="o">Binary chromosome to compare to.</param>
  181. <returns>Returns comparison result, which equals to 0 if fitness values
  182. of both chromosomes are equal, 1 if fitness value of this chromosome
  183. is less than fitness value of the specified chromosome, -1 otherwise.</returns>
  184. </member>
  185. <member name="T:AForge.Genetic.DoubleArrayChromosome">
  186. <summary>
  187. Double array chromosome.
  188. </summary>
  189. <remarks><para>Double array chromosome represents array of double values.
  190. Array length is in the range of [2, 65536].
  191. </para>
  192. <para>See documentation to <see cref="M:AForge.Genetic.DoubleArrayChromosome.Mutate"/> and <see cref="M:AForge.Genetic.DoubleArrayChromosome.Crossover(AForge.Genetic.IChromosome)"/> methods
  193. for information regarding implemented mutation and crossover operators.</para>
  194. </remarks>
  195. </member>
  196. <member name="F:AForge.Genetic.DoubleArrayChromosome.chromosomeGenerator">
  197. <summary>
  198. Chromosome generator.
  199. </summary>
  200. <remarks><para>This random number generator is used to initialize chromosome's genes,
  201. which is done by calling <see cref="M:AForge.Genetic.DoubleArrayChromosome.Generate"/> method.</para></remarks>
  202. </member>
  203. <member name="F:AForge.Genetic.DoubleArrayChromosome.mutationMultiplierGenerator">
  204. <summary>
  205. Mutation multiplier generator.
  206. </summary>
  207. <remarks><para>This random number generator is used to generate random multiplier values,
  208. which are used to multiply chromosome's genes during mutation.</para></remarks>
  209. </member>
  210. <member name="F:AForge.Genetic.DoubleArrayChromosome.mutationAdditionGenerator">
  211. <summary>
  212. Mutation addition generator.
  213. </summary>
  214. <remarks><para>This random number generator is used to generate random addition values,
  215. which are used to add to chromosome's genes during mutation.</para></remarks>
  216. </member>
  217. <member name="F:AForge.Genetic.DoubleArrayChromosome.rand">
  218. <summary>
  219. Random number generator for crossover and mutation points selection.
  220. </summary>
  221. <remarks><para>This random number generator is used to select crossover
  222. and mutation points.</para></remarks>
  223. </member>
  224. <member name="F:AForge.Genetic.DoubleArrayChromosome.MaxLength">
  225. <summary>
  226. Chromosome's maximum length.
  227. </summary>
  228. <remarks><para>Maxim chromosome's length in array elements.</para></remarks>
  229. </member>
  230. <member name="F:AForge.Genetic.DoubleArrayChromosome.length">
  231. <summary>
  232. Chromosome's length in number of elements.
  233. </summary>
  234. </member>
  235. <member name="F:AForge.Genetic.DoubleArrayChromosome.val">
  236. <summary>
  237. Chromosome's value.
  238. </summary>
  239. </member>
  240. <member name="P:AForge.Genetic.DoubleArrayChromosome.Length">
  241. <summary>
  242. Chromosome's length.
  243. </summary>
  244. <remarks><para>Length of the chromosome in array elements.</para></remarks>
  245. </member>
  246. <member name="P:AForge.Genetic.DoubleArrayChromosome.Value">
  247. <summary>
  248. Chromosome's value.
  249. </summary>
  250. <remarks><para>Current value of the chromosome.</para></remarks>
  251. </member>
  252. <member name="P:AForge.Genetic.DoubleArrayChromosome.MutationBalancer">
  253. <summary>
  254. Mutation balancer to control mutation type, [0, 1].
  255. </summary>
  256. <remarks><para>The property controls type of mutation, which is used more
  257. frequently. A random number is generated each time before doing mutation -
  258. if the random number is smaller than the specified balance value, then one
  259. mutation type is used, otherwse another. See <see cref="M:AForge.Genetic.DoubleArrayChromosome.Mutate"/> method
  260. for more information.</para>
  261. <para>Default value is set to <b>0.5</b>.</para>
  262. </remarks>
  263. </member>
  264. <member name="P:AForge.Genetic.DoubleArrayChromosome.CrossoverBalancer">
  265. <summary>
  266. Crossover balancer to control crossover type, [0, 1].
  267. </summary>
  268. <remarks><para>The property controls type of crossover, which is used more
  269. frequently. A random number is generated each time before doing crossover -
  270. if the random number is smaller than the specified balance value, then one
  271. crossover type is used, otherwse another. See <see cref="M:AForge.Genetic.DoubleArrayChromosome.Crossover(AForge.Genetic.IChromosome)"/> method
  272. for more information.</para>
  273. <para>Default value is set to <b>0.5</b>.</para>
  274. </remarks>
  275. </member>
  276. <member name="M:AForge.Genetic.DoubleArrayChromosome.#ctor(AForge.Math.Random.IRandomNumberGenerator,AForge.Math.Random.IRandomNumberGenerator,AForge.Math.Random.IRandomNumberGenerator,System.Int32)">
  277. <summary>
  278. Initializes a new instance of the <see cref="T:AForge.Genetic.DoubleArrayChromosome"/> class.
  279. </summary>
  280. <param name="chromosomeGenerator">Chromosome generator - random number generator, which is
  281. used to initialize chromosome's genes, which is done by calling <see cref="M:AForge.Genetic.DoubleArrayChromosome.Generate"/> method
  282. or in class constructor.</param>
  283. <param name="mutationMultiplierGenerator">Mutation multiplier generator - random number
  284. generator, which is used to generate random multiplier values, which are used to
  285. multiply chromosome's genes during mutation.</param>
  286. <param name="mutationAdditionGenerator">Mutation addition generator - random number
  287. generator, which is used to generate random addition values, which are used to
  288. add to chromosome's genes during mutation.</param>
  289. <param name="length">Chromosome's length in array elements, [2, <see cref="F:AForge.Genetic.DoubleArrayChromosome.MaxLength"/>].</param>
  290. <remarks><para>The constructor initializes the new chromosome randomly by calling
  291. <see cref="M:AForge.Genetic.DoubleArrayChromosome.Generate"/> method.</para></remarks>
  292. </member>
  293. <member name="M:AForge.Genetic.DoubleArrayChromosome.#ctor(AForge.Math.Random.IRandomNumberGenerator,AForge.Math.Random.IRandomNumberGenerator,AForge.Math.Random.IRandomNumberGenerator,System.Double[])">
  294. <summary>
  295. Initializes a new instance of the <see cref="T:AForge.Genetic.DoubleArrayChromosome"/> class.
  296. </summary>
  297. <param name="chromosomeGenerator">Chromosome generator - random number generator, which is
  298. used to initialize chromosome's genes, which is done by calling <see cref="M:AForge.Genetic.DoubleArrayChromosome.Generate"/> method
  299. or in class constructor.</param>
  300. <param name="mutationMultiplierGenerator">Mutation multiplier generator - random number
  301. generator, which is used to generate random multiplier values, which are used to
  302. multiply chromosome's genes during mutation.</param>
  303. <param name="mutationAdditionGenerator">Mutation addition generator - random number
  304. generator, which is used to generate random addition values, which are used to
  305. add to chromosome's genes during mutation.</param>
  306. <param name="values">Values used to initialize the chromosome.</param>
  307. <remarks><para>The constructor initializes the new chromosome with specified <paramref name="values">values</paramref>.
  308. </para></remarks>
  309. <exception cref="T:System.ArgumentOutOfRangeException">Invalid length of values array.</exception>
  310. </member>
  311. <member name="M:AForge.Genetic.DoubleArrayChromosome.#ctor(AForge.Genetic.DoubleArrayChromosome)">
  312. <summary>
  313. Initializes a new instance of the <see cref="T:AForge.Genetic.DoubleArrayChromosome"/> class.
  314. </summary>
  315. <param name="source">Source chromosome to copy.</param>
  316. <remarks><para>This is a copy constructor, which creates the exact copy
  317. of specified chromosome.</para></remarks>
  318. </member>
  319. <member name="M:AForge.Genetic.DoubleArrayChromosome.ToString">
  320. <summary>
  321. Get string representation of the chromosome.
  322. </summary>
  323. <returns>Returns string representation of the chromosome.</returns>
  324. </member>
  325. <member name="M:AForge.Genetic.DoubleArrayChromosome.Generate">
  326. <summary>
  327. Generate random chromosome value.
  328. </summary>
  329. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  330. </remarks>
  331. </member>
  332. <member name="M:AForge.Genetic.DoubleArrayChromosome.CreateNew">
  333. <summary>
  334. Create new random chromosome with same parameters (factory method).
  335. </summary>
  336. <remarks><para>The method creates new chromosome of the same type, but randomly
  337. initialized. The method is useful as factory method for those classes, which work
  338. with chromosome's interface, but not with particular chromosome type.</para></remarks>
  339. </member>
  340. <member name="M:AForge.Genetic.DoubleArrayChromosome.Clone">
  341. <summary>
  342. Clone the chromosome.
  343. </summary>
  344. <returns>Return's clone of the chromosome.</returns>
  345. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  346. </remarks>
  347. </member>
  348. <member name="M:AForge.Genetic.DoubleArrayChromosome.Mutate">
  349. <summary>
  350. Mutation operator.
  351. </summary>
  352. <remarks><para>The method performs chromosome's mutation, adding random number
  353. to chromosome's gene or multiplying the gene by random number. These random
  354. numbers are generated with help of <see cref="F:AForge.Genetic.DoubleArrayChromosome.mutationMultiplierGenerator">mutation
  355. multiplier</see> and <see cref="F:AForge.Genetic.DoubleArrayChromosome.mutationAdditionGenerator">mutation
  356. addition</see> generators.</para>
  357. <para>The exact type of mutation applied to the particular gene
  358. is selected randomly each time and depends on <see cref="P:AForge.Genetic.DoubleArrayChromosome.MutationBalancer"/>.
  359. Before mutation is done a random number is generated in [0, 1] range - if the
  360. random number is smaller than <see cref="P:AForge.Genetic.DoubleArrayChromosome.MutationBalancer"/>, then multiplication
  361. mutation is done, otherwise addition mutation.
  362. </para></remarks>
  363. </member>
  364. <member name="M:AForge.Genetic.DoubleArrayChromosome.Crossover(AForge.Genetic.IChromosome)">
  365. <summary>
  366. Crossover operator.
  367. </summary>
  368. <param name="pair">Pair chromosome to crossover with.</param>
  369. <remarks><para>The method performs crossover between two chromosomes, selecting
  370. randomly the exact type of crossover to perform, which depends on <see cref="P:AForge.Genetic.DoubleArrayChromosome.CrossoverBalancer"/>.
  371. Before crossover is done a random number is generated in [0, 1] range - if the
  372. random number is smaller than <see cref="P:AForge.Genetic.DoubleArrayChromosome.CrossoverBalancer"/>, then the first crossover
  373. type is used, otherwise second type is used.</para>
  374. <para>The <b>first crossover type</b> is based on interchanging
  375. range of genes (array elements) between these chromosomes and is known
  376. as one point crossover. A crossover point is selected randomly and chromosomes
  377. interchange genes, which start from the selected point.</para>
  378. <para>The <b>second crossover type</b> is aimed to produce one child, which genes'
  379. values are between corresponding genes of parents, and another child, which genes'
  380. values are outside of the range formed by corresponding genes of parents.
  381. Let take, for example, two genes with 1.0 and 3.0 value?(of course chromosomes have
  382. more genes, but for simplicity lets think about one). First of all we randomly choose
  383. a factor in the [0, 1] range, let's take 0.4. Then, for each pair of genes (we have
  384. one pair) we calculate difference value, which is 2.0 in our case. In the result we抣l
  385. have two children ?one between and one outside of the range formed by parents genes' values.
  386. We may have 1.8 and 3.8 children, or we may have 0.2 and 2.2 children. As we can see
  387. we add/subtract (chosen randomly) <i>difference * factor</i>. So, this gives us exploration
  388. in between and in near outside. The randomly chosen factor is applied to all genes
  389. of the chromosomes participating in crossover.</para>
  390. </remarks>
  391. </member>
  392. <member name="T:AForge.Genetic.ExtendedGeneFunction">
  393. <summary>
  394. Genetic programming gene, which represents arithmetic functions, common mathematical functions
  395. and arguments.
  396. </summary>
  397. <remarks><para>Extended gene function may represent arithmetic functions (+, -, *, /),
  398. some common mathematical functions (sin, cos, ln, exp, sqrt) or an argument to functions.
  399. This class is used by Genetic Programming (or Gene Expression Programming)
  400. chromosomes to build arbitrary expressions with help of genetic operators.</para>
  401. </remarks>
  402. </member>
  403. <member name="T:AForge.Genetic.ExtendedGeneFunction.Functions">
  404. <summary>
  405. Enumeration of supported functions.
  406. </summary>
  407. </member>
  408. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Add">
  409. <summary>
  410. Addition operator.
  411. </summary>
  412. </member>
  413. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Subtract">
  414. <summary>
  415. Suntraction operator.
  416. </summary>
  417. </member>
  418. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Multiply">
  419. <summary>
  420. Multiplication operator.
  421. </summary>
  422. </member>
  423. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Divide">
  424. <summary>
  425. Division operator.
  426. </summary>
  427. </member>
  428. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Sin">
  429. <summary>
  430. Sine function.
  431. </summary>
  432. </member>
  433. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Cos">
  434. <summary>
  435. Cosine function.
  436. </summary>
  437. </member>
  438. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Ln">
  439. <summary>
  440. Natural logarithm function.
  441. </summary>
  442. </member>
  443. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Exp">
  444. <summary>
  445. Exponent function.
  446. </summary>
  447. </member>
  448. <member name="F:AForge.Genetic.ExtendedGeneFunction.Functions.Sqrt">
  449. <summary>
  450. Square root function.
  451. </summary>
  452. </member>
  453. <member name="F:AForge.Genetic.ExtendedGeneFunction.FunctionsCount">
  454. <summary>
  455. Number of different functions supported by the class.
  456. </summary>
  457. </member>
  458. <member name="F:AForge.Genetic.ExtendedGeneFunction.rand">
  459. <summary>
  460. Random number generator for chromosoms generation.
  461. </summary>
  462. </member>
  463. <member name="P:AForge.Genetic.ExtendedGeneFunction.GeneType">
  464. <summary>
  465. Gene type.
  466. </summary>
  467. <remarks><para>The property represents type of a gene - function, argument, etc.</para>
  468. </remarks>
  469. </member>
  470. <member name="P:AForge.Genetic.ExtendedGeneFunction.ArgumentsCount">
  471. <summary>
  472. Arguments count.
  473. </summary>
  474. <remarks><para>Arguments count of a particular function gene.</para></remarks>
  475. </member>
  476. <member name="P:AForge.Genetic.ExtendedGeneFunction.MaxArgumentsCount">
  477. <summary>
  478. Maximum arguments count.
  479. </summary>
  480. <remarks><para>Maximum arguments count of a function gene supported by the class.
  481. The property may be used by chromosomes' classes to allocate correctly memory for
  482. functions' arguments, for example.</para></remarks>
  483. </member>
  484. <member name="M:AForge.Genetic.ExtendedGeneFunction.#ctor(System.Int32)">
  485. <summary>
  486. Initializes a new instance of the <see cref="T:AForge.Genetic.ExtendedGeneFunction"/> class.
  487. </summary>
  488. <param name="variablesCount">Total amount of variables in the task which is supposed
  489. to be solved.</param>
  490. <remarks><para>The constructor creates randomly initialized gene with random type
  491. and value by calling <see cref="M:AForge.Genetic.ExtendedGeneFunction.Generate"/> method.</para></remarks>
  492. </member>
  493. <member name="M:AForge.Genetic.ExtendedGeneFunction.#ctor(System.Int32,AForge.Genetic.GPGeneType)">
  494. <summary>
  495. Initializes a new instance of the <see cref="T:AForge.Genetic.ExtendedGeneFunction"/> class.
  496. </summary>
  497. <param name="variablesCount">Total amount of variables in the task which is supposed
  498. to be solved.</param>
  499. <param name="type">Gene type to set.</param>
  500. <remarks><para>The constructor creates randomly initialized gene with random
  501. value and preset gene type.</para></remarks>
  502. </member>
  503. <member name="M:AForge.Genetic.ExtendedGeneFunction.ToString">
  504. <summary>
  505. Get string representation of the gene.
  506. </summary>
  507. <returns>Returns string representation of the gene.</returns>
  508. </member>
  509. <member name="M:AForge.Genetic.ExtendedGeneFunction.Clone">
  510. <summary>
  511. Clone the gene.
  512. </summary>
  513. <remarks><para>The method clones the chromosome returning the exact copy of it.</para></remarks>
  514. </member>
  515. <member name="M:AForge.Genetic.ExtendedGeneFunction.Generate">
  516. <summary>
  517. Randomize gene with random type and value.
  518. </summary>
  519. <remarks><para>The method randomizes the gene, setting its type and value randomly.</para></remarks>
  520. </member>
  521. <member name="M:AForge.Genetic.ExtendedGeneFunction.Generate(AForge.Genetic.GPGeneType)">
  522. <summary>
  523. Randomize gene with random value.
  524. </summary>
  525. <param name="type">Gene type to set.</param>
  526. <remarks><para>The method randomizes a gene, setting its value randomly, but type
  527. is set to the specified one.</para></remarks>
  528. </member>
  529. <member name="M:AForge.Genetic.ExtendedGeneFunction.CreateNew">
  530. <summary>
  531. Creates new gene with random type and value.
  532. </summary>
  533. <remarks><para>The method creates new randomly initialized gene .
  534. The method is useful as factory method for those classes, which work with gene's interface,
  535. but not with particular gene class.</para>
  536. </remarks>
  537. </member>
  538. <member name="M:AForge.Genetic.ExtendedGeneFunction.CreateNew(AForge.Genetic.GPGeneType)">
  539. <summary>
  540. Creates new gene with certain type and random value.
  541. </summary>
  542. <param name="type">Gene type to create.</param>
  543. <remarks><para>The method creates new gene with specified type, but random value.
  544. The method is useful as factory method for those classes, which work with gene's interface,
  545. but not with particular gene class.</para>
  546. </remarks>
  547. </member>
  548. <member name="T:AForge.Genetic.GEPChromosome">
  549. <summary>
  550. The chromosome represents a Gene Expression, which is used for
  551. different tasks of Genetic Expression Programming (GEP).
  552. </summary>
  553. <remarks><para>This type of chromosome represents combination of ideas taken from
  554. Genetic Algorithms (GA), where chromosomes are linear structures of fixed length, and
  555. Genetic Programming (GP), where chromosomes are expression trees. The GEP chromosome
  556. is also a fixed length linear structure, but with some additional features which
  557. make it possible to generate valid expression tree from any GEP chromosome.</para>
  558. <para>The theory of Gene Expression Programming is well described in the next paper:
  559. <b>Ferreira, C., 2001. Gene Expression Programming: A New Adaptive Algorithm for Solving
  560. Problems. Complex Systems, Vol. 13, issue 2: 87-129</b>. A copy of the paper may be
  561. obtained on the
  562. <a href="http://www.gene-expression-programming.com/">gene expression programming</a> web site.</para>
  563. </remarks>
  564. </member>
  565. <member name="F:AForge.Genetic.GEPChromosome.headLength">
  566. <summary>
  567. Length of GEP chromosome's head.
  568. </summary>
  569. <remarks><para>GEP chromosome's head is a part of chromosome, which may contain both
  570. functions' and arguments' nodes. The rest of chromosome (tail) may contain only arguments' nodes.
  571. </para></remarks>
  572. </member>
  573. <member name="F:AForge.Genetic.GEPChromosome.length">
  574. <summary>
  575. GEP chromosome's length.
  576. </summary>
  577. <remarks><para><note>The variable keeps chromosome's length, but not expression length represented by the
  578. chromosome.</note></para></remarks>
  579. </member>
  580. <member name="F:AForge.Genetic.GEPChromosome.genes">
  581. <summary>
  582. Array of chromosome's genes.
  583. </summary>
  584. </member>
  585. <member name="F:AForge.Genetic.GEPChromosome.rand">
  586. <summary>
  587. Random generator used for chromosoms' generation.
  588. </summary>
  589. </member>
  590. <member name="M:AForge.Genetic.GEPChromosome.#ctor(AForge.Genetic.IGPGene,System.Int32)">
  591. <summary>
  592. Initializes a new instance of the <see cref="T:AForge.Genetic.GEPChromosome"/> class.
  593. </summary>
  594. <param name="ancestor">A gene, which is used as generator for the genetic tree.</param>
  595. <param name="headLength">Length of GEP chromosome's head (see <see cref="F:AForge.Genetic.GEPChromosome.headLength"/>).</param>
  596. <remarks><para>This constructor creates a randomly generated GEP chromosome,
  597. which has all genes of the same type and properties as the specified <paramref name="ancestor"/>.
  598. </para></remarks>
  599. </member>
  600. <member name="M:AForge.Genetic.GEPChromosome.#ctor(AForge.Genetic.GEPChromosome)">
  601. <summary>
  602. Initializes a new instance of the <see cref="T:AForge.Genetic.GEPChromosome"/> class.
  603. </summary>
  604. <param name="source">Source GEP chromosome to clone from.</param>
  605. </member>
  606. <member name="M:AForge.Genetic.GEPChromosome.ToString">
  607. <summary>
  608. Get string representation of the chromosome by providing its expression in
  609. reverse polish notation (postfix notation).
  610. </summary>
  611. <returns>Returns string representation of the expression represented by the GEP
  612. chromosome.</returns>
  613. </member>
  614. <member name="M:AForge.Genetic.GEPChromosome.ToStringNative">
  615. <summary>
  616. Get string representation of the chromosome.
  617. </summary>
  618. <returns>Returns the chromosome in native linear representation.</returns>
  619. <remarks><para><note>The method is used for debugging mostly.</note></para></remarks>
  620. </member>
  621. <member name="M:AForge.Genetic.GEPChromosome.Generate">
  622. <summary>
  623. Generate random chromosome value.
  624. </summary>
  625. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  626. </remarks>
  627. </member>
  628. <member name="M:AForge.Genetic.GEPChromosome.GetTree">
  629. <summary>
  630. Get tree representation of the chromosome.
  631. </summary>
  632. <returns>Returns expression's tree represented by the chromosome.</returns>
  633. <remarks><para>The method builds expression's tree for the native linear representation
  634. of the GEP chromosome.</para></remarks>
  635. </member>
  636. <member name="M:AForge.Genetic.GEPChromosome.CreateNew">
  637. <summary>
  638. Create new random chromosome with same parameters (factory method).
  639. </summary>
  640. <remarks><para>The method creates new chromosome of the same type, but randomly
  641. initialized. The method is useful as factory method for those classes, which work
  642. with chromosome's interface, but not with particular chromosome type.</para></remarks>
  643. </member>
  644. <member name="M:AForge.Genetic.GEPChromosome.Clone">
  645. <summary>
  646. Clone the chromosome.
  647. </summary>
  648. <returns>Return's clone of the chromosome.</returns>
  649. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  650. </remarks>
  651. </member>
  652. <member name="M:AForge.Genetic.GEPChromosome.Mutate">
  653. <summary>
  654. Mutation operator.
  655. </summary>
  656. <remarks><para>The method performs chromosome's mutation by calling on of the methods
  657. randomly: <see cref="M:AForge.Genetic.GEPChromosome.MutateGene"/>, <see cref="M:AForge.Genetic.GEPChromosome.TransposeIS"/>, <see cref="M:AForge.Genetic.GEPChromosome.TransposeRoot"/>.
  658. </para></remarks>
  659. </member>
  660. <member name="M:AForge.Genetic.GEPChromosome.MutateGene">
  661. <summary>
  662. Usual gene mutation.
  663. </summary>
  664. <remarks><para>The method performs usual gene mutation by randomly changing randomly selected
  665. gene.</para></remarks>
  666. </member>
  667. <member name="M:AForge.Genetic.GEPChromosome.TransposeIS">
  668. <summary>
  669. Transposition of IS elements (insertion sequence).
  670. </summary>
  671. <remarks><para>The method performs transposition of IS elements by copying randomly selected region
  672. of genes into chromosome's head (into randomly selected position). First gene of the chromosome's head
  673. is not affected - can not be selected as target point.</para></remarks>
  674. </member>
  675. <member name="M:AForge.Genetic.GEPChromosome.TransposeRoot">
  676. <summary>
  677. Root transposition.
  678. </summary>
  679. <remarks><para>The method performs root transposition of the GEP chromosome - inserting
  680. new root of the chromosome and shifting existing one. The method first of all randomly selects
  681. a function gene in chromosome's head - starting point of the sequence to put into chromosome's
  682. head. Then it randomly selects the length of the sequence making sure that the entire sequence is
  683. located within head. Once the starting point and the length of the sequence are known, it is copied
  684. into chromosome's head shifting existing elements in the head.</para>
  685. </remarks>
  686. </member>
  687. <member name="M:AForge.Genetic.GEPChromosome.Crossover(AForge.Genetic.IChromosome)">
  688. <summary>
  689. Crossover operator.
  690. </summary>
  691. <param name="pair">Pair chromosome to crossover with.</param>
  692. <remarks><para>The method performs one-point or two-point crossover selecting
  693. them randomly with equal probability.</para></remarks>
  694. </member>
  695. <member name="M:AForge.Genetic.GEPChromosome.RecombinationOnePoint(AForge.Genetic.GEPChromosome)">
  696. <summary>
  697. One-point recombination (crossover).
  698. </summary>
  699. <param name="pair">Pair chromosome to crossover with.</param>
  700. </member>
  701. <member name="M:AForge.Genetic.GEPChromosome.RecombinationTwoPoint(AForge.Genetic.GEPChromosome)">
  702. <summary>
  703. Two point recombination (crossover).
  704. </summary>
  705. <param name="pair">Pair chromosome to crossover with.</param>
  706. </member>
  707. <member name="M:AForge.Genetic.GEPChromosome.Recombine(AForge.Genetic.IGPGene[],AForge.Genetic.IGPGene[],System.Int32,System.Int32)">
  708. <summary>
  709. Swap parts of two chromosomes.
  710. </summary>
  711. <param name="src1">First chromosome participating in genes' interchange.</param>
  712. <param name="src2">Second chromosome participating in genes' interchange.</param>
  713. <param name="point">Index of the first gene in the interchange sequence.</param>
  714. <param name="length">Length of the interchange sequence - number of genes
  715. to interchange.</param>
  716. <remarks><para>The method performs interchanging of genes between two chromosomes
  717. starting from the <paramref name="point"/> position.</para></remarks>
  718. </member>
  719. <member name="T:AForge.Genetic.GPTreeChromosome">
  720. <summary>
  721. Tree chromosome represents a tree of genes, which is is used for
  722. different tasks of Genetic Programming (GP).
  723. </summary>
  724. <remarks><para>This type of chromosome represents a tree, where each node
  725. is represented by <see cref="T:AForge.Genetic.GPTreeNode"/> containing <see cref="T:AForge.Genetic.IGPGene"/>.
  726. Depending on type of genes used to build the tree, it may represent different
  727. types of expressions aimed to solve different type of tasks. For example, a
  728. particular implementation of <see cref="T:AForge.Genetic.IGPGene"/> interface may represent
  729. simple algebraic operations and their arguments.
  730. </para>
  731. <para>See documentation to <see cref="T:AForge.Genetic.IGPGene"/> implementations for additional
  732. information about possible Genetic Programming trees.</para>
  733. </remarks>
  734. </member>
  735. <member name="F:AForge.Genetic.GPTreeChromosome.rand">
  736. <summary>
  737. Random generator used for chromosoms' generation.
  738. </summary>
  739. </member>
  740. <member name="P:AForge.Genetic.GPTreeChromosome.MaxInitialLevel">
  741. <summary>
  742. Maximum initial level of genetic trees, [1, 25].
  743. </summary>
  744. <remarks><para>The property sets maximum possible initial depth of new
  745. genetic programming tree. For example, if it is set to 1, then largest initial
  746. tree may have a root and one level of children.</para>
  747. <para>Default value is set to <b>3</b>.</para>
  748. </remarks>
  749. </member>
  750. <member name="P:AForge.Genetic.GPTreeChromosome.MaxLevel">
  751. <summary>
  752. Maximum level of genetic trees, [1, 50].
  753. </summary>
  754. <remarks><para>The property sets maximum possible depth of
  755. genetic programming tree, which may be created with mutation and crossover operators.
  756. This property guarantees that genetic programmin tree will never have
  757. higher depth, than the specified value.</para>
  758. <para>Default value is set to <b>5</b>.</para>
  759. </remarks>
  760. </member>
  761. <member name="M:AForge.Genetic.GPTreeChromosome.#ctor(AForge.Genetic.IGPGene)">
  762. <summary>
  763. Initializes a new instance of the <see cref="T:AForge.Genetic.GPTreeChromosome"/> class.
  764. </summary>
  765. <param name="ancestor">A gene, which is used as generator for the genetic tree.</param>
  766. <remarks><para>This constructor creates a randomly generated genetic tree,
  767. which has all genes of the same type and properties as the specified <paramref name="ancestor"/>.
  768. </para></remarks>
  769. </member>
  770. <member name="M:AForge.Genetic.GPTreeChromosome.#ctor(AForge.Genetic.GPTreeChromosome)">
  771. <summary>
  772. Initializes a new instance of the <see cref="T:AForge.Genetic.GPTreeChromosome"/> class.
  773. </summary>
  774. <param name="source">Source genetic tree to clone from.</param>
  775. <remarks><para>This constructor creates new genetic tree as a copy of the
  776. specified <paramref name="source"/> tree.</para></remarks>
  777. </member>
  778. <member name="M:AForge.Genetic.GPTreeChromosome.ToString">
  779. <summary>
  780. Get string representation of the chromosome by providing its expression in
  781. reverse polish notation (postfix notation).
  782. </summary>
  783. <returns>Returns string representation of the genetic tree.</returns>
  784. <remarks><para>The method returns string representation of the tree's root node
  785. (see <see cref="M:AForge.Genetic.GPTreeNode.ToString"/>).</para></remarks>
  786. </member>
  787. <member name="M:AForge.Genetic.GPTreeChromosome.Generate">
  788. <summary>
  789. Generate random chromosome value.
  790. </summary>
  791. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  792. </remarks>
  793. </member>
  794. <member name="M:AForge.Genetic.GPTreeChromosome.Generate(AForge.Genetic.GPTreeNode,System.Int32)">
  795. <summary>
  796. Generate chromosome's subtree of specified level.
  797. </summary>
  798. <param name="node">Sub tree's node to generate.</param>
  799. <param name="level">Sub tree's level to generate.</param>
  800. </member>
  801. <member name="M:AForge.Genetic.GPTreeChromosome.CreateNew">
  802. <summary>
  803. Create new random chromosome with same parameters (factory method).
  804. </summary>
  805. <remarks><para>The method creates new chromosome of the same type, but randomly
  806. initialized. The method is useful as factory method for those classes, which work
  807. with chromosome's interface, but not with particular chromosome type.</para></remarks>
  808. </member>
  809. <member name="M:AForge.Genetic.GPTreeChromosome.Clone">
  810. <summary>
  811. Clone the chromosome.
  812. </summary>
  813. <returns>Return's clone of the chromosome.</returns>
  814. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  815. </remarks>
  816. </member>
  817. <member name="M:AForge.Genetic.GPTreeChromosome.Mutate">
  818. <summary>
  819. Mutation operator.
  820. </summary>
  821. <remarks><para>The method performs chromosome's mutation by regenerating tree's
  822. randomly selected node.</para></remarks>
  823. </member>
  824. <member name="M:AForge.Genetic.GPTreeChromosome.Crossover(AForge.Genetic.IChromosome)">
  825. <summary>
  826. Crossover operator.
  827. </summary>
  828. <param name="pair">Pair chromosome to crossover with.</param>
  829. <remarks><para>The method performs crossover between two chromosomes ?interchanging
  830. randomly selected sub trees.</para></remarks>
  831. </member>
  832. <member name="M:AForge.Genetic.GPTreeChromosome.RandomSwap(AForge.Genetic.GPTreeNode)">
  833. <summary>
  834. Crossover helper routine - selects random node of chromosomes tree and
  835. swaps it with specified node.
  836. </summary>
  837. </member>
  838. <member name="M:AForge.Genetic.GPTreeChromosome.Trim(AForge.Genetic.GPTreeNode,System.Int32)">
  839. <summary>
  840. Trim tree node, so its depth does not exceed specified level.
  841. </summary>
  842. </member>
  843. <member name="T:AForge.Genetic.GPTreeNode">
  844. <summary>
  845. Represents tree node of genetic programming tree.
  846. </summary>
  847. <remarks><para>In genetic programming a chromosome is represented by a tree, which
  848. is represented by <see cref="T:AForge.Genetic.GPTreeChromosome"/> class. The <see cref="T:AForge.Genetic.GPTreeNode"/>
  849. class represents single node of such genetic programming tree.</para>
  850. <para>Each node may or may not have children. This means that particular node of a genetic
  851. programming tree may represent its sub tree or even entire tree.</para>
  852. </remarks>
  853. </member>
  854. <member name="F:AForge.Genetic.GPTreeNode.Gene">
  855. <summary>
  856. Gene represented by the chromosome.
  857. </summary>
  858. </member>
  859. <member name="F:AForge.Genetic.GPTreeNode.Children">
  860. <summary>
  861. List of node's children.
  862. </summary>
  863. </member>
  864. <member name="M:AForge.Genetic.GPTreeNode.#ctor">
  865. <summary>
  866. Initializes a new instance of the <see cref="T:AForge.Genetic.GPTreeNode"/> class.
  867. </summary>
  868. </member>
  869. <member name="M:AForge.Genetic.GPTreeNode.#ctor(AForge.Genetic.IGPGene)">
  870. <summary>
  871. Initializes a new instance of the <see cref="T:AForge.Genetic.GPTreeNode"/> class.
  872. </summary>
  873. </member>
  874. <member name="M:AForge.Genetic.GPTreeNode.ToString">
  875. <summary>
  876. Get string representation of the node.
  877. </summary>
  878. <returns>Returns string representation of the node.</returns>
  879. <remarks><para>String representation of the node lists all node's children and
  880. then the node itself. Such node's string representations equals to
  881. its reverse polish notation.</para>
  882. <para>For example, if nodes value is '+' and its children are '3' and '5', then
  883. nodes string representation is "3 5 +".</para>
  884. </remarks>
  885. </member>
  886. <member name="M:AForge.Genetic.GPTreeNode.Clone">
  887. <summary>
  888. Clone the tree node.
  889. </summary>
  890. <returns>Returns exact clone of the node.</returns>
  891. </member>
  892. <member name="T:AForge.Genetic.GPGeneType">
  893. <summary>
  894. Types of genes in Genetic Programming.
  895. </summary>
  896. </member>
  897. <member name="F:AForge.Genetic.GPGeneType.Function">
  898. <summary>
  899. Function gene - represents function to be executed.
  900. </summary>
  901. </member>
  902. <member name="F:AForge.Genetic.GPGeneType.Argument">
  903. <summary>
  904. Argument gene - represents argument of function.
  905. </summary>
  906. </member>
  907. <member name="T:AForge.Genetic.IGPGene">
  908. <summary>
  909. Genetic Programming's gene interface.
  910. </summary>
  911. <remarks><para>This is a gene interface, which is used for building chromosomes
  912. in Genetic Programming (GP) and Gene Expression Programming (GEP).
  913. </para></remarks>
  914. </member>
  915. <member name="P:AForge.Genetic.IGPGene.GeneType">
  916. <summary>
  917. Gene type.
  918. </summary>
  919. <remarks><para>The property represents type of a gene - function, argument, etc.</para>
  920. </remarks>
  921. </member>
  922. <member name="P:AForge.Genetic.IGPGene.ArgumentsCount">
  923. <summary>
  924. Arguments count.
  925. </summary>
  926. <remarks><para>Arguments count of a particular function gene.</para></remarks>
  927. </member>
  928. <member name="P:AForge.Genetic.IGPGene.MaxArgumentsCount">
  929. <summary>
  930. Maximum arguments count.
  931. </summary>
  932. <remarks><para>Maximum arguments count of a function gene. The property may be used
  933. by chromosomes' classes to allocate correctly memory for functions' arguments,
  934. for example.</para></remarks>
  935. </member>
  936. <member name="M:AForge.Genetic.IGPGene.Clone">
  937. <summary>
  938. Clone gene.
  939. </summary>
  940. <remarks><para>The method clones gene returning the exact copy of it.</para></remarks>
  941. </member>
  942. <member name="M:AForge.Genetic.IGPGene.Generate">
  943. <summary>
  944. Randomize gene with random type and value.
  945. </summary>
  946. <remarks><para>The method randomizes a gene, setting its type and value randomly.</para></remarks>
  947. </member>
  948. <member name="M:AForge.Genetic.IGPGene.Generate(AForge.Genetic.GPGeneType)">
  949. <summary>
  950. Randomize gene with random value.
  951. </summary>
  952. <param name="type">Gene type to set.</param>
  953. <remarks><para>The method randomizes a gene, setting its value randomly, but type
  954. is set to the specified one.</para></remarks>
  955. </member>
  956. <member name="M:AForge.Genetic.IGPGene.CreateNew">
  957. <summary>
  958. Creates new gene with random type and value.
  959. </summary>
  960. <remarks><para>The method creates new randomly initialized gene .
  961. The method is useful as factory method for those classes, which work with gene's interface,
  962. but not with particular gene class.</para>
  963. </remarks>
  964. </member>
  965. <member name="M:AForge.Genetic.IGPGene.CreateNew(AForge.Genetic.GPGeneType)">
  966. <summary>
  967. Creates new gene with certain type and random value.
  968. </summary>
  969. <param name="type">Gene type to create.</param>
  970. <remarks><para>The method creates new gene with specified type, but random value.
  971. The method is useful as factory method for those classes, which work with gene's interface,
  972. but not with particular gene class.</para>
  973. </remarks>
  974. </member>
  975. <member name="T:AForge.Genetic.SimpleGeneFunction">
  976. <summary>
  977. Genetic programming gene, which represents simple arithmetic functions and arguments.
  978. </summary>
  979. <remarks><para>Simple gene function may represent an arithmetic function (+, -, *, /) or
  980. an argument to function. This class is used by Genetic Programming (or Gene Expression Programming)
  981. chromosomes to build arbitrary expressions with help of genetic operators.</para>
  982. </remarks>
  983. </member>
  984. <member name="T:AForge.Genetic.SimpleGeneFunction.Functions">
  985. <summary>
  986. Enumeration of supported functions.
  987. </summary>
  988. </member>
  989. <member name="F:AForge.Genetic.SimpleGeneFunction.Functions.Add">
  990. <summary>
  991. Addition operator.
  992. </summary>
  993. </member>
  994. <member name="F:AForge.Genetic.SimpleGeneFunction.Functions.Subtract">
  995. <summary>
  996. Suntraction operator.
  997. </summary>
  998. </member>
  999. <member name="F:AForge.Genetic.SimpleGeneFunction.Functions.Multiply">
  1000. <summary>
  1001. Multiplication operator.
  1002. </summary>
  1003. </member>
  1004. <member name="F:AForge.Genetic.SimpleGeneFunction.Functions.Divide">
  1005. <summary>
  1006. Division operator.
  1007. </summary>
  1008. </member>
  1009. <member name="F:AForge.Genetic.SimpleGeneFunction.FunctionsCount">
  1010. <summary>
  1011. Number of different functions supported by the class.
  1012. </summary>
  1013. </member>
  1014. <member name="F:AForge.Genetic.SimpleGeneFunction.rand">
  1015. <summary>
  1016. Random number generator for chromosoms generation.
  1017. </summary>
  1018. </member>
  1019. <member name="P:AForge.Genetic.SimpleGeneFunction.GeneType">
  1020. <summary>
  1021. Gene type.
  1022. </summary>
  1023. <remarks><para>The property represents type of a gene - function, argument, etc.</para>
  1024. </remarks>
  1025. </member>
  1026. <member name="P:AForge.Genetic.SimpleGeneFunction.ArgumentsCount">
  1027. <summary>
  1028. Arguments count.
  1029. </summary>
  1030. <remarks><para>Arguments count of a particular function gene.</para></remarks>
  1031. </member>
  1032. <member name="P:AForge.Genetic.SimpleGeneFunction.MaxArgumentsCount">
  1033. <summary>
  1034. Maximum arguments count.
  1035. </summary>
  1036. <remarks><para>Maximum arguments count of a function gene supported by the class.
  1037. The property may be used by chromosomes' classes to allocate correctly memory for
  1038. functions' arguments, for example.</para></remarks>
  1039. </member>
  1040. <member name="M:AForge.Genetic.SimpleGeneFunction.#ctor(System.Int32)">
  1041. <summary>
  1042. Initializes a new instance of the <see cref="T:AForge.Genetic.SimpleGeneFunction"/> class.
  1043. </summary>
  1044. <param name="variablesCount">Total amount of variables in the task which is supposed
  1045. to be solved.</param>
  1046. <remarks><para>The constructor creates randomly initialized gene with random type
  1047. and value by calling <see cref="M:AForge.Genetic.SimpleGeneFunction.Generate"/> method.</para></remarks>
  1048. </member>
  1049. <member name="M:AForge.Genetic.SimpleGeneFunction.#ctor(System.Int32,AForge.Genetic.GPGeneType)">
  1050. <summary>
  1051. Initializes a new instance of the <see cref="T:AForge.Genetic.SimpleGeneFunction"/> class.
  1052. </summary>
  1053. <param name="variablesCount">Total amount of variables in the task which is supposed
  1054. to be solved.</param>
  1055. <param name="type">Gene type to set.</param>
  1056. <remarks><para>The constructor creates randomly initialized gene with random
  1057. value and preset gene type.</para></remarks>
  1058. </member>
  1059. <member name="M:AForge.Genetic.SimpleGeneFunction.ToString">
  1060. <summary>
  1061. Get string representation of the gene.
  1062. </summary>
  1063. <returns>Returns string representation of the gene.</returns>
  1064. </member>
  1065. <member name="M:AForge.Genetic.SimpleGeneFunction.Clone">
  1066. <summary>
  1067. Clone the gene.
  1068. </summary>
  1069. <remarks><para>The method clones the chromosome returning the exact copy of it.</para></remarks>
  1070. </member>
  1071. <member name="M:AForge.Genetic.SimpleGeneFunction.Generate">
  1072. <summary>
  1073. Randomize gene with random type and value.
  1074. </summary>
  1075. <remarks><para>The method randomizes the gene, setting its type and value randomly.</para></remarks>
  1076. </member>
  1077. <member name="M:AForge.Genetic.SimpleGeneFunction.Generate(AForge.Genetic.GPGeneType)">
  1078. <summary>
  1079. Randomize gene with random value.
  1080. </summary>
  1081. <param name="type">Gene type to set.</param>
  1082. <remarks><para>The method randomizes a gene, setting its value randomly, but type
  1083. is set to the specified one.</para></remarks>
  1084. </member>
  1085. <member name="M:AForge.Genetic.SimpleGeneFunction.CreateNew">
  1086. <summary>
  1087. Creates new gene with random type and value.
  1088. </summary>
  1089. <remarks><para>The method creates new randomly initialized gene .
  1090. The method is useful as factory method for those classes, which work with gene's interface,
  1091. but not with particular gene class.</para>
  1092. </remarks>
  1093. </member>
  1094. <member name="M:AForge.Genetic.SimpleGeneFunction.CreateNew(AForge.Genetic.GPGeneType)">
  1095. <summary>
  1096. Creates new gene with certain type and random value.
  1097. </summary>
  1098. <param name="type">Gene type to create.</param>
  1099. <remarks><para>The method creates new gene with specified type, but random value.
  1100. The method is useful as factory method for those classes, which work with gene's interface,
  1101. but not with particular gene class.</para>
  1102. </remarks>
  1103. </member>
  1104. <member name="T:AForge.Genetic.IChromosome">
  1105. <summary>
  1106. Chromosome interface.
  1107. </summary>
  1108. <remarks><para>The interfase should be implemented by all classes, which implement
  1109. particular chromosome type.</para></remarks>
  1110. </member>
  1111. <member name="P:AForge.Genetic.IChromosome.Fitness">
  1112. <summary>
  1113. Chromosome's fitness value.
  1114. </summary>
  1115. <remarks><para>The fitness value represents chromosome's usefulness - the greater the
  1116. value, the more useful it is.</para></remarks>
  1117. </member>
  1118. <member name="M:AForge.Genetic.IChromosome.Generate">
  1119. <summary>
  1120. Generate random chromosome value.
  1121. </summary>
  1122. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  1123. </remarks>
  1124. </member>
  1125. <member name="M:AForge.Genetic.IChromosome.CreateNew">
  1126. <summary>
  1127. Create new random chromosome with same parameters (factory method).
  1128. </summary>
  1129. <remarks><para>The method creates new chromosome of the same type, but randomly
  1130. initialized. The method is useful as factory method for those classes, which work
  1131. with chromosome's interface, but not with particular chromosome class.</para></remarks>
  1132. </member>
  1133. <member name="M:AForge.Genetic.IChromosome.Clone">
  1134. <summary>
  1135. Clone the chromosome.
  1136. </summary>
  1137. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  1138. </remarks>
  1139. </member>
  1140. <member name="M:AForge.Genetic.IChromosome.Mutate">
  1141. <summary>
  1142. Mutation operator.
  1143. </summary>
  1144. <remarks><para>The method performs chromosome's mutation, changing its part randomly.</para></remarks>
  1145. </member>
  1146. <member name="M:AForge.Genetic.IChromosome.Crossover(AForge.Genetic.IChromosome)">
  1147. <summary>
  1148. Crossover operator.
  1149. </summary>
  1150. <param name="pair">Pair chromosome to crossover with.</param>
  1151. <remarks><para>The method performs crossover between two chromosomes ?interchanging some parts of chromosomes.</para></remarks>
  1152. </member>
  1153. <member name="M:AForge.Genetic.IChromosome.Evaluate(AForge.Genetic.IFitnessFunction)">
  1154. <summary>
  1155. Evaluate chromosome with specified fitness function.
  1156. </summary>
  1157. <param name="function">Fitness function to use for evaluation of the chromosome.</param>
  1158. <remarks><para>Calculates chromosome's fitness using the specifed fitness function.</para></remarks>
  1159. </member>
  1160. <member name="T:AForge.Genetic.PermutationChromosome">
  1161. <summary>
  1162. Permutation chromosome.
  1163. </summary>
  1164. <remarks><para>Permutation chromosome is based on short array chromosome,
  1165. but has two features:</para>
  1166. <list type="bullet">
  1167. <item>all genes are unique within chromosome, i.e. there are no two genes
  1168. with the same value;</item>
  1169. <item>maximum value of each gene is equal to chromosome length minus 1.</item>
  1170. </list>
  1171. </remarks>
  1172. </member>
  1173. <member name="M:AForge.Genetic.PermutationChromosome.#ctor(System.Int32)">
  1174. <summary>
  1175. Initializes a new instance of the <see cref="T:AForge.Genetic.PermutationChromosome"/> class.
  1176. </summary>
  1177. </member>
  1178. <member name="M:AForge.Genetic.PermutationChromosome.#ctor(AForge.Genetic.PermutationChromosome)">
  1179. <summary>
  1180. Initializes a new instance of the <see cref="T:AForge.Genetic.PermutationChromosome"/> class.
  1181. </summary>
  1182. <param name="source">Source chromosome to copy.</param>
  1183. <remarks><para>This is a copy constructor, which creates the exact copy
  1184. of specified chromosome.</para></remarks>
  1185. </member>
  1186. <member name="M:AForge.Genetic.PermutationChromosome.Generate">
  1187. <summary>
  1188. Generate random chromosome value.
  1189. </summary>
  1190. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  1191. </remarks>
  1192. </member>
  1193. <member name="M:AForge.Genetic.PermutationChromosome.CreateNew">
  1194. <summary>
  1195. Create new random chromosome with same parameters (factory method).
  1196. </summary>
  1197. <remarks><para>The method creates new chromosome of the same type, but randomly
  1198. initialized. The method is useful as factory method for those classes, which work
  1199. with chromosome's interface, but not with particular chromosome type.</para></remarks>
  1200. </member>
  1201. <member name="M:AForge.Genetic.PermutationChromosome.Clone">
  1202. <summary>
  1203. Clone the chromosome.
  1204. </summary>
  1205. <returns>Return's clone of the chromosome.</returns>
  1206. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  1207. </remarks>
  1208. </member>
  1209. <member name="M:AForge.Genetic.PermutationChromosome.Mutate">
  1210. <summary>
  1211. Mutation operator.
  1212. </summary>
  1213. <remarks><para>The method performs chromosome's mutation, swapping two randomly
  1214. chosen genes (array elements).</para></remarks>
  1215. </member>
  1216. <member name="M:AForge.Genetic.PermutationChromosome.Crossover(AForge.Genetic.IChromosome)">
  1217. <summary>
  1218. Crossover operator.
  1219. </summary>
  1220. <param name="pair">Pair chromosome to crossover with.</param>
  1221. <remarks><para>The method performs crossover between two chromosomes ?interchanging
  1222. some parts between these chromosomes.</para></remarks>
  1223. </member>
  1224. <member name="T:AForge.Genetic.ShortArrayChromosome">
  1225. <summary>
  1226. Short array chromosome.
  1227. </summary>
  1228. <remarks><para>Short array chromosome represents array of unsigned short values.
  1229. Array length is in the range of [2, 65536].
  1230. </para></remarks>
  1231. </member>
  1232. <member name="F:AForge.Genetic.ShortArrayChromosome.length">
  1233. <summary>
  1234. Chromosome's length in number of elements.
  1235. </summary>
  1236. </member>
  1237. <member name="F:AForge.Genetic.ShortArrayChromosome.maxValue">
  1238. <summary>
  1239. Maximum value of chromosome's gene (element).
  1240. </summary>
  1241. </member>
  1242. <member name="F:AForge.Genetic.ShortArrayChromosome.val">
  1243. <summary>
  1244. Chromosome's value.
  1245. </summary>
  1246. </member>
  1247. <member name="F:AForge.Genetic.ShortArrayChromosome.rand">
  1248. <summary>
  1249. Random number generator for chromosoms generation, crossover, mutation, etc.
  1250. </summary>
  1251. </member>
  1252. <member name="F:AForge.Genetic.ShortArrayChromosome.MaxLength">
  1253. <summary>
  1254. Chromosome's maximum length.
  1255. </summary>
  1256. <remarks><para>Maxim chromosome's length in array elements.</para></remarks>
  1257. </member>
  1258. <member name="P:AForge.Genetic.ShortArrayChromosome.Length">
  1259. <summary>
  1260. Chromosome's length.
  1261. </summary>
  1262. <remarks><para>Length of the chromosome in array elements.</para></remarks>
  1263. </member>
  1264. <member name="P:AForge.Genetic.ShortArrayChromosome.Value">
  1265. <summary>
  1266. Chromosome's value.
  1267. </summary>
  1268. <remarks><para>Current value of the chromosome.</para></remarks>
  1269. </member>
  1270. <member name="P:AForge.Genetic.ShortArrayChromosome.MaxValue">
  1271. <summary>
  1272. Max possible value of single chromosomes element - gene.
  1273. </summary>
  1274. <remarks><para>Maximum possible numerical value, which may be represented
  1275. by single chromosome's gene (array element).</para></remarks>
  1276. </member>
  1277. <member name="M:AForge.Genetic.ShortArrayChromosome.#ctor(System.Int32)">
  1278. <summary>
  1279. Initializes a new instance of the <see cref="T:AForge.Genetic.ShortArrayChromosome"/> class.
  1280. </summary>
  1281. <param name="length">Chromosome's length in array elements, [2, <see cref="F:AForge.Genetic.ShortArrayChromosome.MaxLength"/>].</param>
  1282. <remarks>This constructor initializes chromosome setting genes' maximum value to
  1283. maximum posible value of <see langword="ushort"/> type.</remarks>
  1284. </member>
  1285. <member name="M:AForge.Genetic.ShortArrayChromosome.#ctor(System.Int32,System.Int32)">
  1286. <summary>
  1287. Initializes a new instance of the <see cref="T:AForge.Genetic.ShortArrayChromosome"/> class.
  1288. </summary>
  1289. <param name="length">Chromosome's length in array elements, [2, <see cref="F:AForge.Genetic.ShortArrayChromosome.MaxLength"/>].</param>
  1290. <param name="maxValue">Maximum value of chromosome's gene (array element).</param>
  1291. </member>
  1292. <member name="M:AForge.Genetic.ShortArrayChromosome.#ctor(AForge.Genetic.ShortArrayChromosome)">
  1293. <summary>
  1294. Initializes a new instance of the <see cref="T:AForge.Genetic.ShortArrayChromosome"/> class.
  1295. </summary>
  1296. <param name="source">Source chromosome to copy.</param>
  1297. <remarks><para>This is a copy constructor, which creates the exact copy
  1298. of specified chromosome.</para></remarks>
  1299. </member>
  1300. <member name="M:AForge.Genetic.ShortArrayChromosome.ToString">
  1301. <summary>
  1302. Get string representation of the chromosome.
  1303. </summary>
  1304. <returns>Returns string representation of the chromosome.</returns>
  1305. </member>
  1306. <member name="M:AForge.Genetic.ShortArrayChromosome.Generate">
  1307. <summary>
  1308. Generate random chromosome value.
  1309. </summary>
  1310. <remarks><para>Regenerates chromosome's value using random number generator.</para>
  1311. </remarks>
  1312. </member>
  1313. <member name="M:AForge.Genetic.ShortArrayChromosome.CreateNew">
  1314. <summary>
  1315. Create new random chromosome with same parameters (factory method).
  1316. </summary>
  1317. <remarks><para>The method creates new chromosome of the same type, but randomly
  1318. initialized. The method is useful as factory method for those classes, which work
  1319. with chromosome's interface, but not with particular chromosome type.</para></remarks>
  1320. </member>
  1321. <member name="M:AForge.Genetic.ShortArrayChromosome.Clone">
  1322. <summary>
  1323. Clone the chromosome.
  1324. </summary>
  1325. <returns>Return's clone of the chromosome.</returns>
  1326. <remarks><para>The method clones the chromosome returning the exact copy of it.</para>
  1327. </remarks>
  1328. </member>
  1329. <member name="M:AForge.Genetic.ShortArrayChromosome.Mutate">
  1330. <summary>
  1331. Mutation operator.
  1332. </summary>
  1333. <remarks><para>The method performs chromosome's mutation, changing randomly
  1334. one of its genes (array elements).</para></remarks>
  1335. </member>
  1336. <member name="M:AForge.Genetic.ShortArrayChromosome.Crossover(AForge.Genetic.IChromosome)">
  1337. <summary>
  1338. Crossover operator.
  1339. </summary>
  1340. <param name="pair">Pair chromosome to crossover with.</param>
  1341. <remarks><para>The method performs crossover between two chromosomes ?interchanging
  1342. range of genes (array elements) between these chromosomes.</para></remarks>
  1343. </member>
  1344. <member name="T:AForge.Genetic.IFitnessFunction">
  1345. <summary>
  1346. Fitness function interface.
  1347. </summary>
  1348. <remarks>The interface should be implemented by all fitness function
  1349. classes, which are supposed to be used for calculation of chromosomes
  1350. fitness values. All fitness functions should return positive (<b>greater
  1351. then zero</b>) value, which indicates how good is the evaluated chromosome -
  1352. the greater the value, the better the chromosome.
  1353. </remarks>
  1354. </member>
  1355. <member name="M:AForge.Genetic.IFitnessFunction.Evaluate(AForge.Genetic.IChromosome)">
  1356. <summary>
  1357. Evaluates chromosome.
  1358. </summary>
  1359. <param name="chromosome">Chromosome to evaluate.</param>
  1360. <returns>Returns chromosome's fitness value.</returns>
  1361. <remarks>The method calculates fitness value of the specified
  1362. chromosome.</remarks>
  1363. </member>
  1364. <member name="T:AForge.Genetic.OptimizationFunction1D">
  1365. <summary>Base class for one dimensional function optimizations.</summary>
  1366. <remarks><para>The class is aimed to be used for one dimensional function
  1367. optimization problems. It implements all methods of <see cref="T:AForge.Genetic.IFitnessFunction"/>
  1368. interface and requires overriding only one method -
  1369. <see cref="M:AForge.Genetic.OptimizationFunction1D.OptimizationFunction(System.Double)"/>, which represents the
  1370. function to optimize.</para>
  1371. <para><note>The optimization function should be greater
  1372. than 0 on the specified optimization range.</note></para>
  1373. <para>The class works only with binary chromosomes (<see cref="T:AForge.Genetic.BinaryChromosome"/>).</para>
  1374. <para>Sample usage:</para>
  1375. <code>
  1376. // define optimization function
  1377. public class UserFunction : OptimizationFunction1D
  1378. {
  1379. public UserFunction( ) :
  1380. base( new Range( 0, 255 ) ) { }
  1381. public override double OptimizationFunction( double x )
  1382. {
  1383. return Math.Cos( x / 23 ) * Math.Sin( x / 50 ) + 2;
  1384. }
  1385. }
  1386. ...
  1387. // create genetic population
  1388. Population population = new Population( 40,
  1389. new BinaryChromosome( 32 ),
  1390. new UserFunction( ),
  1391. new EliteSelection( ) );
  1392. while ( true )
  1393. {
  1394. // run one epoch of the population
  1395. population.RunEpoch( );
  1396. // ...
  1397. }
  1398. </code>
  1399. </remarks>
  1400. </member>
  1401. <member name="T:AForge.Genetic.OptimizationFunction1D.Modes">
  1402. <summary>
  1403. Optimization modes.
  1404. </summary>
  1405. <remarks>The enumeration defines optimization modes for
  1406. the one dimensional function optimization.</remarks>
  1407. </member>
  1408. <member name="F:AForge.Genetic.OptimizationFunction1D.Modes.Maximization">
  1409. <summary>
  1410. Search for function's maximum value.
  1411. </summary>
  1412. </member>
  1413. <member name="F:AForge.Genetic.OptimizationFunction1D.Modes.Minimization">
  1414. <summary>
  1415. Search for function's minimum value.
  1416. </summary>
  1417. </member>
  1418. <member name="P:AForge.Genetic.OptimizationFunction1D.Range">
  1419. <summary>
  1420. Optimization range.
  1421. </summary>
  1422. <remarks>Defines function's input range. The function's extreme point will
  1423. be searched in this range only.
  1424. </remarks>
  1425. </member>
  1426. <member name="P:AForge.Genetic.OptimizationFunction1D.Mode">
  1427. <summary>
  1428. Optimization mode.
  1429. </summary>
  1430. <remarks>Defines optimization mode - what kind of extreme point to search.</remarks>
  1431. </member>
  1432. <member name="M:AForge.Genetic.OptimizationFunction1D.#ctor(AForge.Range)">
  1433. <summary>
  1434. Initializes a new instance of the <see cref="T:AForge.Genetic.OptimizationFunction1D"/> class.
  1435. </summary>
  1436. <param name="range">Specifies range for optimization.</param>
  1437. </member>
  1438. <member name="M:AForge.Genetic.OptimizationFunction1D.Evaluate(AForge.Genetic.IChromosome)">
  1439. <summary>
  1440. Evaluates chromosome.
  1441. </summary>
  1442. <param name="chromosome">Chromosome to evaluate.</param>
  1443. <returns>Returns chromosome's fitness value.</returns>
  1444. <remarks>The method calculates fitness value of the specified
  1445. chromosome.</remarks>
  1446. </member>
  1447. <member name="M:AForge.Genetic.OptimizationFunction1D.Translate(AForge.Genetic.IChromosome)">
  1448. <summary>
  1449. Translates genotype to phenotype.
  1450. </summary>
  1451. <param name="chromosome">Chromosome, which genoteype should be
  1452. translated to phenotype.</param>
  1453. <returns>Returns chromosome's fenotype - the actual solution
  1454. encoded by the chromosome.</returns>
  1455. <remarks>The method returns double value, which represents function's
  1456. input point encoded by the specified chromosome.</remarks>
  1457. </member>
  1458. <member name="M:AForge.Genetic.OptimizationFunction1D.OptimizationFunction(System.Double)">
  1459. <summary>
  1460. Function to optimize.
  1461. </summary>
  1462. <param name="x">Function's input value.</param>
  1463. <returns>Returns function output value.</returns>
  1464. <remarks>The method should be overloaded by inherited class to
  1465. specify the optimization function.</remarks>
  1466. </member>
  1467. <member name="T:AForge.Genetic.OptimizationFunction2D">
  1468. <summary>Base class for two dimenstional function optimization.</summary>
  1469. <remarks><para>The class is aimed to be used for two dimensional function
  1470. optimization problems. It implements all methods of <see cref="T:AForge.Genetic.IFitnessFunction"/>
  1471. interface and requires overriding only one method -
  1472. <see cref="M:AForge.Genetic.OptimizationFunction2D.OptimizationFunction(System.Double,System.Double)"/>, which represents the
  1473. function to optimize.</para>
  1474. <para><note>The optimization function should be greater
  1475. than 0 on the specified optimization range.</note></para>
  1476. <para>The class works only with binary chromosomes (<see cref="T:AForge.Genetic.BinaryChromosome"/>).</para>
  1477. <para>Sample usage:</para>
  1478. <code>
  1479. // define optimization function
  1480. public class UserFunction : OptimizationFunction2D
  1481. {
  1482. public UserFunction( ) :
  1483. base( new Range( -4, 4 ), new Range( -4, 4 ) ) { }
  1484. public override double OptimizationFunction( double x, double y )
  1485. {
  1486. return ( Math.Cos( y ) * x * y ) / ( 2 - Math.Sin( x ) );
  1487. }
  1488. }
  1489. ...
  1490. // create genetic population
  1491. Population population = new Population( 40,
  1492. new BinaryChromosome( 32 ),
  1493. new UserFunction( ),
  1494. new EliteSelection( ) );
  1495. // run one epoch of the population
  1496. population.RunEpoch( );
  1497. </code>
  1498. </remarks>
  1499. </member>
  1500. <member name="T:AForge.Genetic.OptimizationFunction2D.Modes">
  1501. <summary>
  1502. Optimization modes.
  1503. </summary>
  1504. <remarks>The enumeration defines optimization modes for
  1505. the two dimensional function optimization.</remarks>
  1506. </member>
  1507. <member name="F:AForge.Genetic.OptimizationFunction2D.Modes.Maximization">
  1508. <summary>
  1509. Search for function's maximum value.
  1510. </summary>
  1511. </member>
  1512. <member name="F:AForge.Genetic.OptimizationFunction2D.Modes.Minimization">
  1513. <summary>
  1514. Search for function's minimum value.
  1515. </summary>
  1516. </member>
  1517. <member name="P:AForge.Genetic.OptimizationFunction2D.RangeX">
  1518. <summary>
  1519. X variable's optimization range.
  1520. </summary>
  1521. <remarks>Defines function's X range. The function's extreme will
  1522. be searched in this range only.
  1523. </remarks>
  1524. </member>
  1525. <member name="P:AForge.Genetic.OptimizationFunction2D.RangeY">
  1526. <summary>
  1527. Y variable's optimization range.
  1528. </summary>
  1529. <remarks>Defines function's Y range. The function's extreme will
  1530. be searched in this range only.
  1531. </remarks>
  1532. </member>
  1533. <member name="P:AForge.Genetic.OptimizationFunction2D.Mode">
  1534. <summary>
  1535. Optimization mode.
  1536. </summary>
  1537. <remarks>Defines optimization mode - what kind of extreme to search.</remarks>
  1538. </member>
  1539. <member name="M:AForge.Genetic.OptimizationFunction2D.#ctor(AForge.Range,AForge.Range)">
  1540. <summary>
  1541. Initializes a new instance of the <see cref="T:AForge.Genetic.OptimizationFunction2D"/> class.
  1542. </summary>
  1543. <param name="rangeX">Specifies X variable's range.</param>
  1544. <param name="rangeY">Specifies Y variable's range.</param>
  1545. </member>
  1546. <member name="M:AForge.Genetic.OptimizationFunction2D.Evaluate(AForge.Genetic.IChromosome)">
  1547. <summary>
  1548. Evaluates chromosome.
  1549. </summary>
  1550. <param name="chromosome">Chromosome to evaluate.</param>
  1551. <returns>Returns chromosome's fitness value.</returns>
  1552. <remarks>The method calculates fitness value of the specified
  1553. chromosome.</remarks>
  1554. </member>
  1555. <member name="M:AForge.Genetic.OptimizationFunction2D.Translate(AForge.Genetic.IChromosome)">
  1556. <summary>
  1557. Translates genotype to phenotype
  1558. </summary>
  1559. <param name="chromosome">Chromosome, which genoteype should be
  1560. translated to phenotype</param>
  1561. <returns>Returns chromosome's fenotype - the actual solution
  1562. encoded by the chromosome</returns>
  1563. <remarks>The method returns array of two double values, which
  1564. represent function's input point (X and Y) encoded by the specified
  1565. chromosome.</remarks>
  1566. </member>
  1567. <member name="M:AForge.Genetic.OptimizationFunction2D.OptimizationFunction(System.Double,System.Double)">
  1568. <summary>
  1569. Function to optimize.
  1570. </summary>
  1571. <param name="x">Function X input value.</param>
  1572. <param name="y">Function Y input value.</param>
  1573. <returns>Returns function output value.</returns>
  1574. <remarks>The method should be overloaded by inherited class to
  1575. specify the optimization function.</remarks>
  1576. </member>
  1577. <member name="T:AForge.Genetic.SymbolicRegressionFitness">
  1578. <summary>
  1579. Fitness function for symbolic regression (function approximation) problem
  1580. </summary>
  1581. <remarks><para>The fitness function calculates fitness value of
  1582. <see cref="T:AForge.Genetic.GPTreeChromosome">GP</see> and <see cref="T:AForge.Genetic.GEPChromosome">GEP</see>
  1583. chromosomes with the aim of solving symbolic regression problem. The fitness function's
  1584. value is computed as:
  1585. <code>100.0 / ( error + 1 )</code>
  1586. where <b>error</b> equals to the sum of absolute differences between function values (computed using
  1587. the function encoded by chromosome) and input values (function to be approximated).</para>
  1588. <para>Sample usage:</para>
  1589. <code>
  1590. // constants
  1591. double[] constants = new double[5] { 1, 2, 3, 5, 7 };
  1592. // function to be approximated
  1593. double[,] data = new double[5, 2] {
  1594. {1, 1}, {2, 3}, {3, 6}, {4, 10}, {5, 15} };
  1595. // create population
  1596. Population population = new Population( 100,
  1597. new GPTreeChromosome( new SimpleGeneFunction( 1 + constants.Length ) ),
  1598. new SymbolicRegressionFitness( data, constants ),
  1599. new EliteSelection( ) );
  1600. // run one epoch of the population
  1601. population.RunEpoch( );
  1602. </code>
  1603. </remarks>
  1604. </member>
  1605. <member name="M:AForge.Genetic.SymbolicRegressionFitness.#ctor(System.Double[0:,0:],System.Double[])">
  1606. <summary>
  1607. Initializes a new instance of the <see cref="T:AForge.Genetic.SymbolicRegressionFitness"/> class.
  1608. </summary>
  1609. <param name="data">Function to be approximated.</param>
  1610. <param name="constants">Array of constants to be used as additional
  1611. paramters for genetic expression.</param>
  1612. <remarks><para>The <paramref name="data"/> parameter defines the function to be approximated and
  1613. represents a two dimensional array of (x, y) points.</para>
  1614. <para>The <paramref name="constants"/> parameter is an array of constants, which can be used as
  1615. additional variables for a genetic expression. The actual amount of variables for
  1616. genetic expression equals to the amount of constants plus one - the <b>x</b> variable.</para>
  1617. </remarks>
  1618. </member>
  1619. <member name="M:AForge.Genetic.SymbolicRegressionFitness.Evaluate(AForge.Genetic.IChromosome)">
  1620. <summary>
  1621. Evaluates chromosome.
  1622. </summary>
  1623. <param name="chromosome">Chromosome to evaluate.</param>
  1624. <returns>Returns chromosome's fitness value.</returns>
  1625. <remarks>The method calculates fitness value of the specified
  1626. chromosome.</remarks>
  1627. </member>
  1628. <member name="M:AForge.Genetic.SymbolicRegressionFitness.Translate(AForge.Genetic.IChromosome)">
  1629. <summary>
  1630. Translates genotype to phenotype .
  1631. </summary>
  1632. <param name="chromosome">Chromosome, which genoteype should be
  1633. translated to phenotype.</param>
  1634. <returns>Returns chromosome's fenotype - the actual solution
  1635. encoded by the chromosome.</returns>
  1636. <remarks>The method returns string value, which represents approximation
  1637. expression written in polish postfix notation.</remarks>
  1638. </member>
  1639. <member name="T:AForge.Genetic.TimeSeriesPredictionFitness">
  1640. <summary>
  1641. Fitness function for times series prediction problem
  1642. </summary>
  1643. <remarks><para>The fitness function calculates fitness value of
  1644. <see cref="T:AForge.Genetic.GPTreeChromosome">GP</see> and <see cref="T:AForge.Genetic.GEPChromosome">GEP</see>
  1645. chromosomes with the aim of solving times series prediction problem using
  1646. sliding window method. The fitness function's value is computed as:
  1647. <code>100.0 / ( error + 1 )</code>
  1648. where <b>error</b> equals to the sum of absolute differences between predicted value
  1649. and actual future value.</para>
  1650. <para>Sample usage:</para>
  1651. <code>
  1652. // number of points from the past used to predict new one
  1653. int windowSize = 5;
  1654. // time series to predict
  1655. double[] data = new double[13] { 1, 2, 4, 7, 11, 16, 22, 29, 37, 46, 56, 67, 79 };
  1656. // constants
  1657. double[] constants = new double[10] { 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 };
  1658. // create population
  1659. Population population = new Population( 100,
  1660. new GPTreeChromosome( new SimpleGeneFunction( windowSize + constants.Length ) ),
  1661. new TimeSeriesPredictionFitness( data, windowSize, 1, constants ),
  1662. new EliteSelection( ) );
  1663. // run one epoch of the population
  1664. population.RunEpoch( );
  1665. </code>
  1666. </remarks>
  1667. </member>
  1668. <member name="M:AForge.Genetic.TimeSeriesPredictionFitness.#ctor(System.Double[],System.Int32,System.Int32,System.Double[])">
  1669. <summary>
  1670. Initializes a new instance of the <see cref="T:AForge.Genetic.TimeSeriesPredictionFitness"/> class.
  1671. </summary>
  1672. <param name="data">Time series to be predicted.</param>
  1673. <param name="windowSize">Window size - number of past samples used
  1674. to predict future value.</param>
  1675. <param name="predictionSize">Prediction size - number of values to be predicted. These
  1676. values are excluded from training set.</param>
  1677. <param name="constants">Array of constants to be used as additional
  1678. paramters for genetic expression.</param>
  1679. <remarks><para>The <paramref name="data"/> parameter is a one dimensional array, which defines times
  1680. series to predict. The amount of learning samples is equal to the number of samples
  1681. in the provided time series, minus window size, minus prediction size.</para>
  1682. <para>The <paramref name="predictionSize"/> parameter specifies the amount of samples, which should
  1683. be excluded from training set. This set of samples may be used for future verification
  1684. of the prediction model.</para>
  1685. <para>The <paramref name="constants"/> parameter is an array of constants, which can be used as
  1686. additional variables for a genetic expression. The actual amount of variables for
  1687. genetic expression equals to the amount of constants plus the window size.</para>
  1688. </remarks>
  1689. </member>
  1690. <member name="M:AForge.Genetic.TimeSeriesPredictionFitness.Evaluate(AForge.Genetic.IChromosome)">
  1691. <summary>
  1692. Evaluates chromosome.
  1693. </summary>
  1694. <param name="chromosome">Chromosome to evaluate.</param>
  1695. <returns>Returns chromosome's fitness value.</returns>
  1696. <remarks>The method calculates fitness value of the specified
  1697. chromosome.</remarks>
  1698. </member>
  1699. <member name="M:AForge.Genetic.TimeSeriesPredictionFitness.Translate(AForge.Genetic.IChromosome)">
  1700. <summary>
  1701. Translates genotype to phenotype.
  1702. </summary>
  1703. <param name="chromosome">Chromosome, which genoteype should be
  1704. translated to phenotype.</param>
  1705. <returns>Returns chromosome's fenotype - the actual solution
  1706. encoded by the chromosome.</returns>
  1707. <remarks><para>The method returns string value, which represents prediction
  1708. expression written in polish postfix notation.</para>
  1709. <para>The interpretation of the prediction expression is very simple. For example, let's
  1710. take a look at sample expression, which was received with window size equal to 5:
  1711. <code lang="none">$0 $1 - $5 / $2 *</code>
  1712. The above expression in postfix polish notation should be interpreted as a next expression:
  1713. <code lang="none">( ( x[t - 1] - x[t - 2] ) / const1 ) * x[t - 3]</code>
  1714. </para>
  1715. </remarks>
  1716. </member>
  1717. <member name="T:AForge.Genetic.Population">
  1718. <summary>
  1719. Population of chromosomes.
  1720. </summary>
  1721. <remarks><para>The class represents population - collection of individuals (chromosomes)
  1722. and provides functionality for common population's life cycle - population growing
  1723. with help of genetic operators and selection of chromosomes to new generation
  1724. with help of selection algorithm. The class may work with any type of chromosomes
  1725. implementing <see cref="T:AForge.Genetic.IChromosome"/> interface, use any type of fitness functions
  1726. implementing <see cref="T:AForge.Genetic.IFitnessFunction"/> interface and use any type of selection
  1727. algorithms implementing <see cref="T:AForge.Genetic.ISelectionMethod"/> interface.</para>
  1728. </remarks>
  1729. </member>
  1730. <member name="P:AForge.Genetic.Population.CrossoverRate">
  1731. <summary>
  1732. Crossover rate, [0.1, 1].
  1733. </summary>
  1734. <remarks><para>The value determines the amount of chromosomes which participate
  1735. in crossover.</para>
  1736. <para>Default value is set to <b>0.75</b>.</para>
  1737. </remarks>
  1738. </member>
  1739. <member name="P:AForge.Genetic.Population.MutationRate">
  1740. <summary>
  1741. Mutation rate, [0.1, 1].
  1742. </summary>
  1743. <remarks><para>The value determines the amount of chromosomes which participate
  1744. in mutation.</para>
  1745. <para>Defaul value is set to <b>0.1</b>.</para></remarks>
  1746. </member>
  1747. <member name="P:AForge.Genetic.Population.RandomSelectionPortion">
  1748. <summary>
  1749. Random selection portion, [0, 0.9].
  1750. </summary>
  1751. <remarks><para>The value determines the amount of chromosomes which will be
  1752. randomly generated for the new population. The property controls the amount
  1753. of chromosomes, which are selected to a new population using
  1754. <see cref="P:AForge.Genetic.Population.SelectionMethod">selection operator</see>, and amount of random
  1755. chromosomes added to the new population.</para>
  1756. <para>Default value is set to <b>0</b>.</para></remarks>
  1757. </member>
  1758. <member name="P:AForge.Genetic.Population.AutoShuffling">
  1759. <summary>
  1760. Determines of auto shuffling is on or off.
  1761. </summary>
  1762. <remarks><para>The property specifies if automatic shuffling needs to be done
  1763. on each <see cref="M:AForge.Genetic.Population.RunEpoch">epoch</see> by calling <see cref="M:AForge.Genetic.Population.Shuffle"/>
  1764. method.</para>
  1765. <para>Default value is set to <see langword="false"/>.</para></remarks>
  1766. </member>
  1767. <member name="P:AForge.Genetic.Population.SelectionMethod">
  1768. <summary>
  1769. Selection method to use with the population.
  1770. </summary>
  1771. <remarks><para>The property sets selection method which is used to select
  1772. population members for a new population - filter population after reproduction
  1773. was done with operators like crossover and mutations.</para></remarks>
  1774. </member>
  1775. <member name="P:AForge.Genetic.Population.FitnessFunction">
  1776. <summary>
  1777. Fitness function to apply to the population.
  1778. </summary>
  1779. <remarks><para>The property sets fitness function, which is used to evaluate
  1780. usefulness of population's chromosomes. Setting new fitness function causes recalculation
  1781. of fitness values for all population's members and new best member will be found.</para>
  1782. </remarks>
  1783. </member>
  1784. <member name="P:AForge.Genetic.Population.FitnessMax">
  1785. <summary>
  1786. Maximum fitness of the population.
  1787. </summary>
  1788. <remarks><para>The property keeps maximum fitness of chromosomes currently existing
  1789. in the population.</para>
  1790. <para><note>The property is recalculate only after <see cref="M:AForge.Genetic.Population.Selection">selection</see>
  1791. or <see cref="M:AForge.Genetic.Population.Migrate(AForge.Genetic.Population,System.Int32,AForge.Genetic.ISelectionMethod)">migration</see> was done.</note></para>
  1792. </remarks>
  1793. </member>
  1794. <member name="P:AForge.Genetic.Population.FitnessSum">
  1795. <summary>
  1796. Summary fitness of the population.
  1797. </summary>
  1798. <remarks><para>The property keeps summary fitness of all chromosome existing in the
  1799. population.</para>
  1800. <para><note>The property is recalculate only after <see cref="M:AForge.Genetic.Population.Selection">selection</see>
  1801. or <see cref="M:AForge.Genetic.Population.Migrate(AForge.Genetic.Population,System.Int32,AForge.Genetic.ISelectionMethod)">migration</see> was done.</note></para>
  1802. </remarks>
  1803. </member>
  1804. <member name="P:AForge.Genetic.Population.FitnessAvg">
  1805. <summary>
  1806. Average fitness of the population.
  1807. </summary>
  1808. <remarks><para>The property keeps average fitness of all chromosome existing in the
  1809. population.</para>
  1810. <para><note>The property is recalculate only after <see cref="M:AForge.Genetic.Population.Selection">selection</see>
  1811. or <see cref="M:AForge.Genetic.Population.Migrate(AForge.Genetic.Population,System.Int32,AForge.Genetic.ISelectionMethod)">migration</see> was done.</note></para>
  1812. </remarks>
  1813. </member>
  1814. <member name="P:AForge.Genetic.Population.BestChromosome">
  1815. <summary>
  1816. Best chromosome of the population.
  1817. </summary>
  1818. <remarks><para>The property keeps the best chromosome existing in the population
  1819. or <see langword="null"/> if all chromosomes have 0 fitness.</para>
  1820. <para><note>The property is recalculate only after <see cref="M:AForge.Genetic.Population.Selection">selection</see>
  1821. or <see cref="M:AForge.Genetic.Population.Migrate(AForge.Genetic.Population,System.Int32,AForge.Genetic.ISelectionMethod)">migration</see> was done.</note></para>
  1822. </remarks>
  1823. </member>
  1824. <member name="P:AForge.Genetic.Population.Size">
  1825. <summary>
  1826. Size of the population.
  1827. </summary>
  1828. <remarks>The property keeps initial (minimal) size of population.
  1829. Population always returns to this size after selection operator was applied,
  1830. which happens after <see cref="M:AForge.Genetic.Population.Selection"/> or <see cref="M:AForge.Genetic.Population.RunEpoch"/> methods
  1831. call.</remarks>
  1832. </member>
  1833. <member name="P:AForge.Genetic.Population.Item(System.Int32)">
  1834. <summary>
  1835. Get chromosome with specified index.
  1836. </summary>
  1837. <param name="index">Chromosome's index to retrieve.</param>
  1838. <remarks>Allows to access individuals of the population.</remarks>
  1839. </member>
  1840. <member name="M:AForge.Genetic.Population.#ctor(System.Int32,AForge.Genetic.IChromosome,AForge.Genetic.IFitnessFunction,AForge.Genetic.ISelectionMethod)">
  1841. <summary>
  1842. Initializes a new instance of the <see cref="T:AForge.Genetic.Population"/> class.
  1843. </summary>
  1844. <param name="size">Initial size of population.</param>
  1845. <param name="ancestor">Ancestor chromosome to use for population creatioin.</param>
  1846. <param name="fitnessFunction">Fitness function to use for calculating
  1847. chromosome's fitness values.</param>
  1848. <param name="selectionMethod">Selection algorithm to use for selection
  1849. chromosome's to new generation.</param>
  1850. <remarks>Creates new population of specified size. The specified ancestor
  1851. becomes first member of the population and is used to create other members
  1852. with same parameters, which were used for ancestor's creation.</remarks>
  1853. <exception cref="T:System.ArgumentException">Too small population's size was specified. The
  1854. exception is thrown in the case if <paramref name="size"/> is smaller than 2.</exception>
  1855. </member>
  1856. <member name="M:AForge.Genetic.Population.Regenerate">
  1857. <summary>
  1858. Regenerate population.
  1859. </summary>
  1860. <remarks>The method regenerates population filling it with random chromosomes.</remarks>
  1861. </member>
  1862. <member name="M:AForge.Genetic.Population.Crossover">
  1863. <summary>
  1864. Do crossover in the population.
  1865. </summary>
  1866. <remarks>The method walks through the population and performs crossover operator
  1867. taking each two chromosomes in the order of their presence in the population.
  1868. The total amount of paired chromosomes is determined by
  1869. <see cref="P:AForge.Genetic.Population.CrossoverRate">crossover rate</see>.</remarks>
  1870. </member>
  1871. <member name="M:AForge.Genetic.Population.Mutate">
  1872. <summary>
  1873. Do mutation in the population.
  1874. </summary>
  1875. <remarks>The method walks through the population and performs mutation operator
  1876. taking each chromosome one by one. The total amount of mutated chromosomes is
  1877. determined by <see cref="P:AForge.Genetic.Population.MutationRate">mutation rate</see>.</remarks>
  1878. </member>
  1879. <member name="M:AForge.Genetic.Population.Selection">
  1880. <summary>
  1881. Do selection.
  1882. </summary>
  1883. <remarks>The method applies selection operator to the current population. Using
  1884. specified selection algorithm it selects members to the new generation from current
  1885. generates and adds certain amount of random members, if is required
  1886. (see <see cref="P:AForge.Genetic.Population.RandomSelectionPortion"/>).</remarks>
  1887. </member>
  1888. <member name="M:AForge.Genetic.Population.RunEpoch">
  1889. <summary>
  1890. Run one epoch of the population.
  1891. </summary>
  1892. <remarks>The method runs one epoch of the population, doing crossover, mutation
  1893. and selection by calling <see cref="M:AForge.Genetic.Population.Crossover"/>, <see cref="M:AForge.Genetic.Population.Mutate"/> and
  1894. <see cref="M:AForge.Genetic.Population.Selection"/>.</remarks>
  1895. </member>
  1896. <member name="M:AForge.Genetic.Population.Shuffle">
  1897. <summary>
  1898. Shuffle randomly current population.
  1899. </summary>
  1900. <remarks><para>Population shuffling may be useful in cases when selection
  1901. operator results in not random order of chromosomes (for example, after elite
  1902. selection population may be ordered in ascending/descending order).</para></remarks>
  1903. </member>
  1904. <member name="M:AForge.Genetic.Population.AddChromosome(AForge.Genetic.IChromosome)">
  1905. <summary>
  1906. Add chromosome to the population.
  1907. </summary>
  1908. <param name="chromosome">Chromosome to add to the population.</param>
  1909. <remarks><para>The method adds specified chromosome to the current population.
  1910. Manual adding of chromosome maybe useful, when it is required to add some initialized
  1911. chromosomes instead of random.</para>
  1912. <para><note>Adding chromosome manually should be done very carefully, since it
  1913. may break the population. The manually added chromosome must have the same type
  1914. and initialization parameters as the ancestor passed to constructor.</note></para>
  1915. </remarks>
  1916. </member>
  1917. <member name="M:AForge.Genetic.Population.Migrate(AForge.Genetic.Population,System.Int32,AForge.Genetic.ISelectionMethod)">
  1918. <summary>
  1919. Perform migration between two populations.
  1920. </summary>
  1921. <param name="anotherPopulation">Population to do migration with.</param>
  1922. <param name="numberOfMigrants">Number of chromosomes from each population to migrate.</param>
  1923. <param name="migrantsSelector">Selection algorithm used to select chromosomes to migrate.</param>
  1924. <remarks><para>The method performs migration between two populations - current and the
  1925. <paramref name="anotherPopulation">specified one</paramref>. During migration
  1926. <paramref name="numberOfMigrants">specified number</paramref> of chromosomes is choosen from
  1927. each population using <paramref name="migrantsSelector">specified selection algorithms</paramref>
  1928. and put into another population replacing worst members there.</para></remarks>
  1929. </member>
  1930. <member name="M:AForge.Genetic.Population.Resize(System.Int32)">
  1931. <summary>
  1932. Resize population to the new specified size.
  1933. </summary>
  1934. <param name="newPopulationSize">New size of population.</param>
  1935. <remarks><para>The method does resizing of population. In the case if population
  1936. should grow, it just adds missing number of random members. In the case if
  1937. population should get smaller, the <see cref="P:AForge.Genetic.Population.SelectionMethod">population's
  1938. selection method</see> is used to reduce the population.</para></remarks>
  1939. <exception cref="T:System.ArgumentException">Too small population's size was specified. The
  1940. exception is thrown in the case if <paramref name="newPopulationSize"/> is smaller than 2.</exception>
  1941. </member>
  1942. <member name="M:AForge.Genetic.Population.Resize(System.Int32,AForge.Genetic.ISelectionMethod)">
  1943. <summary>
  1944. Resize population to the new specified size.
  1945. </summary>
  1946. <param name="newPopulationSize">New size of population.</param>
  1947. <param name="membersSelector">Selection algorithm to use in the case
  1948. if population should get smaller.</param>
  1949. <remarks><para>The method does resizing of population. In the case if population
  1950. should grow, it just adds missing number of random members. In the case if
  1951. population should get smaller, the specified selection method is used to
  1952. reduce the population.</para></remarks>
  1953. <exception cref="T:System.ArgumentException">Too small population's size was specified. The
  1954. exception is thrown in the case if <paramref name="newPopulationSize"/> is smaller than 2.</exception>
  1955. </member>
  1956. <member name="T:AForge.Genetic.EliteSelection">
  1957. <summary>
  1958. Elite selection method.
  1959. </summary>
  1960. <remarks>Elite selection method selects specified amount of
  1961. best chromosomes to the next generation.</remarks>
  1962. </member>
  1963. <member name="M:AForge.Genetic.EliteSelection.#ctor">
  1964. <summary>
  1965. Initializes a new instance of the <see cref="T:AForge.Genetic.EliteSelection"/> class.
  1966. </summary>
  1967. </member>
  1968. <member name="M:AForge.Genetic.EliteSelection.ApplySelection(System.Collections.Generic.List{AForge.Genetic.IChromosome},System.Int32)">
  1969. <summary>
  1970. Apply selection to the specified population.
  1971. </summary>
  1972. <param name="chromosomes">Population, which should be filtered.</param>
  1973. <param name="size">The amount of chromosomes to keep.</param>
  1974. <remarks>Filters specified population keeping only specified amount of best
  1975. chromosomes.</remarks>
  1976. </member>
  1977. <member name="T:AForge.Genetic.ISelectionMethod">
  1978. <summary>
  1979. Genetic selection method interface.
  1980. </summary>
  1981. <remarks>The interface should be implemented by all classes, which
  1982. implement genetic selection algorithm. These algorithms select members of
  1983. current generation, which should be kept in the new generation. Basically,
  1984. these algorithms filter provided population keeping only specified amount of
  1985. members.</remarks>
  1986. </member>
  1987. <member name="M:AForge.Genetic.ISelectionMethod.ApplySelection(System.Collections.Generic.List{AForge.Genetic.IChromosome},System.Int32)">
  1988. <summary>
  1989. Apply selection to the specified population.
  1990. </summary>
  1991. <param name="chromosomes">Population, which should be filtered.</param>
  1992. <param name="size">The amount of chromosomes to keep.</param>
  1993. <remarks>Filters specified population according to the implemented
  1994. selection algorithm.</remarks>
  1995. </member>
  1996. <member name="T:AForge.Genetic.RankSelection">
  1997. <summary>
  1998. Rank selection method.
  1999. </summary>
  2000. <remarks><para>The algorithm selects chromosomes to the new generation depending on
  2001. their fitness values - the better fitness value chromosome has, the more chances
  2002. it has to become member of the new generation. Each chromosome can be selected
  2003. several times to the new generation.</para>
  2004. <para>This algorithm is similar to <see cref="T:AForge.Genetic.RouletteWheelSelection">Roulette Wheel
  2005. Selection</see> algorithm, but the difference is in "wheel" and its sectors' size
  2006. calculation method. The size of the wheel equals to <b>size * ( size + 1 ) / 2</b>,
  2007. where <b>size</b> is the current size of population. The worst chromosome has its sector's
  2008. size equal to 1, the next chromosome has its sector's size equal to 2, etc.</para>
  2009. </remarks>
  2010. </member>
  2011. <member name="M:AForge.Genetic.RankSelection.#ctor">
  2012. <summary>
  2013. Initializes a new instance of the <see cref="T:AForge.Genetic.RankSelection"/> class.
  2014. </summary>
  2015. </member>
  2016. <member name="M:AForge.Genetic.RankSelection.ApplySelection(System.Collections.Generic.List{AForge.Genetic.IChromosome},System.Int32)">
  2017. <summary>
  2018. Apply selection to the specified population.
  2019. </summary>
  2020. <param name="chromosomes">Population, which should be filtered.</param>
  2021. <param name="size">The amount of chromosomes to keep.</param>
  2022. <remarks>Filters specified population keeping only those chromosomes, which
  2023. won "roulette" game.</remarks>
  2024. </member>
  2025. <member name="T:AForge.Genetic.RouletteWheelSelection">
  2026. <summary>
  2027. Roulette wheel selection method.
  2028. </summary>
  2029. <remarks><para>The algorithm selects chromosomes to the new generation according to
  2030. their fitness values - the more fitness value chromosome has, the more chances
  2031. it has to become member of new generation. Each chromosome can be selected
  2032. several times to the new generation.</para>
  2033. <para>The "roulette's wheel" is divided into sectors, which size is proportional to
  2034. the fitness values of chromosomes - the size of the wheel is the sum of all fitness
  2035. values, size of each sector equals to fitness value of chromosome.</para>
  2036. </remarks>
  2037. </member>
  2038. <member name="M:AForge.Genetic.RouletteWheelSelection.#ctor">
  2039. <summary>
  2040. Initializes a new instance of the <see cref="T:AForge.Genetic.RouletteWheelSelection"/> class.
  2041. </summary>
  2042. </member>
  2043. <member name="M:AForge.Genetic.RouletteWheelSelection.ApplySelection(System.Collections.Generic.List{AForge.Genetic.IChromosome},System.Int32)">
  2044. <summary>
  2045. Apply selection to the specified population.
  2046. </summary>
  2047. <param name="chromosomes">Population, which should be filtered.</param>
  2048. <param name="size">The amount of chromosomes to keep.</param>
  2049. <remarks>Filters specified population keeping only those chromosomes, which
  2050. won "roulette" game.</remarks>
  2051. </member>
  2052. </members>
  2053. </doc>