Mengimplementasikan value iteration
Value iteration adalah metode kunci dalam RL untuk menemukan kebijakan (policy) optimal. Metode ini secara bertahap menyempurnakan fungsi nilai untuk setiap state hingga konvergen, sehingga menghasilkan penemuan kebijakan optimal. Anda akan memulai dengan fungsi nilai V dan policy yang sudah diinisialisasi dan telah dimuat untuk Anda. Selanjutnya, Anda akan memperbaruinya dalam sebuah loop hingga fungsi nilai tersebut konvergen dan melihat kebijakannya bekerja.
Fungsi get_max_action_and_value(state, V) telah dimuat untuk Anda.
Latihan ini adalah bagian dari kursus
Reinforcement Learning dengan Gymnasium di Python
Petunjuk latihan
- Untuk setiap state, temukan aksi dengan nilai Q maksimum (
max_action) dan nilai yang bersesuaian (max_q_value). - Perbarui kamus
new_Vdanpolicyberdasarkanmax_actiondanmax_q_value. - Periksa konvergensi dengan memastikan selisih antara
new_vdanVuntuk setiap state lebih kecil daripadathreshold.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
threshold = 0.001
while True:
new_V = {}
for state in range(num_states-1):
# Get action with maximum Q-value and its value
max_action, max_q_value = ____
# Update the value function and policy
new_V[state] = ____
policy[state] = ____
# Test if change in state values is negligeable
if all(abs(____ - ____) < ____ for state in ____):
break
V = new_V
render_policy(policy)