Implementace aktualizačního pravidla Q-learningu
Q-learning je off-policy algoritmus v oblasti reinforcement learningu (RL), jehož cílem je najít nejlepší akci pro aktuální stav. Na rozdíl od algoritmu SARSA, který bere v úvahu skutečně zvolenou další akci, Q-learning aktualizuje své Q-hodnoty pomocí maximální budoucí odměny – bez ohledu na to, jaká akce byla ve skutečnosti provedena. Díky tomu se Q-learning dokáže naučit optimální strategii i při sledování průzkumné nebo zcela náhodné politiky. Tvým úkolem je implementovat funkci, která aktualizuje Q-tabulku podle pravidla Q-learningu. Aktualizační pravidlo Q-learningu je znázorněno níže.
Knihovna NumPy je k dispozici pod názvem np.

Toto cvičení je součástí kurzu
Reinforcement Learning with Gymnasium in Python
Pokyny k cvičení
- Získej aktuální Q-hodnotu pro danou dvojici stav–akce.
- Urči maximální Q-hodnotu pro následující stav přes všechny možné akce v
actions. - Aktualizuj Q-hodnotu pro aktuální dvojici stav–akce pomocí vzorce Q-learningu.
- Aktualizuj Q-tabulku
Qpro případ, kdy agent v stavu0provede akci0, obdrží odměnu5a přejde do stavu1.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)