Example #1
0
 public FieldSubs3LNetworkEvaluator(NeatQTableBase neatQTable)
 {
     m_neatQTable = neatQTable;
     //Debug.Assert(m_neatQTable != null);
     // we put (cols + 2) columns in substrate to allaw players to go beyond the columns and score a goal
     m_substrate = new MultiLayerSandwichSubstrate(neatQTable.Rows, neatQTable.Cols + 2,
                                                   NeatExpParams.SubstrateLayers, NeatExpParams.AddBiasToSubstrate,
                                                   HyperNEATParameters.substrateActivationFunction);
 }
 /// <summary>
 /// Constructs with the provided substrate, CPPN activation scheme and substrate
 /// network activation scheme.
 /// </summary>
 public HyperNeatDecoder(ISubstrate substrate,
                         NetworkActivationScheme activationSchemeCppn,
                         NetworkActivationScheme activationSchemeSubstrate)
 {
     _substrate                    = substrate;
     _activationSchemeCppn         = activationSchemeCppn;
     _activationSchemeSubstrate    = activationSchemeSubstrate;
     _decodeCppnMethod             = GetDecodeCppnMethod(_activationSchemeCppn);
     _createSubstrateNetworkMethod = GetCreateSubstrateNetworkMethod(activationSchemeSubstrate);
 }
Example #3
0
        public CCEAGeomCtrlNetworkEvaluator(NeatQTableBase neatQTable)
        {
            m_neatQTable = neatQTable;
            //Debug.Assert(m_neatQTable != null);
            // we put (cols + 2) columns in substrate to allaw players to go beyond the columns and score a goal
            m_substrateBallOwner = new GeomPlayerSubstrate(NeatExpParams.AddBiasToSubstrate,
                                                           HyperNEATParameters.substrateActivationFunction, 0);

            m_substrateNotBallOwner = new GeomPlayerSubstrate(NeatExpParams.AddBiasToSubstrate,
                                                              HyperNEATParameters.substrateActivationFunction,
                                                              NeatExpParams.AddBiasToSubstrate ? 2 : 1);
        }
        public CCEANEATFFCtrlNetworkEvaluator(NeatQTableBase neatQTable)
        {
            m_neatQTable = neatQTable;
            //Debug.Assert(m_neatQTable != null);
            // we put (cols + 2) columns in substrate to allaw players to go beyond the columns and score a goal
            m_substrateBallOwner = new TwoLayerSandwichSubstrate(neatQTable.Rows, neatQTable.Cols + 2,
                                                                 NeatExpParams.AddBiasToSubstrate, HyperNEATParameters.substrateActivationFunction, 0);
            m_substrateNotBallOwner = new TwoLayerSandwichSubstrate(neatQTable.Rows, neatQTable.Cols + 2,
                                                                    NeatExpParams.AddBiasToSubstrate, HyperNEATParameters.substrateActivationFunction,
                                                                    NeatExpParams.AddBiasToSubstrate? 2 : 1);

            //m_substrate = new BallOwnerAwareSubstrate(neatQTable.Rows, neatQTable.Cols + 2,
            //    HyperNEATParameters.substrateActivationFunction);
        }
        public override void Initialize(string name, XmlElement xmlConfig)
        {
            base.Initialize(name, xmlConfig);
            var substrateElements = xmlConfig.GetElementsByTagName("Substrate");

            if (substrateElements.Count != 1)
            {
                throw new ArgumentException("Must be only one substrate element in the xml.");
            }
            _substrate =
                ExperimentUtils.ReadSubstrateFromXml(xmlConfig.GetElementsByTagName("Substrate")[0] as XmlElement, xmlConfig.GetElementsByTagName("SubstrateSettings")[0] as XmlElement);
            _cppnActivationScheme = ExperimentUtils.CreateActivationScheme(xmlConfig, "CPPNActivation");
            _cppnInputLength      = XmlUtils.TryGetValueAsBool(xmlConfig, "CPPNDistanceInput") ?? false;
        }