1 | This directory contains various breeding pipelines made for GP trees. The |
---|
2 | more common ones are historically elsewhere: CrossoverPipeline and |
---|
3 | MutationPipeline are in the 'koza' directory, and the more general |
---|
4 | ReproductionPipeline and MultiBreedingPipelien are in the 'ec/breed' directory. |
---|
5 | |
---|
6 | Special-purpose pipelines in this directory: |
---|
7 | |
---|
8 | |
---|
9 | |
---|
10 | ec.gp.breed.InternalCrossoverPipeline |
---|
11 | |
---|
12 | Two points are selected within the same individual, such that neither is a |
---|
13 | subtree of the other. The points are then crossed over. |
---|
14 | |
---|
15 | |
---|
16 | ec.gp.breed.MutateDemotePipeline |
---|
17 | |
---|
18 | A random non-leaf GPNode is created. A tree is removed from the individual and |
---|
19 | replaced with the GPNode. The tree then is reattached as a child to that |
---|
20 | GPNode. The remaining child slots of the GPNode, if any, are filled with |
---|
21 | randomly generated trees (using a GPNodeBuilder). |
---|
22 | |
---|
23 | |
---|
24 | ec.gp.breed.MutatePromotePipeline |
---|
25 | |
---|
26 | A tree is replaced with one of its children subtrees. |
---|
27 | |
---|
28 | |
---|
29 | ec.gp.breed.MutateSwapPipeline |
---|
30 | |
---|
31 | Two children subtrees of a random GPNode are swapped. |
---|
32 | |
---|
33 | |
---|
34 | ec.gp.breed.MutateOneNodePipeline |
---|
35 | |
---|
36 | A single ERC node in the tree is mutated. |
---|
37 | |
---|
38 | |
---|
39 | ec.gp.breed.MutateAllNodesPipeline |
---|
40 | |
---|
41 | All ERCs in the tree are mutated. |
---|
42 | |
---|
43 | |
---|
44 | ec.gp.breed.RehangPipeline |
---|
45 | |
---|
46 | A nonleaf GPNode in the tree is chosen as the new root. Call it N. We begin |
---|
47 | by removing a random child subtree from that node (call it T). The node is |
---|
48 | then placed at he root. The node's former parent is placed in the position |
---|
49 | formerly occupied by T. The parent's parent is placed in the position |
---|
50 | formerly occupied by N. The parent's parent's parent is placed in the |
---|
51 | position formerly occupied by N's parent. And so on, until all parents are |
---|
52 | exhausted. The remaining open slot is then filled with T. This technique |
---|
53 | is highly randomizing and really only useful for odd tests here or there. |
---|
54 | It also cannot be used with a typed GP problem. |
---|