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_reward를rewards_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))