b belajar.myudak

Target SARSA vs Q-learning

Agen berada di transisi (s,a,r,s′)(s, a, r, s') dan sudah memilih aksi berikutnya a′a' di s′s' (mungkin aksi acak karena eksplorasi). Kembalikan [target_SARSA, target_Q]:

SARSA: r+γQ(s′,a′)Q-learning: r+γmax⁡a′′Q(s′,a′′)\text{SARSA: } r + \gamma Q(s', a') \qquad \text{Q-learning: } r + \gamma \max_{a''} Q(s', a'')

Jika done, keduanya rr.

On-policy vs off-policy

Bedanya hanya satu suku, tetapi efeknya besar:

  • SARSA (State, Action, Reward, State, Action) memakai aksi yang benar-benar diambil. Ia belajar nilai kebijakan yang sedang dijalankan, termasuk eksplorasinya. Jika eksplorasi kadang membuat agen jatuh ke jurang, SARSA ikut “takut” pada tepi jurang.
  • Q-learning memakai aksi terbaik. Ia belajar nilai kebijakan optimal, seolah-olah agen tidak akan pernah salah langkah.

Di peta tebing (lab GridWorld, preset “Peta tebing”), Q-learning memilih jalur tepat di tepi jurang (paling pendek), sedangkan SARSA memilih jalur yang lebih jauh dari jurang (lebih aman selama masih bereksplorasi).

Penjelasan

Yang diminta. List dua angka [sarsa, q].

Langkah di kode: jika done, kembalikan [r, r]. Selain itu, sarsa = r + gamma * Q[s2][a2] dan q = r + gamma * max(Q[s2]).

Cek case 1 vs 2. Q[1]=[1,5]Q[1] = [1, 5]. Jika agen memilih aksi 0 (eksplorasi), target SARSA =0.9= 0.9 sedangkan target Q tetap 4.54.5. Jika agen memilih aksi terbaik (1), keduanya sama: 4.54.5.

Yang dikembalikan: list dua float.

Topik
rlsarsaon-policyoff-policy
Petunjuk 1

SARSA memakai Q[s2][a2]: nilai aksi yang memang dipilih berikutnya.

Petunjuk 2

Q-learning memakai max(Q[s2]): nilai aksi terbaik, apa pun yang dipilih.

Python 3.14 · NumPy

Pengaturan editor

Ukuran font
Ukuran huruf di editor.
Ukuran tab
Lebar indentasi. Otomatis: 2 spasi untuk TypeScript, 4 untuk Python.
Key bindings
Ganti ke mode Vim.
Nomor baris relatif
Nomor baris dihitung dari posisi kursor (berguna untuk gerakan Vim).
Word wrap
Baris panjang dilipat agar muat di lebar editor.
IntelliSense
Saran kode otomatis saat mengetik (Ctrl+Spasi tetap bisa dipakai saat mati).

Nilai ditulis sebagai JSON. Output yang diharapkan dihitung dari solusi referensi.