Processing GP Node Constraints

ERROR:

The GP type "move" could not be found.

SYSTEM EXITING FROM ERRORS

My revised .params file is included below.

Peter Drake

On May 11, 2008, at 3:46 PM, Peter Drake wrote:

Now I'm working on a configuration file. My intent is that there are four types of nodes:(play <move> <sequence>) is a <sequence>(if <move> <sequence> <sequence>) is a <sequence>(random) is a <sequence>move is a <move> (and also an ERC)Below is my attempt at a .params file, which I adapted from Tutorial 4. It does produce trees made of the right parts, but seems to be paying no attention to the types. Is there something I forgot to include, or am I doing the types wrong?<old file deleted>

parent.0 = ../../ec/gp/koza/koza.params

generations = 1

# the next four items are already defined in koza.params, but we

# put them here to be clear.

# We have one function set, of class GPFunctionSet

gp.fs.size = 1

gp.fs.0 = ec.gp.GPFunctionSet

# We'll call the function set "f0". It uses the default GPFuncInfo class

gp.fs.0.name = f0

gp.fs.0.info = ec.gp.GPFuncInfo

# Types

gp.a.size = 2 # Two atomic types

gp.a.0.name = sequence

gp.a.1.name = move

gp.nc.size = 4

gp.nc.0 = ec.gp.GPNodeConstraints

gp.nc.0.name = ncMove

gp.nc.0.returns = move

gp.nc.0.size = 0

gp.nc.1 = ec.gp.GPNodeConstraints

gp.nc.1.name = ncIf

gp.nc.1.returns = sequence

gp.nc.1.size = 3

gp.nc.1.child.0 = move

gp.nc.1.child.1 = sequence

gp.nc.1.child.2 = sequence

gp.nc.2 = ec.gp.GPNodeConstraints

gp.nc.2.name = ncPlay

gp.nc.2.returns = sequence

gp.nc.2.size = 2

gp.nc.2.child.0 = move

gp.nc.2.child.1 = sequence

gp.nc.3 = ec.gp.GPNodeConstraints

gp.nc.3.name = ncRandom

gp.nc.3.returns = sequence

gp.nc.3.size = 0

# We have four functions in the function set. They are:

gp.fs.0.size = 4

gp.fs.0.func.0 = orego.gp.MoveNode

gp.fs.0.func.0.nc = ncMove

gp.fs.0.func.1 = orego.gp.IfNode

gp.fs.0.func.1.nc = ncIf

gp.fs.0.func.2 = orego.gp.PlayNode

gp.fs.0.func.2.nc = ncPlay

gp.fs.0.func.3 = orego.gp.RandomNode

gp.fs.0.func.3.nc = ncRandom

eval.problem = orego.gp.MultiValuedRegression

eval.problem.data = orego.gp.DoubleData

# The following should almost *always* be the same as eval.problem.data

# For those who are interested, it defines the data object used internally

# inside ADF stack contexts

eval.problem.stack.context.data = ec.app.tutorial4.DoubleData