Documentation of 'ec.app.regression.func.RegERC' Java class
RegERC
ec.app.regression.func

Class RegERC

    • Field Detail

      • value

        public double value
    • Constructor Detail

      • RegERC

        public RegERC()
    • Method Detail

      • resetNode

        public void resetNode(EvolutionState state,
                              int thread)
        Description copied from class: ERC
        Remember to override this to randomize your ERC after it has been cloned. The prototype will not ever receive this method call.
        Specified by:
        resetNode in class ERC
      • nodeHashCode

        public int nodeHashCode()
        Description copied from class: ERC
        Implement this to hash ERCs, along with other nodes, in such a way that two "equal" ERCs will usually hash to the same value. The default value, which may not be very good, is a combination of the class hash code and the hash code of the string returned by encode(). You might make a better hash value.
        Overrides:
        nodeHashCode in class ERC
      • nodeEquals

        public boolean nodeEquals(GPNode node)
        Description copied from class: ERC
        Implement this to do ERC-to-ERC comparisons.
        Specified by:
        nodeEquals in class ERC
      • readNode

        public void readNode(EvolutionState state,
                             java.io.DataInput dataInput)
                      throws java.io.IOException
        Description copied from class: ERC
        To successfully read from a DataOutput, you must override this to read your specific ERC data in. The default implementation issues a fatal error.
        Overrides:
        readNode in class ERC
        Throws:
        java.io.IOException
      • writeNode

        public void writeNode(EvolutionState state,
                              java.io.DataOutput dataOutput)
                       throws java.io.IOException
        Description copied from class: ERC
        To successfully write to a DataOutput, you must override this to write your specific ERC data out. The default implementation issues a fatal error.
        Overrides:
        writeNode in class ERC
        Throws:
        java.io.IOException
      • encode

        public java.lang.String encode()
        Description copied from class: ERC
        Encodes data from the ERC, using ec.util.Code.
        Specified by:
        encode in class ERC
      • decode

        public boolean decode(DecodeReturn dret)
        Description copied from class: ERC
        Decodes data into the ERC from dret. Return true if you sucessfully decoded, false if you didn't. Don't increment dret.pos's value beyond exactly what was needed to decode your ERC. If you fail to decode, you should make sure that the position and data in the dret are exactly as they were originally.
        Overrides:
        decode in class ERC
      • toStringForHumans

        public java.lang.String toStringForHumans()
        Description copied from class: ERC
        You might want to override this to return a special human-readable version of the erc value; otherwise this defaults to toString(); This should be something that resembles a LISP atom. If a simple number or other object won't suffice, you might use something that begins with name() + [ + ... + ]
        Overrides:
        toStringForHumans in class ERC
      • eval

        public void eval(EvolutionState state,
                         int thread,
                         GPData input,
                         ADFStack stack,
                         GPIndividual individual,
                         Problem problem)
        Description copied from class: GPNode
        Evaluates the node with the given thread, state, individual, problem, and stack. Your random number generator will be state.random[thread]. The node should, as appropriate, evaluate child nodes with these same items passed to eval(...).

        About input: input is special; it is how data is passed between parent and child nodes. If children "receive" data from their parent node when it evaluates them, they should receive this data stored in input. If (more likely) the parent "receives" results from its children, it should pass them an input object, which they'll fill out, then it should check this object for the returned value.

        A tree is typically evaluated by dropping a GPData into the root. When the root returns, the resultant input should hold the return value.

        In general, you should not be creating new GPDatas. If you think about it, in most conditions (excepting ADFs and ADMs) you can use and reuse input for most communications purposes between parents and children.

        So, let's say that your GPNode function implements the boolean AND function, and expects its children to return return boolean values (as it does itself). You've implemented your GPData subclass to be, uh, BooleanData, which looks like

        public class BooleanData extends GPData 
            {
            public boolean result;
            public GPData copyTo(GPData gpd)
              {
              ((BooleanData)gpd).result = result;
              }
            }

        ...so, you might implement your eval(...) function as follows:

        public void eval(final EvolutionState state,
                             final int thread,
                             final GPData input,
                             final ADFStack stack,
                             final GPIndividual individual,
                             final Problem problem
            {
            BooleanData dat = (BooleanData)input;
            boolean x;
        
            // evaluate the first child
            children[0].eval(state,thread,input,stack,individual,problem);
          
            // store away its result
            x = dat.result;
        
            // evaluate the second child
            children[1].eval(state,thread,input,stack,individual,problem);
        
            // return (in input) the result of the two ANDed
        
            dat.result = dat.result && x;
            return;
            }
                
        Specified by:
        eval in class GPNode

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.