public NEATInnovation(long fromNeuronID_0, long toNeuronID_1, NEATInnovationType innovationType_2, long innovationID, NEATNeuronType neuronType_3, double x, double y) { goto Label_0057; Label_0023: this.innovationType = innovationType_2; base.InnovationID = innovationID; this.neuronType = neuronType_3; this.splitX = x; this.splitY = y; this.neuronID = 0L; if (0 == 0) { return; } if (-2147483648 != 0) { goto Label_0057; } Label_004C: this.fromNeuronID = fromNeuronID_0; this.toNeuronID = toNeuronID_1; goto Label_0023; Label_0057: if ((((uint) y) + ((uint) toNeuronID_1)) < 0) { goto Label_0023; } goto Label_004C; }
public NEATInnovation(long fromNeuronID_0, long toNeuronID_1, NEATInnovationType innovationType_2, long innovationID) { if ((((uint) innovationID) + ((uint) fromNeuronID_0)) <= uint.MaxValue) { this.fromNeuronID = fromNeuronID_0; this.toNeuronID = toNeuronID_1; if (((uint) toNeuronID_1) > uint.MaxValue) { return; } goto Label_003B; } if (0 == 0) { goto Label_003B; } Label_0021: if ((((uint) fromNeuronID_0) + ((uint) fromNeuronID_0)) < 0) { goto Label_0052; } return; Label_003B: this.innovationType = innovationType_2; base.InnovationID = innovationID; this.neuronID = -1L; Label_0052: this.splitX = 0.0; this.splitY = 0.0; this.neuronType = NEATNeuronType.None; goto Label_0021; }
/// <summary> /// Convert the innovation type to a string. /// </summary> /// <param name="t">The innovation type.</param> /// <returns>The string.</returns> public static String InnovationTypeToString(NEATInnovationType t) { switch (t) { case NEATInnovationType.NewLink: return "l"; case NEATInnovationType.NewNeuron: return "n"; default: return null; } }
/// <summary> /// Create a new innovation. /// </summary> /// /// <param name="ins0">The input neuron.</param> /// <param name="xout">The output neuron.</param> /// <param name="type">The type.</param> public void CreateNewInnovation(long ins0, long xout, NEATInnovationType type) { var newInnovation = new NEATInnovation(ins0, xout, type, population.AssignInnovationID()); if (type == NEATInnovationType.NewNeuron) { newInnovation.NeuronID = AssignNeuronID(); } Add(newInnovation); }
/// <summary> /// Construct an innovation. /// </summary> /// /// <param name="neuronGene">The neuron gene.</param> /// <param name="innovationID">The innovation id.</param> /// <param name="neuronID_0">The neuron id.</param> public NEATInnovation(NEATNeuronGene neuronGene, long innovationID, long neuronID_0) { neuronID = neuronID_0; InnovationID = innovationID; splitX = neuronGene.SplitX; splitY = neuronGene.SplitY; neuronType = neuronGene.NeuronType; innovationType = NEATInnovationType.NewNeuron; fromNeuronID = -1; toNeuronID = -1; }
/// <summary> /// Construct an innovation. /// </summary> /// /// <param name="fromNeuronID_0">The from neuron.</param> /// <param name="toNeuronID_1">The two neuron.</param> /// <param name="innovationType_2">The innovation type.</param> /// <param name="innovationID">The innovation id.</param> public NEATInnovation(long fromNeuronID_0, long toNeuronID_1, NEATInnovationType innovationType_2, long innovationID) { fromNeuronID = fromNeuronID_0; toNeuronID = toNeuronID_1; innovationType = innovationType_2; InnovationID = innovationID; neuronID = -1; splitX = 0; splitY = 0; neuronType = NEATNeuronType.None; }
/// <summary> /// Create a new innovation. /// </summary> /// <param name="input">The input neuron.</param> /// <param name="output">The output neuron.</param> /// <param name="type">The type.</param> public void CreateNewInnovation(long input, long output, NEATInnovationType type) { NEATInnovation newInnovation = new NEATInnovation(input, output, type, this.population.AssignInnovationID()); if (type == NEATInnovationType.NewNeuron) { newInnovation.NeuronID = AssignNeuronID(); } Innovations.Add(newInnovation); }
/// <summary> /// Construct an innovation. /// </summary> /// <param name="fromNeuronID">The from neuron.</param> /// <param name="toNeuronID">The two neuron.</param> /// <param name="innovationType">The innovation type.</param> /// <param name="innovationID">The innovation id.</param> public NEATInnovation(long fromNeuronID, long toNeuronID, NEATInnovationType innovationType, long innovationID) { this.fromNeuronID = fromNeuronID; this.toNeuronID = toNeuronID; this.innovationType = innovationType; InnovationID = innovationID; neuronID = -1; splitX = 0; splitY = 0; neuronType = NEATNeuronType.None; }
/// <summary> /// Convert the innovation type to a string. /// </summary> /// <param name="t">The innovation type.</param> /// <returns>The string.</returns> public static String InnovationTypeToString(NEATInnovationType t) { switch (t) { case NEATInnovationType.NewLink: return("l"); case NEATInnovationType.NewNeuron: return("n"); default: return(null); } }
/// <summary> /// Construct an innovation. /// </summary> /// /// <param name="fromNeuronID_0">The from neuron.</param> /// <param name="toNeuronID_1">The to neuron.</param> /// <param name="innovationType_2">The innovation type.</param> /// <param name="innovationID">The innovation id.</param> /// <param name="neuronType_3">The neuron type.</param> /// <param name="x">The x coordinate.</param> /// <param name="y">THe y coordinate.</param> public NEATInnovation(long fromNeuronID_0, long toNeuronID_1, NEATInnovationType innovationType_2, long innovationID, NEATNeuronType neuronType_3, double x, double y) { fromNeuronID = fromNeuronID_0; toNeuronID = toNeuronID_1; innovationType = innovationType_2; InnovationID = innovationID; neuronType = neuronType_3; splitX = x; splitY = y; neuronID = 0; }
/// <summary> /// Construct an innovation. /// </summary> /// <param name="fromNeuronID">The from neuron.</param> /// <param name="toNeuronID">The to neuron.</param> /// <param name="innovationType">The innovation type.</param> /// <param name="innovationID">The innovation id.</param> /// <param name="neuronType">The neuron type.</param> /// <param name="x">The x coordinate.</param> /// <param name="y">The y coordinate.</param> public NEATInnovation(long fromNeuronID, long toNeuronID, NEATInnovationType innovationType, long innovationID, NEATNeuronType neuronType, double x, double y) { this.fromNeuronID = fromNeuronID; this.toNeuronID = toNeuronID; this.innovationType = innovationType; InnovationID = innovationID; this.neuronType = neuronType; splitX = x; splitY = y; neuronID = 0; }
/// <summary> /// Create a new innovation. /// </summary> /// <param name="from">The from neuron.</param> /// <param name="to">The to neuron.</param> /// <param name="innovationType">The innovation type.</param> /// <param name="neuronType">The neuron type.</param> /// <param name="x">The x-coordinate.</param> /// <param name="y">The y-coordinate.</param> /// <returns>The new innovation.</returns> public long CreateNewInnovation(long from, long to, NEATInnovationType innovationType, NEATNeuronType neuronType, double x, double y) { NEATInnovation newInnovation = new NEATInnovation(from, to, innovationType, population.AssignInnovationID(), neuronType, x, y); if (innovationType == NEATInnovationType.NewNeuron) { newInnovation.NeuronID = AssignNeuronID(); } Innovations.Add(newInnovation); return(this.nextNeuronID - 1); // ??????? should it be innov? }
/// <summary> /// Check to see if we already have an innovation. /// </summary> /// <param name="input">The input neuron.</param> /// <param name="output">The output neuron.</param> /// <param name="type">The type.</param> /// <returns>The innovation, either new or existing if found.</returns> public NEATInnovation CheckInnovation(long input, long output, NEATInnovationType type) { foreach (IInnovation i in Innovations) { NEATInnovation innovation = (NEATInnovation)i; if ((innovation.FromNeuronID == input) && (innovation.ToNeuronID == output) && (innovation.InnovationType == type)) { return(innovation); } } return(null); }
public NEATInnovation(NEATNeuronGene neuronGene, long innovationID, long neuronID_0) { if (8 != 0) { this.neuronID = neuronID_0; base.InnovationID = innovationID; this.splitX = neuronGene.SplitX; if (0xff == 0) { return; } this.splitY = neuronGene.SplitY; this.neuronType = neuronGene.NeuronType; this.innovationType = NEATInnovationType.NewNeuron; } this.fromNeuronID = -1L; this.toNeuronID = -1L; }
public NEATInnovation CheckInnovation(long ins0, long xout, NEATInnovationType type) { using (IEnumerator<IInnovation> enumerator = base.Innovations.GetEnumerator()) { IInnovation innovation; NEATInnovation innovation2; goto Label_0020; Label_000E: if ((innovation2.FromNeuronID == ins0) && (innovation2.ToNeuronID == xout)) { goto Label_002E; } Label_0020: if (enumerator.MoveNext()) { goto Label_0053; } goto Label_0084; Label_002E: if (innovation2.InnovationType != type) { goto Label_0020; } return innovation2; Label_0053: innovation = enumerator.Current; innovation2 = (NEATInnovation) innovation; if (((uint) xout) > uint.MaxValue) { goto Label_0020; } goto Label_000E; } Label_0084: return null; }
public override string ToString() { NEATInnovationType innovationType; StringBuilder builder = new StringBuilder(); builder.Append("[NeatInnovation:type="); if (1 != 0) { innovationType = this.innovationType; } switch (innovationType) { case NEATInnovationType.NewLink: builder.Append("link"); break; case NEATInnovationType.NewNeuron: builder.Append("neuron"); break; } builder.Append(",from="); builder.Append(this.fromNeuronID); builder.Append(",to="); builder.Append(this.toNeuronID); builder.Append(",splitX="); builder.Append(this.splitX); if (0 == 0) { builder.Append(",splitY="); builder.Append(this.splitY); builder.Append("]"); } return builder.ToString(); }
/// <summary> /// Create a new innovation. /// </summary> /// <param name="from">The from neuron.</param> /// <param name="to">The to neuron.</param> /// <param name="innovationType">The innovation type.</param> /// <param name="neuronType">The neuron type.</param> /// <param name="x">The x-coordinate.</param> /// <param name="y">The y-coordinate.</param> /// <returns>The new innovation.</returns> public long CreateNewInnovation(long from, long to, NEATInnovationType innovationType, NEATNeuronType neuronType, double x, double y) { NEATInnovation newInnovation = new NEATInnovation(from, to, innovationType, population.AssignInnovationID(), neuronType, x, y); if (innovationType == NEATInnovationType.NewNeuron) { newInnovation.NeuronID = AssignNeuronID(); } Innovations.Add(newInnovation); return (this.nextNeuronID - 1); // ??????? should it be innov? }
public void CreateNewInnovation(long ins0, long xout, NEATInnovationType type) { NEATInnovation innovation = new NEATInnovation(ins0, xout, type, this.population.AssignInnovationID()); while (type == NEATInnovationType.NewNeuron) { innovation.NeuronID = this.AssignNeuronID(); break; } base.Add(innovation); }
public long CreateNewInnovation(long from, long to, NEATInnovationType innovationType, NEATNeuronType neuronType, double x, double y) { NEATInnovation innovation = new NEATInnovation(from, to, innovationType, this.population.AssignInnovationID(), neuronType, x, y); if (0 == 0) { } while (innovationType == NEATInnovationType.NewNeuron) { innovation.NeuronID = this.AssignNeuronID(); break; } base.Add(innovation); return (this.nextNeuronID - 1L); }
/// <summary> /// Check to see if we already have an innovation. /// </summary> /// <param name="input">The input neuron.</param> /// <param name="output">The output neuron.</param> /// <param name="type">The type.</param> /// <returns>The innovation, either new or existing if found.</returns> public NEATInnovation CheckInnovation(long input, long output, NEATInnovationType type) { foreach (IInnovation i in Innovations) { NEATInnovation innovation = (NEATInnovation)i; if ((innovation.FromNeuronID == input) && (innovation.ToNeuronID == output) && (innovation.InnovationType == type)) { return innovation; } } return null; }