Kom igångKom igång gratis

Lösa ett multi-armed bandit-problem

I den här övningen implementerar du en epsilon-girig strategi för att lösa ett 10-armat bandit-problem, där epsilon-värdet minskar över tid för att skifta fokus från utforskning till utnyttjande.

epsilon, min_epsilon och epsilon_decay är redan fördefinierade. Funktionen epsilon_greedy() har också importerats.

Den här övningen är en del av kursen

Reinforcement Learning med Gymnasium i Python

Visa kurs

Övningsinstruktioner

  • Använd funktionen create_multi_armed_bandit() för att initiera ett 10-armat bandit-problem. Den returnerar true_bandit_probs, counts, values, rewards och selected_arms.
  • Välj en arm att dra med hjälp av funktionen epsilon_greedy().
  • Simulera reward baserat på de sanna bandit-sannolikheterna.
  • Minska epsilon-värdet och se till att det inte sjunker under min_epsilon-värdet.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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 = ____
Redigera och kör kod