Menerapkan Every-Visit Monte Carlo
Metode Every-Visit Monte Carlo berbeda dari varian First-Visit karena memperbarui nilai setiap kali pasangan state-action muncul, bukan hanya pada kemunculan pertama. Pendekatan ini memberikan evaluasi kebijakan yang lebih menyeluruh dengan memanfaatkan seluruh informasi yang tersedia dari episode, namun juga dapat menimbulkan varians yang lebih besar pada estimasi nilai karena mencakup semua sampel, tanpa melihat kapan kemunculannya dalam episode. Tugas Anda adalah melengkapi implementasi fungsi every_visit_mc() yang mengestimasi fungsi nilai aksi Q selama num_episodes episode.
Kamus returns_sum dan returns_count, dengan pasangan state-action sebagai kunci, telah diinisialisasi dan dimuat untuk Anda bersama fungsi generate_episode().
Latihan ini adalah bagian dari kursus
Reinforcement Learning dengan Gymnasium di Python
Petunjuk latihan
- Hasilkan sebuah episode menggunakan fungsi
generate_episode(). - Perbarui return dan jumlah kemunculannya untuk setiap pasangan state-action dalam sebuah episode.
- Hitung nilai Q yang diestimasi.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
Q = np.zeros((num_states, num_actions))
for i in range(100):
# Generate an episode
episode = ____
# Update the returns and their counts
for j, (state, action, reward) in ____:
returns_sum[(state, action)] += sum(____)
returns_count[(state, action)] += ____
# Update the Q-values for visited state-action pairs
nonzero_counts = ____
Q[nonzero_counts] = ____
render_policy(get_policy())