1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import {
get_size,
mut_genome_insert, mutate_genome,
} from './genome.js';
const recurse = (f, x0, n) => {
if (n == 0) {
return x0;
} else {
return f(recurse(f, x0, n-1));
}
};
const n_input = 5;
const n_output = 5;
const [_1, _2, _3, genome] = recurse(
s => mut_genome_insert(
s, 4,
Math.random(), Math.random(), Math.random()
),
[n_input, 10, n_output, []],
20);
const n_internal = get_size(n_input, n_output, genome) - n_input - n_output;
console.log([n_input, n_internal, n_output, genome]);
const mutation = recurse(
s => mutate_genome(s, 4),
[n_input, n_internal, n_output, genome],
40
);
console.log(mutation);
|