AIXI.MazeEnvironment.PerformAction C# (CSharp) Method

PerformAction() public method

public PerformAction ( int action ) : int>.Tuple
action int
return int>.Tuple
        public override Tuple<int, int> PerformAction(int action)
        {
            int newx = this.X + this.Xdiff(action);
            int newy = this.Y + this.Ydiff(action);

            if (Accessible(newx, newy)) {
                this.X = newx;
                this.Y = newy;
            }

            this.Reward = this.GetReward(newx, newy);
            this.calculate_observation();

            if (this.Reward == this.RCheese)
            {
                place_agent();
            }

            return new Tuple<int, int>(this.Observation,this.Reward);
        }

Usage Example

コード例 #1
0
        public ConsoleEnvUI()
        {
            var options = new Dictionary <string, string>();

            string layout =
                @"#######
#.....#
#.#.#.#
#.#@#.#
#######";

            var env = new MazeEnvironment(options, layout);

            Console.WriteLine("Max possible action/observation/reward: {0}/{1}/{2}", env.maximum_action(), env.maximum_observation(), env.maximum_reward());

            Console.WriteLine("Min possible action/observation/action: {0}/{1}/{2}", env.minimum_action(), env.minimum_observation(), env.minimum_reward());


            Console.WriteLine("Bits needed for action/observation/action: {0}/{1}/{2}", env.ActionBits, env.ObservationBits, env.ActionBits);


            int observation;
            int reward;

            while (true)
            {
                Console.Write("> ");

                string input_s = Console.ReadLine();
                int    input_i = Int32.Parse(input_s);
                if (!env.IsValidAction(input_i))
                {
                    Console.WriteLine("Invalid action, valid are 0-{0}", env.maximum_action());
                    continue;
                }


                var or = env.PerformAction(input_i);
                observation = or.Item1;
                reward      = or.Item2;

                env.print();

                Console.WriteLine("observation/reward: {0}/{1}", observation, reward);
            }
        }
All Usage Examples Of AIXI.MazeEnvironment::PerformAction