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); }
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; }