| 22 | } |
| 23 | |
| 24 | array selectFittest(const array& sampleZ, const int nSamples, |
| 25 | const float topFit = DefaultTopFittest) { |
| 26 | // pick top fittest |
| 27 | array indices, values; |
| 28 | sort(values, indices, sampleZ); |
| 29 | int topFitElem = topFit * nSamples; |
| 30 | int n = indices.elements(); |
| 31 | return (n > topFitElem) ? indices(seq(n - topFitElem, n - 1)) : indices; |
| 32 | } |
| 33 | |
| 34 | void reproduce(array& searchSpace, array& sampleX, array& sampleY, |
| 35 | array& sampleZ, const int nSamples, const int n) { |