मल्टी-आर्म्ड बैंडिट को हल करना
इस अभ्यास में आप 10-आर्म्ड बैंडिट समस्या को हल करने के लिए epsilon-greedy रणनीति इम्प्लीमेंट करेंगे, जहाँ समय के साथ epsilon का मान घटता है ताकि exploration से exploitation की ओर शिफ्ट हो सके।
epsilon, min_epsilon, और epsilon_decay आपके लिए पहले से परिभाषित हैं। epsilon_greedy() फंक्शन भी इम्पोर्ट किया गया है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Gymnasium के साथ Reinforcement Learning
अभ्यास निर्देश
- 10-आर्म्ड बैंडिट समस्या को इनिशियलाइज़ करने के लिए
create_multi_armed_bandit()फंक्शन का उपयोग करें, जोtrue_bandit_probs,counts,values,rewards, औरselected_armsलौटाएगा। epsilon_greedy()फंक्शन का उपयोग करके खींचने के लिए एक arm चुनें।- वास्तविक बैंडिट संभावनाओं के आधार पर
rewardका सिमुलेशन करें। epsilonके मान को घटाएँ, यह सुनिश्चित करते हुए कि वहmin_epsilonसे नीचे न जाए।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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 = ____