public FenotipoRN(GenotipoRN genotipo) { neuroni = new SortedList<int,NeuroneF>(); neuroniA = new List<NeuroneF>(); neuroniS = new List<NeuroneF>(); foreach(KeyValuePair<int, GenotipoRN.NeuroneG> k_val in genotipo.neuroni) { NeuroneF nuovo = new NeuroneF(k_val.Value); neuroni.Add(k_val.Key, nuovo); } foreach (GenotipoRN.NeuroneG neurone in genotipo.neuroniInput) neuroniS.Add(neuroni[neurone.neatID]); foreach (GenotipoRN.NeuroneG neurone in genotipo.neuroniOutput) neuroniA.Add(neuroni[neurone.neatID]); foreach (KeyValuePair<int, GenotipoRN.AssoneG> k_val_assone in genotipo.assoni) if(k_val_assone.Value.attivo) neuroni[k_val_assone.Value.input].addAssone(k_val_assone.Value, neuroni); NEAT_numID = 0; }
public void generaPercettron() { NeuroneF neurone; Random generatoreCasuale = new Random(); for (int i = 0; i < numNeuroniAttuatori; i++) { neurone = new NeuroneF(Threshold.getRandomDelegate(), NEAT_numID, TipoNeurone.NActuator); neuroni.Add(neurone.neatID,neurone); neuroniA.Add(neurone); NEAT_numID++; } for (int i = 0; i < numNeuroniSensori; i++) { if(Params.transparentInput) neurone = new NeuroneF(Threshold.Transparent, NEAT_numID, TipoNeurone.NSensor); else neurone = new NeuroneF(Threshold.getRandomDelegate(), NEAT_numID, TipoNeurone.NSensor); foreach (NeuroneF n in neuroniA) neurone.addAssone(n, generatoreCasuale.NextDouble()); neuroni.Add(neurone.neatID,neurone); neuroniS.Add(neurone); NEAT_numID++; } return; }
public void addAssone(NeuroneF neuroneLink, Double peso) { AssoneF assone = new AssoneF(peso, neuroneLink); assoni.Add(assone); return; }
public AssoneF(Double _peso, NeuroneF _neuroneLink) { peso = _peso; neuroneLink = _neuroneLink; return; }
public AssoneF(GenotipoRN.AssoneG assoneG, SortedList<int, NeuroneF> neuroni) { neuroneLink = neuroni[assoneG.output]; peso = assoneG.peso; return; }
private void AddNeurone(thresholdFunction funzione, int id, TipoNeurone tipo) { NeuroneF neurone = new NeuroneF(funzione, id, tipo); return; }
private void AddAssone(NeuroneF neurone, NeuroneF neuroneLink, Double peso) { neurone.addAssone(neuroneLink, peso); return; }