Examining tutorial4.params and koza.params, I think I'm getting closer. I'm still getting this error message: 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 http://www.lclark.edu/~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