Algorithm-Evolve

 view release on metacpan or  search on metacpan

examples/breeding_perls.pl  view on Meta::CPAN

#!/usr/bin/perl
use lib '../lib';

## This example is geared towards those who are familiar with a certain
## infamous PerlMonks writeup...

##############################################################################
## Genetic Programming or breeding Perls (http://perlmonks.org/?node_id=31147)
## is one of the all-time most popular nodes on PerlMonks. It's a great
## example of genetic programming, the catch being that it uses eval to breed
## real Perl programs. The goal is to find a Perl expression that evaluates to
## a target number. This is a reimplementation of that writeup's code using 

examples/rock_paper_scissors.pl  view on Meta::CPAN

#!/usr/bin/perl
use strict;
use warnings;

## this example script has POD -- check it out!

use StringEvolver alphabet => [qw/R P S/], mutation_rate => 0.05;
our @ISA = ('StringEvolver');

use lib '../lib';
use Algorithm::Evolve;

sub compare {
    my ($class, $crit1, $crit2) = @_;

    my ($string1, $string2) = ($crit1->gene, $crit2->gene);
    my ($score1, $score2)   = (0, 0);
    my $length              = length($string1);
    my $offset1             = int rand $length;
    my $offset2             = int rand $length;

examples/string_evolver.pl  view on Meta::CPAN

#!/usr/bin/perl

## A trivial string evolver simulation using StringEvolver.pm. It evolves
## strings of all 1's, the "Hello World" of evoluationary algorithms. ;)

use lib '../lib';
use Algorithm::Evolve;
use StringEvolver;

sub callback {
    my $pop = shift;
    
    ## Print out statistics every 50 generations
    unless ($pop->generations % 50) {
        printf "generations:%d best_fit:%d avg_fitness:%f\n",
            $pop->generations, $pop->best_fit->fitness, $pop->avg_fitness;



( run in 0.268 second using v1.01-cache-2.11-cpan-87723dcf8b7 )