# FreeBSD Manual Pages

```Algorithm::EvolutionarUserpContributed Perl Algorithm::Evolutionary::Op::CX(3)

NAME
Algorithm::Evolutionary::Op::CX (Cycle crossover) - 2-point crossover
operator; Builds	offspring in such a way
that	each gene comes	from one of the	parents. Preserves the
absolute	position of the	elements
in the parent sequence

SYNOPSIS
my \$op4 = new Algorithm::Evolutionary::Op::CX 3;

my \$indi = new	Algorithm::Evolutionary::Individual::Vector 10;
my \$indi2 = \$indi->clone();
my \$indi3 = \$indi->clone();
\$op3->apply( \$indi2, \$indi3 );

Base Class
Algorithm::Evolutionary::Op::Base

DESCRIPTION
Cycle Crossover operator	for a GA. It is	applied	to chromosomes that
are a permutation of each other;	even as	the class it applies to	is
Algorithm::Evolutionary::Individual::Vector, it will issue lots of "La
jodimos!" messages if the parents do not	fulfill	this condition.

Some information	on this	operator can be	obtained from this
evolutionary computation	tutorial
<http://www.cs.bham.ac.uk/~rmp/slide_book/node4.html#SECTION00444300000000000000>

METHODS
new
Creates a new Algorithm::Evolutionary::Op::CX operator.

create
Creates a new Algorithm::Evolutionary::Op::CX operator. But this	is
just to have a non-empty	chromosome

apply
Applies Algorithm::Evolutionary::Op::CX operator	to a "Chromosome", a
bitstring, really. Can be applied only to victims with the "_bitstring"
instance	variable; but it checks	before application that	both operands
are of type Individual::Vector.