NAME

    CX (Cycle crossover) - 2-point crossover operator; Builds offspreing 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'>
  </op>
  EOC
  my $ref3 = XMLin($xmlStr3);
  my $op3 = OpBase->fromXML( $ref3 );
  print $op3->asXML(), "\n";
  my $indi = new BinaryIndi 10;
  my $indi2 = $indi->clone();
  my $indi3 = $indi->clone();
  $op3->apply( $indi2, $indi3 );


Base Class

OpBase


DESCRIPTION

Cycle Crossover operator for a GA

new

Creates a new CX operator.

create

Creates a new CX operator. But this is just to have a non-empty chromosome

set

Sets the instance variables. Takes a ref-to-hash as input

apply

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

asXML

Prints as XML, following the EvoSpec 0.2 XML specification. Should be called from derived classes, not by itself.


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: 2002/04/23 12:33:47 $ 
  $Header: /cvsroot/opeal/opeal/CX.pm,v 1.2 2002/04/23 12:33:47 jmerelo Exp $ 
  $Author: jmerelo $