Implementera Q-learnings uppdateringsregel
Q-learning är en off-policy-algoritm inom förstärkningsinlärning (RL) som syftar till att hitta den bästa åtgärden utifrån det aktuella tillståndet. Till skillnad från SARSA, som tar hänsyn till den faktiskt valda nästa åtgärden, uppdaterar Q-learning sina Q-värden med hjälp av den maximala framtida belöningen oavsett vilken åtgärd som vidtas. Den här skillnaden gör att Q-learning kan lära sig den optimala policyn även när agenten följer en utforskande eller slumpmässig policy. Din uppgift är att implementera en funktion som uppdaterar en Q-tabell enligt Q-learnings uppdateringsregel, som visas nedan.
NumPy-biblioteket har importerats som np.

Den här övningen är en del av kursen
Reinforcement Learning med Gymnasium i Python
Övningsinstruktioner
- Hämta det aktuella Q-värdet för det givna tillstånds-åtgärdsparet.
- Bestäm det maximala Q-värdet för nästa tillstånd över alla möjliga åtgärder i
actions. - Uppdatera Q-värdet för det aktuella tillstånds-åtgärdsparet med Q-learnings formel.
- Uppdatera Q-tabellen
Qgivet att en agent utför åtgärd0i tillstånd0, får en belöning på5och övergår till tillstånd1.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)