Algorithm-Evolutionary
view release on metacpan or search on metacpan
lib/Algorithm/Evolutionary/Individual/String.pm view on Meta::CPAN
use strict;
use warnings;
use lib qw(../../../lib);
=encoding utf8
=head1 NAME
Algorithm::Evolutionary::Individual::String - A character string to be evolved. Useful mainly in word games
=head1 SYNOPSIS
use Algorithm::Evolutionary::Individual::String;
my $indi = new Algorithm::Evolutionary::Individual::String ['a'..'z'], 10;
# Build random bitstring with length 10
my $indi3 = new Algorithm::Evolutionary::Individual::String;
$indi3->set( { length => 20,
chars => ['A'..'Z'] } ); #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, 'Q' ); #Sets the value
$indi3->addAtom( 'K' ); #Adds a new character to the bitstring at the end
my $indi4 = Algorithm::Evolutionary::Individual::String->fromString( 'esto es un string'); #Creates an individual from that string
my $indi5 = $indi4->clone(); #Creates a copy of the individual
my @array = qw( a x q W z ñ); #Tie a String individual
tie my @vector, 'Algorithm::Evolutionary::Individual::String', @array;
print $indi3->as_string(); #Prints the individual
=head1 Base Class
L<Algorithm::Evolutionary::Individual::Base>
=head1 DESCRIPTION
String Individual for a evolutionary algorithm. Contains methods to handle strings
easily. It is also TIEd so that strings can be handled as arrays.
=head1 METHODS
=cut
package Algorithm::Evolutionary::Individual::String;
use Carp;
our $VERSION = '3.7';
use base 'Algorithm::Evolutionary::Individual::Base';
=head2 MY_OPERATORS
Known operators that act on this subroutine. Probably will be deprecated, so don't rely on its presence
=cut
use constant MY_OPERATORS => qw(Algorithm::Evolutionary::Op::Crossover
Algorithm::Evolutionary::Op::QuadXOver
Algorithm::Evolutionary::Op::StringRand
( run in 0.702 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )