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 $xmlStr3=<<EOC;
<op name='CX' type='binary' rate='1' />
EOC
my $ref3 = XMLin($xmlStr3);

my $op3 = Algorithm::Evolutionary::Op::Base->fromXML( $ref3 );
print $op3->asXML(), "\n";

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 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.

Copyright

This file is released under the GPL. See the LICENSE file included in this distribution,
or go to http://www.fsf.org/licenses/gpl.txt

CVS Info: $Date: 2009/07/28 11:30:56 $ 
$Header: /cvsroot/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Op/CX.pm,v 3.1 2009/07/28 11:30:56 jmerelo Exp $ 
$Author: jmerelo $ 
$Revision: 3.1 $

1 POD Error

The following errors were encountered while parsing the POD:

Around line 38:

alternative text 'http://www.cs.bham.ac.uk/~rmp/slide_book/node4.html#SECTION00444300000000000000' contains non-escaped | or /