diff --git a/UnityNEAT/Assets/SharpNEAT/Core/UnityParallelListEvaluator.cs b/UnityNEAT/Assets/SharpNEAT/Core/UnityParallelListEvaluator.cs index 47634b4..0b5771d 100644 --- a/UnityNEAT/Assets/SharpNEAT/Core/UnityParallelListEvaluator.cs +++ b/UnityNEAT/Assets/SharpNEAT/Core/UnityParallelListEvaluator.cs @@ -58,6 +58,7 @@ private IEnumerator evaluateList(IList genomeList) Utility.Log("Iteration " + (i + 1)); _phenomeEvaluator.Reset(); dict = new Dictionary(); + int curr_group_size = _optimizer.Group_Size; foreach (TGenome genome in genomeList) { @@ -80,8 +81,12 @@ private IEnumerator evaluateList(IList genomeList) // fitnessDict.Add(phenome, new FitnessInfo[_optimizer.Trials]); //} Coroutiner.StartCoroutine(_phenomeEvaluator.Evaluate(phenome)); - - + curr_group_size++; + if(_optimizer.Group_Eval){ + if(curr_group_size%_optimizer.Group_Size == 0){ + yield return new WaitForSeconds(_optimizer.TrialDuration); + } + } } } diff --git a/UnityNEAT/Assets/SharpNEAT/Optimizer.cs b/UnityNEAT/Assets/SharpNEAT/Optimizer.cs index 51aa1dd..2b40f65 100644 --- a/UnityNEAT/Assets/SharpNEAT/Optimizer.cs +++ b/UnityNEAT/Assets/SharpNEAT/Optimizer.cs @@ -16,6 +16,8 @@ public class Optimizer : MonoBehaviour { public int Trials; public float TrialDuration; public float StoppingFitness; + public bool Group_Eval = false; + public int Group_Size = 0; bool EARunning; string popFileSavePath, champFileSavePath;