예제 #1
0
 // 評価をする
 public void Evaluate()
 {
     Parallel.For(0, POPULATION, i => {
         CellAutomataGame cellAutomataGame = new CellAutomataGame(
             intArrayChromosomes.ReadChromosomeAsRule(i), rulesForEvalate, boardSize, INITIAL_RESOURCES);
         cellAutomataGame.InitializeBoards();
         for (int n = 0; n < EPISODES_FOR_EVALATION; n++)
         {
             cellAutomataGame.UpdateGameBoard();
         }
         intArrayChromosomes.SetScore(i, EvaluateFunction(cellAutomataGame));
     });
 }
예제 #2
0
 public void Evaluate()
 {
     for (int i = 0; i < POPULATION; i++)
     {
         CellAutomataGame cellAutomataGame = new CellAutomataGame(intArrayChromosomes.ReadChromosomeAsRule(i), rulesForEvalate);
         cellAutomataGame.InitializeBoards();
         for (int n = 0; n < EPISODESFOREVALATION; n++)
         {
             cellAutomataGame.UpdateGameBoard();
         }
         scores[i] = EvaluateFunction(cellAutomataGame);
     }
 }