LoslegenKostenlos loslegen

Einen Multi-Armed Bandit lösen

In dieser Übung implementierst du eine Epsilon-greedy-Strategie, um ein 10-Arm-Bandit-Problem zu lösen. Dabei nimmt der Epsilon-Wert im Zeitverlauf ab, um von Exploration zu Exploitation zu wechseln.

epsilon, min_epsilon und epsilon_decay sind bereits für dich definiert. Die Funktion epsilon_greedy() wurde ebenfalls importiert.

Diese Übung ist Teil des Kurses

Reinforcement Learning mit Gymnasium in Python

Kurs anzeigen

Anleitung zur Übung

  • Verwende die Funktion create_multi_armed_bandit(), um ein 10-Arm-Bandit-Problem zu initialisieren. Sie gibt true_bandit_probs, counts, values, rewards und selected_arms zurück.
  • Wähle mit der Funktion epsilon_greedy() einen Arm zum Ziehen aus.
  • Simuliere die reward auf Basis der wahren Bandit-Wahrscheinlichkeiten.
  • Verringere den Wert von epsilon (Decay), und stelle sicher, dass er nicht unter den Wert von min_epsilon fällt.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 = ____
Code bearbeiten und ausführen