public NeuronGene(int layer, Neuron.Type type, int innovation, bool isInput, bool isOutput) { this.innovation = innovation; this.layer = layer; this.type = type; this.isInput = isInput; this.isOutput = isOutput; }
public Innovation(int ID, Type innovationType, int neuronIn, int neuronOut, int neuronID, Neuron.Type neuronType, float splitX, float splitY) { this.ID = ID; this.innovationType = innovationType; this.neuronIn = neuronIn; this.neuronOut = neuronOut; this.neuronID = neuronID; this.neuronType = neuronType; this.splitX = splitX; this.splitY = splitY; }
// create neuron at network initialization public Neuron CreateStartNeuron(Neuron.Type type, int neuronID, float splitX, float splitY) { var oldNeuronInnovID = innovationDB.CheckNeuronStartInnovation(neuronID); Neuron newNeuron; // new innovation if (oldNeuronInnovID == -1) { var neuronInnov = innovationDB.CreateInnovation(InnovationDB.Innovation.Type.NEW_NEURON, -1, -1, type, splitX, splitY); newNeuron = new Neuron(neuronInnov.neuronID, type, splitX, splitY); } else { var newNeuronID = innovationDB.GetNeuronID(oldNeuronInnovID); newNeuron = new Neuron(newNeuronID, type, splitX, splitY); } neurons.Add(newNeuron.ID, newNeuron); return(newNeuron); }
public Innovation CreateInnovation(Innovation.Type innovationType, int neuronIn, int neuronOut, Neuron.Type neuronType, float splitX, float splitY) { int neuronID = innovationType == Innovation.Type.NEW_NEURON ? NextNeuronID() : -1; var innovation = new Innovation(NextInnovID(), innovationType, neuronIn, neuronOut, neuronID, neuronType, splitX, splitY); innovations.Add(innovation); return(innovation); }