Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  ALGORITHM::EVOLUTIONARY::UTILS (3)

.ds Aq ’

### 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( CW\$population)

Computes the entropy using the well known Shannon’s formula: <http://en.wikipedia.org/wiki/Information_entropy> ’to avoid botching highlighting

#### genotypic_entropy( CW\$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( CW\$string_a, CW\$string_b )

Computes the number of positions that are different among two strings, the well known Hamming distance.

#### consensus( CW\$population, CW\$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( CW\$population )

Computes an average of population fitness

#### random_bitstring( CW\$bits )

Returns a random bitstring with the stated number of bits. Useful for testing,mainly

#### random_number_array( CW\$dimensions [, CW\$min = -1] [, CW\$range = 2] )

Returns a random number array with the stated length. Useful for testing, mainly.

#### parse_xml( CW\$string )

Parses the string and returns an XML tree

#### decode_string( CW\$chromosome, CW\$gene_size, CW\$min, CW\$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( CW\$vector_1, CW\$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.

```

This file is released under the GPL. See the LICENSE file included in this distribution,