Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  ALGORITHM::EVOLUTIONARY::INDIVIDUAL::TREE (3)

.ds Aq ’

### NAME

Tree - A Direct Acyclic Graph, or tree, useful for Genetic Programming-Style stuff

### SYNOPSIS

```

use Algorithm::Evolutionary::Individual::Tree;
#Hash with primitives, arity, and range for constants that multiply it

my \$primitives = { sum => [2, -1, 1],
multiply => [2, -1, 1],
substract => [2, -1, 1],
divide => [2, -1, 1],
x => [0, -10, 10],
y => [0, -10, 10] };

my \$indi = new Algorithm::Evolutionary::Individual::Tree \$primitives, 5 ; # Build random tree with knwo primitives
# and depth up to 5

my \$indi5 = \$indi->clone(); #Creates a copy of the individual

print \$indi3->asString(); #Prints the individual
print \$indi3->asXML() #Prints it as XML. See L<XML> for more info on this

```

### Base Class

Algorithm::Evolutionary::Individual::Base

### DESCRIPTION

Tree-like individual for genetic programming. Uses direct acyclic graphs as representation for trees, which is very convenient. This class has not been tested extensively, so it might not work.

### METHODS

#### new( CW\$primitives, CW\$depth, CW\$fitness )

Creates a new tree using a primitives hashref, max depth, and a ref-to-fitness

#### set

Sets values of an individual; takes a hash as input

#### randomize

Assigns random values to the elements

#### fromString

Probably useless, in this case. To be evolved.

#### clone

Similar to a copy ctor: creates a new individual from another one

Prints it

Prints a node

#### closeParens

Internal subrutine: closes node parenthesis

#### Atom

Returns the tree, which is atomic by itself. Cannot be used as lvalue

#### asXML

Prints it as XML. It prints the tree as String, which does not mean you will be able to get it back from this form. It’s done just for compatibity, reading from this format will be available. In the future.

Dummy sub

#### lolprint

Print the list of lists that composes the tree, using prefix notation

#### growSubTree

Grows a random tree, with primitives as indicated, and a certain depth. Depth defaults to 4

#### size()

Returns 1, since it’s got only 1 Atom

```

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: 2009/07/28 11:30:56 \$
\$Header: /media/Backup/Repos/opeal/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Individual/Tree.pm,v 3.1 2009/07/28 11:30:56 jmerelo Exp \$
\$Author: jmerelo \$
\$Revision: 3.1 \$
\$Name \$

```
Search for    or go to Top of page |  Section 3 |  Main Index

 perl v5.20.3 ALGORITHM::EVOLUTIONARY::INDIVIDUAL::TREE (3) 2014-10-25

Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.