시작하기무료로 시작하기

Q-learning으로 8x8 Frozen Lake 해결하기

이 연습 문제에서는 Q-learning 알고리즘을 적용해 8x8 Frozen Lake 환경에서 최적 정책을 학습해 볼 거예요. 이번에는 "slippery" 조건이 활성화되어 있습니다. 이 조건은 확률적 전이를 도입하여 에이전트의 이동이 예측 불가능해지고, 실제 상황에 더 가까운 시뮬레이션이 됩니다.

Q-table Q는 이미 초기화되어 로드되어 있으며, 이전 연습 문제의 update_q_table() 함수와 각 에피소드에서 누적된 총 보상을 담을 빈 리스트 rewards_per_episode도 제공됩니다.

이 연습은 강의의 일부입니다

Python으로 배우는 Gymnasium 기반 Reinforcement Learning

강의 보기

연습 안내

  • 각 에피소드에서 선택한 action을 실행하고 보상과 다음 상태를 관찰하세요.
  • Q-table을 업데이트하세요.
  • total_rewardrewards_per_episode 리스트에 추가하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

for episode in range(10000):
    state, info = env.reset()
    total_reward = 0
    terminated = False
    while not terminated:
        action = env.action_space.sample()
        # Execute the action
        next_state, reward, terminated, truncated, info = ____
        # Update the Q-table
        ____
        state = next_state
        total_reward += reward
    # Append the total reward to the rewards list    
    rewards_per_episode.____(____)
print("Average reward per random episode: ", np.mean(rewards_per_episode))
코드 편집 및 실행