Sean, I'm attempting to do something similar with limited success. My approach is to treat the array as a terminal GPNode. Then I include two functions: one called "length" that takes the array as its one parameter and returns the length of the array, and a second called "get" that takes the array and an index value and returns the specific value at that index. Is there a motivation to use ERC instead of GPNode? Is there a benefit to be gained, or does it perhaps not matter? Court On Sun, 6 Jan 2013 18:39:32 -0500, Sean Luke <[log in to unmask]> wrote: >Hi Jerry. So having a truly arbitrary and variable number of variables is an interesting issue but I think you can do it fairly easily actually. > >What I'd do is first create an *array* of doubles in your Problem class. The array size would be the number of variables. You'd define this size in the parameter file. > >Next you need to define a function in your function set. You'd think that you need one function for each variable, and that'd be a problem for an arbitrary number of variables of course. But there's another option: make a subclass of ERC. > >ERCs aren't just for constants. They can be variables, nonterminal functions, you name it. An ERC subclass is appropriate whenever you have an arbitrarily large and variable number of options for a single kind of function node. Like the set of constants. Or in your case, the set of variables. > >So your ERC would be a terminal -- it'd have no children -- and you'd have it provide a name that seems appropriate for variables in general (X1, X2, etc. maybe), and then based on its internal "value" (an integer which you'd set at reset time) it'd determine which slot to look up in that array and return. > >Sean