Mengimplementasikan Monte Carlo kunjungan-pertama
Tujuan algoritme Monte Carlo adalah mengestimasi tabel Q untuk menurunkan kebijakan optimal. Pada latihan ini, Anda akan mengimplementasikan metode Monte Carlo Kunjungan-Pertama untuk mengestimasi fungsi nilai-aksi Q, lalu menghitung kebijakan optimal untuk menyelesaikan environment kustom yang telah Anda lihat pada latihan sebelumnya. Saat menghitung return, asumsikan faktor diskonto sebesar 1.
Array numpy Q, returns_sum, dan returns_count, yang menyimpan nilai Q, jumlah kumulatif hadiah, dan jumlah kunjungan untuk setiap pasangan keadaan-aksi, masing-masing, telah diinisialisasi dan dimuat terlebih dahulu untuk Anda.
Latihan ini adalah bagian dari kursus
Reinforcement Learning dengan Gymnasium di Python
Petunjuk latihan
- Definisikan kondisi
ifyang harus diuji dalam algoritme Monte Carlo kunjungan-pertama. - Perbarui return (
returns_sum), hitungannya (returns_count), danvisited_states.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
for i in range(100):
episode = generate_episode()
visited_states = set()
for j, (state, action, reward) in enumerate(episode):
# Define the first-visit condition
if ____ not in ____:
# Update the returns, their counts and the visited states
returns_sum[state, action] += ____([____ for ____ in ____])
returns_count[state, action] += ____
visited_states.____(____)
nonzero_counts = returns_count != 0
Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())