Update Q-learning
Implementasikan satu update Q-learning untuk transisi (s,a,r,s′,done):
Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]Jika done, targetnya r saja. Kembalikan salinan tabel yang sudah diperbarui.
Q = [[0, 0], [2, 4]], s=0, a=0, r=0, s2=1, α=0.5, γ=0.9 → Q[0][0] = 0.5 · 0.9 · 4 = 1.8
Off-policy
Target Q-learning memakai maxa′Q(s′,a′): nilai aksi terbaik di state berikutnya, walaupun agen mungkin akan mengambil aksi acak (eksplorasi) di sana. Jadi Q-learning mempelajari nilai kebijakan serakah sambil berperilaku dengan kebijakan lain. Inilah yang disebut off-policy.
Akibatnya, Q-learning bisa belajar dari data apa pun: pengalaman lama, pengalaman agen lain, atau demonstrasi manusia. DQN (yang bermain Atari) adalah Q-learning dengan jaringan saraf menggantikan tabel, ditambah replay buffer berisi pengalaman lama.
Di lab GridWorld, lihat panah (argmax Q) terbentuk mundur dari tujuan.
Penjelasan
Yang diminta. Tabel Q baru dengan satu sel yang berubah.
Langkah di kode:
Q = [row[:] for row in Q]: salin setiap baris.Q[:]saja tidak cukup karena barisnya masih dibagi bersama.target = rjika done, selain itur + gamma * max(Q[s2]).Q[s][a] += alpha * (target - Q[s][a]).
Cek case 2. maxQ[1]=4, target =0+0.9⋅4=3.6, sehingga Q[0][0]=0+0.5⋅3.6=1.8. Nilai baik di state 1 “bocor” mundur ke aksi yang menuju ke sana.
Case done. Target =−1; nilai state 1 diabaikan karena tidak ada masa depan setelah episode berakhir.
Yang dikembalikan: list of list float.
Topik
Petunjuk 1
Target = r + γ · max_a' Q[s2][a'], atau cukup r jika done.
Petunjuk 2
Hanya satu sel yang berubah: Q[s][a] += α · (target − Q[s][a]). Salin tabelnya dulu.
Nilai ditulis sebagai JSON. Output yang diharapkan dihitung dari solusi referensi.