Cartpole-v1ΒΆ

[1]:
import gymnasium as gym
[2]:
from gymcts.gymcts_agent import GymctsAgent
from gymcts.gymcts_deepcopy_wrapper import DeepCopyMCTSGymEnvWrapper
[3]:
if __name__ == '__main__':

    # 0. create the environment
    env = gym.make("CartPole-v1")
    env.reset(seed=42)


    # 1. wrap the environment with the naive wrapper or a custom gymcts wrapper
    env = DeepCopyMCTSGymEnvWrapper(env)

    # 2. create the agent
    agent = GymctsAgent(
        env=env,
        number_of_simulations_per_step=50,
        clear_mcts_tree_after_step=True,
    )

    # 3. solve the environment
    terminal = False
    step = 0
    while not terminal:
        action, _ = agent.perform_mcts_step()
        obs, rew, term, trun, info = env.step(action)
        terminal = term or trun

        step += 1

        # log to console every 10 steps
        if step % 10 == 0:
            print(f"reward: {rew}, step: {step}")

    if step >= 475:
        print("CartPole-v1 successfully balanced!")
    else:
        print("CartPole-v1 failed to balance.")
reward: 1.0, step: 10
reward: 1.0, step: 20
reward: 1.0, step: 30
reward: 1.0, step: 40
reward: 1.0, step: 50
reward: 1.0, step: 60
reward: 1.0, step: 70
reward: 1.0, step: 80
reward: 1.0, step: 90
reward: 1.0, step: 100
reward: 1.0, step: 110
reward: 1.0, step: 120
reward: 1.0, step: 130
reward: 1.0, step: 140
reward: 1.0, step: 150
reward: 1.0, step: 160
reward: 1.0, step: 170
reward: 1.0, step: 180
reward: 1.0, step: 190
reward: 1.0, step: 200
reward: 1.0, step: 210
reward: 1.0, step: 220
reward: 1.0, step: 230
reward: 1.0, step: 240
reward: 1.0, step: 250
reward: 1.0, step: 260
reward: 1.0, step: 270
reward: 1.0, step: 280
reward: 1.0, step: 290
reward: 1.0, step: 300
reward: 1.0, step: 310
reward: 1.0, step: 320
reward: 1.0, step: 330
reward: 1.0, step: 340
reward: 1.0, step: 350
reward: 1.0, step: 360
reward: 1.0, step: 370
reward: 1.0, step: 380
reward: 1.0, step: 390
reward: 1.0, step: 400
reward: 1.0, step: 410
reward: 1.0, step: 420
reward: 1.0, step: 430
reward: 1.0, step: 440
reward: 1.0, step: 450
reward: 1.0, step: 460
reward: 1.0, step: 470
reward: 1.0, step: 480
reward: 1.0, step: 490
reward: 1.0, step: 500
CartPole-v1 successfully balanced!
[3]: