Bắt đầu ngayBắt đầu miễn phí

Giải bài toán multi-armed bandit

Bài tập này yêu cầu bạn triển khai chiến lược epsilon-greedy để giải bài toán bandit 10 cánh tay, trong đó giá trị epsilon sẽ giảm dần theo thời gian để chuyển dần từ khám phá sang khai thác.

epsilon, min_epsilon, và epsilon_decay đã được định nghĩa sẵn cho bạn. Hàm epsilon_greedy() cũng đã được nhập sẵn.

Bài tập này là một phần của khóa học

Reinforcement Learning với Gymnasium trong Python

Xem khóa học

Hướng dẫn bài tập

  • Dùng hàm create_multi_armed_bandit() để khởi tạo bài toán bandit 10 cánh tay; hàm sẽ trả về true_bandit_probs, counts, values, rewards, và selected_arms.
  • Chọn một cánh tay để kéo bằng hàm epsilon_greedy().
  • Mô phỏng reward dựa trên các xác suất thật của bandit.
  • Giảm dần giá trị epsilon và đảm bảo nó không giảm xuống dưới min_epsilon.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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 = ____
Chỉnh sửa và Chạy Mã