Mengevaluasi kebijakan pada Frozen Lake yang licin
Di lingkungan Frozen Lake yang licin, sekadar menurunkan kebijakan dari Q-table yang telah dipelajari tidak cukup untuk menilai efektivitasnya. Untuk menilai kesesuaian kebijakan yang dipelajari secara akurat, Anda harus memainkan beberapa episode dan mengamati rata-rata reward yang dicapai. Latihan ini membandingkan efektivitas kebijakan yang dipelajari dengan garis dasar yang ditetapkan dengan mengikuti kebijakan acak selama pelatihan. Tugas Anda adalah mengeksekusi kebijakan yang dipelajari selama beberapa episode dan menganalisis kinerjanya berdasarkan rata-rata reward yang terkumpul, lalu membandingkannya dengan rata-rata reward yang terkumpul selama fase kebijakan acak.
Q-table Q, num_states, num_actions, dan avg_reward_per_random_episode telah dimuat untuk Anda.
Pustaka NumPy telah diimpor sebagai np.
Latihan ini merupakan bagian dari kursus
Reinforcement Learning dengan Gymnasium di Python
Instruksi latihan
- Pada setiap iterasi, pilih aksi terbaik yang akan diambil berdasarkan Q-table
Qyang telah dipelajari. - Hitung rata-rata reward per episode yang dipelajari
avg_reward_per_learned_episode.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
for episode in range(10000):
state, info = env.reset()
terminated = False
episode_reward = 0
while not terminated:
# Select the best action based on learned Q-table
action = ____
new_state, reward, terminated, truncated, info = env.step(action)
state = new_state
episode_reward += reward
reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)