NAME

Algorithm::Evolutionary::Individual::BitString - Classic bitstring individual for evolutionary computation; usually called chromosome

SYNOPSIS

   use Algorithm::Evolutionary::Individual::BitString;

   my $indi = new Algorithm::Evolutionary::Individual::BitString 10 ; # Build random bitstring with length 10
                                  # Each element in the range 0 .. 1

   my $indi3 = new Algorithm::Evolutionary::Individual::BitString;
   $indi3->set( { length => 20 } );   #Sets values, but does not build the string
   
   $indi3->randomize(); #Creates a random bitstring with length as above

   print $indi3->Atom( 7 );       #Returns the value of the 7th character
   $indi3->Atom( 3 ) = 1;       #Sets the value

   $indi3->addAtom( 1 ); #Adds a new character to the bitstring at the end
   my $size = $indi3->size(); #Common interface to all individuals, should return 21

   my $indi4 = Algorithm::Evolutionary::Individual::BitString->fromString( '10110101');   #Creates an individual from that string

   my $indi5 = $indi4->clone(); #Creates a copy of the individual

   my @array = qw( 0 1 0 1 0 0 1 ); #Create a tied array
   tie my @vector, 'Algorithm::Evolutionary::Individual::BitString', @array;
   print tied( @vector )->asXML();

   print $indi3->asString(); #Prints the individual
   print $indi3->asXML() #Prints it as XML. See 
   print $indi3->as_yaml() #Change of convention, I know...

   my $gene_size = 5;
   my $min = -1;
   my $range = 2;
   my @decoded_vector = $indi3->decode( $gene_size, $min, $range);

Base Class

Algorithm::Evolutionary::Individual::String

DESCRIPTION

Bitstring Individual for a Genetic Algorithm. Used, for instance, in a canonical GA

METHODS

new( $length )

Creates a new random bitstring individual, with fixed initial length, and uniform distribution of bits. Options as in Algorithm::Evolutionary::Individual::String

from_string

Similar to a copy ctor; creates a bitstring individual from a string. Will be deprecated soon

set( $hash )

Sets values of an individual; takes a hash as input. Keys are prepended an underscore and turn into instance variables

decode( $gene_size, $min, $range )

Decodes to a vector, each one of whose components ranges between $min and $max. Returns that vector

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: 2010/09/24 08:39:07 $ 
$Header: /media/Backup/Repos/opeal/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Individual/BitString.pm,v 3.4 2010/09/24 08:39:07 jmerelo Exp $ 
$Author: jmerelo $ 
$Revision: 3.4 $
$Name $