Risolvi un multi-armed bandit
In questo esercizio implementerai una strategia epsilon-greedy per risolvere un problema di bandit con 10 bracci, in cui il valore di epsilon decresce nel tempo per passare gradualmente dall’esplorazione allo sfruttamento.
epsilon, min_epsilon ed epsilon_decay sono già stati definiti per te. La funzione epsilon_greedy() è stata anche importata.
Questo esercizio fa parte del corso
Reinforcement Learning con Gymnasium in Python
Istruzioni dell'esercizio
- Usa la funzione
create_multi_armed_bandit()per inizializzare un problema di bandit con 10 bracci; restituiràtrue_bandit_probs,counts,values,rewardseselected_arms. - Seleziona un braccio da tirare usando la funzione
epsilon_greedy(). - Simula la
rewardbasandoti sulle probabilità reali del bandit. - Riduci (decay) il valore di
epsilonassicurandoti che non scenda sottomin_epsilon.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create a 10-armed bandit
true_bandit_probs, counts, values, rewards, selected_arms = ____
for i in range(n_iterations):
# Select an arm
arm = ____
# Compute the received reward
reward = ____
rewards[i] = reward
selected_arms[i] = arm
counts[arm] += 1
values[arm] += (reward - values[arm]) / counts[arm]
# Update epsilon
epsilon = ____