![]() |
![]()
| ![]() |
![]()
NAMETree - A Direct Acyclic Graph, or tree, useful for Genetic Programming-Style stuff SYNOPSISuse 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 ClassAlgorithm::Evolutionary::Individual::Base DESCRIPTIONTree-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. METHODSnew( $primitives, $depth, $fitness )Creates a new tree using a primitives hashref, max depth, and a ref-to-fitness setSets values of an individual; takes a hash as input randomizeAssigns random values to the elements fromStringProbably useless, in this case. To be evolved. cloneSimilar to a copy ctor: creates a new individual from another one asStringPrints it nodePrintPrints a node closeParensInternal subrutine: closes node parenthesis AtomReturns the tree, which is atomic by itself. Cannot be used as lvalue asXMLPrints 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. addAtomDummy sub lolprintPrint the list of lists that composes the tree, using prefix notation growSubTreeGrows 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 CopyrightThis 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 $
|