BaşlayınÜcretsiz başlayın

SARSA güncelleme kuralını uygulama

SARSA, RL'de sonraki durumda seçilen eyleme ve yapılan eyleme dayalı olarak eylem-değer fonksiyonunu güncelleyen bir on-policy algoritmadır. Bu yöntem, yalnızca mevcut durum-eylem çiftinin değil, aynı zamanda onu izleyen çiftin de değerini öğrenmeye yardımcı olur ve gelecekteki eylemleri dikkate alan politikalar öğrenmenin bir yolunu sağlar. Aşağıda SARSA güncelleme kuralı verilmiştir; görevin, bu kurala göre bir Q-tablosunu güncelleyen bir fonksiyon yazmaktır.

NumPy kütüphanesi np takma adıyla içe aktarılmıştır.

SARSA güncelleme kuralının matematiksel formülünü gösteren görsel.

Bu egzersiz, kursun bir parçasıdır

Python ile Gymnasium'da Reinforcement Learning

Kursa Göz Atın

Egzersiz talimatları

  • Verilen durum-eylem çifti için mevcut Q-değerini al.
  • Sonraki durum-eylem çifti için Q-değerini bul.
  • Mevcut durum-eylem çifti için Q-değerini SARSA formülünü kullanarak güncelle.
  • Bir ajan durum 0'da eylem 0'ı yapıyor, 5 ödülü alıyor, durum 1'e geçiyor ve eylem 1'i uyguluyor olduğuna göre Q-tablosu Q'yu güncelle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

def update_q_table(state, action, reward, next_state, next_action):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Get the value of the next state-action pair
    next_value = ____
    # Compute the new value of the current state-action pair
    Q[(state, action)] = ____

alpha = 0.1
gamma  = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)
Kodu Düzenle ve Çalıştır