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

FreeBSD Manual Pages

  
 
  

home | help
Algorithm::EvolutionarUserpContributed:PerllDocumary::Op::GeneralGeneration(3)

NAME
       Algorithm::Evolutionary::Op::GeneralGeneration -	Customizable single
       generation for an evolutionary algorithm.

SYNOPSIS
	 #Taken	from the t/general.t file, verbatim
	 my $m = new Algorithm::Evolutionary::Op::Bitflip; #Changes a single bit
	 my $c = new Algorithm::Evolutionary::Op::Crossover; #Classical	2-point	crossover
	 my $replacementRate = 0.3; #Replacement rate
	 use Algorithm::Evolutionary::Op::RouletteWheel;
	 my $popSize = 20;
	 my $selector =	new Algorithm::Evolutionary::Op::RouletteWheel $popSize; #One of the possible selectors
	 use Algorithm::Evolutionary::Op::GeneralGeneration;
	 my $onemax = sub {
	   my $indi = shift;
	   my $total = 0;
	   for ( my $i = 0; $i < $indi->length(); $i ++	) {
	     $total += substr( $indi->{_str}, $i, 1 );
	   }
	   return $total;
	 };
	 my @pop;
	 my $numBits = 10;
	 for ( 0..$popSize ) {
	   my $indi = new Algorithm::Evolutionary::Individual::BitString $numBits ; #Creates random individual
	   my $fitness = $onemax->( $indi );
	   $indi->Fitness( $fitness );
	   push( @pop, $indi );
	 }
	 my $generation	=
	   new Algorithm::Evolutionary::Op::GeneralGeneration( $onemax,	$selector, [$m,	$c], $replacementRate );
	 my @sortPop = sort { $a->Fitness() <=>	$b->Fitness() }	@pop;
	 my $bestIndi =	$sortPop[0];
	 $generation->apply( \@sortPop );

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

DESCRIPTION
       Genetic algorithm that uses the other component.	Must take as input the
       operators thar are going	to be used, along with its priorities

METHODS
   new(	$evaluation_function, $selector, $ref_to_operator_array,
       $replacement_rate )
       Creates an algorithm, with the usual operators. Includes	a default
       mutation	and crossover, in case they are	not passed as parameters

   set(	$ref_to_params_hash, $ref_to_code_hash,	$ref_to_operators_hash )
       Sets the	instance variables. Takes a ref-to-hash	as input

   apply( $population )
       Applies the algorithm to	the population,	which should have been
       evaluated first;	checks that it receives	a ref-to-array as input,
       croaks if it does not. Returns a	sorted,	culled,	evaluated population
       for next	generation.

SEE ALSO
       o   A more modern and flexible version:
	   Algorithm::Evolutionary::Op::Generation_Skeleton.

       o   Algorithm::Evolutionary::Op::CanonicalGA.

       o   Algorithm::Evolutionary::Op::FullAlgorithm.

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.32.0		     Algorithm::Evolutionary::Op::GeneralGeneration(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::GeneralGeneration&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help