Revision: 016a4e9972bd
Branch: default
Author: felix.antoine.fortin
Date: Tue May 20 22:51:41 2014 UTC
Log: Merge.
http://code.google.com/p/deap/source/detail?r=016a4e9972bd
Modified:
/deap/gp.py
=======================================
--- /deap/gp.py Tue May 20 22:50:39 2014 UTC
+++ /deap/gp.py Tue May 20 22:51:41 2014 UTC
@@ -490,7 +490,7 @@
######################################
# GP Program generation functions #
######################################
-def genFull(pset, min_, max_, type_=__type__):
+def genFull(pset, min_, max_, type_=None):
"""Generate an expression where each leaf has a the same depth
between *min* and *max*.
@@ -506,7 +506,7 @@
return depth == height
return generate(pset, min_, max_, condition, type_)
-def genGrow(pset, min_, max_, type_=__type__):
+def genGrow(pset, min_, max_, type_=None):
"""Generate an expression where each leaf might have a different depth
between *min* and *max*.
@@ -525,7 +525,7 @@
(depth >= min_ and random.random() < pset.terminalRatio)
return generate(pset, min_, max_, condition, type_)
-def genHalfAndHalf(pset, min_, max_, type_=__type__):
+def genHalfAndHalf(pset, min_, max_, type_=None):
"""Generate an expression with a PrimitiveSet *pset*.
Half the time, the expression is generated
with :func:`~deap.gp.genGrow`,
the other half, the expression is generated
with :func:`~deap.gp.genFull`.
@@ -540,7 +540,7 @@
method = random.choice((genGrow, genFull))
return method(pset, min_, max_, type_)
-def genRamped(pset, min_, max_, type_=__type__):
+def genRamped(pset, min_, max_, type_=None):
"""
.. deprecated:: 1.0
The function has been renamed. Use :func:`~deap.gp.genHalfAndHalf`
instead.
@@ -549,7 +549,7 @@
FutureWarning)
return genHalfAndHalf(pset, min_, max_, type_)
-def generate(pset, min_, max_, condition, type_=__type__):
+def generate(pset, min_, max_, condition, type_=None):
"""Generate a Tree as a list of list. The tree is build
from the root to the leaves, and it stop growing when the
condition is fulfilled.
@@ -565,6 +565,8 @@
:returns: A grown tree with leaves at possibly different depths
dependending on the condition function.
"""
+ if type_ is None:
+ type_ = pset.ret
expr = []
height = random.randint(min_, max_)
stack = [(0, type_)]