public void GenerateInitial() { _evolver = new GeneticOptimisation(tankCount, 0.15, SelectionMethod.Natural); for (int i = 0; i < tankCount; i++) { var rp = Random.insideUnitSphere; rp.y = 0; rp = generatePoint.position + rp.normalized * Random.Range(1, generateRadius); _initPosition.Add(rp); _drivers.Add(Instantiate(tankPrefab, rp, Quaternion.identity).GetComponent <TankDriver>()); _evolver.population.Add(_drivers[i].network); } _evolver.RandomizePopulation(-1d, 1d); }
public void GenerateInitial() { PreLoader pl = FindObjectOfType <PreLoader> (); SelectionMethod mySlm; totalStepsPerEpoch = pl.timer; float mutate = pl.MR; int SlmNum = pl.dropD; tankCount = pl.PS; if (SlmNum == 0) { mySlm = SelectionMethod.Natural; } else if (SlmNum == 1) { mySlm = SelectionMethod.Competitive; } else { mySlm = SelectionMethod.Random_ForFun; } // Debug.Log (pl.PS); m_evolver = new GeneticOptimisation(tankCount, mutate, mySlm); for (var i = 0; i < tankCount; i++) { var rp = Random.insideUnitSphere; rp.y = 0; rp = generatePoint.position + rp.normalized * Random.Range(1, generateRadius); m_initPosition.Add(rp); m_drivers.Add(Instantiate(tankPrefab, rp, Quaternion.identity).GetComponent <TankDriver>()); m_drivers[i].GetComponent <Tank>().Setup(); m_evolver.population.Add(m_drivers[i].network); } m_evolver.RandomizePopulation(); }