

 
Manual Reference Pages  ALGORITHM::EVOLUTIONARY::OP::PERMUTATION (3)
.ds Aq ’
NAME
Algorithm::Evolutionary::Op::Permutation  Permutation. Got it?
CONTENTS
SYNOPSIS
use Algorithm::Evolutionary::Op::Permutation;
my $op = new Algorithm::Evolutionary::Op::Permutation ; #Create from scratch
my $bit_chromosome = new Algorithm::Evolutionary::Individual::BitString 10;
$op>apply( $bit_chromosome );
my $priority = 2;
my $max_iterations = 100; # Less than 10!, absolute maximum number
# of permutations
$op = new Algorithm::Evolutionary::Op::Permutation $priority, $max_iterations;
my $xmlStr=<<EOC;
<op name=Permutation type=unary rate=2 />
EOC
my $ref = XMLin($xmlStr);
my $op = Algorithm::Evolutionary::Op::>fromXML( $ref );
print $op>asXML(), "\n*Arity >", $op>arity(), "\n";
Base Class
Algorithm::Evolutionary::Op::Base
DESCRIPTION
Class independent permutation operator; any individual that has the
_str instance variable (like
Algorithm::Evolutionary::Individual::String and
Algorithm::Evolutionary::Individual::BitString) will have some
of its elements swapped. Each string of length l has l!
permutations; the max_iterations parameter should not be higher
than that.
This kind of operator is used extensively in combinatorial
optimization problems. See, for instance,
@article{prins2004simple,
title={{A simple and effective evolutionary algorithm for the vehicle routing problem}},
author={Prins, C.},
journal={Computers \& Operations Research},
volume={31},
number={12},
pages={19852002},
issn={03050548},
year={2004},
publisher={Elsevier}
}
And, of course, Algorithm::MasterMind, where it is used in the
evolutionary algorithms solutions.
METHODS
new( [$rate = 1][, CW$max_iterations = 10] )
Creates a new permutation operator; see
Algorithm::Evolutionary::Op::Base for details common to all
operators. The chromosome will undergo a random number of at most
$max_iterations. By default, it equals 10.
create
Creates a new mutation operator with an application priority, which
defaults to 1.
Called create to distinguish from the classwide ctor, new. It just
makes simpler to create an Operator
Applies at most max_iterations permutations to a Chromosome that includes the _str
instance variable. The number of iterations will be random, so
that applications of the operator on the same individual will
create diverse offspring.
SEE ALSO
Uses Algorithm::Permute, which is purported to be the fastest
permutation library around. Might change it in the future to
Algorithm::Combinatorics, which is much more comprehensive.
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: 2013/01/09 07:22:50 $
$Header: /media/Backup/Repos/opeal/opeal/AlgorithmEvolutionary/lib/Algorithm/Evolutionary/Op/Permutation.pm,v 3.7 2013/01/09 07:22:50 jmerelo Exp $
$Author: jmerelo $
$Revision: 3.7 $
perl v5.20.3  ALGORITHM::EVOLUTIONARY::OP::PERMUTATION (3)  20141025 
Visit the GSP FreeBSD Man Page Interface. Output converted with manServer 1.07. 