Algorithm-Evolutionary
view release on metacpan or search on metacpan
lib/Algorithm/Evolutionary.pm view on Meta::CPAN
package Algorithm::Evolutionary;
use Carp qw(croak);
our $VERSION = '0.82.1'; # Later than 1st GitHub version
# Preloaded methods go here.
# A bit of importing magic taken from POE
sub import {
my $self = shift;
my @modules = grep(!/^(Op|Indi|Fitness)$/, @_);
my $package = caller();
my @failed;
# Load all the others.
foreach my $module (@modules) {
my $code = "package $package; use Algorithm::Evolutionary::$module;";
# warn $code;
eval($code);
if ($@) {
warn $@;
push(@failed, $module);
}
}
@failed and croak "could not import qw(" . join(' ', @failed) . ")";
}
1;
__END__
=encoding utf8
=head1 NAME
Algorithm::Evolutionary - Perl module for performing paradigm-free evolutionary algorithms.
=head1 SYNOPSIS
#Short way of loading a lot of modules, POE-style
use Algorithm::Evolutionary qw( Op::This_Operator
Individual::That_Individual
Fitness::Some_Fitness);
# other modules with explicit importation
use Algorihtm::Evolutionary::Utils (this_util that_util);
=head1 DESCRIPTION
C<Algorithm::Evolutionary> is a set of classes for doing object-oriented
evolutionary computation in Perl. Why would anyone want to do that
escapes my knowledge, but, in fact, we have found it quite useful for
our own purposes. Same as Perl itself.
The main design principle of L<Algorithm::Evolutionary> is I<flexibility>: it
should be very easy to create your own evolutionary algorithms using this library, and it should be
also quite easy to program what's already there in the evolutionary
computation community. Besides, the library classes should have
persistence provided by YAML.
The module allows to create simple evolutionary algorithms, as well
as more complex ones, that interface with databases or with the
web.
=begin html
<p>The project has been, from version 0.79, moved to
<a href='http://github.com/JJ/Algorithm-Evolutionary'>GitHub</a>. Latest aditions, and
nightly updates, can be downloaded from there before they are uploaded
to CPAN. That page also hosts the mailing list, as well as bug
reports, news, updates, work in progress, lots of stuff.</p>
<p>In case the examples are hidden somewhere in the <code>.cpan</code> directory,
you can also download them from <a
href='https://github.com/JJ/Algorithm-Evolutionary/tree/master/examples'>the
git repository</a>. You can also get help from the <a
href='https://github.com/JJ/Algorithm-Evolutionary/issues'>project
issues</a>.</p>
<p>It might be also helpful for you to check out <a
href='http://arxiv.org/abs/0908.0516'>Still doing evolutionary
algorithms with Perl</a>, a gentle introduction to evolutionary
algorithms in general and working with them using this module in particular.</p>
<p>I have used this library continously for my research all these year, and
any search will return a number of papers; a journal article is
already submitted, but meanwhile if you use it for any of your
research, I would be very grateful if you quoted papers such as these
(which are, of course, available under request or from your friendly
university librarian):</p>
=end html
@article {springerlink:10.1007/s00500-009-0504-3,
author = {Merelo Guervós, Juan-Julián and Castillo, Pedro and Alba, Enrique},
affiliation = {Universidad de Granada Depto. Arquitectura y TecnologÃa de Computadores, ETS IngenierÃas Informática y Telecomunicaciones Granada Spain},
title = {Algorithm::Evolutionary, a flexible Perl module for evolutionary computation},
journal = {Soft Computing - A Fusion of Foundations, Methodologies and Applications},
publisher = {Springer Berlin / Heidelberg},
issn = {1432-7643},
( run in 0.627 second using v1.01-cache-2.11-cpan-39bf76dae61 )