The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

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