The crossover-operator chooses two parent-individuals of which one offspring is produced
by combining two disjunct meta-blocks (i.e. subtrees) from both individuals.
It has turned out to be not helpful to do some `intelligent' crossover, i.e.
choosing densely packed meta-blocks in the parent individuals, so the meta-blocks
are chosen randomly in the actual implementation.
It is unlikely to get a complete layout when combining the meta-blocks, so the
missing blocks have to be added.
When doing this, the iterated matching method is used again to take care that
the added blocks built a densely packed part in the layout which is represented
by the offspring.
After the execution of a genetic operator, the slicing tree is traversed to compute the changed routing information and the shape-functions for all inner nodes.