# FreeBSD Manual Pages

```Algorithm::EvolutionarUsertContributed Perl DAlgorithm::Evolutionary::Utils(3)

NAME
Algorithm::Evolutionary::Utils -	Container module with a	hodgepodge of
functions

SYNOPSIS
use Algorithm::Evolutionary::Utils qw(entropy genotypic_entropy hamming consensus average random_bitstring random_number_array	decode_string vector_compare );

my \$this_entropy = entropy( \$population );

#Computes consensus sequence (for binary chromosomes
my \$this_consensus = consensus( \$population);

DESCRIPTION
Miscellaneous class that	contains functions that	might be useful
somewhere else, especially when computing EA	statistics.

METHODS
entropy( \$population)
Computes	the entropy using the well known Shannon's formula:
<http://en.wikipedia.org/wiki/Information_entropy> 'to avoid botching
highlighting

genotypic_entropy( \$population)
Computes	the entropy using the well known Shannon's formula:
<http://en.wikipedia.org/wiki/Information_entropy> 'to avoid botching
highlighting; in	this case we use chromosome frequencies	instead	of
fitness.

hamming( \$string_a, \$string_b )
Computes	the number of positions	that are different among two strings,
the well	known Hamming distance.

consensus( \$population, \$rough = 0 )
Consensus sequence representing the majoritary value for	each bit;
returns the consensus binary string. If "rough",	then the bit is	set
only if the difference is bigger	than 0.4 (60/40	proportion).

average( \$population	)
Computes	an average of population fitness

random_bitstring( \$bits )
Returns a random	bitstring with the stated number of bits. Useful for
testing,mainly

random_number_array(	\$dimensions [, \$min = -1] [, \$range = 2] )
Returns a random	number array with the stated length. Useful for
testing,	mainly.

parse_xml( \$string )
Parses the string and returns an	XML tree

decode_string( \$chromosome, \$gene_size, \$min, \$range	)
Decodes to a vector, each one of	whose components ranges	between	\$min
and \$max. Returns that vector.

It does not work	for \$gene_size too big.	Certainly not for 64, maybe
for 32.

vector_compare( \$vector_1, \$vector_2	)
Compares	vectors, returns 1 if 1	dominates 2, -1	if it's	the other way
round, and 0 if neither dominates the other. Both vectors are supposed
to be numeric. Returns "undef" if neither is bigger, and	they are not
equal. Fails if the length is not the same.