Пример #1
0
 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;
 }
Пример #2
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;
        }
Пример #3
0
 public void addAssone(NeuroneF neuroneLink, Double peso)
 {
     AssoneF assone = new AssoneF(peso, neuroneLink);
        assoni.Add(assone);
        return;
 }
Пример #4
0
 public AssoneF(Double _peso, NeuroneF _neuroneLink)
 {
     peso = _peso;
        neuroneLink = _neuroneLink;
        return;
 }
Пример #5
0
 public AssoneF(GenotipoRN.AssoneG assoneG, SortedList<int, NeuroneF> neuroni)
 {
     neuroneLink = neuroni[assoneG.output];
        peso = assoneG.peso;
        return;
 }
Пример #6
0
 private void AddNeurone(thresholdFunction funzione, int id, TipoNeurone tipo)
 {
     NeuroneF neurone = new NeuroneF(funzione, id, tipo);
        return;
 }
Пример #7
0
 private void AddAssone(NeuroneF neurone, NeuroneF neuroneLink, Double peso)
 {
     neurone.addAssone(neuroneLink, peso);
        return;
 }