private int[][] CreateEnvironmentMaze(int numberOfStates)
 {
     int[][] environmentMatrix = new int[numberOfStates][];
     for (int i = 0; i < numberOfStates; ++i)
     {
         environmentMatrix[i] = new int[numberOfStates];
     }
     environmentMatrix[0][1]   = environmentMatrix[0][4] = environmentMatrix[1][0] = environmentMatrix[1][5] = environmentMatrix[2][3] = 1;
     environmentMatrix[2][6]   = environmentMatrix[3][2] = environmentMatrix[3][7] = environmentMatrix[4][0] = environmentMatrix[4][8] = 1;
     environmentMatrix[5][1]   = environmentMatrix[5][6] = environmentMatrix[5][9] = environmentMatrix[6][2] = environmentMatrix[6][5] = 1;
     environmentMatrix[6][7]   = environmentMatrix[7][3] = environmentMatrix[7][6] = environmentMatrix[7][11] = environmentMatrix[8][4] = 1;
     environmentMatrix[8][9]   = environmentMatrix[9][5] = environmentMatrix[9][8] = environmentMatrix[9][10] = environmentMatrix[10][9] = 1;
     environmentMatrix[11][11] = 1;  // Goal
     _environmentMaze          = environment.GetComponent <EnvironmentMaze>();
     if (!_environmentMaze)
     {
         Debug.LogError("Environment Maze not found");
     }
     _environmentMaze.SetAllStateToUncharted();
     return(environmentMatrix);
 }
Exemplo n.º 2
0
        /// <summary>
        /// エージェントを設定する
        /// </summary>
        private void SetAgent()
        {
            EnvironmentMaze env = new EnvironmentMaze(EnvMaze, IndexData.GoalReword);

            Agent = new QLearningAgent(env, IndexData.Alpha, IndexData.Gamma, IndexData.Epsilon);
        }