Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Algorithm::EvolutionarUserpContributedhPe:lvDoctionary::Op::Canonical_GA_NN(3)

NAME
       Algorithm::Evolutionary::Op::Canonical_GA_NN - Canonical	Genetic
			Algorithm that does not	rank population

SYNOPSIS
	 # Straightforward instance, with all defaults (except for fitness function)
	 my $algo = new	Algorithm::Evolutionary::Op::Canonical_GA_NN;

	 #Define an easy single-generation algorithm with predefined mutation and crossover
	 my $m = new Algorithm::Evolutionary::Op::Bitflip; #Changes a single bit
	 my $c = new Algorithm::Evolutionary::Op::QuadXOver; #Classical	2-point	crossover
	 my $generation	= new Algorithm::Evolutionary::Op::Canonical_GA_NN( 0.2, [$m, $c] );

	  my $generation = new Algorithm::Evolutionary::Op::Canonical_GA_NN( undef , [$m, $c] ); # Defaults to 0.4

Base Class
       Algorithm::Evolutionary::Op::Base

DESCRIPTION
       The canonical classical genetic algorithm evolves a population of
       bitstrings until	they reach the optimum fitness.	It performs mutation
       on the bitstrings by flipping a single bit, crossover interchanges a
       part of the two parents.

       The first operator should be unary (a la	mutation) and the second
       binary (a la crossover) they will be applied in turn to couples of the
       population.

       This is a fast version of the canonical GA, useful for large
       populations, since it avoids the	expensive rank operation. Roulette
       wheel selection,	still, is kind of slow.

METHODS
   new(	[ $selection_rate][,$operators_ref_to_array] )
       Creates an algorithm, with the usual operators. Includes	a default
       mutation	and crossover, in case they are	not passed as parameters. The
       first element in	the array ref should be	an unary, and the second a
       binary operator.	This binary operator must accept parameters by
       reference, not value; it	will modify them. For the time being, just
       Algorithm::Evolutionary::Op::QuadXOver works that way.

   apply( $population)
       Applies a single	generation of the algorithm to the population; checks
       that it receives	a ref-to-array as input, croaks	if it does not.	This
       population should be already evaluated. Returns a new population	for
       next generation,	unsorted.

SEE ALSO
       Algorithm::Evolutionary::Op::Easy
       Algorithm::Evolutionary::Wheel
       Algorithm::Evolutionary::Fitness::Base
       Of course, Algorithm::Evolutionary::Fitness::CanonicalGA

       You will	also find a
	   canonical-genetic-algorithm.pl example within this
	   bundle. Check it out	for usage examples

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

perl v5.24.1		       Algorithm::Evolutionary::Op::Canonical_GA_NN(3)

NAME | SYNOPSIS | Base Class | DESCRIPTION | METHODS | SEE ALSO | Copyright

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Algorithm::Evolutionary::Op::Canonical_GA_NN&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help