Class SingleNodeCrossover<G extends TreeGene<?,​G>,​C extends Comparable<? super C>>

  • All Implemented Interfaces:
    Alterer<G,​C>

    public class SingleNodeCrossover<G extends TreeGene<?,​G>,​C extends Comparable<? super C>>
    extends TreeCrossover<G,​C>
    Swaps two, randomly chosen, nodes (sub-trees) from two given trees.
     
         Tree A                 Tree B
       0                      a
       ├── 1                  ├── b
       │   ├── 4              │   ├── e
       │   └── 5              │   └── f
       ├── 2                  ├── c
       │   └── 6              │   └── g
       └── 3                  └── d
           ├── 7                  ├── h
           │   ├── 10             │   ├── k
           │   └── 11             │   └── l
           ├── 8                  ├── i
           └── 9                  └── j
    
         Swap node "3" of A with node "c" of B
    
       0                      a
       ├── 1                  ├── b
       │   ├── 4              │   ├── e
       │   └── 5              │   └── f
       ├── 2                  ├── 3
       │   └── 6              │   ├── 7
       └── c                  │   │   ├── 10
           └── g              │   │   └── 11
                              │   ├── 8
                              │   └── 9
                              └── d
                                  ├── h
                                  │   ├── k
                                  │   └── l
                                  ├── i
                                  └── j
     
    Since:
    3.9
    Version:
    5.0