Implementarea regulii de actualizare Q-learning
Q-learning este un algoritm off-policy în învățarea prin recompensă (RL) care urmărește să găsească cea mai bună acțiune de luat în starea curentă. Spre deosebire de SARSA, care ține cont de acțiunea efectiv următoare, Q-learning actualizează valorile Q folosind recompensa viitoare maximă, indiferent de acțiunea aleasă. Această distincție îi permite algoritmului să învețe politica optimă chiar și atunci când urmează o politică exploratorie sau aleatoare. Sarcina ta este să implementezi o funcție care actualizează un tabel Q pe baza regulii Q-learning. Regula de actualizare Q-learning este prezentată mai jos.
Biblioteca NumPy a fost importată ca np.

Acest exercițiu face parte din cursul
Reinforcement Learning cu Gymnasium în Python
Instrucțiuni pentru exercițiu
- Extrage valoarea Q curentă pentru perechea stare-acțiune dată.
- Determină valoarea Q maximă pentru starea următoare, luând în calcul toate acțiunile posibile din
actions. - Actualizează valoarea Q pentru perechea stare-acțiune curentă folosind formula Q-learning.
- Actualizează tabelul Q
Q, știind că agentul execută acțiunea0în starea0, primește o recompensă de5și trece în starea1.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
actions = ['action1', 'action2']
def update_q_table(state, action, reward, next_state):
# Get the old value of the current state-action pair
old_value = ____
# Determine the maximum Q-value for the next state
next_max = ____
# Compute the new value of the current state-action pair
Q[state, action] = ____
alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)